// File: ambersun1234[P]AVL_Tree/./googletest/googletest/src/gtest.cc
// Function: testing::internal::UnitTestImpl::ListTestsMatchingFilter()
void UnitTestImpl::ListTestsMatchingFilter() {
  // Print at most this many characters for each type/value parameter.
  const int kMaxParamLength = 250;

  for (size_t i = 0; i < test_cases_.size(); i++) {
    const TestCase* const test_case = test_cases_[i];
    bool printed_test_case_name = false;

    for (size_t j = 0; j < test_case->test_info_list().size(); j++) {
      const TestInfo* const test_info =
          test_case->test_info_list()[j];
      if (test_info->matches_filter_) {
        if (!printed_test_case_name) {
          printed_test_case_name = true;
          printf("%s.", test_case->name());
          if (test_case->type_param() != NULL) {
            printf("  # %s = ", kTypeParamLabel);
            // We print the type parameter on a single line to make
            // the output easy to parse by a program.
            PrintOnOneLine(test_case->type_param(), kMaxParamLength);
          }
          printf("\n");
        }
        printf("  %s", test_info->name());
        if (test_info->value_param() != NULL) {
          printf("  # %s = ", kValueParamLabel);
          // We print the value parameter on a single line to make the
          // output easy to parse by a program.
          PrintOnOneLine(test_info->value_param(), kMaxParamLength);
        }
        printf("\n");
      }
    }
  }
  fflush(stdout);
  const std::string& output_format = UnitTestOptions::GetOutputFormat();
  if (output_format == "xml" || output_format == "json") {
    FILE* fileout = OpenFileForWriting(
        UnitTestOptions::GetAbsolutePathToOutputFile().c_str());
    std::stringstream stream;
    if (output_format == "xml") {
      XmlUnitTestResultPrinter(
          UnitTestOptions::GetAbsolutePathToOutputFile().c_str())
          .PrintXmlTestsList(&stream, test_cases_);
    } else if (output_format == "json") {
      JsonUnitTestResultPrinter(
          UnitTestOptions::GetAbsolutePathToOutputFile().c_str())
          .PrintJsonTestList(&stream, test_cases_);
    }
    fprintf(fileout, "%s", StringStreamToString(&stream).c_str());
    fclose(fileout);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x370, %rsp            # imm = 0x370
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x300(%rbp)
movl $0xfa, -0xc(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x300(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0x308(%rbp)
addq $0xb8, %rdi
callq 0x37e80
movq %rax, %rcx
movq -0x308(%rbp), %rax
cmpq %rcx, %rax
jae 0x2cd54
movq -0x300(%rbp), %rdi
addq $0xb8, %rdi
movq -0x18(%rbp), %rsi
callq 0x3e230
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movb $0x0, -0x21(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x310(%rbp)
movq -0x20(%rbp), %rdi
callq 0x3a620
movq %rax, %rdi
callq 0x3b360
movq %rax, %rcx
movq -0x310(%rbp), %rax
cmpq %rcx, %rax
jae 0x2cd41
movq -0x20(%rbp), %rdi
callq 0x3a620
movq %rax, %rdi
movq -0x30(%rbp), %rsi
callq 0x3a640
movq (%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
testb $0x1, 0x82(%rax)
je 0x2cd2e
testb $0x1, -0x21(%rbp)
jne 0x2cccc
movb $0x1, -0x21(%rbp)
movq -0x20(%rbp), %rdi
callq 0x3b990
movq %rax, %rsi
leaq 0x2c3dd(%rip), %rdi     # 0x5905a
movb $0x0, %al
callq 0x9090
movq -0x20(%rbp), %rdi
callq 0x3b9b0
cmpq $0x0, %rax
je 0x2ccbe
leaq 0x2c3c4(%rip), %rdi     # 0x5905e
leaq 0x2a4e1(%rip), %rsi     # 0x57182
movb $0x0, %al
callq 0x9090
movq -0x20(%rbp), %rdi
callq 0x3b9b0
movq %rax, %rdi
movl $0xfa, %esi
callq 0x2d640
leaq 0x2bcc6(%rip), %rdi     # 0x5898b
movb $0x0, %al
callq 0x9090
movq -0x38(%rbp), %rdi
callq 0x3a660
movq %rax, %rsi
leaq 0x2c389(%rip), %rdi     # 0x59068
movb $0x0, %al
callq 0x9090
movq -0x38(%rbp), %rdi
callq 0x3c250
cmpq $0x0, %rax
je 0x2cd20
leaq 0x2c362(%rip), %rdi     # 0x5905e
leaq 0x2a4e5(%rip), %rsi     # 0x571e8
movb $0x0, %al
callq 0x9090
movq -0x38(%rbp), %rdi
callq 0x3c250
movq %rax, %rdi
movl $0xfa, %esi
callq 0x2d640
leaq 0x2bc64(%rip), %rdi     # 0x5898b
movb $0x0, %al
callq 0x9090
jmp 0x2cd30
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x2cc04
jmp 0x2cd43
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x2cba9
movq 0x4f23d(%rip), %rax     # 0x7bf98
movq (%rax), %rdi
callq 0x97f0
leaq -0x60(%rbp), %rdi
movq %rdi, -0x320(%rbp)
callq 0x16a20
movq -0x320(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
leaq 0x2c079(%rip), %rsi     # 0x58e02
callq 0xfeb0
movb %al, -0x311(%rbp)
jmp 0x2cd96
movb -0x311(%rbp), %al
testb $0x1, %al
jne 0x2cdc9
jmp 0x2cda2
movq -0x40(%rbp), %rdi
leaq 0x2c059(%rip), %rsi     # 0x58e06
callq 0xfeb0
movb %al, -0x321(%rbp)
jmp 0x2cdba
movb -0x321(%rbp), %al
testb $0x1, %al
jne 0x2cdc9
jmp 0x2d11e
leaq -0xb8(%rbp), %rdi
callq 0x16b50
jmp 0x2cdd7
leaq -0xb8(%rbp), %rdi
callq 0x9230
movq %rax, -0x338(%rbp)
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x330(%rbp)
callq 0x9c50
movq -0x338(%rbp), %rsi
movq -0x330(%rbp), %rdx
leaq -0x98(%rbp), %rdi
callq 0xf1d0
jmp 0x2ce19
leaq -0x98(%rbp), %rdi
callq 0x22d00
movq %rax, -0x340(%rbp)
jmp 0x2ce2e
leaq -0x98(%rbp), %rdi
callq 0x9db8
leaq -0xb9(%rbp), %rdi
callq 0x96d0
leaq -0xb8(%rbp), %rdi
callq 0x9db8
movq -0x340(%rbp), %rax
movq %rax, -0x78(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x9420
jmp 0x2ce6b
movq -0x40(%rbp), %rdi
leaq 0x2bf8c(%rip), %rsi     # 0x58e02
callq 0xfeb0
movb %al, -0x341(%rbp)
jmp 0x2ce83
movb -0x341(%rbp), %al
testb $0x1, %al
jne 0x2ce92
jmp 0x2cfba
leaq -0x290(%rbp), %rdi
callq 0x16b50
jmp 0x2cea0
leaq -0x290(%rbp), %rdi
callq 0x9230
movq %rax, %rsi
leaq -0x270(%rbp), %rdi
callq 0x22ad0
jmp 0x2cebd
xorl %eax, %eax
leaq -0x248(%rbp), %rcx
cmpq $0x0, %rcx
movq %rax, -0x350(%rbp)
je 0x2cee5
leaq -0x248(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x350(%rbp)
movq -0x300(%rbp), %rsi
movq -0x350(%rbp), %rdi
addq $0xb8, %rsi
callq 0x23a10
jmp 0x2cf01
leaq -0x270(%rbp), %rdi
callq 0x3e290
leaq -0x290(%rbp), %rdi
callq 0x9db8
jmp 0x2d0a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x2d130
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x2cf55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x9db8
leaq -0xb9(%rbp), %rdi
callq 0x96d0
leaq -0xb8(%rbp), %rdi
callq 0x9db8
jmp 0x2d130
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x2d110
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x2cfa9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x3e290
leaq -0x290(%rbp), %rdi
callq 0x9db8
jmp 0x2d110
movq -0x40(%rbp), %rdi
leaq 0x2be41(%rip), %rsi     # 0x58e06
callq 0xfeb0
movb %al, -0x351(%rbp)
jmp 0x2cfd2
movb -0x351(%rbp), %al
testb $0x1, %al
jne 0x2cfe1
jmp 0x2d09e
leaq -0x2d8(%rbp), %rdi
callq 0x16b50
jmp 0x2cfef
leaq -0x2d8(%rbp), %rdi
callq 0x9230
movq %rax, %rsi
leaq -0x2b8(%rbp), %rdi
callq 0x26a70
jmp 0x2d00c
xorl %eax, %eax
leaq -0x248(%rbp), %rcx
cmpq $0x0, %rcx
movq %rax, -0x360(%rbp)
je 0x2d034
leaq -0x248(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x360(%rbp)
movq -0x300(%rbp), %rsi
movq -0x360(%rbp), %rdi
addq $0xb8, %rsi
callq 0x2a0b0
jmp 0x2d050
leaq -0x2b8(%rbp), %rdi
callq 0x3e2d0
leaq -0x2d8(%rbp), %rdi
callq 0x9db8
jmp 0x2d09e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x2d090
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x2b8(%rbp), %rdi
callq 0x3e2d0
leaq -0x2d8(%rbp), %rdi
callq 0x9db8
jmp 0x2d110
jmp 0x2d0a0
movq -0x78(%rbp), %rax
movq %rax, -0x368(%rbp)
leaq -0x2f8(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x19470
jmp 0x2d0c0
leaq -0x2f8(%rbp), %rdi
movq %rdi, -0x370(%rbp)
callq 0x9230
movq -0x368(%rbp), %rdi
movq %rax, %rdx
leaq 0x2bf86(%rip), %rsi     # 0x5906a
xorl %eax, %eax
callq 0x9a10
movq -0x370(%rbp), %rdi
callq 0x9db8
movq -0x78(%rbp), %rdi
callq 0x95f0
jmp 0x2d102
leaq -0x248(%rbp), %rdi
callq 0x9480
jmp 0x2d11e
leaq -0x248(%rbp), %rdi
callq 0x9480
jmp 0x2d130
leaq -0x60(%rbp), %rdi
callq 0x9db8
addq $0x370, %rsp            # imm = 0x370
popq %rbp
retq
leaq -0x60(%rbp), %rdi
callq 0x9db8
movq -0x68(%rbp), %rdi
callq 0x9c40
nopw %cs:(%rax,%rax)