// File: /workspace/github_cpp_makefile_star2_O3/ambersun1234[P]AVL_Tree/./googletest/googletest/src/gtest.cc
// Function: testing::internal::JsonUnitTestResultPrinter::PrintJsonTestCase(std::ostream*, testing::TestCase const&)
void JsonUnitTestResultPrinter::PrintJsonTestCase(std::ostream* stream,
                                                  const TestCase& test_case) {
  const std::string kTestsuite = "testsuite";
  const std::string kIndent = Indent(6);

  *stream << Indent(4) << "{\n";
  OutputJsonKey(stream, kTestsuite, "name", test_case.name(), kIndent);
  OutputJsonKey(stream, kTestsuite, "tests", test_case.reportable_test_count(),
                kIndent);
  if (!GTEST_FLAG(list_tests)) {
    OutputJsonKey(stream, kTestsuite, "failures", test_case.failed_test_count(),
                  kIndent);
    OutputJsonKey(stream, kTestsuite, "disabled",
                  test_case.reportable_disabled_test_count(), kIndent);
    OutputJsonKey(stream, kTestsuite, "errors", 0, kIndent);
    OutputJsonKey(stream, kTestsuite, "time",
                  FormatTimeInMillisAsDuration(test_case.elapsed_time()),
                  kIndent, false);
    *stream << TestPropertiesAsJson(test_case.ad_hoc_test_result(), kIndent)
            << ",\n";
  }

  *stream << kIndent << "\"" << kTestsuite << "\": [\n";

  bool comma = false;
  for (int i = 0; i < test_case.total_test_count(); ++i) {
    if (test_case.GetTestInfo(i)->is_reportable()) {
      if (comma) {
        *stream << ",\n";
      } else {
        comma = true;
      }
      OutputJsonTestInfo(stream, test_case.name(), *test_case.GetTestInfo(i));
    }
  }
  *stream << "\n" << kIndent << "]\n" << Indent(4) << "}";
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x58(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x186f9(%rip), %rsi     # 0x36632
leaq 0x186fb(%rip), %rdx     # 0x3663b
leaq 0x48(%rsp), %rdi
callq 0x30548
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x28(%rsp), %rdi
movl $0x6, %esi
movl $0x20, %edx
callq 0x7590
leaq 0x10(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq %rsp, %rdi
movl $0x4, %esi
movl $0x20, %edx
callq 0x7590
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
leaq 0x18794(%rip), %rsi     # 0x3672e
movl $0x2, %edx
movq %rax, %rdi
callq 0x7560
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x1dfbd
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
movq %rsp, %rdi
movq %rbp, (%rdi)
leaq 0x18622(%rip), %rsi     # 0x365ec
leaq 0x1861f(%rip), %rdx     # 0x365f0
callq 0x30548
movq 0x8(%r14), %rsi
leaq 0x68(%rsp), %rdi
leaq 0x27(%rsp), %rdx
callq 0x2a3b0
leaq 0x48(%rsp), %rsi
movq %rsp, %rdx
leaq 0x68(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x1ccf8
leaq 0x78(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x1e024
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x7480
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x1e03a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
movq %rsp, %rdi
movq %rbp, (%rdi)
leaq 0x18380(%rip), %rsi     # 0x363c7
leaq 0x1837e(%rip), %rdx     # 0x363cc
callq 0x30548
movq 0x30(%r14), %rax
movq 0x38(%r14), %rdx
cmpq %rdx, %rax
je 0x1e08c
xorl %esi, %esi
xorl %ecx, %ecx
movq (%rax), %rdi
movzbl 0x83(%rdi), %r8d
xorl $0x1, %r8d
cmpb $0x0, 0x82(%rdi)
cmovel %esi, %r8d
addl %r8d, %ecx
addq $0x8, %rax
cmpq %rdx, %rax
jne 0x1e064
jmp 0x1e08e
xorl %ecx, %ecx
leaq 0x48(%rsp), %rsi
movq %rsp, %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x1cf00
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x1e0bf
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
cmpb $0x0, 0x2b6d3(%rip)     # 0x49799
jne 0x1e2ae
movq %rsp, %rdi
movq %rbp, (%rdi)
leaq 0x1907b(%rip), %rsi     # 0x37154
leaq 0x1907c(%rip), %rdx     # 0x3715c
callq 0x30548
movq %r14, %rdi
callq 0x10a32
leaq 0x48(%rsp), %rsi
movq %rsp, %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl %eax, %ecx
movl $0x1, %r9d
callq 0x1cf00
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x1e120
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
movq %rsp, %rdi
movq %rbp, (%rdi)
leaq 0x18513(%rip), %rsi     # 0x36640
leaq 0x18514(%rip), %rdx     # 0x36648
callq 0x30548
movq 0x30(%r14), %rax
movq 0x38(%r14), %rdx
xorl %ecx, %ecx
cmpq %rdx, %rax
je 0x1e171
movq (%rax), %rsi
cmpb $0x1, 0x82(%rsi)
movl $0x0, %edi
jne 0x1e169
testb $0x1, 0x83(%rsi)
jne 0x1e169
movzbl 0x81(%rsi), %edi
addl %edi, %ecx
addq $0x8, %rax
jmp 0x1e143
leaq 0x48(%rsp), %rsi
movq %rsp, %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x1cf00
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x1e1a2
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
movq %rsp, %rdi
movq %rbp, (%rdi)
leaq 0x1849a(%rip), %rsi     # 0x36649
leaq 0x18499(%rip), %rdx     # 0x3664f
callq 0x30548
leaq 0x48(%rsp), %rsi
movq %rsp, %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x1cf00
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x1e1ee
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
movq %rsp, %rdi
movq %rbp, (%rdi)
leaq 0x183e7(%rip), %rsi     # 0x365e2
leaq 0x183e4(%rip), %rdx     # 0x365e6
callq 0x30548
movq 0x78(%r14), %rsi
leaq 0x68(%rsp), %rdi
callq 0x1dc56
leaq 0x48(%rsp), %rsi
movq %rsp, %rdx
leaq 0x68(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
xorl %r9d, %r9d
callq 0x1ccf8
movq 0x68(%rsp), %rdi
cmpq %r15, %rdi
je 0x1e249
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x7480
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x1e25f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
leaq 0x80(%r14), %rsi
movq %rsp, %rdi
leaq 0x28(%rsp), %rdx
callq 0x1dcf4
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
leaq 0x184b8(%rip), %rsi     # 0x36743
movl $0x2, %edx
movq %rax, %rdi
callq 0x7560
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x1e2ae
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
movq %rax, %r15
leaq 0x18476(%rip), %rsi     # 0x36740
movl $0x1, %edx
movq %rax, %rdi
callq 0x7560
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq %r15, %rdi
callq 0x7560
leaq 0x18436(%rip), %rsi     # 0x36726
movl $0x5, %edx
movq %rax, %rdi
callq 0x7560
movq 0x30(%r14), %rax
movq 0x38(%r14), %rcx
movq %rcx, %rdx
subq %rax, %rdx
shrq $0x3, %rdx
testl %edx, %edx
jle 0x1e38f
xorl %r12d, %r12d
leaq 0x18426(%rip), %r15     # 0x36743
xorl %esi, %esi
movq 0x48(%r14), %rdx
movl (%rdx,%r12,4), %edx
movq (%rax,%rdx,8), %rdx
cmpb $0x1, 0x82(%rdx)
jne 0x1e37a
testb $0x1, 0x83(%rdx)
jne 0x1e37a
testb $0x1, %sil
je 0x1e363
movl $0x2, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x7560
movq 0x30(%r14), %rax
movq 0x48(%r14), %rcx
movl (%rcx,%r12,4), %ecx
movq (%rax,%rcx,8), %rdx
movq 0x8(%r14), %rsi
movq %rbx, %rdi
callq 0x1d0f2
movq 0x30(%r14), %rax
movq 0x38(%r14), %rcx
movb $0x1, %sil
incq %r12
movq %rcx, %rdx
subq %rax, %rdx
shrq $0x3, %rdx
movslq %edx, %rdx
cmpq %rdx, %r12
jl 0x1e31f
leaq 0x180a0(%rip), %rsi     # 0x36436
movl $0x1, %edx
movq %rbx, %rdi
callq 0x7560
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
movq %rax, %rbx
leaq 0x1839b(%rip), %rsi     # 0x3675a
movl $0x2, %edx
movq %rax, %rdi
callq 0x7560
movq %rsp, %rdi
movq %rbp, (%rdi)
movl $0x4, %esi
movl $0x20, %edx
callq 0x7590
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x7560
leaq 0x1835f(%rip), %rsi     # 0x36758
movl $0x1, %edx
movq %rax, %rdi
callq 0x7560
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x1e41c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x1e433
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1e44f
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x7480
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1e4d6
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r15, %rdi
jne 0x1e49b
jmp 0x1e4ba
jmp 0x1e4b7
jmp 0x1e4d6
jmp 0x1e4b7
jmp 0x1e4d6
jmp 0x1e4b7
jmp 0x1e4d6
jmp 0x1e4d6
jmp 0x1e4d6
jmp 0x1e4b7
jmp 0x1e4b7
jmp 0x1e4b7
jmp 0x1e4d6
movq %rax, %rbx
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1e4ba
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x7480
jmp 0x1e4ba
jmp 0x1e4b7
jmp 0x1e4d6
jmp 0x1e4d6
movq %rax, %rbx
jmp 0x1e4f0
jmp 0x1e4b7
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x1e4d9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x7480
jmp 0x1e4d9
jmp 0x1e4d6
jmp 0x1e4d6
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x1e4f0
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x7480
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1e50c
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x7480
movq %rbx, %rdi
callq 0x7960