// File: /workspace/github_cpp_makefile_star2_O1/ambersun1234[P]AVL_Tree/./googletest/googletest/src/gtest.cc
// Function: testing::internal::JsonUnitTestResultPrinter::OutputJsonTestInfo(std::ostream*, char const*, testing::TestInfo const&)
void JsonUnitTestResultPrinter::OutputJsonTestInfo(::std::ostream* stream,
                                                   const char* test_case_name,
                                                   const TestInfo& test_info) {
  const TestResult& result = *test_info.result();
  const std::string kTestcase = "testcase";
  const std::string kIndent = Indent(10);

  *stream << Indent(8) << "{\n";
  OutputJsonKey(stream, kTestcase, "name", test_info.name(), kIndent);

  if (test_info.value_param() != NULL) {
    OutputJsonKey(stream, kTestcase, "value_param",
                  test_info.value_param(), kIndent);
  }
  if (test_info.type_param() != NULL) {
    OutputJsonKey(stream, kTestcase, "type_param", test_info.type_param(),
                  kIndent);
  }
  if (GTEST_FLAG(list_tests)) {
    OutputJsonKey(stream, kTestcase, "file", test_info.file(), kIndent);
    OutputJsonKey(stream, kTestcase, "line", test_info.line(), kIndent, false);
    *stream << "\n" << Indent(8) << "}";
    return;
  }

  OutputJsonKey(stream, kTestcase, "status",
                test_info.should_run() ? "RUN" : "NOTRUN", kIndent);
  OutputJsonKey(stream, kTestcase, "time",
                FormatTimeInMillisAsDuration(result.elapsed_time()), kIndent);
  OutputJsonKey(stream, kTestcase, "classname", test_case_name, kIndent, false);
  *stream << TestPropertiesAsJson(result, kIndent);

  int failures = 0;
  for (int i = 0; i < result.total_part_count(); ++i) {
    const TestPartResult& part = result.GetTestPartResult(i);
    if (part.failed()) {
      *stream << ",\n";
      if (++failures == 1) {
        *stream << kIndent << "\"" << "failures" << "\": [\n";
      }
      const std::string location =
          internal::FormatCompilerIndependentFileLocation(part.file_name(),
                                                          part.line_number());
      const std::string message = EscapeJson(location + "\n" + part.message());
      *stream << kIndent << "  {\n"
              << kIndent << "    \"failure\": \"" << message << "\",\n"
              << kIndent << "    \"type\": \"\"\n"
              << kIndent << "  }";
    }
  }

  if (failures > 0)
    *stream << "\n" << kIndent << "]";
  *stream << "\n" << Indent(8) << "}";
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xd8, %rsp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, 0x28(%rsp)
leaq 0x80(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x18f53(%rip), %rsi     # 0x36575
leaq 0x18f54(%rip), %rdx     # 0x3657d
leaq 0x70(%rsp), %rdi
callq 0x30c22
leaq 0x60(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x50(%rsp), %rdi
movl $0xa, %esi
movl $0x20, %edx
callq 0x7590
leaq 0x18(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x8(%rsp), %rdi
movl $0x8, %esi
movl $0x20, %edx
callq 0x7590
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x28(%rsp), %rdi
callq 0x7560
leaq 0x19076(%rip), %rsi     # 0x366fe
movl $0x2, %edx
movq %rax, %rdi
callq 0x7560
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1d6ac
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x18f01(%rip), %rsi     # 0x365bc
leaq 0x18efe(%rip), %rdx     # 0x365c0
callq 0x30c22
movq 0x20(%r14), %rsi
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x2a9f6
leaq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq 0x28(%rsp), %rdi
movl $0x1, %r9d
callq 0x1d1f8
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1d71c
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1d733
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x48(%r14), %rax
testq %rax, %rax
je 0x1d7de
cmpq $0x0, (%rax)
je 0x1d7de
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x18e25(%rip), %rsi     # 0x3657e
leaq 0x18e29(%rip), %rdx     # 0x36589
callq 0x30c22
movq 0x48(%r14), %rax
testq %rax, %rax
je 0x1d773
movq (%rax), %rsi
jmp 0x1d775
xorl %esi, %esi
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x2a9f6
leaq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq 0x28(%rsp), %rdi
movl $0x1, %r9d
callq 0x1d1f8
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1d7c7
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1d7de
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x40(%r14), %rax
testq %rax, %rax
je 0x1d889
cmpq $0x0, (%rax)
je 0x1d889
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x18d86(%rip), %rsi     # 0x3658a
leaq 0x18d89(%rip), %rdx     # 0x36594
callq 0x30c22
movq 0x40(%r14), %rax
testq %rax, %rax
je 0x1d81e
movq (%rax), %rsi
jmp 0x1d820
xorl %esi, %esi
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x2a9f6
leaq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq 0x28(%rsp), %rdi
movl $0x1, %r9d
callq 0x1d1f8
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1d872
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1d889
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
cmpb $0x1, 0x2bf09(%rip)     # 0x49799
jne 0x1d9ca
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x18cf0(%rip), %rsi     # 0x36595
leaq 0x18ced(%rip), %rdx     # 0x36599
callq 0x30c22
movq 0x50(%r14), %rsi
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x2a9f6
leaq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq 0x28(%rsp), %rdi
movl $0x1, %r9d
callq 0x1d1f8
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1d907
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1d91e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x18c6d(%rip), %rsi     # 0x3659a
leaq 0x18c6a(%rip), %rdx     # 0x3659e
callq 0x30c22
movl 0x70(%r14), %ecx
leaq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x50(%rsp), %r8
movq 0x28(%rsp), %rdi
xorl %r9d, %r9d
callq 0x1d400
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1d970
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x18a8f(%rip), %rsi     # 0x36406
movl $0x1, %edx
movq 0x28(%rsp), %rdi
callq 0x7560
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
movl $0x8, %esi
movl $0x20, %edx
callq 0x7590
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x28(%rsp), %rdi
callq 0x7560
leaq 0x18d70(%rip), %rsi     # 0x36728
movl $0x1, %edx
movq %rax, %rdi
callq 0x7560
jmp 0x1df68
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x18bcb(%rip), %rsi     # 0x365a4
leaq 0x18bca(%rip), %rdx     # 0x365aa
callq 0x30c22
movzbl 0x80(%r14), %eax
leaq 0x18cfe(%rip), %rcx     # 0x366f2
leaq 0x18cf4(%rip), %rsi     # 0x366ef
testq %rax, %rax
cmovneq %rcx, %rsi
leaq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rcx
movq %rcx, (%rdi)
xorq $0x1, %rax
leaq (%rax,%rax,2), %rax
leaq (%rsi,%rax), %rdx
addq $0x3, %rdx
callq 0x30c22
leaq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq 0x28(%rsp), %rdi
movl $0x1, %r9d
callq 0x1d1f8
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1da64
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1da7b
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x18b28(%rip), %rsi     # 0x365b2
leaq 0x18b25(%rip), %rdx     # 0x365b6
callq 0x30c22
movq 0x100(%r14), %rsi
leaq 0x30(%rsp), %rdi
callq 0x1e156
leaq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq 0x28(%rsp), %rdi
movl $0x1, %r9d
callq 0x1d1f8
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1dae7
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1dafe
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x18aaa(%rip), %rsi     # 0x365b7
leaq 0x18aac(%rip), %rdx     # 0x365c0
callq 0x30c22
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
movq %r15, %rsi
callq 0x2a9f6
leaq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq 0x28(%rsp), %rdi
xorl %r9d, %r9d
callq 0x1d1f8
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1db6b
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x90(%r14), %rax
movq %rax, 0xb0(%rsp)
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1db91
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x8(%rsp), %rdi
leaq 0x50(%rsp), %rdx
movq 0xb0(%rsp), %rsi
callq 0x1e1f8
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x28(%rsp), %rdi
callq 0x7560
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1dbd3
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0xd0(%r14), %rax
subq 0xc8(%r14), %rax
shrq $0x4, %rax
imull $0xb6db6db7, %eax, %eax # imm = 0xB6DB6DB7
testl %eax, %eax
jle 0x1df06
xorl %ebp, %ebp
leaq 0xb8(%rsp), %r12
xorl %r15d, %r15d
movq 0xb0(%rsp), %rdi
movl %ebp, %esi
callq 0x14a00
movq %rax, %r13
cmpl $0x0, (%rax)
je 0x1de9c
movl $0x2, %edx
movq 0x28(%rsp), %rdi
leaq 0x18ae7(%rip), %rsi     # 0x36713
callq 0x7560
testl %r15d, %r15d
jne 0x1dc89
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq 0x28(%rsp), %rdi
callq 0x7560
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x18ab4(%rip), %rsi     # 0x36710
callq 0x7560
movl $0x8, %edx
movq %rbx, %rdi
leaq 0x194b4(%rip), %rsi     # 0x37124
callq 0x7560
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x18a72(%rip), %rsi     # 0x366f6
callq 0x7560
movq 0x10(%r13), %rsi
testq %rsi, %rsi
je 0x1dc96
movq 0x8(%r13), %rsi
movl 0x28(%r13), %edx
leaq 0x8(%rsp), %rdi
callq 0x1af17
leaq 0xc8(%rsp), %rax
movq %rax, 0xb8(%rsp)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0xc0bc
movq %r12, %rdi
leaq 0x18733(%rip), %rsi     # 0x36406
callq 0x7a30
movq 0x50(%r13), %rsi
movq %r12, %rdi
callq 0x7a30
leaq 0xa0(%rsp), %rsi
movq %rsi, 0x90(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x1dd18
movq %rdx, 0x90(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa0(%rsp)
jmp 0x1dd1e
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x98(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x1d014
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x1dd70
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x1dd95
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq 0x28(%rsp), %rdi
callq 0x7560
movq %rax, %rbx
movl $0x4, %edx
movq %rax, %rdi
leaq 0x18941(%rip), %rsi     # 0x366fc
callq 0x7560
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
movq %rax, %rbx
movl $0x10, %edx
movq %rax, %rdi
leaq 0x1891d(%rip), %rsi     # 0x36701
callq 0x7560
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
movq %rax, %rbx
movl $0x3, %edx
movq %rax, %rdi
leaq 0x18905(%rip), %rsi     # 0x36712
callq 0x7560
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
movq %rax, %rbx
movl $0xf, %edx
movq %rax, %rdi
leaq 0x188e0(%rip), %rsi     # 0x36716
callq 0x7560
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
movl $0x3, %edx
movq %rax, %rdi
leaq 0x188ca(%rip), %rsi     # 0x36726
callq 0x7560
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1de7d
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x1de99
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
incl %r15d
movq 0xd0(%r14), %rax
subq 0xc8(%r14), %rax
incl %ebp
shrq $0x4, %rax
imull $0xb6db6db7, %eax, %eax # imm = 0xB6DB6DB7
cmpl %eax, %ebp
jl 0x1dc00
testl %r15d, %r15d
leaq 0x18(%rsp), %rbp
jle 0x1df06
leaq 0x18537(%rip), %rsi     # 0x36406
movl $0x1, %edx
movq 0x28(%rsp), %rdi
callq 0x7560
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq 0x28(%rsp), %rdi
callq 0x7560
leaq 0x19053(%rip), %rsi     # 0x36f4c
movl $0x1, %edx
movq %rax, %rdi
callq 0x7560
leaq 0x184f9(%rip), %rsi     # 0x36406
movl $0x1, %edx
movq 0x28(%rsp), %rdi
callq 0x7560
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
movl $0x8, %esi
movl $0x20, %edx
callq 0x7590
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x28(%rsp), %rdi
leaq 0x80(%rsp), %r12
leaq 0x60(%rsp), %r13
callq 0x7560
leaq 0x187cd(%rip), %rsi     # 0x36728
movl $0x1, %edx
movq %rax, %rdi
callq 0x7560
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1df7f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x1df96
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x1dfb0
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x7480
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1dff3
jmp 0x1e058
jmp 0x1dff3
jmp 0x1e046
jmp 0x1e058
jmp 0x1e046
jmp 0x1e0d0
jmp 0x1e058
jmp 0x1e046
jmp 0x1dff3
jmp 0x1e058
jmp 0x1e046
jmp 0x1e046
jmp 0x1dff3
jmp 0x1e046
jmp 0x1e058
jmp 0x1e058
jmp 0x1e046
jmp 0x1e046
jmp 0x1dff3
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
jmp 0x1e02e
jmp 0x1e058
jmp 0x1e058
jmp 0x1e046
jmp 0x1e046
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
jne 0x1e103
jmp 0x1e110
jmp 0x1e058
movq %rax, %rbx
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1e05b
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
jmp 0x1e05b
jmp 0x1e058
jmp 0x1e046
movq %rax, %rbx
jmp 0x1e11d
movq %rax, %rbx
jmp 0x1e134
jmp 0x1e0d0
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1e11d
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
jmp 0x1e11d
jmp 0x1e07d
movq %rax, %rbx
jmp 0x1e0aa
movq %rax, %rbx
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x1e0aa
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x1e0f4
movq 0xc8(%rsp), %rsi
jmp 0x1e0ec
jmp 0x1e0d0
movq %rax, %rbx
jmp 0x1e0f4
movq %rax, %rbx
jmp 0x1e110
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1e0f4
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x1e110
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x80(%rsp), %r12
leaq 0x60(%rsp), %r13
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x1e134
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x1e14e
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x7480
movq %rbx, %rdi
callq 0x7960