text: # Configuration file for Uncrustify code formatter.
  # https://github.com/uncrustify/uncrustify
  #
  # Created with https://cdanu.github.io/uncrustify_config_preview/index.html
  #
  # You may apply it for your code with:
  # uncrustify -l CPP -c uncrustify.cfg -f filename.cpp
  #
  # This config is in beta: it doesn't implement our style guide perfectly.
  # It's not recommended to apply it for existing code base.
  
  newlines                        = lf
  input_tab_size                  = 4
  output_tab_size                 = 4
  string_replace_tab_chars        = true
  utf8_bom                        = remove
  utf8_byte                       = true
  utf8_force                      = true
  sp_arith                        = force
  sp_assign                       = force
  sp_cpp_lambda_assign            = remove
  sp_cpp_lambda_paren             = remove
  sp_assign_default               = force
  sp_enum_assign                  = force
  sp_enum_colon                   = force
  sp_pp_concat                    = force
  sp_pp_stringify                 = remove
  sp_bool                         = force
  sp_compare                      = force
  sp_inside_paren                 = remove
  sp_paren_paren                  = remove
  sp_paren_brace                  = force
  sp_before_ptr_star              = force
  sp_between_ptr_star             = remove
  sp_after_ptr_star               = force
  sp_after_ptr_star_qualifier     = force
  sp_after_ptr_star_func          = force
  sp_ptr_star_paren               = force
  sp_before_ptr_star_func         = force
  sp_before_byref                 = force
  sp_before_unnamed_byref         = force
  sp_after_byref                  = force
  sp_after_byref_func             = force
  sp_before_byref_func            = force
  sp_template_angle               = force
  sp_before_angle                 = remove
  sp_inside_angle                 = remove
  sp_angle_colon                  = force
  sp_after_angle                  = force
  sp_angle_paren                  = remove
  sp_angle_paren_empty            = remove
  sp_angle_word                   = force
  sp_angle_shift                  = remove
  sp_permit_cpp11_shift           = true
  sp_before_sparen                = force
  sp_inside_sparen                = remove
  sp_after_sparen                 = force
  sp_sparen_brace                 = force
  sp_special_semi                 = force
  sp_before_semi_for              = remove
  sp_before_semi_for_empty        = remove
  sp_after_semi                   = force
  sp_after_semi_for_empty         = remove
  sp_before_square                = remove
  sp_before_squares               = remove
  sp_inside_square                = remove
  sp_after_comma                  = force
  sp_before_ellipsis              = remove
  sp_after_class_colon            = force
  sp_before_class_colon           = force
  sp_after_constr_colon           = force
  sp_before_constr_colon          = force
  sp_after_operator               = remove
  sp_after_operator_sym           = remove
  sp_after_cast                   = remove
  sp_inside_paren_cast            = remove
  sp_cpp_cast_paren               = remove
  sp_sizeof_paren                 = remove
  sp_inside_braces_enum           = force
  sp_inside_braces_struct         = force
  sp_inside_braces                = force
  sp_inside_braces_empty          = remove
  sp_type_func                    = force
  sp_func_proto_paren             = remove
  sp_func_proto_paren_empty       = remove
  sp_func_def_paren               = remove
  sp_func_def_paren_empty         = remove
  sp_inside_fparens               = remove
  sp_inside_fparen                = remove
  sp_inside_tparen                = remove
  sp_after_tparen_close           = remove
  sp_square_fparen                = remove
  sp_fparen_brace                 = force
  sp_func_call_paren              = remove
  sp_func_class_paren             = remove
  sp_func_class_paren_empty       = remove
  sp_return_paren                 = force
  sp_attribute_paren              = remove
  sp_defined_paren                = remove
  sp_throw_paren                  = force
  sp_after_throw                  = force
  sp_catch_paren                  = force
  sp_macro                        = add
  sp_macro_func                   = add
  sp_else_brace                   = force
  sp_brace_else                   = force
  sp_brace_typedef                = force
  sp_catch_brace                  = force
  sp_brace_catch                  = force
  sp_try_brace                    = force
  sp_word_brace                   = remove
  sp_word_brace_ns                = force
  sp_before_dc                    = remove
  sp_after_dc                     = remove
  sp_cond_colon                   = force
  sp_cond_colon_before            = force
  sp_cond_colon_after             = force
  sp_cond_question                = force
  sp_cond_question_before         = force
  sp_cond_question_after          = force
  sp_cond_ternary_short           = remove
  sp_cmt_cpp_start                = force
  sp_cmt_cpp_doxygen              = true
  sp_cmt_cpp_qttr                 = true
  sp_endif_cmt                    = force
  sp_after_new                    = force
  sp_between_new_paren            = remove
  sp_after_newop_paren            = force
  sp_inside_newop_paren           = remove
  sp_before_tr_emb_cmt            = force
  indent_columns                  = 4
  indent_with_tabs                = 0
  indent_namespace                = false
  indent_namespace_limit          = 100
  indent_class                    = true
  indent_ctor_init_leading        = 1
  indent_shift                    = true
  indent_func_call_param          = true
  indent_func_def_param           = true
  indent_func_proto_param         = true
  indent_func_class_param         = true
  indent_func_ctor_var_param      = true
  indent_template_param           = true
  indent_member                   = 4
  indent_switch_case              = 4
  indent_switch_pp                = false
  indent_label                    = 0
  indent_access_spec              = -4
  indent_paren_close              = 2
  indent_paren_after_func_def     = true
  indent_paren_after_func_decl    = true
  indent_paren_after_func_call    = true
  indent_align_assign             = false
  indent_token_after_brace        = false
  indent_cpp_lambda_body          = true
  indent_ternary_operator         = 1
  nl_assign_leave_one_liners      = true
  nl_class_leave_one_liners       = true
  nl_enum_leave_one_liners        = true
  nl_getset_leave_one_liners      = true
  nl_func_leave_one_liners        = true
  nl_cpp_lambda_leave_one_liners  = true
  nl_cpp_ldef_brace               = add
  nl_if_leave_one_liners          = true
  nl_start_of_file                = remove
  nl_end_of_file                  = force
  nl_enum_brace                   = add
  nl_struct_brace                 = add
  nl_union_brace                  = add
  nl_if_brace                     = add
  nl_brace_else                   = add
  nl_else_brace                   = add
  nl_else_if                      = remove
  nl_before_if_closing_paren      = remove
  nl_try_brace                    = add
  nl_for_brace                    = add
  nl_catch_brace                  = add
  nl_brace_catch                  = add
  nl_while_brace                  = add
  nl_do_brace                     = add
  nl_brace_while                  = remove
  nl_switch_brace                 = add
  nl_multi_line_define            = true
  nl_before_case                  = true
  nl_after_case                   = true
  nl_case_colon_brace             = add
  nl_namespace_brace              = add
  nl_template_class               = add
  nl_class_brace                  = add
  nl_enum_own_lines               = add
  nl_func_scope_name              = remove
  nl_func_paren                   = remove
  nl_func_def_paren               = remove
  nl_func_call_paren              = remove
  nl_func_call_paren_empty        = remove
  nl_func_decl_start_multi_line   = true
  nl_func_def_start_multi_line    = true
  nl_func_decl_args_multi_line    = true
  nl_func_def_args_multi_line     = true
  nl_func_decl_end                = remove
  nl_func_def_end                 = remove
  nl_func_decl_empty              = remove
  nl_func_def_empty               = remove
  nl_func_call_empty              = remove
  nl_func_call_start_multi_line   = true
  nl_func_call_args_multi_line    = true
  nl_fdef_brace                   = add
  nl_after_semicolon              = true
  nl_constr_colon                 = force
  nl_split_if_one_liner           = true
  nl_split_for_one_liner          = true
  nl_split_while_one_liner        = true
  nl_max                          = 3
  nl_max_blank_in_func            = 2
  nl_after_func_proto             = 1
  nl_after_func_proto_group       = 2
  nl_after_func_class_proto       = 1
  nl_after_func_class_proto_group = 2
  nl_before_func_body_def         = 1
  nl_before_func_body_proto       = 1
  nl_after_func_body              = 3
  nl_after_func_body_class        = 3
  nl_after_func_body_one_liner    = 1
  nl_after_multiline_comment      = true
  nl_after_struct                 = 3
  nl_before_class                 = 3
  nl_after_class                  = 3
  nl_before_access_spec           = 2
  nl_after_access_spec            = 1
  nl_after_try_catch_finally      = 1
  eat_blanks_after_open_brace     = true
  eat_blanks_before_close_brace   = true
  nl_remove_extra_newlines        = 1
  nl_after_return                 = true
  pos_constr_comma                = lead_break
  pos_constr_colon                = lead_force
  code_width                      = 160
  ls_func_split_full              = true
  ls_code_width                   = true
  align_left_shift                = false
  cmt_convert_tab_to_spaces       = true
  mod_full_brace_for              = remove
  mod_full_brace_if               = remove
  mod_full_brace_if_chain         = true
  mod_full_brace_while            = remove
  mod_paren_on_return             = remove
  mod_remove_extra_semicolon      = true
  mod_remove_empty_return         = true
  align_func_params               = true
  align_func_params_thresh        = 140
  sp_inside_type_brace_init_lst   = remove
  nl_constr_init_args             = add
  