// File: /workspace/github_cpp_makefile_star2_O3/halfflat[P]tinyopt/test/googletest/googletest/src/gtest.cc
// Function: testing::internal::JsonUnitTestResultPrinter::PrintJsonUnitTest(std::ostream*, testing::UnitTest const&)
void JsonUnitTestResultPrinter::PrintJsonUnitTest(std::ostream* stream,
                                                  const UnitTest& unit_test) {
  const std::string kTestsuites = "testsuites";
  const std::string kIndent = Indent(2);
  *stream << "{\n";

  OutputJsonKey(stream, kTestsuites, "tests", unit_test.reportable_test_count(),
                kIndent);
  OutputJsonKey(stream, kTestsuites, "failures", unit_test.failed_test_count(),
                kIndent);
  OutputJsonKey(stream, kTestsuites, "disabled",
                unit_test.reportable_disabled_test_count(), kIndent);
  OutputJsonKey(stream, kTestsuites, "errors", 0, kIndent);
  if (GTEST_FLAG_GET(shuffle)) {
    OutputJsonKey(stream, kTestsuites, "random_seed", unit_test.random_seed(),
                  kIndent);
  }
  OutputJsonKey(stream, kTestsuites, "timestamp",
                FormatEpochTimeInMillisAsRFC3339(unit_test.start_timestamp()),
                kIndent);
  OutputJsonKey(stream, kTestsuites, "time",
                FormatTimeInMillisAsDuration(unit_test.elapsed_time()), kIndent,
                false);

  *stream << TestPropertiesAsJson(unit_test.ad_hoc_test_result(), kIndent)
          << ",\n";

  OutputJsonKey(stream, kTestsuites, "name", "AllTests", kIndent);
  *stream << kIndent << "\"" << kTestsuites << "\": [\n";

  bool comma = false;
  for (int i = 0; i < unit_test.total_test_suite_count(); ++i) {
    if (unit_test.GetTestSuite(i)->reportable_test_count() > 0) {
      if (comma) {
        *stream << ",\n";
      } else {
        comma = true;
      }
      PrintJsonTestSuite(stream, *unit_test.GetTestSuite(i));
    }
  }

  // If there was a test failure outside of one of the test suites (like in a
  // test environment) include that in the output.
  if (unit_test.ad_hoc_test_result().Failed()) {
    if (comma) {
      *stream << ",\n";
    }
    OutputJsonTestSuiteForTestResult(stream, unit_test.ad_hoc_test_result());
  }

  *stream << "\n"
          << kIndent << "]\n"
          << "}\n";
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x19fad(%rip), %rsi     # 0x72555
leaq 0x19fb0(%rip), %rdx     # 0x7255f
leaq 0x68(%rsp), %rdi
callq 0x1558a
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x28(%rsp), %rdi
movl $0x2, %esi
movl $0x20, %edx
callq 0xd630
leaq 0x1a081(%rip), %rsi     # 0x7265e
movl $0x2, %edx
movq %rbx, %rdi
callq 0xd600
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x18fce(%rip), %rsi     # 0x715c8
leaq 0x18fcc(%rip), %rdx     # 0x715cd
leaq 0x8(%rsp), %rdi
callq 0x1558a
movq 0x40(%r14), %rdi
callq 0x4c87e
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl %eax, %ecx
movl $0x1, %r9d
callq 0x5901a
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5864a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1a8a2(%rip), %rsi     # 0x72efb
leaq 0x1a8a3(%rip), %rdx     # 0x72f03
callq 0x1558a
movq 0x40(%r14), %rdi
callq 0x4c6a0
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl %eax, %ecx
movl $0x1, %r9d
callq 0x5901a
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x586a4
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x19da7(%rip), %rsi     # 0x7245a
leaq 0x19da8(%rip), %rdx     # 0x72462
callq 0x1558a
movq 0x40(%r14), %rdi
callq 0x4c740
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl %eax, %ecx
movl $0x1, %r9d
callq 0x5901a
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x586fe
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x19d5e(%rip), %rsi     # 0x7246b
leaq 0x19d5d(%rip), %rdx     # 0x72471
callq 0x1558a
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x5901a
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5874f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
cmpb $0x1, 0x3c1d8(%rip)     # 0x9492e
jne 0x587b1
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x18ed7(%rip), %rsi     # 0x7163e
leaq 0x18edb(%rip), %rdx     # 0x71649
callq 0x1558a
movq 0x40(%r14), %rax
movl 0x21c(%rax), %ecx
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x5901a
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x587b1
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x19cb2(%rip), %rsi     # 0x72472
leaq 0x19cb4(%rip), %rdx     # 0x7247b
callq 0x1558a
movq 0x40(%r14), %rax
movq 0x228(%rax), %rsi
leaq 0x48(%rsp), %rdi
callq 0x5a1e8
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x48(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x58e12
leaq 0x58(%rsp), %rbp
movq -0x10(%rbp), %rdi
cmpq %rbp, %rdi
je 0x5881e
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x58835
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x18dea(%rip), %rsi     # 0x7162e
leaq 0x18de7(%rip), %rdx     # 0x71632
callq 0x1558a
movq 0x40(%r14), %rax
movq 0x230(%rax), %rsi
leaq 0x48(%rsp), %rdi
callq 0x5a14a
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x48(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
xorl %r9d, %r9d
callq 0x58e12
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x5889b
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x588b2
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
movl $0x178, %esi            # imm = 0x178
addq 0x40(%r14), %rsi
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x5ad4a
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
leaq 0x19d90(%rip), %rsi     # 0x72673
movl $0x2, %edx
movq %rax, %rdi
callq 0xd600
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x58907
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x19b91(%rip), %rsi     # 0x724a7
leaq 0x19b8e(%rip), %rdx     # 0x724ab
callq 0x1558a
leaq 0x48(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x19c57(%rip), %rsi     # 0x72588
leaq 0x19c58(%rip), %rdx     # 0x72590
callq 0x1558a
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x48(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x58e12
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x58976
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5898d
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
movq %rax, %r15
leaq 0x19cc7(%rip), %rsi     # 0x72670
movl $0x1, %edx
movq %rax, %rdi
callq 0xd600
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
movq %r15, %rdi
callq 0xd600
leaq 0x19c60(%rip), %rsi     # 0x7262f
movl $0x5, %edx
movq %rax, %rdi
callq 0xd600
movq 0x40(%r14), %rdi
movq 0xb8(%rdi), %rax
movq 0xc0(%rdi), %rcx
subq %rax, %rcx
shrq $0x3, %rcx
xorl %ebp, %ebp
testl %ecx, %ecx
jle 0x58ab1
xorl %r12d, %r12d
xorl %r13d, %r13d
movq (%rax,%r12,8), %rcx
movq 0x30(%rcx), %rax
movq 0x38(%rcx), %rcx
cmpq %rcx, %rax
je 0x58a80
xorl %edx, %edx
movq (%rax), %rsi
movzbl 0x83(%rsi), %r8d
xorl $0x1, %r8d
cmpb $0x0, 0x82(%rsi)
cmovel %ebp, %r8d
addl %r8d, %edx
addq $0x8, %rax
cmpq %rcx, %rax
jne 0x58a18
testl %edx, %edx
je 0x58a80
movb $0x1, %r15b
testb $0x1, %r13b
je 0x58a66
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x19c19(%rip), %rsi     # 0x72673
callq 0xd600
movq 0x40(%r14), %rdi
movl %r13d, %r15d
movq 0xb8(%rdi), %rax
movq (%rax,%r12,8), %rsi
movq %rbx, %rdi
callq 0x5bc36
movq 0x40(%r14), %rdi
movl %r15d, %r13d
incq %r12
movq 0xb8(%rdi), %rax
movq 0xc0(%rdi), %rcx
subq %rax, %rcx
shrq $0x3, %rcx
movslq %ecx, %rcx
cmpq %rcx, %r12
jl 0x58a05
movl %r13d, %ebp
leaq 0x78(%rsp), %r12
leaq 0x38(%rsp), %r13
addq $0x178, %rdi            # imm = 0x178
callq 0x50002
testb %al, %al
je 0x58aec
testb $0x1, %bpl
je 0x58adb
leaq 0x19ba5(%rip), %rsi     # 0x72673
movl $0x2, %edx
movq %rbx, %rdi
callq 0xd600
movl $0x178, %esi            # imm = 0x178
addq 0x40(%r14), %rsi
movq %rbx, %rdi
callq 0x5920c
leaq 0x165d1(%rip), %rsi     # 0x6f0c4
movl $0x1, %edx
movq %rbx, %rdi
callq 0xd600
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
movq %rax, %rbx
leaq 0x19b23(%rip), %rsi     # 0x7263f
movl $0x2, %edx
movq %rax, %rdi
callq 0xd600
leaq 0x19b5a(%rip), %rsi     # 0x7268a
movl $0x2, %edx
movq %rbx, %rdi
callq 0xd600
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x58b54
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x58b6b
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xd530
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x58bd5
jmp 0x58bf5
jmp 0x58b89
jmp 0x58bd5
jmp 0x58bf5
jmp 0x58bf5
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
jne 0x58bad
jmp 0x58bd8
jmp 0x58bd5
jmp 0x58bf5
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x58bd8
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x58bd8
jmp 0x58bd5
jmp 0x58bf5
jmp 0x58bd5
jmp 0x58bf5
jmp 0x58bd5
jmp 0x58bf5
jmp 0x58bf5
jmp 0x58bd5
jmp 0x58bf5
movq %rax, %rbx
jmp 0x58c14
jmp 0x58bd5
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x58bf8
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x58bf8
jmp 0x58bf5
jmp 0x58bf5
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x58c14
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x58c30
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rbx, %rdi
callq 0xda70