From 90b163e7fab520b2ff65e8af0fbea9ab03c2e7f3 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Sun, 20 Jun 2021 21:57:56 +0600 Subject: [PATCH 01/41] Create gtest.yml --- .github/workflows/gtest.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/gtest.yml diff --git a/.github/workflows/gtest.yml b/.github/workflows/gtest.yml new file mode 100644 index 0000000..a9d1845 --- /dev/null +++ b/.github/workflows/gtest.yml @@ -0,0 +1,22 @@ +name: GTest +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Install gtest manually + run: sudo apt-get install libgtest-dev && cd /usr/src/gtest && sudo cmake CMakeLists.txt && sudo make && sudo cp *.a /usr/lib && sudo ln -s /usr/lib/libgtest.a /usr/local/lib/libgtest.a && sudo ln -s /usr/lib/libgtest_main.a /usr/local/lib/libgtest_main.a + - uses: actions/checkout@v1 + - name: configure + run: mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. + - name: make + run: cd build && make + - name: Run Test + run: ./bin/unit_tests +# run: /home/runner/work/github_actions_gtest_example/github_actions_gtest_example/build/test/github_actions_gtest_example.test From e8ae08973834a148355ea448c14df69dce2444e0 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Sun, 20 Jun 2021 22:01:00 +0600 Subject: [PATCH 02/41] Update gtest.yml --- .github/workflows/gtest.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gtest.yml b/.github/workflows/gtest.yml index a9d1845..c02b0e1 100644 --- a/.github/workflows/gtest.yml +++ b/.github/workflows/gtest.yml @@ -11,7 +11,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Install gtest manually - run: sudo apt-get install libgtest-dev && cd /usr/src/gtest && sudo cmake CMakeLists.txt && sudo make && sudo cp *.a /usr/lib && sudo ln -s /usr/lib/libgtest.a /usr/local/lib/libgtest.a && sudo ln -s /usr/lib/libgtest_main.a /usr/local/lib/libgtest_main.a + run: git clone https://github.com/google/googletest.git -b release-1.10.0 && \ + cd googletest && \ + mkdir build && \ + cd build && \ + cmake .. - uses: actions/checkout@v1 - name: configure run: mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. From 6f4230fe73033e0f89a689b4850d57d41dc710ff Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Sun, 20 Jun 2021 22:05:27 +0600 Subject: [PATCH 03/41] Update gtest.yml --- .github/workflows/gtest.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/gtest.yml b/.github/workflows/gtest.yml index c02b0e1..4b26f0c 100644 --- a/.github/workflows/gtest.yml +++ b/.github/workflows/gtest.yml @@ -10,12 +10,11 @@ jobs: build: runs-on: ubuntu-latest steps: + - name: Clone GTest + run: git clone https://github.com/google/googletest.git -b release-1.10.0 - name: Install gtest manually - run: git clone https://github.com/google/googletest.git -b release-1.10.0 && \ - cd googletest && \ - mkdir build && \ - cd build && \ - cmake .. + working-directory: ./googletest + run: cmake . - uses: actions/checkout@v1 - name: configure run: mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. From 51763844e26bd14a07c13aac653fde639b36891c Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Sun, 20 Jun 2021 22:09:43 +0600 Subject: [PATCH 04/41] Update gtest.yml --- .github/workflows/gtest.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/gtest.yml b/.github/workflows/gtest.yml index 4b26f0c..e880227 100644 --- a/.github/workflows/gtest.yml +++ b/.github/workflows/gtest.yml @@ -16,10 +16,14 @@ jobs: working-directory: ./googletest run: cmake . - uses: actions/checkout@v1 - - name: configure - run: mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. + - name: Create Directory + run: mkdir build + - name: Configure + working-directory: ./build + run: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. - name: make - run: cd build && make + working-directory: ./build + run: make - name: Run Test run: ./bin/unit_tests # run: /home/runner/work/github_actions_gtest_example/github_actions_gtest_example/build/test/github_actions_gtest_example.test From 039ac6facc8f09e4f7c0d39f967bb06dcbf790e8 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Sun, 20 Jun 2021 22:28:03 +0600 Subject: [PATCH 05/41] Update gtest.yml --- .github/workflows/gtest.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/gtest.yml b/.github/workflows/gtest.yml index e880227..287f1d1 100644 --- a/.github/workflows/gtest.yml +++ b/.github/workflows/gtest.yml @@ -21,9 +21,7 @@ jobs: - name: Configure working-directory: ./build run: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. - - name: make - working-directory: ./build - run: make - name: Run Test - run: ./bin/unit_tests + working-directory: ./UnitTests_App + run: ./Debug # run: /home/runner/work/github_actions_gtest_example/github_actions_gtest_example/build/test/github_actions_gtest_example.test From bbbeb6d7ec7a600acb1a8c992285e34228e87178 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Sun, 20 Jun 2021 22:28:59 +0600 Subject: [PATCH 06/41] Update gtest.yml --- .github/workflows/gtest.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/gtest.yml b/.github/workflows/gtest.yml index 287f1d1..ef6fdc5 100644 --- a/.github/workflows/gtest.yml +++ b/.github/workflows/gtest.yml @@ -18,9 +18,9 @@ jobs: - uses: actions/checkout@v1 - name: Create Directory run: mkdir build - - name: Configure - working-directory: ./build - run: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. +# - name: Configure +# working-directory: ./build +# run: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. - name: Run Test working-directory: ./UnitTests_App run: ./Debug From 070b57f12cbff05311903ca23786578c92080cae Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Sun, 20 Jun 2021 23:38:59 +0600 Subject: [PATCH 07/41] Update gtest.yml --- .github/workflows/gtest.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/gtest.yml b/.github/workflows/gtest.yml index ef6fdc5..9d6a461 100644 --- a/.github/workflows/gtest.yml +++ b/.github/workflows/gtest.yml @@ -14,7 +14,9 @@ jobs: run: git clone https://github.com/google/googletest.git -b release-1.10.0 - name: Install gtest manually working-directory: ./googletest - run: cmake . + run: cmake . &&\ + make &&\ + sudo make install - uses: actions/checkout@v1 - name: Create Directory run: mkdir build @@ -22,6 +24,5 @@ jobs: # working-directory: ./build # run: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. - name: Run Test - working-directory: ./UnitTests_App - run: ./Debug + run: make all # run: /home/runner/work/github_actions_gtest_example/github_actions_gtest_example/build/test/github_actions_gtest_example.test From 48e58aaf63e1ce1397500d92ac0d44db65574a49 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Sun, 20 Jun 2021 23:43:18 +0600 Subject: [PATCH 08/41] Update gtest.yml --- .github/workflows/gtest.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gtest.yml b/.github/workflows/gtest.yml index 9d6a461..88a0043 100644 --- a/.github/workflows/gtest.yml +++ b/.github/workflows/gtest.yml @@ -14,7 +14,8 @@ jobs: run: git clone https://github.com/google/googletest.git -b release-1.10.0 - name: Install gtest manually working-directory: ./googletest - run: cmake . &&\ + run: sudo apt install python3-pip &&\ + cmake . &&\ make &&\ sudo make install - uses: actions/checkout@v1 From e133f3484490543ff0c7aef6b5d2fb6e72191272 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 00:59:46 +0600 Subject: [PATCH 09/41] Create CMakeLists.txt --- UnitTests_App/CMakeLists.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 UnitTests_App/CMakeLists.txt diff --git a/UnitTests_App/CMakeLists.txt b/UnitTests_App/CMakeLists.txt new file mode 100644 index 0000000..e394b22 --- /dev/null +++ b/UnitTests_App/CMakeLists.txt @@ -0,0 +1,19 @@ +#googletest is taken from the submodule --> https://cliutils.gitlab.io/modern-cmake/chapters/testing/googletest.html +add_subdirectory("${PROJECT_SOURCE_DIR}/lib/googletest" "lib/googletest") + +macro(add_test_files TESTNAME) + add_executable(${TESTNAME} ${ARGN}) + target_link_libraries(${TESTNAME} gtest gmock gtest_main) + add_test(${TESTNAME} ${TESTNAME}) + set_target_properties(${TESTNAME} PROPERTIES FOLDER test) +endmacro() + +add_test_files(benri_tests casts.cpp + chrono.cpp + everything.cpp + one.cpp + constants.cpp + quantity.cpp + quantity_point.cpp + temperature.cpp) +target_link_libraries(benri_tests benri) From 69a7d3f96f4058e5cc01becd633fbc0203488552 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 11:32:49 +0600 Subject: [PATCH 10/41] Create BUILD.bazel --- UnitTests_App/BUILD.bazel | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 UnitTests_App/BUILD.bazel diff --git a/UnitTests_App/BUILD.bazel b/UnitTests_App/BUILD.bazel new file mode 100644 index 0000000..10b3193 --- /dev/null +++ b/UnitTests_App/BUILD.bazel @@ -0,0 +1,12 @@ +load("@rules_cc//cc:defs.bzl", "cc_binary") + +package( + default_visibility = ["//visibility:public"], +) + +cc_binary( + name = "ola", + srcs = ["HelperFunctions.cpp", + "MockDefinitions.cpp", + "UnitTestsMain.cpp"] +) From cb117b16de72b90d5cc4ded77531b497bec4d7d1 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 11:36:17 +0600 Subject: [PATCH 11/41] Create WORKSPACE --- UnitTests_App/WORKSPACE | 1 + 1 file changed, 1 insertion(+) create mode 100644 UnitTests_App/WORKSPACE diff --git a/UnitTests_App/WORKSPACE b/UnitTests_App/WORKSPACE new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/UnitTests_App/WORKSPACE @@ -0,0 +1 @@ + From 9e1fa8934c5d5d3042ad6d597bb0be621146d188 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 11:41:21 +0600 Subject: [PATCH 12/41] Update gtest.yml --- .github/workflows/gtest.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gtest.yml b/.github/workflows/gtest.yml index 88a0043..9fa3797 100644 --- a/.github/workflows/gtest.yml +++ b/.github/workflows/gtest.yml @@ -18,6 +18,9 @@ jobs: cmake . &&\ make &&\ sudo make install + - name: Install Bazel + run: sudo apt install nodejs &&\ + npm install -g @bazel/bazelisk - uses: actions/checkout@v1 - name: Create Directory run: mkdir build @@ -25,5 +28,6 @@ jobs: # working-directory: ./build # run: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. - name: Run Test - run: make all + working-directory: ./UnitTests_App + run: bazel test # run: /home/runner/work/github_actions_gtest_example/github_actions_gtest_example/build/test/github_actions_gtest_example.test From 8c8eae6f495451c192d421d2195b1e81252cef7a Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 11:45:19 +0600 Subject: [PATCH 13/41] Update gtest.yml --- .github/workflows/gtest.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/gtest.yml b/.github/workflows/gtest.yml index 9fa3797..6753ef6 100644 --- a/.github/workflows/gtest.yml +++ b/.github/workflows/gtest.yml @@ -14,12 +14,12 @@ jobs: run: git clone https://github.com/google/googletest.git -b release-1.10.0 - name: Install gtest manually working-directory: ./googletest - run: sudo apt install python3-pip &&\ - cmake . &&\ - make &&\ + run: sudo apt install python3-pip && + cmake . && + make && sudo make install - name: Install Bazel - run: sudo apt install nodejs &&\ + run: sudo apt install nodejs && npm install -g @bazel/bazelisk - uses: actions/checkout@v1 - name: Create Directory From a279f94a5ccda3c75eb8868e4fd8bddcd994e7c8 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 11:47:49 +0600 Subject: [PATCH 14/41] Update gtest.yml --- .github/workflows/gtest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gtest.yml b/.github/workflows/gtest.yml index 6753ef6..3416484 100644 --- a/.github/workflows/gtest.yml +++ b/.github/workflows/gtest.yml @@ -20,7 +20,7 @@ jobs: sudo make install - name: Install Bazel run: sudo apt install nodejs && - npm install -g @bazel/bazelisk + sudo npm install -g @bazel/bazelisk - uses: actions/checkout@v1 - name: Create Directory run: mkdir build From 3483351edd165b834b18d303d162c437b257b8c9 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 11:53:32 +0600 Subject: [PATCH 15/41] Update WORKSPACE --- UnitTests_App/WORKSPACE | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/UnitTests_App/WORKSPACE b/UnitTests_App/WORKSPACE index 8b13789..34c99b9 100644 --- a/UnitTests_App/WORKSPACE +++ b/UnitTests_App/WORKSPACE @@ -1 +1,13 @@ +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +http_archive( + name = "com_google_googletest", + urls = ["https://github.com/google/googletest/archive/609281088cfefc76f9d0ce82e1ff6c30cc3591e5.zip"], + strip_prefix = "googletest-609281088cfefc76f9d0ce82e1ff6c30cc3591e5", +) + +http_archive( + name = "rules_cc", + urls = ["https://github.com/bazelbuild/rules_cc/archive/40548a2974f1aea06215272d9c2b47a14a24e556.zip"], + strip_prefix = "rules_cc-40548a2974f1aea06215272d9c2b47a14a24e556", +) From d432461210dfe8865677ee332710dbfe9216ad7a Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 11:54:37 +0600 Subject: [PATCH 16/41] Update BUILD.bazel --- UnitTests_App/BUILD.bazel | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/UnitTests_App/BUILD.bazel b/UnitTests_App/BUILD.bazel index 10b3193..a9b653c 100644 --- a/UnitTests_App/BUILD.bazel +++ b/UnitTests_App/BUILD.bazel @@ -1,12 +1,10 @@ load("@rules_cc//cc:defs.bzl", "cc_binary") -package( - default_visibility = ["//visibility:public"], -) - cc_binary( name = "ola", + size = "small", srcs = ["HelperFunctions.cpp", "MockDefinitions.cpp", - "UnitTestsMain.cpp"] + "UnitTestsMain.cpp"], + deps = ["@com_google_googletest//:gtest_main"], ) From 6c642ef7ff0fb24fd055955854c971b4136836b4 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 11:57:15 +0600 Subject: [PATCH 17/41] Update BUILD.bazel --- UnitTests_App/BUILD.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UnitTests_App/BUILD.bazel b/UnitTests_App/BUILD.bazel index a9b653c..b2817f0 100644 --- a/UnitTests_App/BUILD.bazel +++ b/UnitTests_App/BUILD.bazel @@ -1,7 +1,7 @@ load("@rules_cc//cc:defs.bzl", "cc_binary") cc_binary( - name = "ola", + name = "UnitTestsAPP_test", size = "small", srcs = ["HelperFunctions.cpp", "MockDefinitions.cpp", From 4859d057d69fa4cc713df7135d3e775f7943e6f6 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 11:57:22 +0600 Subject: [PATCH 18/41] Update gtest.yml --- .github/workflows/gtest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gtest.yml b/.github/workflows/gtest.yml index 3416484..d301c52 100644 --- a/.github/workflows/gtest.yml +++ b/.github/workflows/gtest.yml @@ -29,5 +29,5 @@ jobs: # run: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. - name: Run Test working-directory: ./UnitTests_App - run: bazel test + run: bazel test --test_output=all //:UnitTestsAPP_test # run: /home/runner/work/github_actions_gtest_example/github_actions_gtest_example/build/test/github_actions_gtest_example.test From 7a647c2d4df552699f63df66af1c6620468731c3 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 11:59:22 +0600 Subject: [PATCH 19/41] Update BUILD.bazel --- UnitTests_App/BUILD.bazel | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/UnitTests_App/BUILD.bazel b/UnitTests_App/BUILD.bazel index b2817f0..d177ea4 100644 --- a/UnitTests_App/BUILD.bazel +++ b/UnitTests_App/BUILD.bazel @@ -1,6 +1,6 @@ -load("@rules_cc//cc:defs.bzl", "cc_binary") +load("@rules_cc//cc:defs.bzl", "cc_test") -cc_binary( +cc_test( name = "UnitTestsAPP_test", size = "small", srcs = ["HelperFunctions.cpp", From a3dc0bd22f119331932953778b485a30012d1516 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 12:04:18 +0600 Subject: [PATCH 20/41] Rename UnitTests_App/BUILD.bazel to UnitTests_App/UnitSource/BUILD.bazel --- UnitTests_App/{ => UnitSource}/BUILD.bazel | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename UnitTests_App/{ => UnitSource}/BUILD.bazel (100%) diff --git a/UnitTests_App/BUILD.bazel b/UnitTests_App/UnitSource/BUILD.bazel similarity index 100% rename from UnitTests_App/BUILD.bazel rename to UnitTests_App/UnitSource/BUILD.bazel From 5d3ed8a85d443a58590555e96fe1da0da63c4d11 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 12:10:37 +0600 Subject: [PATCH 21/41] Update BUILD.bazel --- UnitTests_App/UnitSource/BUILD.bazel | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/UnitTests_App/UnitSource/BUILD.bazel b/UnitTests_App/UnitSource/BUILD.bazel index d177ea4..cb083ab 100644 --- a/UnitTests_App/UnitSource/BUILD.bazel +++ b/UnitTests_App/UnitSource/BUILD.bazel @@ -3,8 +3,7 @@ load("@rules_cc//cc:defs.bzl", "cc_test") cc_test( name = "UnitTestsAPP_test", size = "small", - srcs = ["HelperFunctions.cpp", - "MockDefinitions.cpp", - "UnitTestsMain.cpp"], + srcs = ["UnitTestsMain.cpp"], + hdrs = ["UnitTestsMain.h"] deps = ["@com_google_googletest//:gtest_main"], ) From 4d28badf45c6fb024e853f2827b59254dd55a7cf Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 12:12:17 +0600 Subject: [PATCH 22/41] Update gtest.yml --- .github/workflows/gtest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gtest.yml b/.github/workflows/gtest.yml index d301c52..9fadc4c 100644 --- a/.github/workflows/gtest.yml +++ b/.github/workflows/gtest.yml @@ -29,5 +29,5 @@ jobs: # run: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. - name: Run Test working-directory: ./UnitTests_App - run: bazel test --test_output=all //:UnitTestsAPP_test + run: bazel test --test_output=all //UnitSource:UnitTestsAPP_test # run: /home/runner/work/github_actions_gtest_example/github_actions_gtest_example/build/test/github_actions_gtest_example.test From 88d6963e423cb57e3bae5fe85bc82346216a3fec Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 12:30:41 +0600 Subject: [PATCH 23/41] Changed --- UnitTests_App/UnitSource/BUILD | 8 + UnitTests_App/UnitSource/HelperFunctions.h | 21 + UnitTests_App/UnitSource/MockDeclarations.h | 17 + UnitTests_App/UnitSource/UnitTestsMain.cpp | 1 + UnitTests_App/UnitSource/UnitTestsMain.h | 25 + UnitTests_App/UnitSource/fff.h | 6643 +++++++++++++++++++ 6 files changed, 6715 insertions(+) create mode 100644 UnitTests_App/UnitSource/BUILD create mode 100644 UnitTests_App/UnitSource/HelperFunctions.h create mode 100644 UnitTests_App/UnitSource/MockDeclarations.h create mode 100644 UnitTests_App/UnitSource/UnitTestsMain.h create mode 100644 UnitTests_App/UnitSource/fff.h diff --git a/UnitTests_App/UnitSource/BUILD b/UnitTests_App/UnitSource/BUILD new file mode 100644 index 0000000..3dfaf37 --- /dev/null +++ b/UnitTests_App/UnitSource/BUILD @@ -0,0 +1,8 @@ +load("@rules_cc//cc:defs.bzl", "cc_test") + +cc_test( + name = "UnitTestsAPP_test", + size = "small", + srcs = ["UnitTestsMain.cpp"], + deps = ["@com_google_googletest//:gtest_main"], +) \ No newline at end of file diff --git a/UnitTests_App/UnitSource/HelperFunctions.h b/UnitTests_App/UnitSource/HelperFunctions.h new file mode 100644 index 0000000..08e00a8 --- /dev/null +++ b/UnitTests_App/UnitSource/HelperFunctions.h @@ -0,0 +1,21 @@ +/* + * HelperFunctions.h + * + * Created on: Feb 09, 2021 + * Author: Eyal + */ + +#ifndef UNITTESTS_UNITHEADER_HELPERFUNCTIONS_H_ +#define UNITTESTS_UNITHEADER_HELPERFUNCTIONS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +// void MutexLock(bool bLock); + +#ifdef __cplusplus +} +#endif + +#endif /* UNITTESTS_UNITHEADER_HELPERFUNCTIONS_H_ */ diff --git a/UnitTests_App/UnitSource/MockDeclarations.h b/UnitTests_App/UnitSource/MockDeclarations.h new file mode 100644 index 0000000..595a767 --- /dev/null +++ b/UnitTests_App/UnitSource/MockDeclarations.h @@ -0,0 +1,17 @@ +/* + * MockDeclarations.h + * + * Created on: Jan 28, 2021 + * Author: Eyal + */ + +#ifndef UNITTESTS_UNITSOURCE_MOCKDECLARATIONS_H_ +#define UNITTESTS_UNITSOURCE_MOCKDECLARATIONS_H_ + +#include "UnitTestsMain.h" + +// DECLARE_FAKE_VALUE_FUNC_VARARG(uint32_t, iprintf2_ISR_mock, BooleanIndicator, ElogCodes, const char*, ...); +// DECLARE_FAKE_VALUE_FUNC(BooleanIndicator, TryLogWriteLock_mock); +// DECLARE_FAKE_VOID_FUNC(PrintPumpName_mock); + +#endif /* UNITTESTS_UNITSOURCE_MOCKDECLARATIONS_H_ */ diff --git a/UnitTests_App/UnitSource/UnitTestsMain.cpp b/UnitTests_App/UnitSource/UnitTestsMain.cpp index d834c68..4193068 100644 --- a/UnitTests_App/UnitSource/UnitTestsMain.cpp +++ b/UnitTests_App/UnitSource/UnitTestsMain.cpp @@ -11,3 +11,4 @@ DEFINE_FFF_GLOBALS; + diff --git a/UnitTests_App/UnitSource/UnitTestsMain.h b/UnitTests_App/UnitSource/UnitTestsMain.h new file mode 100644 index 0000000..54e4558 --- /dev/null +++ b/UnitTests_App/UnitSource/UnitTestsMain.h @@ -0,0 +1,25 @@ +/* + * UnitTestsMain.h + * + * Created on: Jan 28, 2021 + * Author: Eyal + */ + +#ifndef UNITTESTS_UNITTESTSMAIN_H_ +#define UNITTESTS_UNITTESTSMAIN_H_ + +#include +#include +#include "fff.h" +#include "HelperFunctions.h" +#include "stdlib.h" +#include "Source1.h" + +extern "C" +{ + +} + +using namespace std; + +#endif /* UNITTESTS_UNITTESTSMAIN_H_ */ diff --git a/UnitTests_App/UnitSource/fff.h b/UnitTests_App/UnitSource/fff.h new file mode 100644 index 0000000..aa38912 --- /dev/null +++ b/UnitTests_App/UnitSource/fff.h @@ -0,0 +1,6643 @@ +/* +LICENSE + +The MIT License (MIT) + +Copyright (c) 2010 Michael Long + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ +#ifndef FAKE_FUNCTIONS +#define FAKE_FUNCTIONS + +#include +#include /* For memset and memcpy */ + +#define FFF_MAX_ARGS (20u) +#ifndef FFF_ARG_HISTORY_LEN + #define FFF_ARG_HISTORY_LEN (50u) +#endif +#ifndef FFF_CALL_HISTORY_LEN + #define FFF_CALL_HISTORY_LEN (50u) +#endif +#ifndef FFF_GCC_FUNCTION_ATTRIBUTES + #define FFF_GCC_FUNCTION_ATTRIBUTES +#endif +/* -- INTERNAL HELPER MACROS -- */ +#define SET_RETURN_SEQ(FUNCNAME, ARRAY_POINTER, ARRAY_LEN) \ + FUNCNAME##_fake.return_val_seq = ARRAY_POINTER; \ + FUNCNAME##_fake.return_val_seq_len = ARRAY_LEN; +#define SET_CUSTOM_FAKE_SEQ(FUNCNAME, ARRAY_POINTER, ARRAY_LEN) \ + FUNCNAME##_fake.custom_fake_seq = ARRAY_POINTER; \ + FUNCNAME##_fake.custom_fake_seq_len = ARRAY_LEN; + +/* Defining a function to reset a fake function */ +#define RESET_FAKE(FUNCNAME) { \ + FUNCNAME##_reset(); \ +} \ + + +#define DECLARE_ARG(type, n, FUNCNAME) \ + type arg##n##_val; \ + type arg##n##_history[FFF_ARG_HISTORY_LEN]; + +#define DECLARE_ALL_FUNC_COMMON \ + unsigned int call_count; \ + unsigned int arg_history_len; \ + unsigned int arg_histories_dropped; \ + +#define DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + RETURN_TYPE return_val_history[FFF_ARG_HISTORY_LEN]; + +#define SAVE_ARG(FUNCNAME, n) \ + memcpy((void*)&FUNCNAME##_fake.arg##n##_val, (void*)&arg##n, sizeof(arg##n)); + +#define ROOM_FOR_MORE_HISTORY(FUNCNAME) \ + FUNCNAME##_fake.call_count < FFF_ARG_HISTORY_LEN + +#define SAVE_RET_HISTORY(FUNCNAME, RETVAL) \ + if ((FUNCNAME##_fake.call_count - 1) < FFF_ARG_HISTORY_LEN) \ + memcpy((void *)&FUNCNAME##_fake.return_val_history[FUNCNAME##_fake.call_count - 1], (const void *) &RETVAL, sizeof(RETVAL)); \ + +#define SAVE_ARG_HISTORY(FUNCNAME, ARGN) \ + memcpy((void*)&FUNCNAME##_fake.arg##ARGN##_history[FUNCNAME##_fake.call_count], (void*)&arg##ARGN, sizeof(arg##ARGN)); + +#define HISTORY_DROPPED(FUNCNAME) \ + FUNCNAME##_fake.arg_histories_dropped++ + +#define DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + RETURN_TYPE return_val; \ + int return_val_seq_len; \ + int return_val_seq_idx; \ + RETURN_TYPE * return_val_seq; \ + +#define DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + int custom_fake_seq_len; \ + int custom_fake_seq_idx; \ + +#define INCREMENT_CALL_COUNT(FUNCNAME) \ + FUNCNAME##_fake.call_count++ + +#define RETURN_FAKE_RESULT(FUNCNAME) \ + if (FUNCNAME##_fake.return_val_seq_len){ /* then its a sequence */ \ + if(FUNCNAME##_fake.return_val_seq_idx < FUNCNAME##_fake.return_val_seq_len) { \ + SAVE_RET_HISTORY(FUNCNAME, FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_idx]) \ + return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_idx++]; \ + } \ + SAVE_RET_HISTORY(FUNCNAME, FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_len-1]) \ + return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_len-1]; /* return last element */ \ + } \ + SAVE_RET_HISTORY(FUNCNAME, FUNCNAME##_fake.return_val) \ + return FUNCNAME##_fake.return_val; \ + +#ifdef __cplusplus + #define FFF_EXTERN_C extern "C"{ + #define FFF_END_EXTERN_C } +#else /* ansi c */ + #define FFF_EXTERN_C + #define FFF_END_EXTERN_C +#endif /* cpp/ansi c */ + +#define DEFINE_RESET_FUNCTION(FUNCNAME) \ + void FUNCNAME##_reset(void){ \ + memset(&FUNCNAME##_fake, 0, sizeof(FUNCNAME##_fake)); \ + FUNCNAME##_fake.arg_history_len = FFF_ARG_HISTORY_LEN; \ + } +/* -- END INTERNAL HELPER MACROS -- */ + +typedef void (*fff_function_t)(void); +typedef struct { + fff_function_t call_history[FFF_CALL_HISTORY_LEN]; + unsigned int call_history_idx; +} fff_globals_t; + +FFF_EXTERN_C +extern fff_globals_t fff; +FFF_END_EXTERN_C + +#define DEFINE_FFF_GLOBALS \ + FFF_EXTERN_C \ + fff_globals_t fff; \ + FFF_END_EXTERN_C + +#define FFF_RESET_HISTORY() \ + fff.call_history_idx = 0; \ + memset(fff.call_history, 0, sizeof(fff.call_history)); + +#define REGISTER_CALL(function) \ + if(fff.call_history_idx < FFF_CALL_HISTORY_LEN) \ + fff.call_history[fff.call_history_idx++] = (fff_function_t)function; + +#define DECLARE_FAKE_VOID_FUNC0(FUNCNAME) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(void); \ + void(**custom_fake_seq)(void); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(void); \ + +#define DEFINE_FAKE_VOID_FUNC0(FUNCNAME) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(void){ \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC0(FUNCNAME) \ + DECLARE_FAKE_VOID_FUNC0(FUNCNAME) \ + DEFINE_FAKE_VOID_FUNC0(FUNCNAME) \ + + +#define DECLARE_FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0); \ + void(**custom_fake_seq)(ARG0_TYPE arg0); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0); \ + +#define DEFINE_FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0){ \ + SAVE_ARG(FUNCNAME, 0); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \ + DECLARE_FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \ + DEFINE_FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1); \ + +#define DEFINE_FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ + DECLARE_FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ + DEFINE_FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2); \ + +#define DEFINE_FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ + DECLARE_FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ + DEFINE_FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC4(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3); \ + +#define DEFINE_FAKE_VOID_FUNC4(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC4(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ + DECLARE_FAKE_VOID_FUNC4(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ + DEFINE_FAKE_VOID_FUNC4(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC5(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4); \ + +#define DEFINE_FAKE_VOID_FUNC5(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC5(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ + DECLARE_FAKE_VOID_FUNC5(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ + DEFINE_FAKE_VOID_FUNC5(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC6(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5); \ + +#define DEFINE_FAKE_VOID_FUNC6(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC6(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ + DECLARE_FAKE_VOID_FUNC6(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ + DEFINE_FAKE_VOID_FUNC6(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC7(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6); \ + +#define DEFINE_FAKE_VOID_FUNC7(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC7(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ + DECLARE_FAKE_VOID_FUNC7(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ + DEFINE_FAKE_VOID_FUNC7(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC8(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7); \ + +#define DEFINE_FAKE_VOID_FUNC8(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC8(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ + DECLARE_FAKE_VOID_FUNC8(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ + DEFINE_FAKE_VOID_FUNC8(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC9(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8); \ + +#define DEFINE_FAKE_VOID_FUNC9(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC9(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ + DECLARE_FAKE_VOID_FUNC9(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ + DEFINE_FAKE_VOID_FUNC9(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC10(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9); \ + +#define DEFINE_FAKE_VOID_FUNC10(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC10(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ + DECLARE_FAKE_VOID_FUNC10(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ + DEFINE_FAKE_VOID_FUNC10(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC11(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10); \ + +#define DEFINE_FAKE_VOID_FUNC11(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC11(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ + DECLARE_FAKE_VOID_FUNC11(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ + DEFINE_FAKE_VOID_FUNC11(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC12(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11); \ + +#define DEFINE_FAKE_VOID_FUNC12(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC12(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ + DECLARE_FAKE_VOID_FUNC12(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ + DEFINE_FAKE_VOID_FUNC12(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC13(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12); \ + +#define DEFINE_FAKE_VOID_FUNC13(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC13(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ + DECLARE_FAKE_VOID_FUNC13(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ + DEFINE_FAKE_VOID_FUNC13(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC14(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13); \ + +#define DEFINE_FAKE_VOID_FUNC14(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC14(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ + DECLARE_FAKE_VOID_FUNC14(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ + DEFINE_FAKE_VOID_FUNC14(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC15(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14); \ + +#define DEFINE_FAKE_VOID_FUNC15(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC15(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ + DECLARE_FAKE_VOID_FUNC15(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ + DEFINE_FAKE_VOID_FUNC15(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC16(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15); \ + +#define DEFINE_FAKE_VOID_FUNC16(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC16(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ + DECLARE_FAKE_VOID_FUNC16(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ + DEFINE_FAKE_VOID_FUNC16(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC17(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16); \ + +#define DEFINE_FAKE_VOID_FUNC17(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + SAVE_ARG(FUNCNAME, 16); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + SAVE_ARG_HISTORY(FUNCNAME, 16); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC17(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ + DECLARE_FAKE_VOID_FUNC17(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ + DEFINE_FAKE_VOID_FUNC17(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC18(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \ + DECLARE_ARG(ARG17_TYPE, 17, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17); \ + +#define DEFINE_FAKE_VOID_FUNC18(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + SAVE_ARG(FUNCNAME, 16); \ + SAVE_ARG(FUNCNAME, 17); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + SAVE_ARG_HISTORY(FUNCNAME, 16); \ + SAVE_ARG_HISTORY(FUNCNAME, 17); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC18(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ + DECLARE_FAKE_VOID_FUNC18(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ + DEFINE_FAKE_VOID_FUNC18(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC19(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \ + DECLARE_ARG(ARG17_TYPE, 17, FUNCNAME) \ + DECLARE_ARG(ARG18_TYPE, 18, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18); \ + +#define DEFINE_FAKE_VOID_FUNC19(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + SAVE_ARG(FUNCNAME, 16); \ + SAVE_ARG(FUNCNAME, 17); \ + SAVE_ARG(FUNCNAME, 18); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + SAVE_ARG_HISTORY(FUNCNAME, 16); \ + SAVE_ARG_HISTORY(FUNCNAME, 17); \ + SAVE_ARG_HISTORY(FUNCNAME, 18); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC19(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ + DECLARE_FAKE_VOID_FUNC19(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ + DEFINE_FAKE_VOID_FUNC19(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC20(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \ + DECLARE_ARG(ARG17_TYPE, 17, FUNCNAME) \ + DECLARE_ARG(ARG18_TYPE, 18, FUNCNAME) \ + DECLARE_ARG(ARG19_TYPE, 19, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, ARG19_TYPE arg19); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, ARG19_TYPE arg19); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, ARG19_TYPE arg19); \ + +#define DEFINE_FAKE_VOID_FUNC20(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, ARG19_TYPE arg19){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + SAVE_ARG(FUNCNAME, 16); \ + SAVE_ARG(FUNCNAME, 17); \ + SAVE_ARG(FUNCNAME, 18); \ + SAVE_ARG(FUNCNAME, 19); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + SAVE_ARG_HISTORY(FUNCNAME, 16); \ + SAVE_ARG_HISTORY(FUNCNAME, 17); \ + SAVE_ARG_HISTORY(FUNCNAME, 18); \ + SAVE_ARG_HISTORY(FUNCNAME, 19); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19); \ + } \ + else{ \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC20(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ + DECLARE_FAKE_VOID_FUNC20(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ + DEFINE_FAKE_VOID_FUNC20(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC0(RETURN_TYPE, FUNCNAME) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(void); \ + RETURN_TYPE(**custom_fake_seq)(void); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(void); \ + +#define DEFINE_FAKE_VALUE_FUNC0(RETURN_TYPE, FUNCNAME) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(void){ \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC0(RETURN_TYPE, FUNCNAME) \ + DECLARE_FAKE_VALUE_FUNC0(RETURN_TYPE, FUNCNAME) \ + DEFINE_FAKE_VALUE_FUNC0(RETURN_TYPE, FUNCNAME) \ + + +#define DECLARE_FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0); \ + +#define DEFINE_FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0){ \ + SAVE_ARG(FUNCNAME, 0); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \ + DECLARE_FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \ + DEFINE_FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1); \ + +#define DEFINE_FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ + DECLARE_FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ + DEFINE_FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC3(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2); \ + +#define DEFINE_FAKE_VALUE_FUNC3(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC3(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ + DECLARE_FAKE_VALUE_FUNC3(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ + DEFINE_FAKE_VALUE_FUNC3(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC4(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3); \ + +#define DEFINE_FAKE_VALUE_FUNC4(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC4(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ + DECLARE_FAKE_VALUE_FUNC4(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ + DEFINE_FAKE_VALUE_FUNC4(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC5(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4); \ + +#define DEFINE_FAKE_VALUE_FUNC5(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC5(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ + DECLARE_FAKE_VALUE_FUNC5(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ + DEFINE_FAKE_VALUE_FUNC5(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC6(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5); \ + +#define DEFINE_FAKE_VALUE_FUNC6(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC6(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ + DECLARE_FAKE_VALUE_FUNC6(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ + DEFINE_FAKE_VALUE_FUNC6(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC7(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6); \ + +#define DEFINE_FAKE_VALUE_FUNC7(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC7(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ + DECLARE_FAKE_VALUE_FUNC7(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ + DEFINE_FAKE_VALUE_FUNC7(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC8(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7); \ + +#define DEFINE_FAKE_VALUE_FUNC8(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC8(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ + DECLARE_FAKE_VALUE_FUNC8(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ + DEFINE_FAKE_VALUE_FUNC8(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC9(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8); \ + +#define DEFINE_FAKE_VALUE_FUNC9(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC9(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ + DECLARE_FAKE_VALUE_FUNC9(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ + DEFINE_FAKE_VALUE_FUNC9(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC10(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9); \ + +#define DEFINE_FAKE_VALUE_FUNC10(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC10(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ + DECLARE_FAKE_VALUE_FUNC10(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ + DEFINE_FAKE_VALUE_FUNC10(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC11(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10); \ + +#define DEFINE_FAKE_VALUE_FUNC11(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC11(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ + DECLARE_FAKE_VALUE_FUNC11(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ + DEFINE_FAKE_VALUE_FUNC11(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC12(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11); \ + +#define DEFINE_FAKE_VALUE_FUNC12(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC12(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ + DECLARE_FAKE_VALUE_FUNC12(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ + DEFINE_FAKE_VALUE_FUNC12(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC13(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12); \ + +#define DEFINE_FAKE_VALUE_FUNC13(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC13(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ + DECLARE_FAKE_VALUE_FUNC13(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ + DEFINE_FAKE_VALUE_FUNC13(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC14(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13); \ + +#define DEFINE_FAKE_VALUE_FUNC14(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC14(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ + DECLARE_FAKE_VALUE_FUNC14(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ + DEFINE_FAKE_VALUE_FUNC14(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC15(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14); \ + +#define DEFINE_FAKE_VALUE_FUNC15(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC15(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ + DECLARE_FAKE_VALUE_FUNC15(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ + DEFINE_FAKE_VALUE_FUNC15(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC16(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15); \ + +#define DEFINE_FAKE_VALUE_FUNC16(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC16(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ + DECLARE_FAKE_VALUE_FUNC16(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ + DEFINE_FAKE_VALUE_FUNC16(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC17(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16); \ + +#define DEFINE_FAKE_VALUE_FUNC17(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + SAVE_ARG(FUNCNAME, 16); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + SAVE_ARG_HISTORY(FUNCNAME, 16); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC17(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ + DECLARE_FAKE_VALUE_FUNC17(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ + DEFINE_FAKE_VALUE_FUNC17(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC18(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \ + DECLARE_ARG(ARG17_TYPE, 17, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17); \ + +#define DEFINE_FAKE_VALUE_FUNC18(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + SAVE_ARG(FUNCNAME, 16); \ + SAVE_ARG(FUNCNAME, 17); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + SAVE_ARG_HISTORY(FUNCNAME, 16); \ + SAVE_ARG_HISTORY(FUNCNAME, 17); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC18(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ + DECLARE_FAKE_VALUE_FUNC18(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ + DEFINE_FAKE_VALUE_FUNC18(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC19(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \ + DECLARE_ARG(ARG17_TYPE, 17, FUNCNAME) \ + DECLARE_ARG(ARG18_TYPE, 18, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18); \ + +#define DEFINE_FAKE_VALUE_FUNC19(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + SAVE_ARG(FUNCNAME, 16); \ + SAVE_ARG(FUNCNAME, 17); \ + SAVE_ARG(FUNCNAME, 18); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + SAVE_ARG_HISTORY(FUNCNAME, 16); \ + SAVE_ARG_HISTORY(FUNCNAME, 17); \ + SAVE_ARG_HISTORY(FUNCNAME, 18); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC19(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ + DECLARE_FAKE_VALUE_FUNC19(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ + DEFINE_FAKE_VALUE_FUNC19(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ + + +#define DECLARE_FAKE_VALUE_FUNC20(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \ + DECLARE_ARG(ARG17_TYPE, 17, FUNCNAME) \ + DECLARE_ARG(ARG18_TYPE, 18, FUNCNAME) \ + DECLARE_ARG(ARG19_TYPE, 19, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, ARG19_TYPE arg19); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, ARG19_TYPE arg19); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, ARG19_TYPE arg19); \ + +#define DEFINE_FAKE_VALUE_FUNC20(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, ARG19_TYPE arg19){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + SAVE_ARG(FUNCNAME, 16); \ + SAVE_ARG(FUNCNAME, 17); \ + SAVE_ARG(FUNCNAME, 18); \ + SAVE_ARG(FUNCNAME, 19); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + SAVE_ARG_HISTORY(FUNCNAME, 16); \ + SAVE_ARG_HISTORY(FUNCNAME, 17); \ + SAVE_ARG_HISTORY(FUNCNAME, 18); \ + SAVE_ARG_HISTORY(FUNCNAME, 19); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + else{ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19); \ + } \ + } \ + if (FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19); \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC20(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ + DECLARE_FAKE_VALUE_FUNC20(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ + DEFINE_FAKE_VALUE_FUNC20(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ + + +#define DECLARE_FAKE_VOID_FUNC2_VARARG(FUNCNAME, ARG0_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ...); \ + +#define DEFINE_FAKE_VOID_FUNC2_VARARG(FUNCNAME, ARG0_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg0); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg0); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg0); \ + FUNCNAME##_fake.custom_fake(arg0, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC2_VARARG(FUNCNAME, ARG0_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC2_VARARG(FUNCNAME, ARG0_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC2_VARARG(FUNCNAME, ARG0_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC3_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ...); \ + +#define DEFINE_FAKE_VOID_FUNC3_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg1); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg1); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg1); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC3_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC3_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC3_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC4_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ...); \ + +#define DEFINE_FAKE_VOID_FUNC4_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg2); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg2); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg2); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC4_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC4_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC4_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC5_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ...); \ + +#define DEFINE_FAKE_VOID_FUNC5_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg3); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg3); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg3); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC5_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC5_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC5_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC6_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ...); \ + +#define DEFINE_FAKE_VOID_FUNC6_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg4); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg4); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg4); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC6_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC6_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC6_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC7_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ...); \ + +#define DEFINE_FAKE_VOID_FUNC7_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg5); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg5); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg5); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC7_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC7_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC7_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC8_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ...); \ + +#define DEFINE_FAKE_VOID_FUNC8_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg6); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg6); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg6); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC8_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC8_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC8_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC9_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ...); \ + +#define DEFINE_FAKE_VOID_FUNC9_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg7); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg7); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg7); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC9_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC9_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC9_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC10_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ...); \ + +#define DEFINE_FAKE_VOID_FUNC10_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg8); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg8); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg8); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC10_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC10_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC10_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC11_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ...); \ + +#define DEFINE_FAKE_VOID_FUNC11_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg9); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg9); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg9); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC11_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC11_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC11_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC12_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ...); \ + +#define DEFINE_FAKE_VOID_FUNC12_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg10); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg10); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg10); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC12_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC12_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC12_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC13_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ...); \ + +#define DEFINE_FAKE_VOID_FUNC13_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg11); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg11); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg11); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC13_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC13_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC13_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC14_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ...); \ + +#define DEFINE_FAKE_VOID_FUNC14_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg12); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg12); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg12); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC14_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC14_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC14_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC15_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ...); \ + +#define DEFINE_FAKE_VOID_FUNC15_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg13); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg13); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg13); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC15_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC15_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC15_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC16_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ...); \ + +#define DEFINE_FAKE_VOID_FUNC16_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg14); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg14); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg14); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC16_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC16_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC16_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC17_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ...); \ + +#define DEFINE_FAKE_VOID_FUNC17_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg15); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg15); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg15); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC17_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC17_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC17_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC18_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ...); \ + +#define DEFINE_FAKE_VOID_FUNC18_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + SAVE_ARG(FUNCNAME, 16); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + SAVE_ARG_HISTORY(FUNCNAME, 16); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg16); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg16); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg16); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC18_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC18_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC18_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC19_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \ + DECLARE_ARG(ARG17_TYPE, 17, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ...); \ + +#define DEFINE_FAKE_VOID_FUNC19_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + SAVE_ARG(FUNCNAME, 16); \ + SAVE_ARG(FUNCNAME, 17); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + SAVE_ARG_HISTORY(FUNCNAME, 16); \ + SAVE_ARG_HISTORY(FUNCNAME, 17); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg17); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg17); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg17); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC19_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC19_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC19_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ + + +#define DECLARE_FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \ + DECLARE_ARG(ARG17_TYPE, 17, FUNCNAME) \ + DECLARE_ARG(ARG18_TYPE, 18, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, va_list ap); \ + void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, ...); \ + +#define DEFINE_FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + SAVE_ARG(FUNCNAME, 16); \ + SAVE_ARG(FUNCNAME, 17); \ + SAVE_ARG(FUNCNAME, 18); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + SAVE_ARG_HISTORY(FUNCNAME, 16); \ + SAVE_ARG_HISTORY(FUNCNAME, 17); \ + SAVE_ARG_HISTORY(FUNCNAME, 18); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg18); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, ap); \ + va_end(ap); \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg18); \ + FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, ap); \ + va_end(ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg18); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, ap); \ + va_end(ap); \ + } \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ + DECLARE_FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC2_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC2_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg0); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg0); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg0); \ + ret = FUNCNAME##_fake.custom_fake(arg0, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC2_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC2_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC2_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC3_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC3_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg1); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg1); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg1); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC3_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC3_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC3_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC4_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC4_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg2); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg2); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg2); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC4_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC4_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC4_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC5_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC5_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg3); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg3); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg3); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC5_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC5_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC5_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC6_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC6_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg4); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg4); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg4); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC6_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC6_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC6_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC7_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC7_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg5); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg5); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg5); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC7_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC7_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC7_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC8_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC8_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg6); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg6); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg6); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC8_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC8_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC8_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC9_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC9_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg7); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg7); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg7); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC9_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC9_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC9_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC10_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC10_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg8); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg8); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg8); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC10_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC10_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC10_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC11_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC11_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg9); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg9); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg9); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC11_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC11_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC11_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC12_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC12_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg10); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg10); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg10); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC12_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC12_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC12_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC13_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC13_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg11); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg11); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg11); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC13_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC13_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC13_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC14_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC14_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg12); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg12); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg12); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC14_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC14_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC14_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC15_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC15_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg13); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg13); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg13); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC15_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC15_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC15_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC16_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC16_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg14); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg14); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg14); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC16_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC16_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC16_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC17_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC17_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg15); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg15); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg15); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC17_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC17_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC17_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC18_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC18_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + SAVE_ARG(FUNCNAME, 16); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + SAVE_ARG_HISTORY(FUNCNAME, 16); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg16); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg16); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg16); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC18_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC18_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC18_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \ + DECLARE_ARG(ARG17_TYPE, 17, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + SAVE_ARG(FUNCNAME, 16); \ + SAVE_ARG(FUNCNAME, 17); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + SAVE_ARG_HISTORY(FUNCNAME, 16); \ + SAVE_ARG_HISTORY(FUNCNAME, 17); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg17); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg17); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg17); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ + + +#define DECLARE_FAKE_VALUE_FUNC20_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ + typedef struct FUNCNAME##_Fake { \ + DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ + DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ + DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ + DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ + DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ + DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ + DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ + DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ + DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ + DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ + DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ + DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ + DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ + DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ + DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ + DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ + DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \ + DECLARE_ARG(ARG17_TYPE, 17, FUNCNAME) \ + DECLARE_ARG(ARG18_TYPE, 18, FUNCNAME) \ + DECLARE_ALL_FUNC_COMMON \ + DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ + DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ + DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ + RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, va_list ap); \ + RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, va_list ap); \ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ + void FUNCNAME##_reset(void); \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, ...); \ + +#define DEFINE_FAKE_VALUE_FUNC20_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ + FUNCNAME##_Fake FUNCNAME##_fake; \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, ...){ \ + SAVE_ARG(FUNCNAME, 0); \ + SAVE_ARG(FUNCNAME, 1); \ + SAVE_ARG(FUNCNAME, 2); \ + SAVE_ARG(FUNCNAME, 3); \ + SAVE_ARG(FUNCNAME, 4); \ + SAVE_ARG(FUNCNAME, 5); \ + SAVE_ARG(FUNCNAME, 6); \ + SAVE_ARG(FUNCNAME, 7); \ + SAVE_ARG(FUNCNAME, 8); \ + SAVE_ARG(FUNCNAME, 9); \ + SAVE_ARG(FUNCNAME, 10); \ + SAVE_ARG(FUNCNAME, 11); \ + SAVE_ARG(FUNCNAME, 12); \ + SAVE_ARG(FUNCNAME, 13); \ + SAVE_ARG(FUNCNAME, 14); \ + SAVE_ARG(FUNCNAME, 15); \ + SAVE_ARG(FUNCNAME, 16); \ + SAVE_ARG(FUNCNAME, 17); \ + SAVE_ARG(FUNCNAME, 18); \ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + SAVE_ARG_HISTORY(FUNCNAME, 0); \ + SAVE_ARG_HISTORY(FUNCNAME, 1); \ + SAVE_ARG_HISTORY(FUNCNAME, 2); \ + SAVE_ARG_HISTORY(FUNCNAME, 3); \ + SAVE_ARG_HISTORY(FUNCNAME, 4); \ + SAVE_ARG_HISTORY(FUNCNAME, 5); \ + SAVE_ARG_HISTORY(FUNCNAME, 6); \ + SAVE_ARG_HISTORY(FUNCNAME, 7); \ + SAVE_ARG_HISTORY(FUNCNAME, 8); \ + SAVE_ARG_HISTORY(FUNCNAME, 9); \ + SAVE_ARG_HISTORY(FUNCNAME, 10); \ + SAVE_ARG_HISTORY(FUNCNAME, 11); \ + SAVE_ARG_HISTORY(FUNCNAME, 12); \ + SAVE_ARG_HISTORY(FUNCNAME, 13); \ + SAVE_ARG_HISTORY(FUNCNAME, 14); \ + SAVE_ARG_HISTORY(FUNCNAME, 15); \ + SAVE_ARG_HISTORY(FUNCNAME, 16); \ + SAVE_ARG_HISTORY(FUNCNAME, 17); \ + SAVE_ARG_HISTORY(FUNCNAME, 18); \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ + INCREMENT_CALL_COUNT(FUNCNAME); \ + REGISTER_CALL(FUNCNAME); \ + if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ + if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \ + va_list ap; \ + va_start(ap, arg18); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + } \ + else{ \ + va_list ap; \ + va_start(ap, arg18); \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + va_end(ap); \ + return ret; \ + return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, ap); \ + } \ + } \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + va_start(ap, arg18); \ + ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, ap); \ + va_end(ap); \ + SAVE_RET_HISTORY(FUNCNAME, ret); \ + return ret; \ + } \ + RETURN_FAKE_RESULT(FUNCNAME) \ + } \ + DEFINE_RESET_FUNCTION(FUNCNAME) \ + +#define FAKE_VALUE_FUNC20_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC20_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC20_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ + +/* MSVC expand macro fix */ +#define EXPAND(x) x + +#define PP_NARG_MINUS2(...) EXPAND(PP_NARG_MINUS2_(__VA_ARGS__, PP_RSEQ_N_MINUS2())) + +#define PP_NARG_MINUS2_(...) EXPAND(PP_ARG_MINUS2_N(__VA_ARGS__)) + +#define PP_ARG_MINUS2_N(returnVal, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, N, ...) N + +#define PP_RSEQ_N_MINUS2() 20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 + +#define PP_NARG_MINUS1(...) EXPAND(PP_NARG_MINUS1_(__VA_ARGS__, PP_RSEQ_N_MINUS1())) + +#define PP_NARG_MINUS1_(...) EXPAND(PP_ARG_MINUS1_N(__VA_ARGS__)) + +#define PP_ARG_MINUS1_N( _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, N, ...) N + +#define PP_RSEQ_N_MINUS1() 20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 + + + +/* DECLARE AND DEFINE FAKE FUNCTIONS - PLACE IN TEST FILES */ + +#define FAKE_VALUE_FUNC(...) EXPAND(FUNC_VALUE_(PP_NARG_MINUS2(__VA_ARGS__), __VA_ARGS__)) + +#define FUNC_VALUE_(N,...) EXPAND(FUNC_VALUE_N(N,__VA_ARGS__)) + +#define FUNC_VALUE_N(N,...) EXPAND(FAKE_VALUE_FUNC ## N(__VA_ARGS__)) + + +#define FAKE_VOID_FUNC(...) EXPAND(FUNC_VOID_(PP_NARG_MINUS1(__VA_ARGS__), __VA_ARGS__)) + +#define FUNC_VOID_(N,...) EXPAND(FUNC_VOID_N(N,__VA_ARGS__)) + +#define FUNC_VOID_N(N,...) EXPAND(FAKE_VOID_FUNC ## N(__VA_ARGS__)) + + +#define FAKE_VALUE_FUNC_VARARG(...) EXPAND(FUNC_VALUE_VARARG_(PP_NARG_MINUS2(__VA_ARGS__), __VA_ARGS__)) + +#define FUNC_VALUE_VARARG_(N,...) EXPAND(FUNC_VALUE_VARARG_N(N,__VA_ARGS__)) + +#define FUNC_VALUE_VARARG_N(N,...) EXPAND(FAKE_VALUE_FUNC ## N ## _VARARG(__VA_ARGS__)) + + +#define FAKE_VOID_FUNC_VARARG(...) EXPAND(FUNC_VOID_VARARG_(PP_NARG_MINUS1(__VA_ARGS__), __VA_ARGS__)) + +#define FUNC_VOID_VARARG_(N,...) EXPAND(FUNC_VOID_VARARG_N(N,__VA_ARGS__)) + +#define FUNC_VOID_VARARG_N(N,...) EXPAND(FAKE_VOID_FUNC ## N ## _VARARG(__VA_ARGS__)) + + + +/* DECLARE FAKE FUNCTIONS - PLACE IN HEADER FILES */ + +#define DECLARE_FAKE_VALUE_FUNC(...) EXPAND(DECLARE_FUNC_VALUE_(PP_NARG_MINUS2(__VA_ARGS__), __VA_ARGS__)) + +#define DECLARE_FUNC_VALUE_(N,...) EXPAND(DECLARE_FUNC_VALUE_N(N,__VA_ARGS__)) + +#define DECLARE_FUNC_VALUE_N(N,...) EXPAND(DECLARE_FAKE_VALUE_FUNC ## N(__VA_ARGS__)) + + +#define DECLARE_FAKE_VOID_FUNC(...) EXPAND(DECLARE_FUNC_VOID_(PP_NARG_MINUS1(__VA_ARGS__), __VA_ARGS__)) + +#define DECLARE_FUNC_VOID_(N,...) EXPAND(DECLARE_FUNC_VOID_N(N,__VA_ARGS__)) + +#define DECLARE_FUNC_VOID_N(N,...) EXPAND(DECLARE_FAKE_VOID_FUNC ## N(__VA_ARGS__)) + + +#define DECLARE_FAKE_VALUE_FUNC_VARARG(...) EXPAND(DECLARE_FUNC_VALUE_VARARG_(PP_NARG_MINUS2(__VA_ARGS__), __VA_ARGS__)) + +#define DECLARE_FUNC_VALUE_VARARG_(N,...) EXPAND(DECLARE_FUNC_VALUE_VARARG_N(N,__VA_ARGS__)) + +#define DECLARE_FUNC_VALUE_VARARG_N(N,...) EXPAND(DECLARE_FAKE_VALUE_FUNC ## N ## _VARARG(__VA_ARGS__)) + + +#define DECLARE_FAKE_VOID_FUNC_VARARG(...) EXPAND(DECLARE_FUNC_VOID_VARARG_(PP_NARG_MINUS1(__VA_ARGS__), __VA_ARGS__)) + +#define DECLARE_FUNC_VOID_VARARG_(N,...) EXPAND(DECLARE_FUNC_VOID_VARARG_N(N,__VA_ARGS__)) + +#define DECLARE_FUNC_VOID_VARARG_N(N,...) EXPAND(DECLARE_FAKE_VOID_FUNC ## N ## _VARARG(__VA_ARGS__)) + + + +/* DEFINE FAKE FUNCTIONS - PLACE IN SOURCE FILES */ + +#define DEFINE_FAKE_VALUE_FUNC(...) EXPAND(DEFINE_FUNC_VALUE_(PP_NARG_MINUS2(__VA_ARGS__), __VA_ARGS__)) + +#define DEFINE_FUNC_VALUE_(N,...) EXPAND(DEFINE_FUNC_VALUE_N(N,__VA_ARGS__)) + +#define DEFINE_FUNC_VALUE_N(N,...) EXPAND(DEFINE_FAKE_VALUE_FUNC ## N(__VA_ARGS__)) + + +#define DEFINE_FAKE_VOID_FUNC(...) EXPAND(DEFINE_FUNC_VOID_(PP_NARG_MINUS1(__VA_ARGS__), __VA_ARGS__)) + +#define DEFINE_FUNC_VOID_(N,...) EXPAND(DEFINE_FUNC_VOID_N(N,__VA_ARGS__)) + +#define DEFINE_FUNC_VOID_N(N,...) EXPAND(DEFINE_FAKE_VOID_FUNC ## N(__VA_ARGS__)) + + +#define DEFINE_FAKE_VALUE_FUNC_VARARG(...) EXPAND(DEFINE_FUNC_VALUE_VARARG_(PP_NARG_MINUS2(__VA_ARGS__), __VA_ARGS__)) + +#define DEFINE_FUNC_VALUE_VARARG_(N,...) EXPAND(DEFINE_FUNC_VALUE_VARARG_N(N,__VA_ARGS__)) + +#define DEFINE_FUNC_VALUE_VARARG_N(N,...) EXPAND(DEFINE_FAKE_VALUE_FUNC ## N ## _VARARG(__VA_ARGS__)) + + +#define DEFINE_FAKE_VOID_FUNC_VARARG(...) EXPAND(DEFINE_FUNC_VOID_VARARG_(PP_NARG_MINUS1(__VA_ARGS__), __VA_ARGS__)) + +#define DEFINE_FUNC_VOID_VARARG_(N,...) EXPAND(DEFINE_FUNC_VOID_VARARG_N(N,__VA_ARGS__)) + +#define DEFINE_FUNC_VOID_VARARG_N(N,...) EXPAND(DEFINE_FAKE_VOID_FUNC ## N ## _VARARG(__VA_ARGS__)) + + + + +#endif /* FAKE_FUNCTIONS */ From 585077097e6a1fff10d1ce81f555189a9b9df6c9 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 12:33:50 +0600 Subject: [PATCH 24/41] Update BUILD --- UnitTests_App/UnitSource/BUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/UnitTests_App/UnitSource/BUILD b/UnitTests_App/UnitSource/BUILD index 3dfaf37..40390a2 100644 --- a/UnitTests_App/UnitSource/BUILD +++ b/UnitTests_App/UnitSource/BUILD @@ -4,5 +4,5 @@ cc_test( name = "UnitTestsAPP_test", size = "small", srcs = ["UnitTestsMain.cpp"], - deps = ["@com_google_googletest//:gtest_main"], -) \ No newline at end of file + deps = ["@com_google_googletest//:gtest_main"] +) From 8f6308abdf964294484b2ff3b13a946f249502db Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 12:35:39 +0600 Subject: [PATCH 25/41] Update gtest.yml --- .github/workflows/gtest.yml | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/.github/workflows/gtest.yml b/.github/workflows/gtest.yml index 9fadc4c..f4b500b 100644 --- a/.github/workflows/gtest.yml +++ b/.github/workflows/gtest.yml @@ -11,23 +11,17 @@ jobs: runs-on: ubuntu-latest steps: - name: Clone GTest - run: git clone https://github.com/google/googletest.git -b release-1.10.0 + run: git clone https://github.com/google/googletest.git -b release-1.10.0 - name: Install gtest manually working-directory: ./googletest - run: sudo apt install python3-pip && + run: sudo apt install python3-pip && cmake . && make && sudo make install - name: Install Bazel - run: sudo apt install nodejs && + run: sudo apt install nodejs && sudo npm install -g @bazel/bazelisk - uses: actions/checkout@v1 - - name: Create Directory - run: mkdir build -# - name: Configure -# working-directory: ./build -# run: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. - name: Run Test working-directory: ./UnitTests_App - run: bazel test --test_output=all //UnitSource:UnitTestsAPP_test -# run: /home/runner/work/github_actions_gtest_example/github_actions_gtest_example/build/test/github_actions_gtest_example.test + run: bazel test --test_output=all //UnitSource:UnitTestsAPP_test From 19cc51923a6d22ac033b8eb8defd7d037bb777a5 Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 12:36:48 +0600 Subject: [PATCH 26/41] Delete BUILD.bazel --- UnitTests_App/UnitSource/BUILD.bazel | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 UnitTests_App/UnitSource/BUILD.bazel diff --git a/UnitTests_App/UnitSource/BUILD.bazel b/UnitTests_App/UnitSource/BUILD.bazel deleted file mode 100644 index cb083ab..0000000 --- a/UnitTests_App/UnitSource/BUILD.bazel +++ /dev/null @@ -1,9 +0,0 @@ -load("@rules_cc//cc:defs.bzl", "cc_test") - -cc_test( - name = "UnitTestsAPP_test", - size = "small", - srcs = ["UnitTestsMain.cpp"], - hdrs = ["UnitTestsMain.h"] - deps = ["@com_google_googletest//:gtest_main"], -) From 80995af6b0056b6500c651665c21027c318c21de Mon Sep 17 00:00:00 2001 From: Rakibul Yeasin Date: Mon, 21 Jun 2021 20:32:50 +0600 Subject: [PATCH 27/41] Added Test Functionality --- .github/workflows/gtest.yml | 3 - Inc/BUILD | 7 + .../UnitHeader => Inc}/HelperFunctions.h | 0 .../UnitHeader => Inc}/MockDeclarations.h | 0 .../UnitHeader => Inc}/UnitTestsMain.h | 0 {UnitTests_App/UnitHeader => Inc}/fff.h | 0 Src/BUILD | 9 + Src/Source1.cpp | 2 +- Tests/BUILD | 12 + .../UnitSource/Tests => Tests}/Test1.cpp | 12 +- UnitTests_App/.cproject | 219 - UnitTests_App/.gitignore | 1 - UnitTests_App/.project | 70 - UnitTests_App/.settings/language.settings.xml | 25 - UnitTests_App/CMakeLists.txt | 19 - UnitTests_App/GoogleTest/.clang-format | 4 - UnitTests_App/GoogleTest/.travis.yml | 65 - UnitTests_App/GoogleTest/BUILD.bazel | 182 - UnitTests_App/GoogleTest/CMakeLists.txt | 32 - UnitTests_App/GoogleTest/CONTRIBUTING.md | 142 - UnitTests_App/GoogleTest/LICENSE | 28 - UnitTests_App/GoogleTest/README.md | 135 - UnitTests_App/GoogleTest/WORKSPACE | 30 - UnitTests_App/GoogleTest/appveyor.yml | 156 - UnitTests_App/GoogleTest/build/CMakeCache.txt | 559 -- .../CMakeFiles/3.17.3/CMakeCCompiler.cmake | 76 - .../CMakeFiles/3.17.3/CMakeCXXCompiler.cmake | 88 - .../3.17.3/CMakeDetermineCompilerABI_C.bin | Bin 159629 -> 0 bytes .../3.17.3/CMakeDetermineCompilerABI_CXX.bin | Bin 159638 -> 0 bytes .../CMakeFiles/3.17.3/CMakeRCCompiler.cmake | 6 - .../build/CMakeFiles/3.17.3/CMakeSystem.cmake | 15 - .../3.17.3/CompilerIdC/CMakeCCompilerId.c | 671 -- .../build/CMakeFiles/3.17.3/CompilerIdC/a.exe | Bin 159745 -> 0 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 660 -- .../CMakeFiles/3.17.3/CompilerIdCXX/a.exe | Bin 159773 -> 0 bytes .../CMakeDirectoryInformation.cmake | 16 - .../build/CMakeFiles/CMakeOutput.log | 542 -- .../build/CMakeFiles/Makefile.cmake | 154 - .../GoogleTest/build/CMakeFiles/Makefile2 | 250 - .../build/CMakeFiles/TargetDirectories.txt | 25 - .../build/CMakeFiles/cmake.check_cache | 1 - .../build/CMakeFiles/progress.marks | 1 - .../GoogleTest/build/CTestTestfile.cmake | 7 - UnitTests_App/GoogleTest/build/Makefile | 272 - .../GoogleTest/build/cmake_install.cmake | 50 - .../CMakeDirectoryInformation.cmake | 16 - .../CMakeFiles/gmock.dir/CXX.includecache | 614 -- .../CMakeFiles/gmock.dir/DependInfo.cmake | 25 - .../CMakeFiles/gmock.dir/build.make | 119 - .../CMakeFiles/gmock.dir/cmake_clean.cmake | 10 - .../gmock.dir/cmake_clean_target.cmake | 3 - .../CMakeFiles/gmock.dir/depend.internal | 45 - .../CMakeFiles/gmock.dir/depend.make | 45 - .../CMakeFiles/gmock.dir/flags.make | 10 - .../googlemock/CMakeFiles/gmock.dir/link.txt | 2 - .../CMakeFiles/gmock.dir/progress.make | 3 - .../CMakeFiles/gmock.dir/src/gmock-all.cc.o | Bin 1021528 -> 0 bytes .../gmock_main.dir/CXX.includecache | 534 - .../gmock_main.dir/DependInfo.cmake | 26 - .../CMakeFiles/gmock_main.dir/build.make | 119 - .../gmock_main.dir/cmake_clean.cmake | 10 - .../gmock_main.dir/cmake_clean_target.cmake | 3 - .../CMakeFiles/gmock_main.dir/depend.internal | 40 - .../CMakeFiles/gmock_main.dir/depend.make | 40 - .../CMakeFiles/gmock_main.dir/flags.make | 10 - .../CMakeFiles/gmock_main.dir/link.txt | 2 - .../CMakeFiles/gmock_main.dir/progress.make | 3 - .../gmock_main.dir/src/gmock_main.cc.o | Bin 3785 -> 0 bytes .../googlemock/CMakeFiles/progress.marks | 1 - .../build/googlemock/CTestTestfile.cmake | 7 - .../GoogleTest/build/googlemock/Makefile | 308 - .../build/googlemock/cmake_install.cmake | 60 - .../CMakeDirectoryInformation.cmake | 16 - .../cmake/GTest/GTestTargets-noconfig.cmake | 49 - .../Export/lib/cmake/GTest/GTestTargets.cmake | 131 - .../CMakeFiles/gtest.dir/CXX.includecache | 682 -- .../CMakeFiles/gtest.dir/DependInfo.cmake | 22 - .../CMakeFiles/gtest.dir/build.make | 119 - .../CMakeFiles/gtest.dir/cmake_clean.cmake | 10 - .../gtest.dir/cmake_clean_target.cmake | 3 - .../CMakeFiles/gtest.dir/depend.internal | 36 - .../CMakeFiles/gtest.dir/depend.make | 36 - .../CMakeFiles/gtest.dir/flags.make | 10 - .../googletest/CMakeFiles/gtest.dir/link.txt | 2 - .../CMakeFiles/gtest.dir/progress.make | 3 - .../CMakeFiles/gtest.dir/src/gtest-all.cc.o | Bin 2670940 -> 0 bytes .../gtest_main.dir/CXX.includecache | 334 - .../gtest_main.dir/DependInfo.cmake | 23 - .../CMakeFiles/gtest_main.dir/build.make | 119 - .../gtest_main.dir/cmake_clean.cmake | 10 - .../gtest_main.dir/cmake_clean_target.cmake | 3 - .../CMakeFiles/gtest_main.dir/depend.internal | 25 - .../CMakeFiles/gtest_main.dir/depend.make | 25 - .../CMakeFiles/gtest_main.dir/flags.make | 10 - .../CMakeFiles/gtest_main.dir/link.txt | 2 - .../CMakeFiles/gtest_main.dir/progress.make | 3 - .../gtest_main.dir/src/gtest_main.cc.o | Bin 3529 -> 0 bytes .../googletest/CMakeFiles/progress.marks | 1 - .../build/googletest/CTestTestfile.cmake | 6 - .../GoogleTest/build/googletest/Makefile | 308 - .../build/googletest/cmake_install.cmake | 80 - .../googletest/generated/GTestConfig.cmake | 33 - .../generated/GTestConfigVersion.cmake | 37 - .../build/googletest/generated/gmock.pc | 10 - .../build/googletest/generated/gmock_main.pc | 10 - .../build/googletest/generated/gtest.pc | 9 - .../build/googletest/generated/gtest_main.pc | 10 - UnitTests_App/GoogleTest/build/lib/libgmock.a | Bin 1108232 -> 0 bytes .../GoogleTest/build/lib/libgmock_main.a | Bin 4034 -> 0 bytes UnitTests_App/GoogleTest/build/lib/libgtest.a | Bin 2896288 -> 0 bytes .../GoogleTest/build/lib/libgtest_main.a | Bin 3756 -> 0 bytes .../GoogleTest/ci/build-linux-bazel.sh | 36 - .../GoogleTest/ci/build-platformio.sh | 2 - UnitTests_App/GoogleTest/ci/env-linux.sh | 41 - UnitTests_App/GoogleTest/ci/env-osx.sh | 41 - .../GoogleTest/ci/get-nprocessors.sh | 48 - UnitTests_App/GoogleTest/ci/install-linux.sh | 49 - UnitTests_App/GoogleTest/ci/install-osx.sh | 39 - .../GoogleTest/ci/install-platformio.sh | 5 - UnitTests_App/GoogleTest/ci/log-config.sh | 47 - UnitTests_App/GoogleTest/ci/travis.sh | 29 - .../GoogleTest/googlemock/CMakeLists.txt | 219 - .../GoogleTest/googlemock/CONTRIBUTORS | 40 - UnitTests_App/GoogleTest/googlemock/LICENSE | 28 - UnitTests_App/GoogleTest/googlemock/README.md | 44 - .../GoogleTest/googlemock/cmake/gmock.pc.in | 10 - .../googlemock/cmake/gmock_main.pc.in | 10 - .../GoogleTest/googlemock/docs/cheat_sheet.md | 786 -- .../docs/community_created_documentation.md | 9 - .../GoogleTest/googlemock/docs/cook_book.md | 4266 -------- .../GoogleTest/googlemock/docs/for_dummies.md | 702 -- .../GoogleTest/googlemock/docs/gmock_faq.md | 398 - .../GoogleTest/googlemock/docs/pump_manual.md | 189 - .../googlemock/include/gmock/gmock-actions.h | 1688 ---- .../include/gmock/gmock-cardinalities.h | 157 - .../include/gmock/gmock-function-mocker.h | 479 - .../include/gmock/gmock-generated-actions.h | 577 -- .../gmock/gmock-generated-actions.h.pump | 390 - .../googlemock/include/gmock/gmock-matchers.h | 5394 ----------- .../include/gmock/gmock-more-matchers.h | 92 - .../include/gmock/gmock-nice-strict.h | 262 - .../include/gmock/gmock-spec-builders.h | 2036 ---- .../googlemock/include/gmock/gmock.h | 98 - .../include/gmock/internal/custom/README.md | 16 - .../internal/custom/gmock-generated-actions.h | 10 - .../custom/gmock-generated-actions.h.pump | 12 - .../gmock/internal/custom/gmock-matchers.h | 36 - .../gmock/internal/custom/gmock-port.h | 39 - .../gmock/internal/gmock-internal-utils.h | 459 - .../include/gmock/internal/gmock-port.h | 87 - .../include/gmock/internal/gmock-pp.h | 279 - .../GoogleTest/googlemock/scripts/README.md | 5 - .../googlemock/scripts/fuse_gmock_files.py | 257 - .../googlemock/scripts/generator/LICENSE | 203 - .../googlemock/scripts/generator/README | 34 - .../scripts/generator/README.cppclean | 115 - .../scripts/generator/cpp/__init__.py | 0 .../googlemock/scripts/generator/cpp/ast.py | 1772 ---- .../scripts/generator/cpp/gmock_class.py | 245 - .../scripts/generator/cpp/gmock_class_test.py | 552 -- .../scripts/generator/cpp/keywords.py | 56 - .../scripts/generator/cpp/tokenize.py | 284 - .../googlemock/scripts/generator/cpp/utils.py | 37 - .../googlemock/scripts/generator/gmock_gen.py | 30 - .../GoogleTest/googlemock/scripts/pump.py | 856 -- .../GoogleTest/googlemock/src/gmock-all.cc | 46 - .../googlemock/src/gmock-cardinalities.cc | 155 - .../googlemock/src/gmock-internal-utils.cc | 200 - .../googlemock/src/gmock-matchers.cc | 459 - .../googlemock/src/gmock-spec-builders.cc | 908 -- .../GoogleTest/googlemock/src/gmock.cc | 213 - .../GoogleTest/googlemock/src/gmock_main.cc | 72 - .../GoogleTest/googlemock/test/BUILD.bazel | 119 - .../googlemock/test/gmock-actions_test.cc | 1583 --- .../test/gmock-cardinalities_test.cc | 429 - .../test/gmock-function-mocker_nc.cc | 16 - .../test/gmock-function-mocker_nc_test.py | 43 - .../test/gmock-function-mocker_test.cc | 974 -- .../test/gmock-generated-actions_test.cc | 1036 -- .../test/gmock-internal-utils_test.cc | 720 -- .../googlemock/test/gmock-matchers_test.cc | 8562 ----------------- .../test/gmock-more-actions_test.cc | 725 -- .../googlemock/test/gmock-nice-strict_test.cc | 539 -- .../googlemock/test/gmock-port_test.cc | 42 - .../googlemock/test/gmock-pp-string_test.cc | 206 - .../googlemock/test/gmock-pp_test.cc | 83 - .../test/gmock-spec-builders_test.cc | 2775 ------ .../googlemock/test/gmock_all_test.cc | 47 - .../googlemock/test/gmock_ex_test.cc | 80 - .../googlemock/test/gmock_leak_test.py | 104 - .../googlemock/test/gmock_leak_test_.cc | 99 - .../googlemock/test/gmock_link2_test.cc | 39 - .../googlemock/test/gmock_link_test.cc | 39 - .../googlemock/test/gmock_link_test.h | 690 -- .../googlemock/test/gmock_output_test.py | 183 - .../googlemock/test/gmock_output_test_.cc | 309 - .../test/gmock_output_test_golden.txt | 317 - .../googlemock/test/gmock_stress_test.cc | 240 - .../GoogleTest/googlemock/test/gmock_test.cc | 181 - .../googlemock/test/gmock_test_utils.py | 108 - .../GoogleTest/googlemock/test/pump_test.py | 182 - .../GoogleTest/googletest/CMakeLists.txt | 320 - .../GoogleTest/googletest/CONTRIBUTORS | 38 - UnitTests_App/GoogleTest/googletest/LICENSE | 28 - UnitTests_App/GoogleTest/googletest/README.md | 262 - .../googletest/cmake/Config.cmake.in | 9 - .../GoogleTest/googletest/cmake/gtest.pc.in | 9 - .../googletest/cmake/gtest_main.pc.in | 10 - .../googletest/cmake/internal_utils.cmake | 341 - .../googletest/cmake/libgtest.la.in | 21 - .../GoogleTest/googletest/docs/advanced.md | 2640 ----- .../GoogleTest/googletest/docs/faq.md | 771 -- .../GoogleTest/googletest/docs/pkgconfig.md | 150 - .../GoogleTest/googletest/docs/primer.md | 583 -- .../GoogleTest/googletest/docs/samples.md | 22 - .../include/gtest/gtest-death-test.h | 342 - .../googletest/include/gtest/gtest-matchers.h | 756 -- .../googletest/include/gtest/gtest-message.h | 219 - .../include/gtest/gtest-param-test.h | 512 - .../googletest/include/gtest/gtest-printers.h | 903 -- .../googletest/include/gtest/gtest-spi.h | 238 - .../include/gtest/gtest-test-part.h | 184 - .../include/gtest/gtest-typed-test.h | 337 - .../googletest/include/gtest/gtest.h | 2491 ----- .../include/gtest/gtest_pred_impl.h | 359 - .../googletest/include/gtest/gtest_prod.h | 61 - .../include/gtest/internal/custom/README.md | 56 - .../gtest/internal/custom/gtest-port.h | 37 - .../gtest/internal/custom/gtest-printers.h | 42 - .../include/gtest/internal/custom/gtest.h | 37 - .../internal/gtest-death-test-internal.h | 304 - .../include/gtest/internal/gtest-filepath.h | 211 - .../include/gtest/internal/gtest-internal.h | 1564 --- .../include/gtest/internal/gtest-param-util.h | 947 -- .../include/gtest/internal/gtest-port-arch.h | 112 - .../include/gtest/internal/gtest-port.h | 2371 ----- .../include/gtest/internal/gtest-string.h | 175 - .../include/gtest/internal/gtest-type-util.h | 187 - .../googletest/samples/prime_tables.h | 126 - .../GoogleTest/googletest/samples/sample1.cc | 66 - .../GoogleTest/googletest/samples/sample1.h | 41 - .../googletest/samples/sample10_unittest.cc | 139 - .../googletest/samples/sample1_unittest.cc | 151 - .../GoogleTest/googletest/samples/sample2.cc | 54 - .../GoogleTest/googletest/samples/sample2.h | 81 - .../googletest/samples/sample2_unittest.cc | 107 - .../googletest/samples/sample3-inl.h | 172 - .../googletest/samples/sample3_unittest.cc | 149 - .../GoogleTest/googletest/samples/sample4.cc | 54 - .../GoogleTest/googletest/samples/sample4.h | 53 - .../googletest/samples/sample4_unittest.cc | 53 - .../googletest/samples/sample5_unittest.cc | 196 - .../googletest/samples/sample6_unittest.cc | 224 - .../googletest/samples/sample7_unittest.cc | 117 - .../googletest/samples/sample8_unittest.cc | 154 - .../googletest/samples/sample9_unittest.cc | 156 - .../GoogleTest/googletest/scripts/README.md | 5 - .../GoogleTest/googletest/scripts/common.py | 83 - .../googletest/scripts/fuse_gtest_files.py | 253 - .../googletest/scripts/gen_gtest_pred_impl.py | 733 -- .../googletest/scripts/gtest-config.in | 274 - .../googletest/scripts/release_docs.py | 158 - .../googletest/scripts/run_with_path.py | 32 - .../googletest/scripts/test/Makefile | 59 - .../GoogleTest/googletest/scripts/upload.py | 1402 --- .../googletest/scripts/upload_gtest.py | 78 - .../GoogleTest/googletest/src/gtest-all.cc | 48 - .../googletest/src/gtest-death-test.cc | 1644 ---- .../googletest/src/gtest-filepath.cc | 368 - .../googletest/src/gtest-internal-inl.h | 1228 --- .../googletest/src/gtest-matchers.cc | 97 - .../GoogleTest/googletest/src/gtest-port.cc | 1404 --- .../googletest/src/gtest-printers.cc | 444 - .../googletest/src/gtest-test-part.cc | 108 - .../googletest/src/gtest-typed-test.cc | 111 - .../GoogleTest/googletest/src/gtest.cc | 6606 ------------- .../GoogleTest/googletest/src/gtest_main.cc | 59 - .../GoogleTest/googletest/test/BUILD.bazel | 571 -- .../googletest-break-on-failure-unittest.py | 208 - .../googletest-break-on-failure-unittest_.cc | 86 - .../test/googletest-catch-exceptions-test.py | 236 - .../test/googletest-catch-exceptions-test_.cc | 293 - .../googletest/test/googletest-color-test.py | 127 - .../googletest/test/googletest-color-test_.cc | 62 - .../test/googletest-death-test-test.cc | 1542 --- .../test/googletest-death-test_ex_test.cc | 92 - .../test/googletest-env-var-test.py | 120 - .../test/googletest-env-var-test_.cc | 132 - .../test/googletest-failfast-unittest.py | 410 - .../test/googletest-failfast-unittest_.cc | 167 - .../test/googletest-filepath-test.cc | 649 -- .../test/googletest-filter-unittest.py | 639 -- .../test/googletest-filter-unittest_.cc | 137 - .../test/googletest-json-outfiles-test.py | 191 - .../test/googletest-json-output-unittest.py | 804 -- .../test/googletest-list-tests-unittest.py | 205 - .../test/googletest-list-tests-unittest_.cc | 156 - .../test/googletest-listener-test.cc | 518 - .../test/googletest-message-test.cc | 158 - .../test/googletest-options-test.cc | 216 - .../googletest-output-test-golden-lin.txt | 1180 --- .../googletest/test/googletest-output-test.py | 346 - .../test/googletest-output-test_.cc | 1126 --- ...oogletest-param-test-invalid-name1-test.py | 63 - ...ogletest-param-test-invalid-name1-test_.cc | 50 - ...oogletest-param-test-invalid-name2-test.py | 62 - ...ogletest-param-test-invalid-name2-test_.cc | 55 - .../test/googletest-param-test-test.cc | 1119 --- .../test/googletest-param-test-test.h | 51 - .../test/googletest-param-test2-test.cc | 61 - .../googletest/test/googletest-port-test.cc | 1280 --- .../test/googletest-printers-test.cc | 1847 ---- .../test/googletest-setuptestsuite-test.py | 54 - .../test/googletest-setuptestsuite-test_.cc | 49 - .../test/googletest-shuffle-test.py | 323 - .../test/googletest-shuffle-test_.cc | 101 - .../test/googletest-test-part-test.cc | 230 - .../test/googletest-throw-on-failure-test.py | 168 - .../test/googletest-throw-on-failure-test_.cc | 71 - .../test/googletest-uninitialized-test.py | 67 - .../test/googletest-uninitialized-test_.cc | 42 - .../googletest/test/gtest-typed-test2_test.cc | 44 - .../googletest/test/gtest-typed-test_test.cc | 462 - .../googletest/test/gtest-typed-test_test.h | 65 - .../test/gtest-unittest-api_test.cc | 341 - .../googletest/test/gtest_all_test.cc | 46 - .../test/gtest_assert_by_exception_test.cc | 116 - .../googletest/test/gtest_environment_test.cc | 188 - .../googletest/test/gtest_help_test.py | 171 - .../googletest/test/gtest_help_test_.cc | 45 - .../googletest/test/gtest_json_test_utils.py | 60 - .../test/gtest_list_output_unittest.py | 286 - .../test/gtest_list_output_unittest_.cc | 81 - .../googletest/test/gtest_main_unittest.cc | 44 - .../googletest/test/gtest_no_test_unittest.cc | 54 - .../test/gtest_pred_impl_unittest.cc | 2422 ----- .../test/gtest_premature_exit_test.cc | 126 - .../googletest/test/gtest_prod_test.cc | 56 - .../googletest/test/gtest_repeat_test.cc | 233 - .../test/gtest_skip_check_output_test.py | 59 - ...test_skip_environment_check_output_test.py | 54 - .../gtest_skip_in_environment_setup_test.cc | 49 - .../googletest/test/gtest_skip_test.cc | 55 - .../googletest/test/gtest_sole_header_test.cc | 56 - .../googletest/test/gtest_stress_test.cc | 248 - .../gtest_test_macro_stack_footprint_test.cc | 89 - .../googletest/test/gtest_test_utils.py | 312 - .../googletest/test/gtest_testbridge_test.py | 63 - .../googletest/test/gtest_testbridge_test_.cc | 43 - .../test/gtest_throw_on_failure_ex_test.cc | 90 - .../googletest/test/gtest_unittest.cc | 7792 --------------- .../test/gtest_xml_outfile1_test_.cc | 43 - .../test/gtest_xml_outfile2_test_.cc | 43 - .../test/gtest_xml_outfiles_test.py | 135 - .../test/gtest_xml_output_unittest.py | 405 - .../test/gtest_xml_output_unittest_.cc | 197 - .../googletest/test/gtest_xml_test_utils.py | 197 - .../GoogleTest/googletest/test/production.cc | 35 - .../GoogleTest/googletest/test/production.h | 54 - UnitTests_App/GoogleTest/library.json | 62 - UnitTests_App/GoogleTest/platformio.ini | 47 - UnitTests_App/UnitSource/BUILD | 8 - UnitTests_App/UnitSource/BUILD.bazel | 9 - UnitTests_App/UnitSource/HelperFunctions.cpp | 72 - UnitTests_App/UnitSource/HelperFunctions.h | 21 - UnitTests_App/UnitSource/MockDeclarations.h | 17 - UnitTests_App/UnitSource/MockDefinitions.cpp | 12 - UnitTests_App/UnitSource/UnitTestsMain.cpp | 14 - UnitTests_App/UnitSource/UnitTestsMain.h | 25 - UnitTests_App/UnitSource/fff.h | 6643 ------------- UnitTests_App/WORKSPACE => WORKSPACE | 2 +- 371 files changed, 36 insertions(+), 127651 deletions(-) create mode 100644 Inc/BUILD rename {UnitTests_App/UnitHeader => Inc}/HelperFunctions.h (100%) rename {UnitTests_App/UnitHeader => Inc}/MockDeclarations.h (100%) rename {UnitTests_App/UnitHeader => Inc}/UnitTestsMain.h (100%) rename {UnitTests_App/UnitHeader => Inc}/fff.h (100%) create mode 100644 Src/BUILD create mode 100644 Tests/BUILD rename {UnitTests_App/UnitSource/Tests => Tests}/Test1.cpp (87%) delete mode 100644 UnitTests_App/.cproject delete mode 100644 UnitTests_App/.gitignore delete mode 100644 UnitTests_App/.project delete mode 100644 UnitTests_App/.settings/language.settings.xml delete mode 100644 UnitTests_App/CMakeLists.txt delete mode 100644 UnitTests_App/GoogleTest/.clang-format delete mode 100644 UnitTests_App/GoogleTest/.travis.yml delete mode 100644 UnitTests_App/GoogleTest/BUILD.bazel delete mode 100644 UnitTests_App/GoogleTest/CMakeLists.txt delete mode 100644 UnitTests_App/GoogleTest/CONTRIBUTING.md delete mode 100644 UnitTests_App/GoogleTest/LICENSE delete mode 100644 UnitTests_App/GoogleTest/README.md delete mode 100644 UnitTests_App/GoogleTest/WORKSPACE delete mode 100644 UnitTests_App/GoogleTest/appveyor.yml delete mode 100644 UnitTests_App/GoogleTest/build/CMakeCache.txt delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeCCompiler.cmake delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeCXXCompiler.cmake delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_C.bin delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeRCCompiler.cmake delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeSystem.cmake delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.c delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CompilerIdC/a.exe delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CompilerIdCXX/CMakeCXXCompilerId.cpp delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CompilerIdCXX/a.exe delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/CMakeDirectoryInformation.cmake delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/CMakeOutput.log delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/Makefile.cmake delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/Makefile2 delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/TargetDirectories.txt delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/cmake.check_cache delete mode 100644 UnitTests_App/GoogleTest/build/CMakeFiles/progress.marks delete mode 100644 UnitTests_App/GoogleTest/build/CTestTestfile.cmake delete mode 100644 UnitTests_App/GoogleTest/build/Makefile delete mode 100644 UnitTests_App/GoogleTest/build/cmake_install.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/CMakeDirectoryInformation.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/CXX.includecache delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/DependInfo.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/build.make delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/cmake_clean.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/cmake_clean_target.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/depend.internal delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/depend.make delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/flags.make delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/link.txt delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/progress.make delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/CXX.includecache delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/DependInfo.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/build.make delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/cmake_clean.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/cmake_clean_target.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/depend.internal delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/depend.make delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/flags.make delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/link.txt delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/progress.make delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/progress.marks delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/CTestTestfile.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/Makefile delete mode 100644 UnitTests_App/GoogleTest/build/googlemock/cmake_install.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/CMakeDirectoryInformation.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/Export/lib/cmake/GTest/GTestTargets-noconfig.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/Export/lib/cmake/GTest/GTestTargets.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/CXX.includecache delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/DependInfo.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/build.make delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/cmake_clean.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/cmake_clean_target.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/depend.internal delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/depend.make delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/flags.make delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/link.txt delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/progress.make delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/CXX.includecache delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/build.make delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/cmake_clean.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/cmake_clean_target.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/depend.internal delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/depend.make delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/flags.make delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/link.txt delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/progress.make delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CMakeFiles/progress.marks delete mode 100644 UnitTests_App/GoogleTest/build/googletest/CTestTestfile.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googletest/Makefile delete mode 100644 UnitTests_App/GoogleTest/build/googletest/cmake_install.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googletest/generated/GTestConfig.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googletest/generated/GTestConfigVersion.cmake delete mode 100644 UnitTests_App/GoogleTest/build/googletest/generated/gmock.pc delete mode 100644 UnitTests_App/GoogleTest/build/googletest/generated/gmock_main.pc delete mode 100644 UnitTests_App/GoogleTest/build/googletest/generated/gtest.pc delete mode 100644 UnitTests_App/GoogleTest/build/googletest/generated/gtest_main.pc delete mode 100644 UnitTests_App/GoogleTest/build/lib/libgmock.a delete mode 100644 UnitTests_App/GoogleTest/build/lib/libgmock_main.a delete mode 100644 UnitTests_App/GoogleTest/build/lib/libgtest.a delete mode 100644 UnitTests_App/GoogleTest/build/lib/libgtest_main.a delete mode 100644 UnitTests_App/GoogleTest/ci/build-linux-bazel.sh delete mode 100644 UnitTests_App/GoogleTest/ci/build-platformio.sh delete mode 100644 UnitTests_App/GoogleTest/ci/env-linux.sh delete mode 100644 UnitTests_App/GoogleTest/ci/env-osx.sh delete mode 100644 UnitTests_App/GoogleTest/ci/get-nprocessors.sh delete mode 100644 UnitTests_App/GoogleTest/ci/install-linux.sh delete mode 100644 UnitTests_App/GoogleTest/ci/install-osx.sh delete mode 100644 UnitTests_App/GoogleTest/ci/install-platformio.sh delete mode 100644 UnitTests_App/GoogleTest/ci/log-config.sh delete mode 100644 UnitTests_App/GoogleTest/ci/travis.sh delete mode 100644 UnitTests_App/GoogleTest/googlemock/CMakeLists.txt delete mode 100644 UnitTests_App/GoogleTest/googlemock/CONTRIBUTORS delete mode 100644 UnitTests_App/GoogleTest/googlemock/LICENSE delete mode 100644 UnitTests_App/GoogleTest/googlemock/README.md delete mode 100644 UnitTests_App/GoogleTest/googlemock/cmake/gmock.pc.in delete mode 100644 UnitTests_App/GoogleTest/googlemock/cmake/gmock_main.pc.in delete mode 100644 UnitTests_App/GoogleTest/googlemock/docs/cheat_sheet.md delete mode 100644 UnitTests_App/GoogleTest/googlemock/docs/community_created_documentation.md delete mode 100644 UnitTests_App/GoogleTest/googlemock/docs/cook_book.md delete mode 100644 UnitTests_App/GoogleTest/googlemock/docs/for_dummies.md delete mode 100644 UnitTests_App/GoogleTest/googlemock/docs/gmock_faq.md delete mode 100644 UnitTests_App/GoogleTest/googlemock/docs/pump_manual.md delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-actions.h delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-cardinalities.h delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-function-mocker.h delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-generated-actions.h delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-generated-actions.h.pump delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-matchers.h delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-more-matchers.h delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-nice-strict.h delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-spec-builders.h delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/gmock.h delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/internal/custom/README.md delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/internal/custom/gmock-matchers.h delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/internal/custom/gmock-port.h delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/internal/gmock-internal-utils.h delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/internal/gmock-port.h delete mode 100644 UnitTests_App/GoogleTest/googlemock/include/gmock/internal/gmock-pp.h delete mode 100644 UnitTests_App/GoogleTest/googlemock/scripts/README.md delete mode 100644 UnitTests_App/GoogleTest/googlemock/scripts/fuse_gmock_files.py delete mode 100644 UnitTests_App/GoogleTest/googlemock/scripts/generator/LICENSE delete mode 100644 UnitTests_App/GoogleTest/googlemock/scripts/generator/README delete mode 100644 UnitTests_App/GoogleTest/googlemock/scripts/generator/README.cppclean delete mode 100644 UnitTests_App/GoogleTest/googlemock/scripts/generator/cpp/__init__.py delete mode 100644 UnitTests_App/GoogleTest/googlemock/scripts/generator/cpp/ast.py delete mode 100644 UnitTests_App/GoogleTest/googlemock/scripts/generator/cpp/gmock_class.py delete mode 100644 UnitTests_App/GoogleTest/googlemock/scripts/generator/cpp/gmock_class_test.py delete mode 100644 UnitTests_App/GoogleTest/googlemock/scripts/generator/cpp/keywords.py delete mode 100644 UnitTests_App/GoogleTest/googlemock/scripts/generator/cpp/tokenize.py delete mode 100644 UnitTests_App/GoogleTest/googlemock/scripts/generator/cpp/utils.py delete mode 100644 UnitTests_App/GoogleTest/googlemock/scripts/generator/gmock_gen.py delete mode 100644 UnitTests_App/GoogleTest/googlemock/scripts/pump.py delete mode 100644 UnitTests_App/GoogleTest/googlemock/src/gmock-all.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/src/gmock-cardinalities.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/src/gmock-internal-utils.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/src/gmock-matchers.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/src/gmock-spec-builders.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/src/gmock.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/src/gmock_main.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/BUILD.bazel delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock-actions_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock-cardinalities_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock-function-mocker_nc.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock-function-mocker_nc_test.py delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock-function-mocker_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock-generated-actions_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock-internal-utils_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock-matchers_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock-more-actions_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock-nice-strict_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock-port_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock-pp-string_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock-pp_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock-spec-builders_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock_all_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock_ex_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock_leak_test.py delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock_leak_test_.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock_link2_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock_link_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock_link_test.h delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock_output_test.py delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock_output_test_.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock_output_test_golden.txt delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock_stress_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock_test.cc delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/gmock_test_utils.py delete mode 100644 UnitTests_App/GoogleTest/googlemock/test/pump_test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/CMakeLists.txt delete mode 100644 UnitTests_App/GoogleTest/googletest/CONTRIBUTORS delete mode 100644 UnitTests_App/GoogleTest/googletest/LICENSE delete mode 100644 UnitTests_App/GoogleTest/googletest/README.md delete mode 100644 UnitTests_App/GoogleTest/googletest/cmake/Config.cmake.in delete mode 100644 UnitTests_App/GoogleTest/googletest/cmake/gtest.pc.in delete mode 100644 UnitTests_App/GoogleTest/googletest/cmake/gtest_main.pc.in delete mode 100644 UnitTests_App/GoogleTest/googletest/cmake/internal_utils.cmake delete mode 100644 UnitTests_App/GoogleTest/googletest/cmake/libgtest.la.in delete mode 100644 UnitTests_App/GoogleTest/googletest/docs/advanced.md delete mode 100644 UnitTests_App/GoogleTest/googletest/docs/faq.md delete mode 100644 UnitTests_App/GoogleTest/googletest/docs/pkgconfig.md delete mode 100644 UnitTests_App/GoogleTest/googletest/docs/primer.md delete mode 100644 UnitTests_App/GoogleTest/googletest/docs/samples.md delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/gtest-death-test.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/gtest-matchers.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/gtest-message.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/gtest-param-test.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/gtest-printers.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/gtest-spi.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/gtest-test-part.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/gtest-typed-test.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/gtest.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/gtest_pred_impl.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/gtest_prod.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/internal/custom/README.md delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/internal/custom/gtest-port.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/internal/custom/gtest-printers.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/internal/custom/gtest.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/internal/gtest-death-test-internal.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/internal/gtest-filepath.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/internal/gtest-internal.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/internal/gtest-param-util.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/internal/gtest-port-arch.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/internal/gtest-port.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/internal/gtest-string.h delete mode 100644 UnitTests_App/GoogleTest/googletest/include/gtest/internal/gtest-type-util.h delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/prime_tables.h delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample1.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample1.h delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample10_unittest.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample1_unittest.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample2.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample2.h delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample2_unittest.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample3-inl.h delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample3_unittest.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample4.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample4.h delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample4_unittest.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample5_unittest.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample6_unittest.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample7_unittest.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample8_unittest.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/samples/sample9_unittest.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/scripts/README.md delete mode 100644 UnitTests_App/GoogleTest/googletest/scripts/common.py delete mode 100644 UnitTests_App/GoogleTest/googletest/scripts/fuse_gtest_files.py delete mode 100644 UnitTests_App/GoogleTest/googletest/scripts/gen_gtest_pred_impl.py delete mode 100644 UnitTests_App/GoogleTest/googletest/scripts/gtest-config.in delete mode 100644 UnitTests_App/GoogleTest/googletest/scripts/release_docs.py delete mode 100644 UnitTests_App/GoogleTest/googletest/scripts/run_with_path.py delete mode 100644 UnitTests_App/GoogleTest/googletest/scripts/test/Makefile delete mode 100644 UnitTests_App/GoogleTest/googletest/scripts/upload.py delete mode 100644 UnitTests_App/GoogleTest/googletest/scripts/upload_gtest.py delete mode 100644 UnitTests_App/GoogleTest/googletest/src/gtest-all.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/src/gtest-death-test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/src/gtest-filepath.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/src/gtest-internal-inl.h delete mode 100644 UnitTests_App/GoogleTest/googletest/src/gtest-matchers.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/src/gtest-port.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/src/gtest-printers.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/src/gtest-test-part.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/src/gtest-typed-test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/src/gtest.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/src/gtest_main.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/BUILD.bazel delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-break-on-failure-unittest.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-break-on-failure-unittest_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-catch-exceptions-test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-catch-exceptions-test_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-color-test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-color-test_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-death-test-test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-death-test_ex_test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-env-var-test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-env-var-test_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-failfast-unittest.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-failfast-unittest_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-filepath-test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-filter-unittest.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-filter-unittest_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-json-outfiles-test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-json-output-unittest.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-list-tests-unittest.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-list-tests-unittest_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-listener-test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-message-test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-options-test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-output-test-golden-lin.txt delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-output-test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-output-test_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-param-test-invalid-name1-test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-param-test-invalid-name1-test_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-param-test-invalid-name2-test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-param-test-invalid-name2-test_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-param-test-test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-param-test-test.h delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-param-test2-test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-port-test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-printers-test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-setuptestsuite-test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-setuptestsuite-test_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-shuffle-test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-shuffle-test_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-test-part-test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-throw-on-failure-test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-throw-on-failure-test_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-uninitialized-test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/googletest-uninitialized-test_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest-typed-test2_test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest-typed-test_test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest-typed-test_test.h delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest-unittest-api_test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_all_test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_assert_by_exception_test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_environment_test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_help_test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_help_test_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_json_test_utils.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_list_output_unittest.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_list_output_unittest_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_main_unittest.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_no_test_unittest.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_pred_impl_unittest.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_premature_exit_test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_prod_test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_repeat_test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_skip_check_output_test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_skip_environment_check_output_test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_skip_in_environment_setup_test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_skip_test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_sole_header_test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_stress_test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_test_macro_stack_footprint_test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_test_utils.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_testbridge_test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_testbridge_test_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_throw_on_failure_ex_test.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_unittest.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_xml_outfile1_test_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_xml_outfile2_test_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_xml_outfiles_test.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_xml_output_unittest.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_xml_output_unittest_.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/gtest_xml_test_utils.py delete mode 100644 UnitTests_App/GoogleTest/googletest/test/production.cc delete mode 100644 UnitTests_App/GoogleTest/googletest/test/production.h delete mode 100644 UnitTests_App/GoogleTest/library.json delete mode 100644 UnitTests_App/GoogleTest/platformio.ini delete mode 100644 UnitTests_App/UnitSource/BUILD delete mode 100644 UnitTests_App/UnitSource/BUILD.bazel delete mode 100644 UnitTests_App/UnitSource/HelperFunctions.cpp delete mode 100644 UnitTests_App/UnitSource/HelperFunctions.h delete mode 100644 UnitTests_App/UnitSource/MockDeclarations.h delete mode 100644 UnitTests_App/UnitSource/MockDefinitions.cpp delete mode 100644 UnitTests_App/UnitSource/UnitTestsMain.cpp delete mode 100644 UnitTests_App/UnitSource/UnitTestsMain.h delete mode 100644 UnitTests_App/UnitSource/fff.h rename UnitTests_App/WORKSPACE => WORKSPACE (99%) diff --git a/.github/workflows/gtest.yml b/.github/workflows/gtest.yml index 9fadc4c..ceac167 100644 --- a/.github/workflows/gtest.yml +++ b/.github/workflows/gtest.yml @@ -24,9 +24,6 @@ jobs: - uses: actions/checkout@v1 - name: Create Directory run: mkdir build -# - name: Configure -# working-directory: ./build -# run: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Werror" .. - name: Run Test working-directory: ./UnitTests_App run: bazel test --test_output=all //UnitSource:UnitTestsAPP_test diff --git a/Inc/BUILD b/Inc/BUILD new file mode 100644 index 0000000..ec21f8a --- /dev/null +++ b/Inc/BUILD @@ -0,0 +1,7 @@ +load("@rules_cc//cc:defs.bzl", "cc_library") + +cc_library( + name = "APPLib", + visibility = ["//visibility:public"], + hdrs = glob(["*.h"]), +) diff --git a/UnitTests_App/UnitHeader/HelperFunctions.h b/Inc/HelperFunctions.h similarity index 100% rename from UnitTests_App/UnitHeader/HelperFunctions.h rename to Inc/HelperFunctions.h diff --git a/UnitTests_App/UnitHeader/MockDeclarations.h b/Inc/MockDeclarations.h similarity index 100% rename from UnitTests_App/UnitHeader/MockDeclarations.h rename to Inc/MockDeclarations.h diff --git a/UnitTests_App/UnitHeader/UnitTestsMain.h b/Inc/UnitTestsMain.h similarity index 100% rename from UnitTests_App/UnitHeader/UnitTestsMain.h rename to Inc/UnitTestsMain.h diff --git a/UnitTests_App/UnitHeader/fff.h b/Inc/fff.h similarity index 100% rename from UnitTests_App/UnitHeader/fff.h rename to Inc/fff.h diff --git a/Src/BUILD b/Src/BUILD new file mode 100644 index 0000000..37c0bac --- /dev/null +++ b/Src/BUILD @@ -0,0 +1,9 @@ +load("@rules_cc//cc:defs.bzl", "cc_binary") + +cc_binary( + name = "APP_test", + srcs = glob(["*.cpp"]), + copts = ["-Iexternal/gtest/include"], + deps = ["//Inc:APPLib"], +) + diff --git a/Src/Source1.cpp b/Src/Source1.cpp index 001d179..dfd292a 100644 --- a/Src/Source1.cpp +++ b/Src/Source1.cpp @@ -6,7 +6,7 @@ */ #include -#include "Source1.h" +#include "Inc/Source1.h" using namespace std; bool HelloWorld(void) diff --git a/Tests/BUILD b/Tests/BUILD new file mode 100644 index 0000000..e1399f4 --- /dev/null +++ b/Tests/BUILD @@ -0,0 +1,12 @@ +load("@rules_cc//cc:defs.bzl", "cc_test") + +cc_test( + name = "UnitTestsAPP_test", + size = "small", + srcs = ["Test1.cpp"], + copts = ["-Iexternal/gtest/include"], + deps = [ + "@com_google_googletest//:gtest_main", + "//Inc:APPLib"], +) + diff --git a/UnitTests_App/UnitSource/Tests/Test1.cpp b/Tests/Test1.cpp similarity index 87% rename from UnitTests_App/UnitSource/Tests/Test1.cpp rename to Tests/Test1.cpp index be577c0..37c97fb 100644 --- a/UnitTests_App/UnitSource/Tests/Test1.cpp +++ b/Tests/Test1.cpp @@ -7,7 +7,7 @@ //============================================================================ -#include "MockDeclarations.h" +#include "Inc/MockDeclarations.h" using namespace std; @@ -39,14 +39,14 @@ Full Description --- NOthing more to elaborate *******************************************************/ -TEST(Test1, HelloWorldFuncTest) -{ - ASSERT_TRUE(HelloWorld()); -} +// TEST(Test1, HelloWorld) +// { +// ASSERT_TRUE(HelloWorld()); +// } TEST(Test2, TestFailure) { - ASSERT_TRUE(false); // to make it pass, change it from false to true. + ASSERT_TRUE(true); // to make it pass, change it from false to true. } TEST(Test3, TestPass) diff --git a/UnitTests_App/.cproject b/UnitTests_App/.cproject deleted file mode 100644 index 594ea09..0000000 --- a/UnitTests_App/.cproject +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/UnitTests_App/.gitignore b/UnitTests_App/.gitignore deleted file mode 100644 index 3df573f..0000000 --- a/UnitTests_App/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/Debug/ diff --git a/UnitTests_App/.project b/UnitTests_App/.project deleted file mode 100644 index 20fa4e6..0000000 --- a/UnitTests_App/.project +++ /dev/null @@ -1,70 +0,0 @@ - - - UnitTests_App - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.core.ccnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - - - AppInc - 2 - copy_PARENT/Inc - - - AppSrc - 2 - copy_PARENT/Src - - - GoogleTest_lib - 2 - copy_PROJECT_LOC/GoogleTest/build/lib - - - TwoLayersDeep - 2 - C:/Users/Eyal/Documents/PumpNextGen_RTOS_Test_PNGRT/PNG_ND_APPLICATION/UnitTests_App/TestFakes/TwoLayersDeepOrMore - - - - - 0 - - 30 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-true-false-GoogleTest - - - - - - copy_PARENT - $%7BPARENT-2-PROJECT_LOC%7D/TestingUnitTestsAutomation - - - copy_PROJECT_LOC - $%7Bcopy_PARENT%7D/UnitTests_App - - - diff --git a/UnitTests_App/.settings/language.settings.xml b/UnitTests_App/.settings/language.settings.xml deleted file mode 100644 index 83758e3..0000000 --- a/UnitTests_App/.settings/language.settings.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/UnitTests_App/CMakeLists.txt b/UnitTests_App/CMakeLists.txt deleted file mode 100644 index e394b22..0000000 --- a/UnitTests_App/CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ -#googletest is taken from the submodule --> https://cliutils.gitlab.io/modern-cmake/chapters/testing/googletest.html -add_subdirectory("${PROJECT_SOURCE_DIR}/lib/googletest" "lib/googletest") - -macro(add_test_files TESTNAME) - add_executable(${TESTNAME} ${ARGN}) - target_link_libraries(${TESTNAME} gtest gmock gtest_main) - add_test(${TESTNAME} ${TESTNAME}) - set_target_properties(${TESTNAME} PROPERTIES FOLDER test) -endmacro() - -add_test_files(benri_tests casts.cpp - chrono.cpp - everything.cpp - one.cpp - constants.cpp - quantity.cpp - quantity_point.cpp - temperature.cpp) -target_link_libraries(benri_tests benri) diff --git a/UnitTests_App/GoogleTest/.clang-format b/UnitTests_App/GoogleTest/.clang-format deleted file mode 100644 index 5b9bfe6..0000000 --- a/UnitTests_App/GoogleTest/.clang-format +++ /dev/null @@ -1,4 +0,0 @@ -# Run manually to reformat a file: -# clang-format -i --style=file -Language: Cpp -BasedOnStyle: Google diff --git a/UnitTests_App/GoogleTest/.travis.yml b/UnitTests_App/GoogleTest/.travis.yml deleted file mode 100644 index 45a5df8..0000000 --- a/UnitTests_App/GoogleTest/.travis.yml +++ /dev/null @@ -1,65 +0,0 @@ -# Build matrix / environment variable are explained on: -# https://docs.travis-ci.com/user/customizing-the-build/ -# This file can be validated on: -# http://lint.travis-ci.org/ - -language: cpp - -# Define the matrix explicitly, manually expanding the combinations of (os, compiler, env). -# It is more tedious, but grants us far more flexibility. -matrix: - include: - - os: linux - before_install: chmod -R +x ./ci/*platformio.sh - install: ./ci/install-platformio.sh - script: ./ci/build-platformio.sh - - os: linux - dist: bionic - compiler: gcc - install: ./ci/install-linux.sh && ./ci/log-config.sh - script: ./ci/build-linux-bazel.sh - - os: linux - dist: bionic - compiler: clang - install: ./ci/install-linux.sh && ./ci/log-config.sh - script: ./ci/build-linux-bazel.sh - - os: linux - dist: bionic - compiler: gcc - env: BUILD_TYPE=Debug CXX_FLAGS="-std=c++11 -Wdeprecated" - - os: linux - dist: bionic - compiler: clang - env: BUILD_TYPE=Release CXX_FLAGS="-std=c++11 -Wdeprecated" NO_EXCEPTION=ON NO_RTTI=ON COMPILER_IS_GNUCXX=ON - - os: osx - osx_image: xcode12.2 - compiler: gcc - env: BUILD_TYPE=Release CC=gcc-10 CXX=g++-10 CXX_FLAGS="-std=c++11 -Wdeprecated" HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp - - os: osx - osx_image: xcode12.2 - compiler: clang - env: BUILD_TYPE=Release CXX_FLAGS="-std=c++11 -Wdeprecated" HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp - -# These are the install and build (script) phases for the most common entries in the matrix. They could be included -# in each entry in the matrix, but that is just repetitive. -install: - - ./ci/install-${TRAVIS_OS_NAME}.sh - - . ./ci/env-${TRAVIS_OS_NAME}.sh - - ./ci/log-config.sh - -script: ./ci/travis.sh - -# This section installs the necessary dependencies. -addons: - apt: - packages: - - g++ - - clang - update: true - homebrew: - packages: - - gcc@10 - update: true - -notifications: - email: false diff --git a/UnitTests_App/GoogleTest/BUILD.bazel b/UnitTests_App/GoogleTest/BUILD.bazel deleted file mode 100644 index 8099642..0000000 --- a/UnitTests_App/GoogleTest/BUILD.bazel +++ /dev/null @@ -1,182 +0,0 @@ -# Copyright 2017 Google Inc. -# All Rights Reserved. -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# Bazel Build for Google C++ Testing Framework(Google Test) - -load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") - -package(default_visibility = ["//visibility:public"]) - -licenses(["notice"]) - -exports_files(["LICENSE"]) - -config_setting( - name = "windows", - constraint_values = ["@bazel_tools//platforms:windows"], -) - -config_setting( - name = "has_absl", - values = {"define": "absl=1"}, -) - -# Library that defines the FRIEND_TEST macro. -cc_library( - name = "gtest_prod", - hdrs = ["googletest/include/gtest/gtest_prod.h"], - includes = ["googletest/include"], -) - -# Google Test including Google Mock -cc_library( - name = "gtest", - srcs = glob( - include = [ - "googletest/src/*.cc", - "googletest/src/*.h", - "googletest/include/gtest/**/*.h", - "googlemock/src/*.cc", - "googlemock/include/gmock/**/*.h", - ], - exclude = [ - "googletest/src/gtest-all.cc", - "googletest/src/gtest_main.cc", - "googlemock/src/gmock-all.cc", - "googlemock/src/gmock_main.cc", - ], - ), - hdrs = glob([ - "googletest/include/gtest/*.h", - "googlemock/include/gmock/*.h", - ]), - copts = select({ - ":windows": [], - "//conditions:default": ["-pthread"], - }), - defines = select({ - ":has_absl": ["GTEST_HAS_ABSL=1"], - "//conditions:default": [], - }), - features = select({ - ":windows": ["windows_export_all_symbols"], - "//conditions:default": [], - }), - includes = [ - "googlemock", - "googlemock/include", - "googletest", - "googletest/include", - ], - linkopts = select({ - ":windows": [], - "//conditions:default": ["-pthread"], - }), - deps = select({ - ":has_absl": [ - "@com_google_absl//absl/debugging:failure_signal_handler", - "@com_google_absl//absl/debugging:stacktrace", - "@com_google_absl//absl/debugging:symbolize", - "@com_google_absl//absl/strings", - "@com_google_absl//absl/types:any", - "@com_google_absl//absl/types:optional", - "@com_google_absl//absl/types:variant", - ], - "//conditions:default": [], - }), -) - -cc_library( - name = "gtest_main", - srcs = ["googlemock/src/gmock_main.cc"], - features = select({ - ":windows": ["windows_export_all_symbols"], - "//conditions:default": [], - }), - deps = [":gtest"], -) - -# The following rules build samples of how to use gTest. -cc_library( - name = "gtest_sample_lib", - srcs = [ - "googletest/samples/sample1.cc", - "googletest/samples/sample2.cc", - "googletest/samples/sample4.cc", - ], - hdrs = [ - "googletest/samples/prime_tables.h", - "googletest/samples/sample1.h", - "googletest/samples/sample2.h", - "googletest/samples/sample3-inl.h", - "googletest/samples/sample4.h", - ], - features = select({ - ":windows": ["windows_export_all_symbols"], - "//conditions:default": [], - }), -) - -cc_test( - name = "gtest_samples", - size = "small", - # All Samples except: - # sample9 (main) - # sample10 (main and takes a command line option and needs to be separate) - srcs = [ - "googletest/samples/sample1_unittest.cc", - "googletest/samples/sample2_unittest.cc", - "googletest/samples/sample3_unittest.cc", - "googletest/samples/sample4_unittest.cc", - "googletest/samples/sample5_unittest.cc", - "googletest/samples/sample6_unittest.cc", - "googletest/samples/sample7_unittest.cc", - "googletest/samples/sample8_unittest.cc", - ], - linkstatic = 0, - deps = [ - "gtest_sample_lib", - ":gtest_main", - ], -) - -cc_test( - name = "sample9_unittest", - size = "small", - srcs = ["googletest/samples/sample9_unittest.cc"], - deps = [":gtest"], -) - -cc_test( - name = "sample10_unittest", - size = "small", - srcs = ["googletest/samples/sample10_unittest.cc"], - deps = [":gtest"], -) diff --git a/UnitTests_App/GoogleTest/CMakeLists.txt b/UnitTests_App/GoogleTest/CMakeLists.txt deleted file mode 100644 index 12fd745..0000000 --- a/UnitTests_App/GoogleTest/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -# Note: CMake support is community-based. The maintainers do not use CMake -# internally. - -cmake_minimum_required(VERSION 2.8.12) - -if (POLICY CMP0048) - cmake_policy(SET CMP0048 NEW) -endif (POLICY CMP0048) - -project(googletest-distribution) -set(GOOGLETEST_VERSION 1.10.0) - -if (CMAKE_VERSION VERSION_GREATER "3.0.2") - if(NOT CYGWIN AND NOT MSYS AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL QNX) - set(CMAKE_CXX_EXTENSIONS OFF) - endif() -endif() - -enable_testing() - -include(CMakeDependentOption) -include(GNUInstallDirs) - -#Note that googlemock target already builds googletest -option(BUILD_GMOCK "Builds the googlemock subproject" ON) -option(INSTALL_GTEST "Enable installation of googletest. (Projects embedding googletest may want to turn this OFF.)" ON) - -if(BUILD_GMOCK) - add_subdirectory( googlemock ) -else() - add_subdirectory( googletest ) -endif() diff --git a/UnitTests_App/GoogleTest/CONTRIBUTING.md b/UnitTests_App/GoogleTest/CONTRIBUTING.md deleted file mode 100644 index 2f653c8..0000000 --- a/UnitTests_App/GoogleTest/CONTRIBUTING.md +++ /dev/null @@ -1,142 +0,0 @@ -# How to become a contributor and submit your own code - -## Contributor License Agreements - -We'd love to accept your patches! Before we can take them, we have to jump a -couple of legal hurdles. - -Please fill out either the individual or corporate Contributor License Agreement -(CLA). - -* If you are an individual writing original source code and you're sure you - own the intellectual property, then you'll need to sign an - [individual CLA](https://developers.google.com/open-source/cla/individual). -* If you work for a company that wants to allow you to contribute your work, - then you'll need to sign a - [corporate CLA](https://developers.google.com/open-source/cla/corporate). - -Follow either of the two links above to access the appropriate CLA and -instructions for how to sign and return it. Once we receive it, we'll be able to -accept your pull requests. - -## Are you a Googler? - -If you are a Googler, please make an attempt to submit an internal change rather -than a GitHub Pull Request. If you are not able to submit an internal change a -PR is acceptable as an alternative. - -## Contributing A Patch - -1. Submit an issue describing your proposed change to the - [issue tracker](https://github.com/google/googletest/issues). -2. Please don't mix more than one logical change per submittal, because it - makes the history hard to follow. If you want to make a change that doesn't - have a corresponding issue in the issue tracker, please create one. -3. Also, coordinate with team members that are listed on the issue in question. - This ensures that work isn't being duplicated and communicating your plan - early also generally leads to better patches. -4. If your proposed change is accepted, and you haven't already done so, sign a - Contributor License Agreement (see details above). -5. Fork the desired repo, develop and test your code changes. -6. Ensure that your code adheres to the existing style in the sample to which - you are contributing. -7. Ensure that your code has an appropriate set of unit tests which all pass. -8. Submit a pull request. - -## The Google Test and Google Mock Communities - -The Google Test community exists primarily through the -[discussion group](http://groups.google.com/group/googletestframework) and the -GitHub repository. Likewise, the Google Mock community exists primarily through -their own [discussion group](http://groups.google.com/group/googlemock). You are -definitely encouraged to contribute to the discussion and you can also help us -to keep the effectiveness of the group high by following and promoting the -guidelines listed here. - -### Please Be Friendly - -Showing courtesy and respect to others is a vital part of the Google culture, -and we strongly encourage everyone participating in Google Test development to -join us in accepting nothing less. Of course, being courteous is not the same as -failing to constructively disagree with each other, but it does mean that we -should be respectful of each other when enumerating the 42 technical reasons -that a particular proposal may not be the best choice. There's never a reason to -be antagonistic or dismissive toward anyone who is sincerely trying to -contribute to a discussion. - -Sure, C++ testing is serious business and all that, but it's also a lot of fun. -Let's keep it that way. Let's strive to be one of the friendliest communities in -all of open source. - -As always, discuss Google Test in the official GoogleTest discussion group. You -don't have to actually submit code in order to sign up. Your participation -itself is a valuable contribution. - -## Style - -To keep the source consistent, readable, diffable and easy to merge, we use a -fairly rigid coding style, as defined by the -[google-styleguide](https://github.com/google/styleguide) project. All patches -will be expected to conform to the style outlined -[here](https://google.github.io/styleguide/cppguide.html). Use -[.clang-format](https://github.com/google/googletest/blob/master/.clang-format) -to check your formatting. - -## Requirements for Contributors - -If you plan to contribute a patch, you need to build Google Test, Google Mock, -and their own tests from a git checkout, which has further requirements: - -* [Python](https://www.python.org/) v2.3 or newer (for running some of the - tests and re-generating certain source files from templates) -* [CMake](https://cmake.org/) v2.8.12 or newer - -## Developing Google Test and Google Mock - -This section discusses how to make your own changes to the Google Test project. - -### Testing Google Test and Google Mock Themselves - -To make sure your changes work as intended and don't break existing -functionality, you'll want to compile and run Google Test and GoogleMock's own -tests. For that you can use CMake: - - mkdir mybuild - cd mybuild - cmake -Dgtest_build_tests=ON -Dgmock_build_tests=ON ${GTEST_REPO_DIR} - -To choose between building only Google Test or Google Mock, you may modify your -cmake command to be one of each - - cmake -Dgtest_build_tests=ON ${GTEST_DIR} # sets up Google Test tests - cmake -Dgmock_build_tests=ON ${GMOCK_DIR} # sets up Google Mock tests - -Make sure you have Python installed, as some of Google Test's tests are written -in Python. If the cmake command complains about not being able to find Python -(`Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE)`), try telling it -explicitly where your Python executable can be found: - - cmake -DPYTHON_EXECUTABLE=path/to/python ... - -Next, you can build Google Test and / or Google Mock and all desired tests. On -\*nix, this is usually done by - - make - -To run the tests, do - - make test - -All tests should pass. - -### Regenerating Source Files - -Some of Google Test's source files are generated from templates (not in the C++ -sense) using a script. For example, the file -*googlemock/include/gmock/gmock-generated-actions.h.pump* is used to generate -*gmock-generated-actions.h* in the same directory. - -You don't need to worry about regenerating the source files unless you need to -modify them. You would then modify the corresponding `.pump` files and run the -'[pump.py](googlemock/scripts/pump.py)' generator script. See the -[Pump Manual](googlemock/docs/pump_manual.md). diff --git a/UnitTests_App/GoogleTest/LICENSE b/UnitTests_App/GoogleTest/LICENSE deleted file mode 100644 index 1941a11..0000000 --- a/UnitTests_App/GoogleTest/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright 2008, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/UnitTests_App/GoogleTest/README.md b/UnitTests_App/GoogleTest/README.md deleted file mode 100644 index b7f54a3..0000000 --- a/UnitTests_App/GoogleTest/README.md +++ /dev/null @@ -1,135 +0,0 @@ -# GoogleTest - -#### OSS Builds Status - -[![Build Status](https://api.travis-ci.org/google/googletest.svg?branch=master)](https://travis-ci.org/google/googletest) -[![Build status](https://ci.appveyor.com/api/projects/status/4o38plt0xbo1ubc8/branch/master?svg=true)](https://ci.appveyor.com/project/GoogleTestAppVeyor/googletest/branch/master) - -### Announcements - -#### Release 1.10.x - -[Release 1.10.x](https://github.com/google/googletest/releases/tag/release-1.10.0) -is now available. - -#### Coming Soon - -* Post 1.10.x googletest will follow - [Abseil Live at Head philosophy](https://abseil.io/about/philosophy) -* We are also planning to take a dependency on - [Abseil](https://github.com/abseil/abseil-cpp). - -## Welcome to **GoogleTest**, Google's C++ test framework! - -This repository is a merger of the formerly separate GoogleTest and GoogleMock -projects. These were so closely related that it makes sense to maintain and -release them together. - -### Getting Started - -The information for **GoogleTest** is available in the -[GoogleTest Primer](googletest/docs/primer.md) documentation. - -**GoogleMock** is an extension to GoogleTest for writing and using C++ mock -classes. See the separate [GoogleMock documentation](googlemock/README.md). - -More detailed documentation for googletest is in its interior -[googletest/README.md](googletest/README.md) file. - -## Features - -* An [xUnit](https://en.wikipedia.org/wiki/XUnit) test framework. -* Test discovery. -* A rich set of assertions. -* User-defined assertions. -* Death tests. -* Fatal and non-fatal failures. -* Value-parameterized tests. -* Type-parameterized tests. -* Various options for running the tests. -* XML test report generation. - -## Supported Platforms - -GoogleTest requires a codebase and compiler compliant with the C++11 standard or -newer. - -The GoogleTest code is officially supported on the following platforms. -Operating systems or tools not listed below are community-supported. For -community-supported platforms, patches that do not complicate the code may be -considered. - -If you notice any problems on your platform, please file an issue on the -[GoogleTest GitHub Issue Tracker](https://github.com/google/googletest/issues). -Pull requests containing fixes are welcome! - -### Operating Systems - -* Linux -* macOS -* Windows - -### Compilers - -* gcc 5.0+ -* clang 5.0+ -* MSVC 2015+ - -**macOS users:** Xcode 9.3+ provides clang 5.0+. - -### Build Systems - -* [Bazel](https://bazel.build/) -* [CMake](https://cmake.org/) - -**Note:** Bazel is the build system used by the team internally and in tests. -CMake is supported on a best-effort basis and by the community. - -## Who Is Using GoogleTest? - -In addition to many internal projects at Google, GoogleTest is also used by the -following notable projects: - -* The [Chromium projects](http://www.chromium.org/) (behind the Chrome browser - and Chrome OS). -* The [LLVM](http://llvm.org/) compiler. -* [Protocol Buffers](https://github.com/google/protobuf), Google's data - interchange format. -* The [OpenCV](http://opencv.org/) computer vision library. - -## Related Open Source Projects - -[GTest Runner](https://github.com/nholthaus/gtest-runner) is a Qt5 based -automated test-runner and Graphical User Interface with powerful features for -Windows and Linux platforms. - -[GoogleTest UI](https://github.com/ospector/gtest-gbar) is a test runner that -runs your test binary, allows you to track its progress via a progress bar, and -displays a list of test failures. Clicking on one shows failure text. Google -Test UI is written in C#. - -[GTest TAP Listener](https://github.com/kinow/gtest-tap-listener) is an event -listener for GoogleTest that implements the -[TAP protocol](https://en.wikipedia.org/wiki/Test_Anything_Protocol) for test -result output. If your test runner understands TAP, you may find it useful. - -[gtest-parallel](https://github.com/google/gtest-parallel) is a test runner that -runs tests from your binary in parallel to provide significant speed-up. - -[GoogleTest Adapter](https://marketplace.visualstudio.com/items?itemName=DavidSchuldenfrei.gtest-adapter) -is a VS Code extension allowing to view GoogleTest in a tree view, and run/debug -your tests. - -[C++ TestMate](https://github.com/matepek/vscode-catch2-test-adapter) is a VS -Code extension allowing to view GoogleTest in a tree view, and run/debug your -tests. - -[Cornichon](https://pypi.org/project/cornichon/) is a small Gherkin DSL parser -that generates stub code for GoogleTest. - -## Contributing Changes - -Please read [`CONTRIBUTING.md`](CONTRIBUTING.md) for details on how to -contribute to this project. - -Happy testing! diff --git a/UnitTests_App/GoogleTest/WORKSPACE b/UnitTests_App/GoogleTest/WORKSPACE deleted file mode 100644 index 1f05d21..0000000 --- a/UnitTests_App/GoogleTest/WORKSPACE +++ /dev/null @@ -1,30 +0,0 @@ -workspace(name = "com_google_googletest") - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -http_archive( - name = "com_google_absl", # 2020-10-13T16:49:13Z - urls = [ - "https://github.com/abseil/abseil-cpp/archive/f3f785ab59478dd0312bf1b5df65d380650bf0dc.zip" - ], - strip_prefix = "abseil-cpp-f3f785ab59478dd0312bf1b5df65d380650bf0dc", - sha256 = "00c3707bf9cd5eabd1ec6932cc65b97378c043f22573be3adf7d11bb7af17d06", -) - -http_archive( - name = "rules_cc", # 2020-10-05T06:01:24Z - urls = [ - "https://github.com/bazelbuild/rules_cc/archive/f055da4ff0cb2b3c73de1fe2f094ebdfb8b3acb9.zip" - ], - strip_prefix = "rules_cc-f055da4ff0cb2b3c73de1fe2f094ebdfb8b3acb9", - sha256 = "35ea62c63cd71d4000efe85f9f4f17e8afb23896c37ee9510952db2e9d8fbb70", -) - -http_archive( - name = "rules_python", # 2020-09-30T13:50:21Z - urls = [ - "https://github.com/bazelbuild/rules_python/archive/c064f7008a30f307ea7516cf52358a653011f82b.zip", - ], - strip_prefix = "rules_python-c064f7008a30f307ea7516cf52358a653011f82b", - sha256 = "6e49996ad3cf45b2232b8f94ca1e3ead369c28394c51632be8d85fe826383012", -) diff --git a/UnitTests_App/GoogleTest/appveyor.yml b/UnitTests_App/GoogleTest/appveyor.yml deleted file mode 100644 index 5c419c3..0000000 --- a/UnitTests_App/GoogleTest/appveyor.yml +++ /dev/null @@ -1,156 +0,0 @@ -version: '{build}' - -os: Visual Studio 2015 - -environment: - matrix: - - compiler: msvc-15-seh - generator: "Visual Studio 15 2017" - build_system: cmake - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - enabled_on_pr: yes - - - compiler: msvc-15-seh - generator: "Visual Studio 15 2017 Win64" - build_system: cmake - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - enabled_on_pr: yes - - - compiler: msvc-15-seh - build_system: bazel - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - enabled_on_pr: yes - - - compiler: msvc-14-seh - build_system: cmake - generator: "Visual Studio 14 2015" - enabled_on_pr: yes - - - compiler: msvc-14-seh - build_system: cmake - generator: "Visual Studio 14 2015 Win64" - enabled_on_pr: yes - - - compiler: gcc-6.3.0-posix - build_system: cmake - generator: "MinGW Makefiles" - cxx_path: 'C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin' - enabled_on_pr: yes - -configuration: - - Debug - -build: - verbosity: minimal - -install: -- ps: | - Write-Output "Compiler: $env:compiler" - Write-Output "Generator: $env:generator" - Write-Output "Env:Configuation: $env:configuration" - Write-Output "Env: $env" - if (-not (Test-Path env:APPVEYOR_PULL_REQUEST_NUMBER)) { - Write-Output "This is *NOT* a pull request build" - } else { - Write-Output "This is a pull request build" - if (-not (Test-Path env:enabled_on_pr) -or $env:enabled_on_pr -ne "yes") { - Write-Output "PR builds are *NOT* explicitly enabled" - } - } - - # install Bazel - if ($env:build_system -eq "bazel") { - appveyor DownloadFile https://github.com/bazelbuild/bazel/releases/download/3.6.0/bazel-3.6.0-windows-x86_64.exe -FileName bazel.exe - } - - if ($env:build_system -eq "cmake") { - # git bash conflicts with MinGW makefiles - if ($env:generator -eq "MinGW Makefiles") { - $env:path = $env:path.replace("C:\Program Files\Git\usr\bin;", "") - if ($env:cxx_path -ne "") { - $env:path += ";$env:cxx_path" - } - } - } - -before_build: -- ps: | - $env:root=$env:APPVEYOR_BUILD_FOLDER - Write-Output "env:root: $env:root" - -build_script: -- ps: | - # Only enable some builds for pull requests, the AppVeyor queue is too long. - if ((Test-Path env:APPVEYOR_PULL_REQUEST_NUMBER) -And (-not (Test-Path env:enabled_on_pr) -or $env:enabled_on_pr -ne "yes")) { - return - } else { - # special case - build with Bazel - if ($env:build_system -eq "bazel") { - & $env:root\bazel.exe build -c opt //:gtest_samples - if ($LastExitCode -eq 0) { # bazel writes to StdErr and PowerShell interprets it as an error - $host.SetShouldExit(0) - } else { # a real error - throw "Exec: $ErrorMessage" - } - return - } - } - # by default build with CMake - md _build -Force | Out-Null - cd _build - - $conf = if ($env:generator -eq "MinGW Makefiles") {"-DCMAKE_BUILD_TYPE=$env:configuration"} else {"-DCMAKE_CONFIGURATION_TYPES=Debug;Release"} - # Disable test for MinGW (gtest tests fail, gmock tests can not build) - $gtest_build_tests = if ($env:generator -eq "MinGW Makefiles") {"-Dgtest_build_tests=OFF"} else {"-Dgtest_build_tests=ON"} - $gmock_build_tests = if ($env:generator -eq "MinGW Makefiles") {"-Dgmock_build_tests=OFF"} else {"-Dgmock_build_tests=ON"} - & cmake -G "$env:generator" $conf -Dgtest_build_samples=ON $gtest_build_tests $gmock_build_tests .. - if ($LastExitCode -ne 0) { - throw "Exec: $ErrorMessage" - } - $cmake_parallel = if ($env:generator -eq "MinGW Makefiles") {"-j2"} else {"/m"} - & cmake --build . --config $env:configuration -- $cmake_parallel - if ($LastExitCode -ne 0) { - throw "Exec: $ErrorMessage" - } - - -skip_commits: - files: - - '**/*.md' - -test_script: -- ps: | - # Only enable some builds for pull requests, the AppVeyor queue is too long. - if ((Test-Path env:APPVEYOR_PULL_REQUEST_NUMBER) -And (-not (Test-Path env:enabled_on_pr) -or $env:enabled_on_pr -ne "yes")) { - return - } - if ($env:build_system -eq "bazel") { - # special case - testing with Bazel - & $env:root\bazel.exe test //:gtest_samples - if ($LastExitCode -eq 0) { # bazel writes to StdErr and PowerShell interprets it as an error - $host.SetShouldExit(0) - } else { # a real error - throw "Exec: $ErrorMessage" - } - } - if ($env:build_system -eq "cmake") { - # built with CMake - test with CTest - if ($env:generator -eq "MinGW Makefiles") { - return # No test available for MinGW - } - - & ctest -C $env:configuration --timeout 600 --output-on-failure - if ($LastExitCode -ne 0) { - throw "Exec: $ErrorMessage" - } - } - -artifacts: - - path: '_build/CMakeFiles/*.log' - name: logs - - path: '_build/Testing/**/*.xml' - name: test_results - - path: 'bazel-testlogs/**/test.log' - name: test_logs - - path: 'bazel-testlogs/**/test.xml' - name: test_results diff --git a/UnitTests_App/GoogleTest/build/CMakeCache.txt b/UnitTests_App/GoogleTest/build/CMakeCache.txt deleted file mode 100644 index 7e30e02..0000000 --- a/UnitTests_App/GoogleTest/build/CMakeCache.txt +++ /dev/null @@ -1,559 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: /cygdrive/c/Users/Eyal/documents/googletest/build -# It was generated by CMake: /usr/bin/cmake.exe -# You can edit this file to change values found and used by cmake. -# If you do not want to change any of the values, simply exit the editor. -# If you do want to change a value, simply edit, save, and exit the editor. -# The syntax for the file is as follows: -# KEY:TYPE=VALUE -# KEY is the name of a variable in the cache. -# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. -# VALUE is the current value for the KEY. - -######################## -# EXTERNAL cache entries -######################## - -//Builds the googlemock subproject -BUILD_GMOCK:BOOL=ON - -//Build shared libraries (DLLs). -BUILD_SHARED_LIBS:BOOL=OFF - -//Path to a program. -CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line.exe - -//Path to a program. -CMAKE_AR:FILEPATH=/usr/bin/ar.exe - -//Choose the type of build, options are: None Debug Release RelWithDebInfo -// MinSizeRel ... -CMAKE_BUILD_TYPE:STRING= - -//Enable/Disable color output during build. -CMAKE_COLOR_MAKEFILE:BOOL=ON - -//CXX compiler -CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++.exe - -//A wrapper around 'ar' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar.exe - -//A wrapper around 'ranlib' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib.exe - -//Flags used by the CXX compiler during all build types. -CMAKE_CXX_FLAGS:STRING= - -//Flags used by the CXX compiler during DEBUG builds. -CMAKE_CXX_FLAGS_DEBUG:STRING=-g - -//Flags used by the CXX compiler during MINSIZEREL builds. -CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the CXX compiler during RELEASE builds. -CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG - -//Flags used by the CXX compiler during RELWITHDEBINFO builds. -CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//C compiler -CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc - -//A wrapper around 'ar' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar.exe - -//A wrapper around 'ranlib' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib.exe - -//Flags used by the C compiler during all build types. -CMAKE_C_FLAGS:STRING= - -//Flags used by the C compiler during DEBUG builds. -CMAKE_C_FLAGS_DEBUG:STRING=-g - -//Flags used by the C compiler during MINSIZEREL builds. -CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the C compiler during RELEASE builds. -CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG - -//Flags used by the C compiler during RELWITHDEBINFO builds. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Path to a program. -CMAKE_DLLTOOL:FILEPATH=/usr/bin/dlltool.exe - -//Flags used by the linker during all build types. -CMAKE_EXE_LINKER_FLAGS:STRING=-Wl,--enable-auto-import - -//Flags used by the linker during DEBUG builds. -CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during MINSIZEREL builds. -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during RELEASE builds. -CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during RELWITHDEBINFO builds. -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Enable/Disable output of compile commands during generation. -CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= - -//User executables (bin) -CMAKE_INSTALL_BINDIR:PATH=bin - -//Read-only architecture-independent data (DATAROOTDIR) -CMAKE_INSTALL_DATADIR:PATH= - -//Read-only architecture-independent data root (share) -CMAKE_INSTALL_DATAROOTDIR:PATH=share - -//Documentation root (DATAROOTDIR/doc/PROJECT_NAME) -CMAKE_INSTALL_DOCDIR:PATH= - -//C header files (include) -CMAKE_INSTALL_INCLUDEDIR:PATH=include - -//Info documentation (DATAROOTDIR/info) -CMAKE_INSTALL_INFODIR:PATH= - -//Object code libraries (lib) -CMAKE_INSTALL_LIBDIR:PATH=lib - -//Program executables (libexec) -CMAKE_INSTALL_LIBEXECDIR:PATH=libexec - -//Locale-dependent data (DATAROOTDIR/locale) -CMAKE_INSTALL_LOCALEDIR:PATH= - -//Modifiable single-machine data (var) -CMAKE_INSTALL_LOCALSTATEDIR:PATH=var - -//Man documentation (DATAROOTDIR/man) -CMAKE_INSTALL_MANDIR:PATH= - -//C header files for non-gcc (/usr/include) -CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include - -//Install path prefix, prepended onto install directories. -CMAKE_INSTALL_PREFIX:PATH=/usr/local - -//Run-time variable data (LOCALSTATEDIR/run) -CMAKE_INSTALL_RUNSTATEDIR:PATH= - -//System admin executables (sbin) -CMAKE_INSTALL_SBINDIR:PATH=sbin - -//Modifiable architecture-independent data (com) -CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com - -//Read-only single-machine data (etc) -CMAKE_INSTALL_SYSCONFDIR:PATH=etc - -//Path to a program. -CMAKE_LINKER:FILEPATH=/usr/bin/ld.exe - -//Path to a program. -CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make.exe - -//Flags used by the linker during the creation of modules during -// all build types. -CMAKE_MODULE_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of modules during -// DEBUG builds. -CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of modules during -// MINSIZEREL builds. -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of modules during -// RELEASE builds. -CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of modules during -// RELWITHDEBINFO builds. -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_NM:FILEPATH=/usr/bin/nm.exe - -//Path to a program. -CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy.exe - -//Path to a program. -CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump.exe - -//Value Computed by CMake -CMAKE_PROJECT_DESCRIPTION:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_HOMEPAGE_URL:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=googletest-distribution - -//Value Computed by CMake -CMAKE_PROJECT_VERSION:STATIC=1.10.0 - -//Value Computed by CMake -CMAKE_PROJECT_VERSION_MAJOR:STATIC=1 - -//Value Computed by CMake -CMAKE_PROJECT_VERSION_MINOR:STATIC=10 - -//Value Computed by CMake -CMAKE_PROJECT_VERSION_PATCH:STATIC=0 - -//Value Computed by CMake -CMAKE_PROJECT_VERSION_TWEAK:STATIC= - -//Path to a program. -CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib.exe - -//RC compiler -CMAKE_RC_COMPILER:FILEPATH=/usr/bin/windres.exe - -//Flags for Windows Resource Compiler during all build types. -CMAKE_RC_FLAGS:STRING= - -//Flags for Windows Resource Compiler during DEBUG builds. -CMAKE_RC_FLAGS_DEBUG:STRING= - -//Flags for Windows Resource Compiler during MINSIZEREL builds. -CMAKE_RC_FLAGS_MINSIZEREL:STRING= - -//Flags for Windows Resource Compiler during RELEASE builds. -CMAKE_RC_FLAGS_RELEASE:STRING= - -//Flags for Windows Resource Compiler during RELWITHDEBINFO builds. -CMAKE_RC_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_READELF:FILEPATH=/usr/bin/readelf.exe - -//Flags used by the linker during the creation of shared libraries -// during all build types. -CMAKE_SHARED_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of shared libraries -// during DEBUG builds. -CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of shared libraries -// during MINSIZEREL builds. -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELEASE builds. -CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELWITHDEBINFO builds. -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//If set, runtime paths are not added when installing shared libraries, -// but are added when building. -CMAKE_SKIP_INSTALL_RPATH:BOOL=NO - -//If set, runtime paths are not added when using shared libraries. -CMAKE_SKIP_RPATH:BOOL=NO - -//Flags used by the linker during the creation of static libraries -// during all build types. -CMAKE_STATIC_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of static libraries -// during DEBUG builds. -CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of static libraries -// during MINSIZEREL builds. -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELEASE builds. -CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELWITHDEBINFO builds. -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_STRIP:FILEPATH=/usr/bin/strip.exe - -//If this value is on, makefiles will be generated without the -// .SILENT directive, and all commands will be echoed to the console -// during the make. This is useful for debugging only. With Visual -// Studio IDE projects all commands are done without /nologo. -CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE - -//Enable installation of googletest. (Projects embedding googletest -// may want to turn this OFF.) -INSTALL_GTEST:BOOL=ON - -//Value Computed by CMake -gmock_BINARY_DIR:STATIC=/cygdrive/c/Users/Eyal/documents/googletest/build/googlemock - -//Dependencies for the target -gmock_LIB_DEPENDS:STATIC=general;gtest; - -//Value Computed by CMake -gmock_SOURCE_DIR:STATIC=/cygdrive/c/Users/Eyal/documents/googletest/googlemock - -//Build all of Google Mock's own tests. -gmock_build_tests:BOOL=OFF - -//Dependencies for the target -gmock_main_LIB_DEPENDS:STATIC=general;gmock; - -//Value Computed by CMake -googletest-distribution_BINARY_DIR:STATIC=/cygdrive/c/Users/Eyal/documents/googletest/build - -//Value Computed by CMake -googletest-distribution_SOURCE_DIR:STATIC=/cygdrive/c/Users/Eyal/documents/googletest - -//Value Computed by CMake -gtest_BINARY_DIR:STATIC=/cygdrive/c/Users/Eyal/documents/googletest/build/googletest - -//Value Computed by CMake -gtest_SOURCE_DIR:STATIC=/cygdrive/c/Users/Eyal/documents/googletest/googletest - -//Build gtest's sample programs. -gtest_build_samples:BOOL=OFF - -//Build all of gtest's own tests. -gtest_build_tests:BOOL=OFF - -//Disable uses of pthreads in gtest. -gtest_disable_pthreads:BOOL=OFF - -//Use shared (DLL) run-time lib even when Google Test is built -// as static lib. -gtest_force_shared_crt:BOOL=OFF - -//Build gtest with internal symbols hidden in shared libraries. -gtest_hide_internal_symbols:BOOL=OFF - -//Dependencies for the target -gtest_main_LIB_DEPENDS:STATIC=general;gtest; - - -######################## -# INTERNAL cache entries -######################## - -//ADVANCED property for variable: CMAKE_ADDR2LINE -CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_AR -CMAKE_AR-ADVANCED:INTERNAL=1 -//This is the directory where this CMakeCache.txt was created -CMAKE_CACHEFILE_DIR:INTERNAL=/cygdrive/c/Users/Eyal/documents/googletest/build -//Major version of cmake used to create the current loaded cache -CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 -//Minor version of cmake used to create the current loaded cache -CMAKE_CACHE_MINOR_VERSION:INTERNAL=17 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=3 -//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE -CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=/usr/bin/cmake.exe -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack.exe -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest.exe -//ADVANCED property for variable: CMAKE_CXX_COMPILER -CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR -CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB -CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS -CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG -CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL -CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE -CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO -CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER -CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_AR -CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB -CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS -CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG -CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL -CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE -CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO -CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_DLLTOOL -CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 -//Path to cache edit program executable. -CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake.exe -//Executable file format -CMAKE_EXECUTABLE_FORMAT:INTERNAL=Unknown -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS -CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG -CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE -CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS -CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 -//Name of external makefile project generator. -CMAKE_EXTRA_GENERATOR:INTERNAL= -//Name of generator. -CMAKE_GENERATOR:INTERNAL=Unix Makefiles -//Generator instance identifier. -CMAKE_GENERATOR_INSTANCE:INTERNAL= -//Name of generator platform. -CMAKE_GENERATOR_PLATFORM:INTERNAL= -//Name of generator toolset. -CMAKE_GENERATOR_TOOLSET:INTERNAL= -//Test CMAKE_HAVE_LIBC_PTHREAD -CMAKE_HAVE_LIBC_PTHREAD:INTERNAL=1 -//Have include pthread.h -CMAKE_HAVE_PTHREAD_H:INTERNAL=1 -//Source directory with the top level CMakeLists.txt file for this -// project -CMAKE_HOME_DIRECTORY:INTERNAL=/cygdrive/c/Users/Eyal/documents/googletest -//ADVANCED property for variable: CMAKE_INSTALL_BINDIR -CMAKE_INSTALL_BINDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_DATADIR -CMAKE_INSTALL_DATADIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_DATAROOTDIR -CMAKE_INSTALL_DATAROOTDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_DOCDIR -CMAKE_INSTALL_DOCDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_INCLUDEDIR -CMAKE_INSTALL_INCLUDEDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_INFODIR -CMAKE_INSTALL_INFODIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_LIBDIR -CMAKE_INSTALL_LIBDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_LIBEXECDIR -CMAKE_INSTALL_LIBEXECDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_LOCALEDIR -CMAKE_INSTALL_LOCALEDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_LOCALSTATEDIR -CMAKE_INSTALL_LOCALSTATEDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_MANDIR -CMAKE_INSTALL_MANDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_OLDINCLUDEDIR -CMAKE_INSTALL_OLDINCLUDEDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_RUNSTATEDIR -CMAKE_INSTALL_RUNSTATEDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_SBINDIR -CMAKE_INSTALL_SBINDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_SHAREDSTATEDIR -CMAKE_INSTALL_SHAREDSTATEDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_INSTALL_SYSCONFDIR -CMAKE_INSTALL_SYSCONFDIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_LINKER -CMAKE_LINKER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MAKE_PROGRAM -CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS -CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG -CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE -CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_NM -CMAKE_NM-ADVANCED:INTERNAL=1 -//number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=3 -//ADVANCED property for variable: CMAKE_OBJCOPY -CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJDUMP -CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 -//Platform information initialized -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RANLIB -CMAKE_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_COMPILER -CMAKE_RC_COMPILER-ADVANCED:INTERNAL=1 -CMAKE_RC_COMPILER_WORKS:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_FLAGS -CMAKE_RC_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_FLAGS_DEBUG -CMAKE_RC_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_FLAGS_MINSIZEREL -CMAKE_RC_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_FLAGS_RELEASE -CMAKE_RC_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RC_FLAGS_RELWITHDEBINFO -CMAKE_RC_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_READELF -CMAKE_READELF-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.17.3 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS -CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG -CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE -CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH -CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_RPATH -CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS -CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG -CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE -CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STRIP -CMAKE_STRIP-ADVANCED:INTERNAL=1 -//uname command -CMAKE_UNAME:INTERNAL=/usr/bin/uname.exe -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 -//Details about finding Python -FIND_PACKAGE_MESSAGE_DETAILS_Python:INTERNAL=[/usr/bin/python3.7][cfound components: Interpreter ][v3.7.7()] -//Details about finding Threads -FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()] -//CMAKE_INSTALL_PREFIX during last run -_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX:INTERNAL=/usr/local -//Path to a program. -_Python_EXECUTABLE:INTERNAL=/usr/bin/python3.7 -//Python Properties -_Python_INTERPRETER_PROPERTIES:INTERNAL=Python;3;7;7;64;m;cpython-37m-x86_64-cygwin;/usr/lib/python3.7;/usr/lib/python3.7;/usr/lib/python3.7/site-packages;/usr/lib/python3.7/site-packages -_Python_INTERPRETER_SIGNATURE:INTERNAL=7279bfbb85090620bdec699254b0eb1b -generated_dir:INTERNAL=/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/generated -targets_export_name:INTERNAL=GTestTargets - diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeCCompiler.cmake b/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeCCompiler.cmake deleted file mode 100644 index 3a8124f..0000000 --- a/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeCCompiler.cmake +++ /dev/null @@ -1,76 +0,0 @@ -set(CMAKE_C_COMPILER "/usr/bin/cc") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "GNU") -set(CMAKE_C_COMPILER_VERSION "10.2.0") -set(CMAKE_C_COMPILER_VERSION_INTERNAL "") -set(CMAKE_C_COMPILER_WRAPPER "") -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") - -set(CMAKE_C_PLATFORM_ID "Cygwin") -set(CMAKE_C_SIMULATE_ID "") -set(CMAKE_C_COMPILER_FRONTEND_VARIANT "") -set(CMAKE_C_SIMULATE_VERSION "") - - - -set(CMAKE_AR "/usr/bin/ar.exe") -set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar.exe") -set(CMAKE_RANLIB "/usr/bin/ranlib.exe") -set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib.exe") -set(CMAKE_LINKER "/usr/bin/ld.exe") -set(CMAKE_MT "") -set(CMAKE_COMPILER_IS_GNUCC 1) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) -set(CMAKE_COMPILER_IS_MINGW ) -set(CMAKE_COMPILER_IS_CYGWIN 1) -if(CMAKE_COMPILER_IS_CYGWIN) - set(CYGWIN 1) - set(UNIX 1) -endif() - -set(CMAKE_C_COMPILER_ENV_VAR "CC") - -if(CMAKE_COMPILER_IS_MINGW) - set(MINGW 1) -endif() -set(CMAKE_C_COMPILER_ID_RUN 1) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_C_LINKER_PREFERENCE 10) - -# Save compiler ABI information. -set(CMAKE_C_SIZEOF_DATA_PTR "8") -set(CMAKE_C_COMPILER_ABI "") -set(CMAKE_C_LIBRARY_ARCHITECTURE "") - -if(CMAKE_C_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_C_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") -endif() - -if(CMAKE_C_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-pc-cygwin/10/include;/usr/include;/usr/include/w32api") -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc_s;gcc;cygwin;advapi32;shell32;user32;kernel32;gcc_s;gcc") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-pc-cygwin/10;/usr/x86_64-pc-cygwin/lib;/usr/lib;/lib") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeCXXCompiler.cmake b/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeCXXCompiler.cmake deleted file mode 100644 index 410f167..0000000 --- a/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeCXXCompiler.cmake +++ /dev/null @@ -1,88 +0,0 @@ -set(CMAKE_CXX_COMPILER "/usr/bin/c++.exe") -set(CMAKE_CXX_COMPILER_ARG1 "") -set(CMAKE_CXX_COMPILER_ID "GNU") -set(CMAKE_CXX_COMPILER_VERSION "10.2.0") -set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") -set(CMAKE_CXX_COMPILER_WRAPPER "") -set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") -set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20") -set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") -set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") -set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") -set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") -set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") - -set(CMAKE_CXX_PLATFORM_ID "Cygwin") -set(CMAKE_CXX_SIMULATE_ID "") -set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "") -set(CMAKE_CXX_SIMULATE_VERSION "") - - - -set(CMAKE_AR "/usr/bin/ar.exe") -set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar.exe") -set(CMAKE_RANLIB "/usr/bin/ranlib.exe") -set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib.exe") -set(CMAKE_LINKER "/usr/bin/ld.exe") -set(CMAKE_MT "") -set(CMAKE_COMPILER_IS_GNUCXX 1) -set(CMAKE_CXX_COMPILER_LOADED 1) -set(CMAKE_CXX_COMPILER_WORKS TRUE) -set(CMAKE_CXX_ABI_COMPILED TRUE) -set(CMAKE_COMPILER_IS_MINGW ) -set(CMAKE_COMPILER_IS_CYGWIN 1) -if(CMAKE_COMPILER_IS_CYGWIN) - set(CYGWIN 1) - set(UNIX 1) -endif() - -set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") - -if(CMAKE_COMPILER_IS_MINGW) - set(MINGW 1) -endif() -set(CMAKE_CXX_COMPILER_ID_RUN 1) -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) - -foreach (lang C OBJC OBJCXX) - if (CMAKE_${lang}_COMPILER_ID_RUN) - foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) - list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) - endforeach() - endif() -endforeach() - -set(CMAKE_CXX_LINKER_PREFERENCE 30) -set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) - -# Save compiler ABI information. -set(CMAKE_CXX_SIZEOF_DATA_PTR "8") -set(CMAKE_CXX_COMPILER_ABI "") -set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") - -if(CMAKE_CXX_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_CXX_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") -endif() - -if(CMAKE_CXX_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-pc-cygwin/10/include/c++;/usr/lib/gcc/x86_64-pc-cygwin/10/include/c++/x86_64-pc-cygwin;/usr/lib/gcc/x86_64-pc-cygwin/10/include/c++/backward;/usr/lib/gcc/x86_64-pc-cygwin/10/include;/usr/include;/usr/include/w32api") -set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;gcc_s;gcc;cygwin;advapi32;shell32;user32;kernel32;gcc_s;gcc") -set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-pc-cygwin/10;/usr/x86_64-pc-cygwin/lib;/usr/lib;/lib") -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_C.bin b/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_C.bin deleted file mode 100644 index 9f61badf1061ab96517b971508145dbde3eb2cdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159629 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 z 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≫Z6_TANy~Zf>p2pIRWA-KANaPOr}{p1R)E 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 IL&Ajr1OCXrf&c&j diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_CXX.bin b/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeDetermineCompilerABI_CXX.bin deleted file mode 100644 index 8e9ad8302f3af729856a03b3d19121e55ab962c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159638 zcmeFa3w#?_l|Oz*maMU5j}=>voj6V;=V3Li6Tjj(C28&0a_q*jT|e^ZYb;x`t;V)g zNsg1!(v-H)Y+DFzfl>;TToy z8p*PfvdibcpZztTj6CPu?>+Z*?wvb#&bfErWhX^}5WpygHp-n_>LcAdAh0A8E6DmM!ae*h?#)X_IxMdoA$~XOUFbFp< zfLSPn>%BHA*Kr}dVB#Oe=YPgcinat%_;Hk-(mN@{84^Au#FO~5h@p-x6AO{qP$aaCf;w=KJP$6*zYfvZu_Y$uab2KJ7`M^_!Y$*DN?eG7 z#&MCnYFw6ojGIU#h;@n@GiC|2+#aWLM5Me9l5-pvm18w7%Rk6Nc@yzT@VL!R;)d#u zbjR|Ka9dj?qmks@kBj7Oz-9T@A>6ySHtk?e>z9$i2XXr({`xH-+%m4EiJ6^M_;VaW zsjR=ELZ$yPu9a(8wAX@vKX8<{63RsSALF)dXU07gbP7L|zs=dWj@?_gH!|+?)V@y{ zxGmW@l%rkd?*=Durx8wi)w~qP!e06Lf3604Z~D2v_m0v96#UFn_z5(fYI?fqOJ|<5 z+@G=B|2%!)d(%JopC|gHC*&^xjcf0{v4`I??SGX{AtRemEQh;x#ipO;JTAK@B2@zvfF-}nUetuz0G9@~4% z_sVWwfnL`87?orc<3aCLY=9Rq2Ajn+mXfI6Mui4 z1Gdc*`o!K|#7OY%NHyTSS25;RiMg5sZaYcTCwh_6CtMtSj|{$?vU6gj9q~H&cCQL) zVZKdxk)z*Z1OWhAP)nEvL$E{xtD#JARt}5d9I{ z+*bL8D}}h_>9SkiMeLh)eW4V8%Wf{EI=E@qrzJ%XcTgXf)TNSoNK!45`Ws1AO6q-* z`Yk1W)2??(>N}Epo1{JoYN{;i7y((ff^JI>@@=mh_mx-h{g4;;wc~t$uo3G0F%+`t zOT8y%AH-`=NLRnmMB(N8Hb882sf8s&bf;+bDXUv0!3RH73iqXIWRIPWEZl^yd zV(q=3N$X1tYO#&OPYihh{V@ydg<6#Q3H~^82DRug)FKA87=l{dno^7R|0m`73l`0| z<)_HT^KSq@-T!-ULqD&4KUDPj=MZ|b_qL&SFup>JZ6x8gAxN(L7|~Ud_Je*0(Z8co z-GNjmNX?WM)bQRt%BY~^o^kVZ*!c7A?dct^YPnzTj>S(^Zd6_ zva)r@setIs?Kl12mRwvMgErrMJy=br_T6#{HS#&`Xr;fu4B)#@^`CH@#@*wNAK;f- z`Gn&X?#|Ruz1{R8s>1OoA>Vwe?2%K@fOgsbtPnT-zF^_!k5NCPfaee5#vC6XLtRVm zZrn_r#Mng>ky}nBKZ)EZ{LY0dry2Fb^7T;sIo_Yk9NJI z@*&*!pZFJ4iMR8L=c#s(!fAcp=)F1_Kr z^6!-zc%=r+8t5D78N4tNxi%b~(nGOi{PMZy1+~`xyRSgR2Dh$MN?uTyET-#@}D!T7!GB0yAG+8*uN&-xaw0xcB0( z57z~_Z^YjwT#dNzz~2|3SFO0GzeSbc;ognEPvYvv{Zsh+EnNM$KaIaX#Wh5D{QVDH zqqvV@-SHi`4&we4{{ADbaooT1@8#EkVpoJ6uNu^^`BDoU>ae{)83LUhW?~8pMB#2* zqcU#9A>4#T2H^^AqOjR^>Xq>VmGM9L-_GOd%z0lc#KWN9YvDD5x8}w)#(H;w!QW~8 z?KS?68h=B^-4eCLBtBE9q z*aCVk7@4Ph&I&y=JF8E|lZ_%F^vGOnAs*H-p+=aZOa^CXqmzVNP$qf4tcSwM;N%QN z5{o7;GM@~`=YzAr-KCH?Tr5$DF56T*92Vk^g1MBe-xkE8iO5lXE(~5|n)C5tdpv9c zZnNzPC-+4|3$x+g;CyH{+zG+QU*08i+q8x9=|SARf#HEbe@innAnKKW|C?$+;m=pq zQcElaQ~24?n1fHCUR(!H3h_oPADjPnUVL=& zL=T7Kbz99yJGU+?apzWR>N~fl3PEvqqTsP$GBOdFMfT2KtPD8SmdwD;U@SHpnS`L| zd@4)6hKA9Zu(z)ppX_I&i}+$6B1kylwV=I;g;*>aPkN`Kaqj^@qKgUd{s>yq+t82_ zWq`sVeDUuK?W%iqxVf>Zsdd}-hNf+;Z4Iq0liM1C+or+|jg9T0a5&r&YME-h-cmh( zeqOfc%}2|&rk3`J9l?fep&iJ_)I_MEJ=`2>2sXF2Ha0hJo7&M5{O`#}d)|Ds2Aijv z+rupl+gc`eG_&ZQ@eT;SO|0uT@nVII@Kx$|lhf4WlQvrK{`IEJ1qr){c&Reo<*)An;* z==V0vO_DX=?5+g8l7LJuU?Mjio)5<(lOTif$(db8+uIu2TD=X^_&*(*@HPxKdmE-O zU6?%F07JoKcrqD{Hzbnr=sX}(^HJPqgh?ib_POXh?#Wy&iO&rUQ*+@&A~+pxm<`WQ zCuery*#cG^jLGOcO)QfMaFX%hWH^q;PAo_!iHSt4VPauwDvTuY&0|-qDA~G@h;N1M z*w#>ZVqto#eBWtk+0wKHla;ObvVpmb!QD#lVp}GKNm49{&xn>mG&F5N73giPTiMWV zt0Wp?lMP19j1;gICcCF~__e7HOp&KCA4`e?%C?>qwy#%x23_8!Iyq=zK7seYaELKB zn=>&(Q?yL3Atfcs=C<>FD7r8)8x}UDaB?OX7xp4N4s3P@rRGp2;mnkzs41GG6zD^} z1Ks_@qF{H;C}KO*%kWzm#*cF)euSzY>>3)?JG(~v1_wlSL3i;(U>6;nj3oya=0riD zf(j#wMk3Qp_Y_eyl>wcTG)WZ&drG^(bBkgU`zc&5QKFLs07iooqTrIXB-G05iY`!< z?bS${HDCmlC<^)weorKxNa{U90ljZNbW{}VGx*2~aYexZGfGvP-99xN4WjmyLZiO9 z{5G3IR=BLQ19&uOx{eqA;4HOO@d_kA52j1lC-J95pG+Q$g>_-?Swn2I5tp{4LnW&i zRo^q#*Dc(R3imGnFY1N`Xp?YwD%T@WlFhwp`AlpgkvR>g-o^zN7V|7s)}L~ z_!4f*sK%YBRub)~E_e@kb_#GqA(NzGS1DDLK!F~enrdqWr*Pc&JR%k7Q&@H&I;p)U zMN7oBuY|72&%q2GEHshb+)Pr*kl#y^JJClY^xv& zL{1I!B<8?Eu+CVWYz^pZr6-k5=s1w;oy#n(a zWZvc+RPW<_Pt6D8)2NoAVxmQ*9!f;@8D4%8&P$7!sZ{Dy^VA1`8{vu&wn{ycpw%_u z+|L}lO%zireHc=>iq?sh=E_@jfpbD7OKG!#Cd=7wx=6<=R<`960|Lx{s9R5M-yI)jHPjpkL!oXV|8$FA}0g569#4 zQDn>}HM>SnB(X*!oU=C9*I=}yG9$Wx8lSa!h~s7sq7i2;ajI)jZfMH9O{Ic+A(Wql z^OI16s7-w{?87(I=oqwP;mOEUBpfmarwGW86SIe9VXCBnlTbdYi)P`hR(N>3yM~^0i7=FLwNgUQv3q2GQOV94rR*A1 z^8MUJP=d8e$sd4tpvHXc2&Y%k=vnokShX8}2yM|6VsXaNz|>l9U8nXF&N^i^wQH@; zT3GG$E9#dJPAX1Mp3TY%B8iSfC(v@|%j~P@@=RZ#@G#+qTvA_$x`^LeJ&pmlwH-rS zx1v^+P<+%pnkJx>6A5~bduxxR3v2XX2*G<4o;H+-Vwz0U18FGW+Gm}&*qmoz8jFgb zUr1mGp(KR!^|orBhR~oCPeu>xvq9?4x7y07t0J4h1SW8EVVzs&gw0Jd+{Q?g4)`lu z6+H_tsL`i`b8|s{mf}u0Z?lzAFM+C1dPc3>ZoA+n=r7bIjzT)`u&w?UN;WydbFCxRYqIh_^ z2WKVsPMce$kq5aAC($XwG>Qx7T{5q%6md&N?v{c-Oc_BPrE~IT8SpR#Bse5tX67w2 z=u?zQgrsx%RvGXQ6hLth(~NVE40^IgpD`aRZ}GA{t9#+9HakHB#H+edvqqPVh>l(ZxRRV7ixlb~t|GTh_v$UcHM1bVsA=Yw-$QM{^( z(k{sn&Tkh6YBi&5s@-^RtD_mbzOVD3J~VhBFszSs?(ZAeGa_7TJdP5mzY*RykR4uY z4Ie!;)YsM7pN&~-UJ97*j2OXQt8mVk4A+MO z!y|(Oo&9~IhlI;#MbX>g{(#JZ1PfQ470}n+AJB&bBYpjSfq||=sT>K{`g|~?*f-cM zTpO&Q?!J+|de>lQe_*5w)g@Ey9y~ChkM`{g433Qo*G4Noa4^s{MsKgkz@=k-!+~zT z35<-UBW$up*x%P3NLQM0)h`X?YROE~zZBIuFfe$ibD%4bPUyTGsP4`oS$%=wuE4;k z-Z#)S9OxVg2-oJN=DFfs_OGl3(coujDIW-A6gVDLZ+VXB94wOBz$J`Hj5J=9dRRx2=- zH(7bR1HI_asA;qN3D-6&d;l7miqbbQG-lDqHY<=7J}qSXlCT`w*uDhBT`<){b}R|s zJvNLU(YI${a2Wd9i_Y3R*pI$<;Syvj)2VcY>s40NNPi$OWGVK}rGYXx=~Q-QKt?+U zx_2K+>-k02(6NEe(b2#_w=R=O73pFtsJCx7tR2weX(1iC!+SbMMn_tq@TBU()oDd_ z4fl;&#@5l{&VdndsMGAW;zkaQj0X1Uod-G(?HlZdmUUS}rIw`wyO#z+Il08Fr08FP zrI6v#F8x5~UI_158fau7t-*V&7$bD|*yt#9F0DzuRuDI)0WntlTzysmS9ccR5-VVA z1jF^fXkfUfvn!AV+-n8)_jPym4~_)PRYg~SR_NeRz_1!u$$U{*!mC|$Q6uk z)79HKyvIyNZxpV<{J{Re{y;zBhVtWj`aAcG5bo0aI9ZQ+lW+~^2g-zj8_AE82?IBp zA7>=oEL>yxfihv>_UFgRgn>JdA7>=oB3uXa17*U%9m>)SWBPq?l;8?bLc0%Xe0M-jK&<%5Ja}`$lFD@`4>%>Ki5UNO`;yqD(e z>2^&gbIm!#OE+>lUi=*5rP4DSGjR@)Qi++7lIIYK-sY&Nc!)2Y3mh+Z2K>l5z*FUr zO1^jwQBtLlQI4KNl+K3re&f~UX11wuAB3K z`Z3j~g@s;BK!xj;+(-=S2BX1f*`N~>-QmE#PV`)wVcc$o?&%-gjTIuApzA{zn^0Adc83)*g6R~kk)V$F zy_z&&41?Gka)Gi0z0r!{Qt$5U+Dl7LcuO1Y9KmDuq!p4Cst*i~_VwUBOTJmX$qMZp zLT<(eP!sZnLb&d<1`l=h1rAb)F#lUR5xi>|Xy?e#zSLv=ZYwA-K+jy=sQjKm)GXdJ zd&frQLdu&B>=4CIO~GXA7^`P@t&~f5nUL;5Y8ay(4dmSxWP0M4A?(c-NGiP%y}NU? z(-86&3nC>X1M$`@1YWwj&@eQf8Zz$5g9scnKyR~vMtcLp`#Srn6X2B?JXb<`rb^$C9~`yhpl*M@O*uoW!>-rAo;*08;MTxk-pkZo@8! zh)+UXy)rB|tudIrV16G=zcQ>e`jt!R=b+LkHu(*}7yy6D1!y$@69BBml`Y}CZUYd_ z5hylKp!jqtD+r9Cm1ANM^M|qrwP_9U4W;wnG~P4|ZrI_HkTG?a)Z5)!Zy)hepz@ z0V9STn&dCFLz8@q9U3vt*$!<2U*t0E(AFUKF)(3=Ms{abJ2YaOjhM?0?IJ|A*rCy$ zQE59g-gb^jwnO^?>d<0`Mx@0KjiSO1jRY3s^HdqtxWx|bqX@QBfYlC-63DPa`xPQt z?a)4&qD?!r3m_uH4vipehxS&4r0vkwq$svSqd=Lt58#e7XV{^A12hbvQg&$66vRl` zp~V1LVuwajtafO!BxyUeZ76Pr9olaYA;S*sH4aL~v_m5bB-^1;4l?Y}SY6U~Xhf#% z(1`4DaK6)aXhbiuLt|#99U4_crX3n_ z$PSHK>En>XRg`UqR)9~)W&=%@69v++L!+#v?a+!4=B}cA!VZmUm+jCDG3Y*;`zV6!6qIR)wgqz+ zs~s8%10!vR_Fa5nhb0FXrX3n_V8j8AX@^Ff>a-miw@J1g+Wq)Qe-=A5iq~OShromb zc4)jYTDBb;!C(@SVTblfNGFSsv>h6CmT{9~*r8F(nY0}mL0}+~VTblP2!e5l#SV=k z9nY{sqiTgwh-rtGK$J{7G}41?J2YzPC3a|!BWji%+MTFNs~y@`0AV{c(gAK{vZk^$ zGLuFl(;#mrhC^+|@2XwUi5oNF#F7t0hdN0ZD&N~PFo^wnFnE}L2sf;k=m|7zf6k<# z6)>N(*r8p8j2m`nhJvyk8i_|QU^_Irx7wi%LP;%lXhf#$(7Y&arX3o^_NVR8NS7Nk z?9fQ(+o{P7J2cX5=u_Gb?Mg6up}D3V8dVK6DQ$;F^#C<8?9eC+P$9z(jS2;AG3?MN zGtiTi9ooAQ(`tuC^_I3nBT3L9s~s8%IGJIGMx0DLG>g!Nni{DH;v^v=Oa7m;c8j+w=c4$Of?9gc106R4L(~J;90i_+<|IKNK#?ufQ zlwcKQu|uP-ifm@vp^*%CE;}@O7Ur}=qw+#kGVRdb0F{8cn09EVQR;DO42$^}?9iw| zpg2qH(1;HeT4IMr{Nq`6XayJrZbk7j?a(S{p33g~Slc%C^gTfAtXetELutOtyy-BC+&_=+Kx+v|?h$e=`4s8-F z*r8D$rCXKEn%dkVEEXd4|?HLP$9U47jxHmz;iSJP90pd{U zZKIep{+~^74m&g&t(LPxOCT)M4vo~dn5=})mv(4rlQWAQ8ii%rp;0Yo+o3VaYKO+4 z9Cl`=9U7&5b~`jeotqt66|^Cr9a=hkc{?=5{cOZ9N1#w5+fk+6X(eED(1=`WDHSny^F53eRJQmW9kLr(B_j9a8PDz$VG_XTk7MhYPp|C?+7D@<<9on+EC3a|ML8k1`a^d)iCpE!phqf#f!&k}< zZCMacYRHpC+Cjn&ZCR+b(6B>W7MIfwZCP|~JG5NzbFo7^YrJ$Lr>73ELpy7{lpdK% z2RpR0MoJ}SMuHvMStDiIp`9I`VTX2Bc&Z#y$zg|f)+nh`$SANwJ8P74vO|0MQY@nh z?9k3VzQtk-c4%jf_p*rDZ$zq}n-5lf|l5!d#p2khHZuR0 z-X<(-*TQKBmf{UPF>`=jIh5?(7M1(hat5yMlL)RP0!jh$h)`U`e<1QwVKi1J^55v5@==tY2wf;}sU^JdgMzCKf_8$!&oeallTNc_s6f`zFYQVm94cO)fr#?vD zUu-*4`^(vml%6lTWp)VTRN5tV%j92li_+{JkhjBh!IQZmrYC!c(6ZlPYT>bNlUc0m z3osIIYQy%6wjHZ3z$C+ybKg<`foo|d+`j5j!pZqb8QmLVWbojs1P5oDiI)*mN@3$* z+jRB41hed_YDkg6kyW4I;2b-vN+~$hgEI5eRV2oUYVgjirntpqmI+9~*Qv&J*_NybI@Z>CQiRhnSn4N{V^Q7ny zVeZuF821&y45rxJsne0vWL|0KPA;Y6+VWXOm^*bk?y4fl4%P7 z=RA+w7tL)jRFCKDlo41H^1h-)hdKAE%Gq1s#wvPW`A(FwSTYV?Cz1$m)Bx3RT z@Li{h|D*PJaIvluje2eb*=Sq-b zi!`EiZB*0ZwlOboHDpD^uYfATgGGuU4VAGCRS04qxFccV+O&dnKvXbI8@0Lo7K!a9 zJ1`-X9!R@1CGj-vP+v`Dbe&g_&O=vg0BvtLvkF=RAaWVA`9 zDP#z*dv`&?N0yP|;1;e}oD;4lir?=|$b-Q=U{sE(CG_|Yluzu^bb z45ezdMrxB>Gs^8i-kFMWp$w#f341A(r}e0*F&%=a{}(ZoFHkh<5ki#BA)l%$f2Yy= z%BcE1iftkqofT!2IaQ^Ow^k+nZe=}fH)6S9$A`xo_C5~Ms8&X_%DdOOXQ87<#CXYO zHG)$rv>Oq(6eyv~nukMNAyj9;1+pnK-0vr#Kx< zT&8UxSSJ&gYnM{UZYHkK?xi?gOk9a^+1P`;ba%}$RHUljfZvUOg&$T`SUP9yL0;Nj z{0zcu<{spw0UoM_ZA9)tUfNSc8m=;+Q|>`tx~G)d$PGtp{P`DL^>E&?>_J|7$yyR> z=dEX1ogfJYaLAgQMapyIXrt;l}?11JDD) z=GOkHaP<#h!+P+3#jSm%u=XL`*Yv^)J{%X?R}0lXFXg+YKRg}8roh_Q3e_Lig5#|@ zI5*cQw5JNyZxDSy(M>}8xx&@Ze4 z-6phW3|c6}*elXH*rrs#FZq(jeSb8fCw*;eEGTtW{s(q+MGTtv4Zu?NHWPCs}s_jGDB;x_e@Y;vk zB;$jU;kS21aW34^WDoD%t9_`@)dAnyM*F^_T?w@A-$=UEJ`$epN(k-4g~eMC-cEEk z=#NPHLZSnpKPu^+ME8LHTS;F;^d8U;O1gvS5zr4wdbd4bWZ>^)g5CD+I9lcJWiER` zp+z2+)DS4N#>XUe5LAoM9+A{ID5%88B{c&I`tYcvV)o(SQK5Z8Qb+B>lb{}x)N%VT zcIVeVDXClS!xNxBC8?A4;Y3VmpO(};2m|#QN!^dIh|oSOsRtkh)G0|lXdiAD+UF$k zsC^iE_jyU2vJaEaeL+%BfI{j1K~hhFLh1fdQqO`y>Aonb)1aVZk4x$dDCpM{l6t{D z96`RmB&ioK3$YR@tM>CD7{lRd?1WAI^+$!S%ecQ5l*=GefH*Yb^%n5_mctmHQrv&1R-&)k=xDR)Xgq>V=-m&yJ~fE$Ym<%`!u>JV3!qQi zq{D`Af82F@uMlT!lUI{t38sARPZZOD{(?;&<$zZN;eO0TPwf|rdbX*ZGnm*7Wx%Buj&VpFcvxaizF%I-t>VvEDw1P_qN1*ZzTj*q6S?~JL z=&&fq5qrep3X`1A*6ZMuU6W!{#LqLVQdXU&C|q}y+$_1Q_8;yS*rRm{DO-Q&_X+3sgukP5EFZhVEZwly;;gt)n5>oq{|fkRoO^yrj@KO zlJzr%b99B?&-?75^#XeW!$Q@5r>uCmT!?L|_Ist~YTT{<3hEQHol;T*vAPaf)&8iI zP{MYC{ijm$rWEX@44AMPFkcrCn-+wo*qkJD)1?c+&=9s?5L$svbAW^FW@JRO+Z>z0 zcgqbb+!Yn>stV|eJcgsfQ%Q;@$!1YeSxzc%=g<~Wv69I`CR;^C)e4HL%Gcm}-12KM zyk2-;i;C)kFC(Ec3MlS_W>*~4=)PnXI^-=^C2)E8_vA&w7WD&sfNzH8;QAM_*n}E7n>4iUt`Zs^%+i? zoQCPl3(rM7`J(j$!`IkzF>~ya!)IQ2I*b`w+Sl0A$t>iHX~c2O&JLJC*WI*eU%-4UnecqY_4 zI5~C(_e_=(h1AK{*b^$G7EviL3E`P4x(i|M^C+L5>9th5@HJLd66|^pe&{k%P}L8D zxC(6{&%E$lt9}Ozn>_Qv^Xe6spnrj6Ut`a8G96L%E_CDH0_Wf#%C%fIpv5kvWW$-< zWfZj4*zJ4V>A{&7&)|G{eMa%zY;!bMqi;X!d7Z83bQO9`#cww3=H4lZ-soY=fSq}B>2P3x8?-f%2U9@6p*>Cya(IL zQ_!aiciD>EXiGZ}98P&^UJ#oMZSY|4_jOQ_P3GS39_;;2dVpB)Z^MZw9-N3mX@DU; z(LFd3Wf5}G_=YDsI3D7l-3?E4aMlv1+KygDl9zkM85$~onAY-iFqQ52PdKs3|f@(MEBrClnWu9lt_A_dvGEO4W;8I zhelMKh(a-E?0h1M2PdKs1Ui-SMEBrClnw}jJ{g|q9-N3mk&ZKm&QtKgpLMDgH6 zl&z>sFSC#sPDJSk1fJ+Bj}SZr{2m?JG6e8)p)mw}A3;^uW0+XGIs-#2`A)8?0zp+& zsP+sDQrG|nuNDvBhKDK)jxLcCHJvau1 z>H)d~_j3=9L7^-_Z{U9J!7(UQD5wbB&pkK>g=!7T!S3fC9D{NZVqOPDV8y^OC{%AZ zK!G6%$DoiTD30lV?!hrAB;X`8P9B5e!7(Vrx!Z0YgW|z4DD;uw9+_WE9z8e)WffH7 ze(o1gV;qBW5>K)Rc%)(Xa}V6lX|#AyRNaBNgtn*$vCO8Y)~Ym)LGj=i6l&Ma#xW=! z9D{NVqRKHvcyJ5~kwmlmxd+FfP-a#1b2u}TTSQTv&uFW}|?*Z7|$SX&`GV|pWlHpiul(G!x zJYeLkG-(}&7^V)~sG8Pj0CRm03#ZLM&>NBU6pd=nhI+6ilaJA;uB@b%FUUYuNmRL-7)U~w+W{H=&w$2EF z%S;Y0b z9K6)EP1XomUg}!?(!iyD!5X~O(`_b2EcH^?&dY&X)=OQ(X(`zs}g|<)y9#mO@fq>RQjzz-%vdZI2bRjF-CBYXz|qWqPS=@KU$53Y~$I1;A-3X+Rz? zb#1Q|nC+#m^=E} zSLFuE0l<(;Ug{dW)N@Hp`5Bqc=Ni1!a{*H>ODQ0{)RzP1@>18}rM@ga?bwQd#P(UEhSgV{KS)*V0x)*hx0%&e6g3hHk${O>7}m0OMTg-t%Zh{`m(qsUg{c7 zOIa4Z)Jt8%X(_qjXY*3mt~rNz=|)a#CcM5b4VUp!*KV_d%y}*vY^j&JcDogt(@R~u!wOl(OI>?IE>NbIx`xwI z(s}3ST$UfY&~REx8j=;7>7}l{$qHTKrLNs+4bJPOuHCf^)as?K-E9Ts_fpqzS_+q9 zc`tPhUg|j@IlR<0oR*S8rYC-QWx>HX(z-)~mwF14n(|qF&^36erw}P283=f(XCRh% zscSebWm$yjrLN($loV(gFLe#4rKB*F-5g%(8cs_|Ve)vXYd9^1aJ*Xog>A+{E52!v zwa+(9`UZT^9~{9sP;}5w-$2h`;NStV23roV_55cW7P3Q&2o1**@Sp0NpNg`TtM<*c z(qspr`+`?T;|2hBqB6iv0g-u2z%w!cEANZD;r9`O9qa^|#(i7zOTZtR4JN0e@wq;% zwm&P`ZhPX|u95DP`0uPOrGj|M7e}zx9GMIc1t$-44q#2XwuB7KJW6ID{+hOeRO+umcm*wI#HOzgpR~hgQyiAjuj2s)NaAGnZ ziP6`CRb?etpd_koqHlgCjKJRDd}uZ-R=G><;N#SbT#2k&;kX)Uu%i44H|Mi&k0OeP z=!w~h!;eNghevfB<%9!+0%Fy_uC8gPV)*b|MYddxxN%Uz0ycfQXlAX1))*%t*&CiCRRd~!=zoSJ*>UHn;}Bfy_$Y)P`}`Gn6-QLYOYZ`Y7{yg znOm6ajKyXn@@V(YPzYuK39-7ys91o4N0$SwVUQcr$>RJ-IF()2zty#D%2$nG*&PO_ zQUIi|mb2ldteK@`^<2G<12&MjEb5{30Kt_BveJ(u!tLnVSGUJX2|aA z!dc2l7l#V(5$-iVQru4iWjA`mnjb60zlI6Dup6yn@}HA@n|=4f)D#AuH9t{`zl(8D zh3R6Z%r!q%3a*F9i{YI&8H`PeTb0@-=Z$-yB={Ve49`i2pxPEUDW$NPu0^%2)ihu> z7DW@-c3ISJD}Ei~^eaV+(M5b}uWi%Fc=M=I1fdC0yPXZgjw=;Vv81Sluf=5p+l?e! ziATOgM_vUJ09=J{fhbWj8Cx*UE2-UCMou+mgdM36#2SF=D-R;pBNX$#RLnX0!dJVi z!WyxiB2ob2-GuBZXAtM#Gvfu(wM6a3+LCw_fOxN>^t?M^`-97p-Yn}}ZAV5#&MAkO zF)u@`@pQ}>x}h{ps|~oVN$yC6ASOA|D0d^)z3G_2RAxH53B4wXQcwZLkYhHaqdgU3x%ij>4jiCq^Igi)D9F`Yq4oZ4iLoAsIB}2qJEYZ zH#ZlI!4NANrzV*pqk-Cyk_=(nmp~xuqv)wh<3&QW;WDZO8RxIVaZx*#k)Iu@5X3x9 zWx5)%V(FOk;cy5xmC=RyBsv~6L!ZSK9EoO8yPsXe%r4N}x*XCJ`~?X8Qnui07Q*pk z+@s@jJdldo1DSGLq}(MyQ|#)CVN!+5DCtZv0oz2lw8DZERzv)>fUE1Ys6Ch|w{SR6<#k0KjP!7Slkfz`#A@u1?!G zl-(sTQ{=i1JjHQYDgmuD8A+fo%R!TDI7RK{nL=AgXbzw$_6S5?mnl}dZAPb(dT^4p z0%PeFnNpic>QbC3^ve+V^-Q5L^8t&IBf3Dt^Ocz*8)Zg~$%cV41+MADGy<2U@J98c zXj9?jE7zFCE@I*2^0durzdSut?IYcgjnIbs2@2B168ULjD>T-`DA1giWbTxJSWx^ej5b8 zDO30)Y6U{)6A_wa>Y+#+lEayjxv%8_nqq$hk!Lc+$~?!zbc}>G&r_L_Wrc8_v$3Y| zi@Svg;4&&?KB~_pjx_0wdZKl~7<4eW8xOtdO!4jc&}IVnL-_mC2~ZPZu+p1bCn8DQ z%|@w4W-LNXyltHnNOBE6NnOI{-^jTo#?6v<+xvRu9dJ z+N<*mWRxlJE(m+uQh|8+!vGNzwTClgHElEN!~mFLz6%kjGsVC+F+3kaKbymBHyFdv zFqv*`l#9hOM~_VNI+)R)i@i2_e^J3PSH$II0u) za5x+b&XTq#us1_AmPGr`X9#ZL=Rm#~WLGTsJ(K)Xnk*T@M_B>cfSFR{uS>g{60oB+s@VFHJZ4p zN^dCz@+Csl9(6O6wtM>&_^`y}oJ>V$scC1Ui+BxMd)bvNia_=Hsu!jkGg%z++ABJ3()P4hld?i}6QQC-KX5 z@z=QFx>yI((yml4=(z}VCSvUL@7~YEQFi)wA7J7*?;7Af$i%I@Yk>O@ z6DN5)0QY4~+{0T4xG!hoe%WSMF!6wmH_<_>#WB;In}AcT`^s{v@(1Dk32u0P@>nY5 zDh_$nwuoxhu|ZD+{w#VdiibGXoH*>13`@czErF#ndTogb_c(_=VOyjpB0plu%}2O{ z%zw(ZI1fL33x9(7&x*1ukP&L`RI{2b9$rsPOD&G~L@dlra*vr-zeEjAdq%h;Tt2yH zg!^hHzMh1avl#Vw=(r27J#_kPL#if>y1gu^j|S!+*Y(G>+ZJlH*np7Hf!&8 zX1xfAQGa)E>opb>EgBX024=K_VbtIonb84;QH3YV-$_*nM!F8)#Gr!=GHd5f=8c2L z)pHkQP_o?&n zhws+sY*DDrQ%w<72G$u6BJ3LcM9Gt`ob4+5QX>#9veVGr$`&_%cQ{R*(yjV(>AImRz5~ zok-x3LNX+KtA(AyUSu%4u(+=Gy=QRjbck ziYljPRAdStF5pk>Tcr_C*r3puVxU%htF={_P^q>UR;g%S=d00v1xT@Q5ua{ZLkc8q zA2w(kv<`_Kotu-1tyMQ8$c9#&W3lTrqM6Mb_%>^l zay5}OmBXU9?|f#hu_aLK3o0pTuMGtdzJ|)*fw;dYRR>$Nq7n97alI84K!IEd_-aZO zKw(V72Z|C|WztomL)Yi{t5JYhi=?+1 zWr(#(x{c{-TWp)8w=?av#o8p@&a@xfRUDPRkG>sT#zwOiE@ZORhBXG?tGMdgZ6Vz6 zZrf`1|-(O^##{I>7-(kadE?)=V@3w`FWI9=Hw=IOdVtl(f7rh{w zgs+QH{2bg$4s^~!` zUM!lzvJzG5p$h5@*goWlq%YG*K}12(5i0KGjK1Gq6q=Y6zAKn|z+N*RDNJYT6etQCXX*)i5#I5n<_DScl)Y$@T4jQ%XR&P~b)Rn|eb(j{F@dpy zHc(T2?&rE|uPZ!_&*)Nv1#iU5s|IGJ+0utsX|6|&-bYVU$ zHuxS_)}tNK1&@HWU?r}{oqGJ_l1dO)8-XaB65KZ#44H$(EBa$kqx(+-`bTo5o8 z!3*2Md;|;dI$k7wpD(=w2o9oWrSA*8ON$iB{&l`bSw$s>Ja_dO`O(|=i6Z)nh&?AD zR_q>lQoUa8KBQ_@8DC6_R^>_?39mT6R z-n@nHUwPkCRn*l3De6eLN(uhL@stsjM%M*s+6%my2ghFE^-M3uPMMLMUoxje ztUK=ez2o;JK*vX;5Om}Z*(3V`ta!2JNix&Fz5aytRvcR7Z;t`ed>ayX`pu|mT!mxkv@O?sWEOt+X%Q3^;gE2&}FTV7|a z4l8c*%H0fZQ0@;`?TaYt@F8s0sQPA=g7a~=DG@Z(35Ac^STF zVwzxr#rhScHt^h{2weUyu)e&KP^az0L1wv@)>pWwlFmpb=Y74Wn6mx?vt(}9S9-`K zMWvk!RzgOnnL6cZWdX6=s!Fro)>hy)+`E$Y!fmC)?l-)hJ&AeHcosO;7kX1jUdyK? zZ+K_b6JYPg+v_Yoc_ziiwIvjfMylP^cdo_sNo@3$l3vh0E*ort`VD7vTA#o6ALC1=rNnB zn74rpYG{)zJ*QPoeR0+MkOfsGgPIH43b6G+eTnlcK{PxTP7`5Kuc@@V63CFKFDs(2 zzINM;sCO6BzD}wQN>#st@7*@JS1r~~u<=HHIWwyC!%;hI`1nivW8iE3H1f8FcU|ob)3)3+ zA+4|FT{!WUm5fXs!;6BkqiFqF&dksj`JGABucJ@wJ1|x2We0fi1PwYz;6aPW=~}Xd`Bt>iP0#bbftQ-sAsF6v?}dL1(D8{7`@AwC)W2-M)s!B zO)VJ!voMz+ks(}#&(fGwG7?UX@}}TJ@d!3Ag!x|mC7HF^w0#LC5Rn!87KnH^$)cRg zeOQ{Vh0zX1^u3uvwlSNs{Y4Xx9TfhC9~SbLo)Q-)XJL;KOwQ1{k-xyd)%oTLn!)?G zId(}`1}?pNSb zWEQ`xn1riEi;}#k_{LN0xH{XI_Xpe?Re{R0Kc9|2rRW+>5QRQLy3*vc86zsim2 z{X-=m!jwR);jz=-Cm-$DLLA$B3jZa=6o}o!V^OT?uoR9;4W6<9( zwqopt5z8WhIm_P{s_N)pj1uj{MW=w-I*GMk(?1$UnoJD+-DdcxFtZurWsj zg&(&UK^Zv5QcDsl?cQ_T!j8*;BnRAUFEZz7lD(*&K}rt;Py4dXVUtxT_Oj?jZq^k024=qqq4Z_c1RrOva1<@fAD)jcrk=i1 zYi?3Ch*BMhlbpjVkKCfl|2nQtf0|8U!vA_^U*IU3T$D#A2>)O4q^Hq=wJPqPsPNm% zNUz%+MakqbF4!F^eMcR~ew4I?NR7!o;08%kdocZyq^S*<9+WiI)cJ;~Hw&OzVnBri zP-QT^22;#WLV+2z*5uX-HyR68^!j2jlDtMV`cJy=N1%<~==^tbk!T^9&teh&yO@Dj zKKa_}znf{EgZkfW%t7P$3Wuqo|1CUWthVt^iT<}%lUT1gLk%Ah{(CrrANiu}6w3_w z-&VjBHin$V!adDgp;-@9d=`~6OG~|Ai}AIp|3l6{MTM9fclsYJP)esU9>`ufi4$3b z|Dg)n{1ETIA*}DwEZYBf#kLp?2#i8Qd~_8JCqkM3J`z8!Dl2%>_Ci)uo?fcihhd^h;1_d@@tUG#2MZNc(!2ma4!^fKBg`SV!h z!4^~Ko8OVQ}{op(u-2BTfqiMa)s3Y zkJ?*k)EojVJxTR{k>5zhE0qHL1+P_9ACUqe%I z;eUqaXr`Q2;>l?*MaCtRFCi|+kna|lW6xo2N%+5Q%|M&v;#ENTCGdYrr6=D9Vhf2G z;eXZ|qm_7=aw&CJ3(!txG0HX;okopdT}vx)&dru-W05i0)3eoLzKkven)FY z{_m2(wiy9aerB7IP9VY?(~;o3V6EiuQP%dFahqB)f+2#Zqfa9G(aQei!iP~? z_HWfL# z5YvNGXeu3p9Jxs-t~nuA;NrFw6>?Q*)}K6#{M-s|lU#y_0X>|8 zmk^jnj(^L5OD^E7X!ijA&U6&)Giz35YQX+?dM`;;W&2VH-lq9A>p95zg(=H;kLTgt zXwsC#KV<08jvSc4#4uj|l(u;xdT_~ZKpA$lP@8+9@=NmRP%^}}FU3$Doq)JEnj(c4 zt^hei6=jHOZp?)uVb4I&_tU}_=5rK9__a)FO*vsCZX+fU=i`!^;gv6j`bgg%+R0A% z%QNIO!2y7L@yu`%FonpoDFJcP`exzxC{_j7#@vj-oyPZfBibWo)buzn2m6Gf{4l?y zPrX$2ct}=e=Ev+IRuD4v8&fFW7r%sIo9BELcn0xQQFn^%Fq9Hr|0cyr&s^I3l)nVy z(Sl7siA6kmTRcxG;e&^3F{BIs`HG8<*l;VgQ*lhpg&$jf5~Eu2l0g3!g%$)_a8D~Z zsGOT1>J7LGNv4B#02JQWFmy)>+RbN2eFT6C7KJc=Pj&b=f!y!dB}WF(zBp1W;;vJn54kUjSXF) z?9=o?WOG?5?Igch-)p$*@zxY2o2%{aA0S)2v;OAQ_98k@M(~cGO`~Kgzq!WFE5LT< zHA~(a$%8LkhP2JK_JTJ;*j9Znd#jINE2u!X-rYIcDIP7@yw2{vJ&vSkr_0SgyZZOr zD5*a4u_i^=$^59id*$Z!c9o)d%DW?pIa(d)q93t&gUsmnZM$fz%FP??>N@~CZ7a`^ zwj0L(V)G_@@et}0C(E&8GXYr>AGb-yN5J3~`x=U~B;T9s?FGL=nJyyOkr5o<6b_By zHIBB^6r1}U8=ePWi2uA{t@;G+6il6I9To2h{yJp^X@f$&M{?Fn&Z5&!3v3sJ3Yr^@ zrotdAzYk&&AR&IWh_k@E4#=(hhuEo=>9GOc2|;ocLhK2Q%7y)b&V2!4GguN(K-5TJ zR8n?>vcMe%+~UkF3W>))yZf8;eS>2IqxvZAi8CUc6vFkx4XP4J9_M}i0a0W~(xJ57 z!+qEub!a%y({~Wjij5%7h2AsP-!ELm!v0O8df;GJU}zMMxTC|JaIhX7+_MK6bz4|+2TiepScdc=`cN{cLlo{rIfdY? zB?uVRjqL<*yaiW+sNiV(y8Fqa*~3I{plh!_FbWT8QArFmjvg2u#%`cJ!-M-sDyYF> zvC<428XW06n8R&bRGEm8-hKVMJ4Llgk0FCBj5ao1WpejexvNd??!E!u9jS&Gy@P{$ z#TvT9_H6q_E!_nM_791*bk`l&J+=oK>F*Kih#omK(8c*3*pIX7z{nbmd<;VIx(7#e z(g6KH=P-5y*dyx9kRhmnzBh14tT#AZ6Ji5VfrDs!V?Qym(Tstb4*Y-Yy$N_6$9X1P zJpcwZ=pi`+34a-|_!`Rn=Y9JqKxT@;v+O zA3Ykd`}@ACuCDs(=<2WEcVZMD2~UolNsqEaB&RB*kK`$%J4pa`5ON3fgCv^sFo{y< zCUYYYkBv`e*%6WqBLvEo93=@{M%MjZP72(-YHA#@W)c%pR4OO^cO*H^T1bckLv)Np z0~6`AAv;bolqrolyOoYnXgY4AV|?OF#|b4L&1SRdan`O*L7{?nJfY48fvM2XI_M1b zO%Colj_~$Q(onDJ#~1!ohwP+EiEMM@=kcBWM2dA8vcZXQA?qfY+u6{GfDGk2(jav- zgf;e%5iSg{m~m>I0SpyXC+u!g$UZ?;1{3OQ)I;tejeuX$vQwbHl=F{wP;35$ir5Aw z2O|^^fx69Y7JvFC<^lCsMsJ&&+by|eT7GqU0g=u#OB=HQVPMTCtuXB$0~7*J09Oe} zf;D$Z82}+jCeRz2yQM5rj@M!MzMoz{idT@$cUv`dv3g`I;t!kqEPJL0>w2ktf-eAoc%l~Arn^PQnFS~%Q}Qm zHcwdgbGY2~a>NbE0!>;~KZfM-a>RjP(*uRdp;FIV_A)B(>2d`y(R|U`*7_)6w;KVO z&Cj#;ordtw%NKFKTlf~D`60``|0KO($A>*mrC+kd#>=;)Oji1|lzm6#pJ2`N*0urU z_5Eu3T^K$NlKVT&4_l#CDC({1wT=0$Iq~9e74P&Z&XF}Q%R6lHX~o@NmAb=LHA3<6 zmGKO{E^JiVfZACu z&lH5fdm#`Xmr(P{hzr`fuMnI2oPQ2d&MC-JB&S9Yua6uAf^R@z@4$W1PpmM?U|)-q zgGcel$dFEr@BFC19QA4o06q{sxV`M3nmAWbH1ua>y^Zh^E4CqRGGe(nP-W6%knRhV2Rgy z#bUTh)Rh~y+08k1?F{yBS>j!$GL5ea*Re&MT3uN|8R%_N;yKe`1OeDfXEQ7@Q=#*e zHRGy2YN#^e=>R!8HJaES)Cn_byc2UZGk#5WbDd&L692UU^<8H+ZS_#Ka2#_FiJ&$)uq9-CKi6yR^sw8&qCqYPl z1)Yj+m)I>6U-4UjkaBs8;D%h2=2|2FafJHz-Jn){g|1i(Nbq5O08a%aTvG(Ie2~ER3jq-nxe_gEqhzNk$wQ5H&1M> z%;Ci^OT5U`s47Li&iL_POf|La3@YyY(&pmm>cl)eiReCWOs*QRQvlpziJS4A)QQRj z<;5sHdADzqQ%EWa-asteC$L2`46eoY?Rsj-=)r}x@9@g0-?R3JAtZ_8QteSgfn3B8 z!rH41sSvsLHKxWHIaqtl5IaNm2zne|NwD@>L)m|MLXn8HvG$z>6$#c}S5VQ;+Uuo4 z@G9o?RK(ijJ1tQx-&_rcl^`BhktILYqx>M|<;@td7T_2FGHYd>62J0P}u z+mCpa{XiM&M{i~AN4<(Z&>^Naue0{MymG2$8A7(f+M7*X76AoIvlut01r1nxOTMxn z@Acb{DLJ}Ms{iuFxz%Ol$l8ya=KZO$k>o6OeW%;Ex0-tItkm9S>flXM?VEtw6Q&gg z9=b(ZjI_6#3M7~FO8W^@42Rg7UZ#$MWj0Ma?H#7tn3br+a@uL{G)-u%cJJn-sY#{! z2Y|qMW_@LuwRib6aCJ-@n>Pq3kF|IEw3MzN3#V1wMvqU2TfB-Hv~O#36N|p~yYtmE zt9`3z;(L6WNetmaamuGiEzZwg5t@5_n&Iggyyk50^@-)W!70IMpLQ6LTq3umPm!I) zM7G>FjUL!x?ZbspVb994tkBwdW_JE9km+xCOmrTH;#eqSy_*MaDBsX1qAGIJO@5N$dIN>BL^*?!)mUqPW}2e6B#mM=7ET`(=imju{m zPLHz}3#rp9i`wG;LKb2yen4u((gxU$0+gS%Kd)9Sc-+Tt-=p`5Bfdv(sdpc{Psm4e z`B*$6_Sdp&H(1Ai+G8x-ocX1r=MFA0`S&|s0bLeCLu3hel%Ux|@i>g3}_ z$7}W)smBRQ7h$6vOZ)PrYMSo&jHz==@$h~l1$a2bE31wR2MsBenyM~4ImkLbX=<|A zJ|O?-xNyj@SEU)i#sKR`9?sXe$^NIQ97bRQt8NPpWmCuUU5096b#>Fd5N|d#$vL2t0+kggVjUkh6mnC*)NZsCOqO6B??0wB{&Y|u zJFe9ks#2$2zvEZP%c%uiM}3=-ZbW{bk9x!w2kZDFr4w}Cx$G8Zzx5mRP~l(GV2)XGIFK|U>VXVM$&&WbxG_iZxRSVb`h9K^dQ{vv)v-C*yGILX~xrs zI=^RR3}tG1c5$9{K5lMtI^qQD+#M)j?zBkf=S=N5=CpbAg|+4B8>19l(z(mryQECr zwQ=W~UnTdh=-H?9PkcHxICQ?j*|!`UPK%9Unt59Frf}zr1QZlT-Ur9>k295zK0r^xjW3mb?|=FDWB7tC!< zor_$ybnY>CEw$FEk-sXe&WdWhZ0=T4x$!k3YPZ?khCH`4f6dA4(ZUKi!Q0IJM|xh& zu5PWvOFO&G?MG5f5&-Ka>-?BsAycR^qO;Z9e545s4Tb=UKGyjbsgb^`dIS2+BN*=1 z*~!!5Q5x+Fr^dH#5nb~mvhO9OcJlYyPC|Frs83Z zzQ(#f=l>9j{CyAc>dkM8*+0~HBFzl z$ZIc~a(Ul|_M4_Q3)DM&zhkK9%&k_srn8^g^)bIjEs?<#?%h$H1s0Vo$*WC;xX3Ub zl)K(xZji#a#G_!}G&KJxHF#Au0#1tD(&l9#W?sL#oNL8@zQLyZ@9M=Hs1mlWi*^6K zv>nd$(T-vE!pJb|{?Sf)5ha(&5Fj)rL*Jd!P%gjv>9(vqlTrFmrTcKc0;?J9qpWOV z+*lBhFx~%B+=z8A1PW$NPlv4gk+OUx#&b-^b9gXWW8ELkH^5s7niN$`S9e8uUKYts zy!@HLjyvmqQ@%E>kZigm6?rM?5twzqFJD2=skmp>eJGfhNKLj_Uu0G`#0N6;?yLJ< z`IaeK9plA_csbTxUzwMcQ@7-gto!x(1{l^a=*|W8IGzQ|Whr-OuIQh*?!Q zFYBHOnYm96!0wBy^%D$n+1Y3qDyV%T}^>^T#VQ=M!RGN9^)Q*W*U?UVHk=jjJb^+=w2aCHq_ zBszo9JPW!&RvV1v8PIct){p1uN3Lk?**q<+y019T{XG+T`YhnZF%xcLdChvVdFs?0 z?d_?%pUhX&3w!G6*lrwezaL%Lkwcfl(>20~o9-Y~03m%PhNnPuU9<8@MmpnR8 zV?FFu6=nF>mO6{Duon()>I8#y-ca8OY+SE{H`Ys~QQv@ydNJTFJdKUds zdY`ei;l3g2`MSB(qhwx#^mW$r6?4Uh_30w!CIG=<#_M^5x!yBXlu~|Y>e9t=zY2^YXdu@rHoO+&D zXY5lr8Mx>UJ-=F5E$0(is{<-NK+d>M7EZv7I|W>en-jBR=9wj~drZ`zg|UE)PoxUeoB<9nWr7q~OmN(G|y+_CG{R@82Pds}w!<7XR;4E-hl$ZkXF zl$<<0uUvI%*I&G2NKJvdYJ|SXNDhxAQ{ZGv-#<2*mS1Fmsi5aVqtQ*Ad_8shzQzJq zHZ15KKWe^HD3D9~I_~fN>J5TgV3~`L&&#*|va@=YCI4i;RY+mq8gE`{OqCvVeVEirtjE-j4uq z{LGZ@RewQ}U8(xlSDj@9S!10;x@k8piS$*U@g#Mxs!~3QRB!X9-2W|nJ9p~66p`(^ z$NckM5T?(=`b%yK;adCWD8&aoDOTp)6yJgMk9{e`H9q7?LDx7lD?dlR6SbGXPgVwf z&dB6NKI}{V8Tl9eqxuLtUz`yeux+k!cPO`K9TFGY@V0~|baOIt)bxrvv8h}e*2cvqes5%l@3p3bvU zwdTw1-OA4B7aP-8XQl~v7o=5aDA4y@Q4RYZWxO#D@(KdOJheBln>cALN0M7vS|sTq zSBk9=5}Ysvj@2m=mI3Gp02>5Wv!SN&d+T?8q8b!<&}?jii-?fC@7*1FDWelt)>-?8kOonb9s3{=qvJj~i7kb+u%ClHh0xL^!;1&qoTM-UMw*Xyjes*b+Q zE?dOEUZwjCk^3@q2+9L^_Jz1!>Q3#+ol zl}&ua#(HcOKf+(uI5$(0X%=FuD7{&$o^F$2O9Bl6$g z>TTA3=?# zv&11TKINqEK7~Mh*NLEw3DEowGK*{gW&UosMk}9?Fa;g5&bNw0 z1GvU8vspiC3luPbcv5$EXYdDfXXmpQN2rP~V|DDDF5{)DB{hKcq+r#6c}7z_)}Uod z27L5#R;KHY^&a2-8B}N4+zo(xVP9o=`3A=MY49qs-d5SRkgZSLc8Y(Ayye@+$Ji2~>B3 z^>#+7J~jkIK`MKf%3-g|b?*K=j62Ov6SX=720YAQ^CcC>m=scR`KI3LDR$nTZ%>E)|< zUIT<3b(Y@R?{o_)+@FAw zd*=Af)8eJ9g0bs5ddku>sckpBQ^I2lLr^@fDQ#&N+Ev+qZue024ECex4k& zzk!oLZp5%!m7nz`&q`eH$H+37B^<5nW?P3ZzqWQy_IN_YQ{i8HlCi(TFGwYjs4>TI z2}0zWzs!^a_-ymUFM|LCKanM)+#For zlPq~*8$I&ex^SH`0Wu=ImOn&BU!%>Z!cd7 z6Z92i_GeCp5+LqX`|b3QW!w;EmYdu@c%?>q4c=a6t&f#x|d-) z9>YM8PG%xMgbWAWyGZatz&7Da$!q%hESbi$Ic|tR`n;;!=tXHpep*3UvsxO_3D#kg z^#!awN6PTHPB(`K8hl5*<6#&^Txg?J+g|h+XfLb(fvReh z^>K^N`X8eG)9hyV%BpnmO*!`4un0a)x5Re*ca-nNmNH=dGrOouoOI49FFbsbmvc@N zccb|G5=)30m0}Am$~n0&=hSSmNF`S0E1PYJuBI(OG%g_O8^Q`l$YO!WEaIHnI&s&r za&g?Az%l1k906cKylWM2#2JL|#jz0nz9X!lBNT?phy5}9JxC;J5->yPIR6s}@Pts{ zDaVpe1;Zdnq%bfmCD1QIWo+#=6E?U*oe; zMhr;h?5XYW7;A8JswvfWvZ?!6`?1!hL~Ek8wY@C?WcB$ud}-2@5?dlt+tPNVspaY{ zdCKys4T9>y=_WX$PA$mKWN|vZKD&78dRJ#l=ZU741^mA-H`CNImS}3ZjIn<9N(i+RfrHD+~Uk78<0>e{rq}U zOAF%Ir>{0`Y^=4+2uOz(8eUGFVBzCi8|%k6)@P544eI0adA6nfSlh9aEp5l?F??%H zNsj|M`Z!@2;ce^sjbpRSkyCP+(39SC($aPeb&=~lahz^p?zlW@S(|N9DLt2B--^i= z{f2ZjwiDZC0ba38)r3KWm8sz|@CS9ji8c=KN}+NF7GV!+7pOYJ4(Bux?|ctiG(j>eCR1F3hfNjsoqzEL}r415UoB1#vzQqGVhcBxOWi z+2FPj$UtI5*?s{(n}u_f0}Swa7Aw22kuo)95|Xg&%y!DnRAdPvqHI{n2bR{cXE89I z&Sh3WQCBvie%3r;w85su3%P(U`W0RrgCRlAV(3}KnlKsAk#ZHrF2SQ`~IZ^J*E7-9_wTxHMIq2Tz zHdY-fz|h%{5L&fBUZo{I?6RUFSfCbLqV$}_Lg$2}Jiw}`l|q%OitYdx0Cv!^m5xy< zG{dK$2!ZVu(W0T*YC6Lyw)RKSJ_&)OdB2?w1+J&tcOib)jWoSOY9}h9spx6mQ3jyib4fNK98hJTjH-~W-LV(aT zlEg?75t8|JwBB-{ktFpExNmsMN`TXiHz8ACG+>sWg&V8}_&;IkaG(Kil?XWt)U?|DfM3^kx4=9W+%RC;JjnvFw<@1B8&u*O2y0#)09b$g)! zceVi_DHggJ5S`_cBcVR?s7$%okX!3Oi##Sx)*1v2nc#B?y&w>)K}Odbal8kWg!cUK|KfwLZ}xIF3Wl1S-FPJ9~1s;})T312yCa-v>98^psW>dViprTABrR zQwJ5qgDmt*fp8pGtFPFN8(g3V*U-lTk-xT4c|wGXeIihG2TagQD})b-Mt%lOW;C)m zRgFwjML7v7_|M>P{O92lf8;eMk!Ys%tFtJ#mb&Koa?dz8`u3&5MyhyqyU> zCr+#3=D6`6MAuPY=>N+zm!+ToP^3N_l9+9wA61htx1wEuK(&ObW0vTtUDV{@stjQ( zfqWbOBH%&9WSo#~i6X#-$i>2z zxG8uG4RqTqQ5g8imhcHMS$rEQAA?Vb^QaZ2dV3Lk89BvdPVk|bSP8_!ug2% zG{HjkmKfgN&_FXC-u!TM_Bw_NK4j+r;tb#91TpZwIe40Us-6MwTs$y58g__3+qDw?>>YsO)gFY+fge@ zr*yuwI)lD*mn=R$u6#s{^|dDC#9@3=AFeO)Cq%Ca{wl1delc zW^?tLK*q#-zR=H0Ib7%(o@}npIQCCU`Qs>D=Ltzr6nbqSGKB&^f!o9Ej$JTu8?OsQ z=4s?XY3DZ)FfdP}I19aAmQ^^#x>1lf$c#To1wkF@k~}39pAcRoGX&zfOt`p>fl^S*m`wA-CvED{qlg!dF-oJsr@khz5o{$)r)eG@{p8c+ka^{Ro~j=o2Q%b-X;d}<-_B0;4Ni<9L_j>l1n*E9L=(tF+0;;a1aSdU-DGAiE-dwgb)FqV z`zuGh@MhrUAalOk+bUn;FieM^hKw60zX^Qf9bfW~`qD512;%nd}*G z$^f=4n?iNTtM-qbAI;J3+1S)13m!D>(-+dIDS9GC0nSck2#}u+(tyZz6C5%VoXhm5 zb)~W3o%u>pE#7M$&bLaAj*eYSjuQB~Q?erktooBcfG5QG^h63_AVBy|0e?Q5X2GNR z*8Q0go!edc`lOp1xeOJN1)EK?5kMSFj!h_c!9GE-#Z>pF&t*_x>2Tv?!x^-etdPEm z%;3=EXgUiAJ$8FZsIX?T<7P6MYiep@f^OO=mTBIaZ|>e6ykLAddC`-7n`w{u>ny%Z z&pCz!rGhF=m^OrW4(xZ8mE#^P*lrrBa;og)bEwmtCrm@PY_jtD(nILasA;GBv0#U3 zJ_?U?lK^jj%J9cd(@;3P&g5jCu7Edo#kgrq)&>lQ!+9++`)Z`?5 zPPfaDX(Sp`nW!DaV8%2M)$KF5&om%v46qY`5d(Y^KEpGn;c%v3gtIw2mBC@3c5FPY z<~-GFM@)l0YJU)5=o=X=q(-+%fq!K%tuB*mWx=u1h6H3WOm^d??FNREgITgWTiQ<6 zW3G(_CrTU23&Sp3+D={=c9W&;)P)l)I91wEUKn=gO54c`!|r@(J9Xi97Q9f}P+k~z z7faj83&ZYy(@w=u(%=gI7g{tK-ta(SON?n_larVcoUZ=7Ti9V?mKm8EVZjG)We6%4 zVfavCLpcDb>r-H8Fjv@+Mn&QAZW%8XHpEh4z-u^N+|XT6n8W%^3H$!ET!5JNvnA}E z1&dqixe~^1=1w!rmoRp7rcs^+FPAWN^OdFxB}~a8hc$2N3=1xnuAge&NJ$%!+xX4mbiFZ2A{NT(ZFr(3^`bnf+>#@x7#MDE3$M4PvfNN~a6 zRxych-HtgP?x<#9{>W{ZyZ0fT{Mv0KaqmJVxqcf-k^_hk$5UQz2(Xf4m}%WSFtbCz zf;WDeTnv}G`IDqSpQZ;7(P19FjdWuGqsrldZ#Z*5K)$iyDS8)={jcO^+|3JqntY7A zdf`u#-njmY3a58Eo9KB|D-(FIWx>ZwThr76wkYwi^y1Q{c*K&AZ+J#Diu01vslcw( zKQV?+iH#&LEs})FqMDBdUsl3s80Dpn1$>r_=l_=%w#1MMq*Sa-)6zd^ALD0CQ?*b| zjp1QH>@3J)R};sMZkxP*7fHTe^!iF$?>Bfc|sywWsCrutKuSHzyr*c6`nS@35~ zJr>B>^O?!ikZcIdRmsso7`@6ga+bkr+aQUB?nHVdiJnU%dEw zMO7iUSDPkTJl9iaK^=+bYVv?7j7qO5WaP`}=S>@N*L}&<8QOBfQySozFwH(`n)tNz z8BJyY&sp-x>b0h6avY_Z8bwXW2MQK^ov9vAWzrYujy!*^X0scL^q2N9~@yey7~J^O`8`JdfoY3`@Q6^O!tk zn7G%=3O-47xi=aXZYCa!H~B2^G?XG%LvnDr;rHee7U>Jh=q-lPV5v8Q8HleBr8VWaXqHQ22!dCbG&FO{I7|n2fw98gmPW#<8Pi_AaQXJ5V+{o1M zWQGQ*WIw*s!uGCJ3FQ=+UpI|NB01v6r4v-p&4Pv2k!1N*@HPTW|Y7_yfk(QgJMiG!2`7|2PECNy^tyC9Dun0(v zOtBy}ih$He3$rd;guqsafYeAU0TJaVHHv`LNEw@vGbMj>V_|j-exm4r&my0nC_3mf$>%4E4*5)+>hv~o z#%EQCpD22t&&aH3Z+2&Vma5XdM#DZMkL!3%NAgYc`H7;VJ}b9Hy_t>q%$(NsT8;ax z3h@&~&w7l|i=8~wz&GL1Q@?QxWY5Za^m+V5(MgZq$4?ZU@@TV~pD23H)a3IMMbCTm z1^9`g7fg#hexm5bLTZzrD0+V(3o#ZyAT?rX)d$4^u( zpRx}ET0cFCS99{&z1j){|LPJ!Wn>)Ndg4$ls4Nm@5-cG8J;BQ8--#2fT>RU` zD(GK&@lXE(OdR_Gbkv8P4aS8G8)8Xp#jy~bVG|Ym-&Mi{yM)Z9BM0a|Oea&LXGSUN zW*ePg<2-|%61JUAGHom(EN~E&2MJa!4^FTeVbaB7QqaX}g#g=`JEa6ib#!!Y3?GNo z(-FM`!5#&R)5$mryo(M9YcM%6k-W$n=rkpdchfQL+x4fhxsUyfJtPEsCOlgDEd*qUT1 zt-zL=L`7u%j)fMbNkmyWHUlI`4X{D+FD>}k5FKJan>H+Ie@!aAoC5)sis=t}Lx{O98GdEp@oEV&KZsQYtlV3lkn>3|v`S<6ua}z?G$? zsx-jLoM$m`W#wtyWZ=ru%3*xiBe}9-;L6f+y1eGfihb^=Pe(-)Tv;)2W$9!lS5^#M zSz2STVa33e7WKzmaERtH)D#gB?hi6ufoIg69ZS4 zR(rX!V&KXWx}scJF>qxq;qho+DXy#-xUvkRDIk{h=W%7lz?Eef0pYz6S5^#MS%y_H zuB;fivJA6gTv;)2Wf^A0xUyp4$}-GKab?B8l_gB|Mk;;n_=w=jih(OjS2cXq;L3`D zD@*Gzr<+_^F>qyRrI#x!2Cgiv^KfOwz?G#{gk7EVb7jTAm8DI*Tv;)2Wocc%pDQZ{ zt}LxqTv;)2WoaRnCw{K17`U>uK>@C;7`U>uK>@C;7`U>u0cy(S%8G$2OKaR6I@zxw2}(l~u? zES-kx#aTkvfh$XECh?sqo)_0x9k{Z*Vp(c%W#x-;S#V`}<)WnE%F2_%7+hIiF}=`m zxw7iOm8I2bmn*9dTv=M~=gO)BSC-c1ab?wkD@&{CHl1zyI&fuqHO}k3I&fua&BVOR zl~o6>EUgeFB(AJFaAj$+^F&HqS#{vbB2Bmi|CKw~)c;*Qc}*!>*Tw4pUfP;mS@l2K zNjutdnJnpz0269*Wz~Z#%WopMvg*N=3Wz~Z#%WvS+E%_s>2UnKgz~#!S2UnI~nU-8x_29}XtkSQR z>%o=fw=uY~>cN#|s5MtsJ-D)jqBvJpJ-D)jiQE!5xw7iPl|`=&_PMHpTv_$t$`WQ` zx#;7{ss~q=k-d*As~%igo}>mHRz0|~yeUm3xUxJ6m75q`S@qz`66u{{IjzO&!If1| zlVJ7W%JQgO_XAf}AqA3vE6bxX{25$X9+entSUtG1gjm+A$(2D>LD1 z@&&Wv%8G+4%gn*Ul@$k9mZ7AI*7XRkEJNpMMQ~*qDt`-tE6dROS`S=VhSJ+|;L0*| zW~(iDG}zGveVZ;RxU!6N-u47nmZ9@B7PzuZRe^>ASC+8Q)#~gI#eoo^RchzN*_?@k zD@)JhN{ZsHu{gN0w1zU%cLA;}uZmts#le;3mD0O4gDWczuB=i9;An}1D@&W0gjg&N zuB^f;N(Zhit)zC;Tv>5&WfjpSSR7ngMU?F<4z4V%JfFvv6$e+ANAKs#ii0al8<<>K zad2g6jmlaqJmX-o(i-8C4vSSBELK{j5|M>W2o|e?T9?Ht4i+n6L9e!{MFj~}93)ga zofdLKO!IRdEv*2MJYiwcwbFgJY_+ z30zZgOvT&G$PVW|9ge9uIHvM*niL@2ieoAcj;VYTmt!gpj;TUwgJUWVjwxXxXE|Ml z*)1X&aNg?2!7*iw0*;wybOpzh?(2?)69_e;xTE6Wj><2RYo+3S;^2L5RcsLOG3%NDDdI6tKW+Bzi50Sanc3;2=Gbq_10| z`0#6jHsl-t0><~eyLtkzr$TeroY9r-d5_(JC}kjH&5X}34NKmNJ-;A?087iuW6v`c z+mJ;$Ih}&t zVeVQP25JLqgWVxLqk7h(0yOSn0HQt;1E1L`JCU%w2*10&s`8|q znyrblZ(9@1)>-^>w%NLXe=Y!a*(q9Hfvi^`)iL+_$Gq1)W?b($0H&SWV1ThkRs^8$ zh#UaSxV$mk*|+J=rXBs~P}EXB5>yKRUjIf9Z!~ z_Je~2ix{m22$MvOz3Z;F6aPEn#;$K}E&&D>u(B?yJi)@^957QYKm=?7AQDjjq-<7z z{o?pv8)dfqr$L#$ir#Q+_TLm`_Rp0E!1cs`e^pDkqXkiBzX!}N2a?o9eZ~0e+6$ag zA@JhKme0-4E)yQ(VFd_(gn&|K31YUQ7u{7s%oYZ#4RT=;s06a-G(pJ+%6|e3+W&y; zgZ!iTTS-F&AI2YG+4(VOIlQ{cz@VjDWmQ=hgO-wUVL&g8FcScS_HB?wm`&N%AbFT= z^I_0Zrl!orprzbQMOIy3|bOw=Vkczdzh8KbO)VkK-!x)a{+0~h9yR9 z`CFndMsZ5v(+2t1U;*Sf7oXN1L{|T(?roMDFh|g|e@z)FwBdYc+93Z~qzcJTq$0tZ z$Q2BiRkW-IBt)#1N+(YN)KFWU#c8?F0zP4&T>`@*kAYI!!pDxa+(D^}$o%2qy8Nv%Tyi6~q7{)+D* zLAkuEvoIESRfYoSD^-4=>@P%_6v8Zz$K`D)gxOGd2eqa~nC1H$Hj!1xMVRF$`2Pz* zl|;1Toi%iZ(<_Xh6eZ$S4#F%yX;TryRRV(!`WT%?sszF;KiNQMu__?U@-91oVFGw* z{3+yS&*4us1mXth;sRlo-^0HMA#NCuuY@qm?+rOs00|+?@?Ie+mo@@nmY)_Pl!}sF zC0JOV6e5&Mh|uYHpOBzvBoPR+JS9XZABhCQEbkYhdSxZDN(<3$DUt}Yd_c&WSnWEh zk_Y%0KM1t8DxkUwgjqgbMdv_;H4tX`*^m%gJ6(iXo~@#aV1bRVISe*kUT3^Oz_>0Bm1P~*it)??v9V1w<(EURpe*V|ITsqKc7ZS( z>ce*I~Q94C&v(j*CB3 zYQ97z_$G~mLH=E+Do8~ToDyM{17Y@yK*rm>Xz`Z?Dh?6InCt~8pM$U#PJ^>eG;WLKpZ(h9I33&(gh6=M-C82%J_pqZk7Zfj->bmDF~1e zu#5`Ckpsk$RKG@rG(j9WKpaW&>!k34IC6kElInLGT@XhO5JxJ~R|u4mzbg6a+y)60C?f|b<8}ZPev36JZ{R>$tN|5ElY_L#fwV||fK~-*mIq-*%p)Q+* z2p0qX@EMo@e>f;c2r&fw13I)Z1c*~L1kh5Tf&@YSW&GXsA&eM%fUaqnlSnSGg8av1 zL-%*mV}sQDArLeA2oA)kg>jN*_y?VHF_pOZ!~8q^2is`KT4Vg5tJUxY=lHIuK8%s5 zs_%(o%oGxTn14U?1vD?_iOUq%$)6La)ffbE<3EVL6ZM7J!NDKqKNP7CS4sR~{-bId z=~~e)5`UO8tBOX%E^2b%4|CuT)5r&ZlK8_M_`}aZ0Cy7j!yNd-R5kD0WJjmVGjIZx+!?e7VZl8!&GbV6M;X>fj@i-DIbGR2p<9dFxA_O;LFGf z_`{SFe8|Bc=D;7O44#DZN&I0B{9%&3q0zw~=D;7OCC{5>d4WI7fj?Xi?|52t5qLE4 zhhGL4epU=R0x^~Yf0zc2kFZ^zL0Ymlnw~^X(^G3j75*>>{xG#G;iD4%FbDqd8j{N4 zg>m2y(;C#hHr6RDbN4KIj>_j zH5m-mFw%o=QyESUYy$oe)c*z>T$QYpKS!d93QB zl?yIw*Gr?dBH*%iypArrt$^MDm$i2ZD-ABYUu<*cgUf~iF8c&(Sn2b?Wy5<+ePM9f zFu-L+9(mxhVSvjD4Un!R!ifi5HVklCeQ|++QUF{w3~*U(MUZlYj!JMT(wKz-E~^a$ z;s|2+^T1`p0GBOp280R%mkk44RvXc_b!l+fFu-NC{cV8Dh5;_C6ZpVo!*}K@#hrS< zWy1iM^=FX}E*l28Y@U@12kQry4Fg=(Z*79hhVRPP7eM|D16)>Tj5ge6+B^6^jv;+}kY-_k%jzOX ztT)HPh2{(cTvi*E0GAB|Tvi*pWs_B#4=x)9xU4oW0WKQ`xU4o54(}pqh5;_?(-rVW zfXn)fL>Ht_fe3y%3~*VWz6iK%7~rx#OYeOO*qt!IWwn(LTs91FS-(=2#zlw=pYoXa zz-7Y#m(>{*0hbK}Tvi+9gUf~iE?Y?N1(yv2Tvl5Z2bT>4Tvprp!DYh$m(^P7WiGgE z7~rygC7ja)mkk44)^Fm1%Z33i>sR{0Wy6D}O%ZU}Fu-MXM#71_kg#EZ%W8uH;Id(W z%W4Dqbj^Ly>C5SiY3K)+4Fg*x^O!S16;P0p#v@(2Doe~I|p1g3~*U(R|;G<3~<>(mVk-!fXjvf zE?d&h!R!n_cq>B%E*l28Y@r`xWsBN*z-7Y#m%W9h0GAB|T(*#%nDL}1IN-A3DUMp;VD{$HH^KT=aZe+c50JvhE~`z{1F;zKov{Ppvf3aYTs91FS*VP(O|?$;{}%u16)?;R}fq_{A$yr2)Jw*;IcX&$B0(?ITxii3~*U(BktM< zAIri|nkGK27hE>{TGKQSTs91FS$(mR;Id(W%N8^>!DYh$m(@n4!DYh$mld{NqyV^V7~rz5rC#`XG6T4*YvL~XOz7A!z-3(vHxrKqz-2uadEl~PfXf!O zaKL550GD-*ih#?80WRy>P;m=@%Z33i>)Mn6mkk44mh3_w9IW?z4~uW90wY_fS1v5$4wBm)gNVzP^ReAg|8jbryyCApVtEmDaa>DXh1%e>h65-1G0Pe7nr> zDn@sD6CZ^vQaJ0sEkpd;&eMz${RA<3S46Vs<8SaW{Hdf2SUykuZ$WJG#M3RAJn@vw&lCRuWZ;RXZ2t(qe4cp9 z)TD!VWArFDQ{lwuNqK&Zo|GFgdL%G;;(KuJhUJxt!vn84Vkp}a2z9I&si$lp*>Xi= zamop#!5E4?Wb*qU{uG2DmHZ|AR#Y5n|&y$XIGU1Vx_jQ9iqqgB~<>`O=? zLkgwjvv>YIB#LmJgK$2HQ-^RqR1;aIsY(XewWaXqVnd9jKI>@i;(%v5+k;@!kwYmKh?zsr^tGZeJ zPGq5j{Hk7GM<&tos$VP%RUnQ{hVxauFZ>$V$+H<&^=u6(W#QsD5``n?_^S7W(l|$) zm1K^udPce}1TxOA>irdeNhQZMbzEQ72g)cHmpR^!i^eR=skpvycn8(1j_b4cH!LE7 zW{$T{@NbFhim)-evxd%4j4RAODN3N3i5`ZFBeaekuBox&09B-c%B9ux5 z@li0IofIO2Io|FQ5|cUJP6?689B=mvk;xoyr-jJF9B&T@Srdy9Wh@WaV?2&`Xf| zuFsweQjIC*c>8kbQOcr@%4sh&Qtb-nc*?lyRro_cb%hH4TAXO+c>5;*&k%r88%Ws9 zel+@jBNLp8xIX(ac^wx21GwOy!LCyLp;A{KLkTKB2j53?{|~6jNu`TU?%2x8!5nWRa*NWPR(#I5QABRN4RLF5*tT$If5HX^sEKY`NOjoh*kxz&!0KJ&p6nX)w>U-kYWsbMMA6i25 zI?VC*bK+Do$J;-Mz7F+eFvr_J6sZp@=6L%@)#S^qE_1w%$Sv~uE^2Z_ZrO<3BHxBT z$;d4mkz2nH0o+MMZrO<3qN;%>$;d4mky}&`a3e%+*@)btBEW?Zxn(1Ai*5?ug2*i! zky})2@DmZaWg~KnnAaWVcpH&hRBw_w-bUmWvBDbipTrtPnh};r`0`evIt>6@r zq?zMwL~gx7DxY(#F+De@DMTQ(xM=v*7QqyQ4ZMnH5<(F^XP7< zc!N3KM$oZXhR~pd;8?{RZzJfKx+;n}Z7|2%2s)-bB7Ww0L?+hJT$slkZzJfK?ia42 znd5B)9n;DQ?m|JwHiC{PP}ED*7&_?KM$j=e2pq=~bZjH&nB;IF4|BYYpktChZZOB& z2s$P%^Cxh7I_TI&(DBP@HI0@TrkJmV2=L+ zB+?fzGaEt5bWQ>lq--Nd`Ku6tIiC6`9g6(G98X^H4Sf#gcpJ>|G!;3_@iyX_$;Dje zcpLG|R0LU=eJ~Z7;Y$dbV?=L)gOj{MEYB)9J=0W?$B#M2KIV8EaeXve6=IIJ5!d$( z=nUrgZ42AUZL7YB(diw?5{vxT;U6z^{Px%Z(izP0+iPp7mOaez+v}v28{D_OUK$k$ z-dh3G6x$xJqif%SIez;tVWorniZRD?1oyoXqfRmAc#hyctuGwh#}V8oZ1RHpID-3x z25%b8cs#`%&k@|GGZ!Hr1%mrHg8Q^pf#5#A&omG_zJ-GOID-3hK7KRo5K?d-M{u7u z60uGtnd3Qv`?URS1ov?S_vr+_;69GvKEEa&u?u8 z_i+UG`Sk@NuQ-DHv{_zoA8#?$#Uu5MFglLlKAmInB);H2j^I9>?3TfO9Kn5lbNBY( z1%Bpuj^I9RUpTmrBe+l7$an2dR&H<~M{u7uDiPer5!|N@-LeVq$mIw3aRm2i^Af>* z9Kn6sP&m9B$%L=Z{JH|(h~Pe72BL4#3tkHD;|T8a>5BySaRm4IEWP(Bg8Mjv`?QrW zxQ`>a&##oFao^B$1os&xzTiHN;6AM_65PiT+^3E5gZnsw`wHp3!F?RTecGyca3Ak8 z?fk)g9Kn4$7wKhga34o-pI_+rQ(8-H*g zM{r*$LnpY8Be<`WofF*05!_eG&JFJ42<|IoC@|9Kn61?A+i!j^Msh zhE8xFM{r*$J14l0Be<`Wog3W85!_eG&zk!F?RT zeZ>q51^4lp681VCNDt5m?z?sVDw2UCxUZ#u40C)Xo#!#}V9j3ri8)#}V9D$WF|7(i5EEK91nNqNW(WL~tKRa9>d)Z*U*K zTEf)4X$1Eb%`z{zk0ZFRsC9mDA4hOsA@jn)b~;3fBe?ID>2xD&&qQ$FEz`Mvq>5c0nxUW$9 z!ohtU!F{EyX=+iyeH_7krA!M4_wkpMPE{bdk0ZFR;DyZKK91nNqDG$JK91nNLY5d( z{lR@4!F}4aaBv?-aG$m*7~IDZ+^0aPn#AD?&GgEO`Nzr)RD;?&k@|G^Kp#4!F?RTecDFMbH4CB#u417O?+B!a34o- zpEk`4?&ApV)9RAJeH_7k1x?N1K91l%ZB#nAk0ZEG*cK1&;|T66U{WBsk0ZFxwbTng zGq{fQbH zu!4UQe}kXHpGtb|1;KCNI8Mi3C82sDNatlvJjsscnn&o|4KUf!8hZkQ{Xd64k+<%o zD2e@Vq~o`VUE(U*3O;a1?SNa@Y~H*nc8MeJtcyW>0I&F$mlhT`S+p@s>F6E~P`KI6 z)s=Y`-Mfu4rd+G&o#Yad*lZu|MdLlj^vulq{3ERTFRh~wLE(r6ghusWN#QPFo93`p zP3%2v$f{|x_<Nm*4N#_8b(yl<2S{g!<%QnWT)z6wqUnahC1PoP%1kPBX@*9=*qS(uz|m_;bw z2CK~r3HTJL-iXKHXSi5ChrHo{Bs%BZYAY zQ9Fx{=XA8A5Qtal50ZvDLZvvOKS)SDse+e7yfDm$&m(k~XRWWNRMl5+N;ofsqBxaPLjV~Jy}O)Xb9w^rs)EfCG_(kxD=*Jl?` zUGM5_={(WYvf%tbmS}2megZ_2IF?(Mmu41bk%(X?(Sc{Lv|t3=oTt9U!aih37`Di3 zwzM6W3DrM|V}OF(+E_onu|BIpQa#2fOs?}p%i3&xs)?2V)ozjoM;l?A!%bVVtK&#wIT2Ml#tEB59KMgw^-Uy4Vbq>rm8C5R)2FmWc1-L&vXIX#IXq=tidAWKGL@PdnW9IL9A2^v zj$x}0Y^A6GTiam6WO!_FDh(D_QsZucIHA?)@l2k2n^x1U4yThyvt0|vr?Nx25m8NS zhZa-*!)PsNSwxHb$ENxmaa4;P>#=bl7P?O27(-g4rQ=D^wGIJhJ2x;j3S1W;gv7ks ziS*>u#Aue)YVp9>)I{#SDYVmYW+VeXT&+S)Po4)CFnupHkVYd@&Ge;5!Eu{{qp><| zI-D9;9#F4^;Hm9LP4;I7F0!~5Q)OYp1REf1mzEOzz#zU&>c{f5KP?&{%Nn$PY#bD` zgHvp`7A1+Sm+CzS=F(iUzkh=5(c0|r*!f%r?T$Yq2uemvu*M?lE_R33$ZTPr8ykn~ zQr;=y4^7%eH48nrjt-&~_G%S+L~=MYNZh%U3e`e3sKc?G<3(AvPuo*b(CcPeN$PYO@@09vpcl{+`hTY0Kj-g z&!I80qwKKOsR|gtAd_ZCv^;%boceOIFUyWUqs{i3JI3OHH zutc{Ovm$(Yj10=G&1*KEOo5p=r`nrp%C$^*Es3@muL)2v$}h{>y=p2;Yp(BNZu|m3 z>rZHmAq;;c1DYhVLm4qD%h}A ziXm{MEq5-H%)#$Rv}SaS#-;IOW@tyXIy^n?D4n5{94(tvkCo5-6K&CV`rvC~dx)t%n2RcXxOxpUOeQ{&j{VGn54 zFq)4&k5!1ZC_MxC*P{0af}eEOqR9y?*J#>PYg2VTPF127o~Ed)kI8kW5MCf3ma9u~ z-j_X}99N4;ArM8WV1Y=5_+$wE1;>@nag(zGH$FS!WdOJbvE}uq%gd|Ngxp?^5Prm_ zBB85tBu%bFEX5shq&zo3iN)o#jTTm3# z&-u@aS_gTJUB(-D)T*wG)Zu~d0OHZ_g$Oslla=uv`)<42&eY%u>JX!UDt5qt4uZAT zopB2Xl@&t4YpgPE+cE*kL)(n>T?ksOvaC!EY3#kI!|(}1-5b9Ld>q>-Z+w4N0}Y+; z*o&NxLlRL%sgOm9)>-C-s?7@lOufdVjiFrI?FwD4TGJfgJFuOi`s&?PPZ&?VV9c*Wukj(P`QdC(%tU%2$0Dhw}MoXMpaOCdIwIa5bCrEH))*iHM7Ge zrm8)0Iaz!AA#zJCMF(^puWZlMNa4X_R&U&CS!(yw^>6AEEqUmbFTpo>R-0&~JAd{i z77O6p&%^TIwS71~A}yZki?`vPj~-)`<;r&Fx*&P+h)_DT^uN1V&HqVmX1dRvagPHX zs4)6;pzc@tFrpkZo$8R`OLs!S$lKsz9tDr0X|0&b_ zQ6r$n6*0=wxK*ad3}?hBH^&~bsgOf{kp4M=fwA&1+I=?^+?gG`gFi;UD(`G!J99zU zto{|AsY%%P#OK5aw9Og*x8wTm$VS)SA?KoqJEEfWGzdpMH&c;-sWUlGnK8%+GH23ItwA@i z$IPqCCQ%~@V#FLwQ-(3)Ho3QkihqAd#v?w&q0h*MJqPMt3M{05d#|e&k6^{70dvTR@ zD>)QukuKBbO(WZdv4mGF@0#q}18Tu>B7X|)@J`a5rf1-CfTG8($aRk@NtZFkb?XLN z;dH5kP;%<3E$Wku>?lEg!TiHf|pL$qwKD1@qXR(}jDR_x4p}k~UG_~!y=8T)MYWrE$t(A|?nT>^%G$_oQGPzW| z?Df`r#42&YYe&6{u|==b$i9Ua@owi(<#<>RFA33CugEcphP7qs#PUXz{Z)1AIF zgcg12PVHuy8u27*3gjek#Pnx+IQKZ)(E{_rUDE&5BW$xVS$ozXlvk4|&oMI-#*UkX zKnTt;)kVAQyvw)ACmeMtEI-=3#cQu%Z8d6Y!qUS%?$`s%3F}jR_`JWm^1}bu-qpa! zbyes0cKpWw%i3$lHia?)Cxj5s`e%O#Nno8A@@FTG6T%Ww-pt|y+I8D?hfbs(xM zqM}N)b?Fa?0st4sVCP1fheU!Um zSnxs=t_rvZ5Z0(`58g5pvD4_ae3|2-?a5XQoQoy0#Nihj*Ul?tlp~w)>?vG0J08~8s+WL z?h)x6n3hMinw_hw;f;>!LC@-e8&02I1S^Me)d*E4t`a&qgl^LLd}-wnY>-Zuy>ghc zc2~wUN}TYt36C16*F}u))e%dUTt-Y8r{qet+MX4%PV03WR`NRNthBmeg^p{-WJz~5 z?a!LD{lRLrtU_bO`ex34OougH1{r>x!w<1lFz4{HI@kRv7Fk>bvw{xQ55wY}K1_fyK|F>EOt!M3px?xl+D7Q42%r?_*ZS})fYXDfo6!ofz}9j!*A zV@kECBggja#@K@__j&1-xS#pcZU#i~UC z+~@0k+jxNS%Dm%KqPQUR2x6EXfgU6xIn7HQ1py7NThiR*EzfNX+c@QN8bA@3IwB5g zj^{e72b`fvR@KREalPE_Pd@(ml*`$CkSdi0Xwk96r&mq0Dq zwXEFzU!`iAva#z}74NJn-Uc@h)yv$J6@0<+)KTYR3_uIGEx3xq zF=kMOx$0|pzCZ(F_W>)Y(FH2yS7&`LqTF62E)wtX#s;4A@&hlBSi38a5Wl!Cl~X*Q z-ZD~t{p&|&svY=wJU-E17c-es4)F7#0`E$AV#Yw+7`(91s29t|VES;q2y8Es$vN%h@%dR*OSLoW>7_b-c+=v3({vc>MLncI-tkJDTJrLKX zA%)7~et3NVB)?gj<@LP*4E08wWtu~20>?ovd-ze(t!8=Fh?0#q;tsjBSU*xfRu9vS znFp$~wJ=?#j6f#HDse%x@md90B+l1BpzNdeNhx@+&|X@wIE$?sb=%McZZp7X)GDRL z4#kSn+LiKRtJ*n^l(32vU9hfJ#P@NI0$q(3;1 zdB_HDVtxwocU+cRb8_?W@US-o*xKCsk9!;L@Ydy89dGE}cz(=Vmml`FeBRse;3B~9 z?$DpS%=0#T8}cvrw&a!w*nb(b1H>GQcrx5JkxlvByz6bqZTq-MuFr4thH}T5dsoLB%)RC|Z+#1pmbdu;ut9PtH&3kGD?6yzpg6JKdi%TC{2uovBzkZbvn?cxVtR z28Q6${sT;T&bb}mFWkNDe_VW#xIMu-l?<&HW7X+WO^|sS9Ro;==WnjxmS^V+`Wq7(?`6j6niSsW!?Tj!TkiFO*vx?QE)C(iHu%*_w5Y zWYTAbe=I-uar99yFW*y$ugI_3XnvR& z$UkPji{_h<)%n}ZH{q+NR^4XEPoV=JGpk*9zO>o}!Tq{-W?rLU{rkX|hhWvch6eWT z%on5wM=XLUw7&Q&w^1CN;oP9hL31Dv)q4;8pq%qge81pv#OeB?t6*VBUoy4LgV&)e zV2^_zIp<+~zu@A}V|w@E8pcL0!HUZTo00$eujZhCgnx?#f76I3fx+tdJP`cYYrOg% zms1mZOx$&>#%z+Kpv;kF99n+h#^g^2Zkeicri;02FkJ>kol^oKTomA}QT~nrhK+IJ zW!@D48i-3PgLULidA`nq^NM(Mew!_>}gCuOMAaFGriT^hNui$fj ziGV*0mI~`ut~y1FihzqfB-sBm_SxjV!JY3Jgp8NV_XgnV{~#N~d?wZ_AL0Cy#IX}* zTaBLO5dRcD`X@v`_-BBxe<1XOPbJXB|1A7b(B26oo$!ASosePg;LyVZdk43^FSl=S zGWY6%HG^CCJ~cSB_p5`e-iigDW!rZG^weL({#p~R!8hSU_N9tXSU9K;+`EQE@5c9m zwYTE?W)wg^5&w+EN2fJ`@NRM^{C|M2!#cXV3CrPMg$|+PFS0I+za3AffUkC7hsD2f zaOeXAP_F60p&Or}g1riv1TCyV`%Uu>8XvcG)g7j>xYzRA#}{TAHIuI6?Mh95<~Z(V z!?Lrpzj5p!?=S-x!;xgGH?YXrIEHr~HvKY|LR*z`Wfu4Q%vF~bn|^5y_i_1ijn)z8 zkbN8Nt{}EMi0vWCXi2P0w3K6-+f)nHjv_a(w91#EUVejvB}@$CWn2+fL-jz#iKj?+ z4om3%Y;~UNjb&WzhG89bk5Qa&H5Qv#;Dw)(`fRPT*I>=H&Gmrol0R1~&9@z`|5dL`Xc8}Z3%NlNbPhKb z+aQJ8>?%#Hf=5##+Gyx2O#vA&rg(pnEjB(vB55r+wPd#OtkdB?W5gItz83 zdo;S$4zM|=dD_v$l>rbWHK9ZCGHoz>-n4bx(97UDcWIQjN($(1t&;w_P5{zcxXwY1 zYT3XN3dwI=2xr1C>@V^vWu*}zr%mcgZoqk!C8Eq6aCSbT)HLgWv#YBd&)U4t1r<4@ z(eGPOZw96_-_*UYwR#?N6Kx=UAuL0zWa)fPPLIJXfs}ND6 z(KakEMCL760?K>{RHIsJmN*r(L75LkjcTn0QB%r%AZk==Er^;@<^xfq(Ke)Y$=XF{ zyRG|C`^#RgmHwLuOygg(FxVE2YC!|eAJy#B*v}rDQl3QEqoqn?V!2F0vnpOM8>Dz) z5kXJTtSlmXAj03}CP48udQ||rU!$B$F#t=WI|O3;kxlgY8Mbifx<_aw1S1RZ3#CIC)(-vpF!TE0>q#2;b3_B4(r*3n^f4+ib z0Ux#|=kCULIy`MbgZRz4Z@_oFKB@^tJh7T^d>;QM%?*VC=|t?#c!5O1&4K}MqMPCT6w(!C1mx2oxoX6UbKg_f?^LpaRn~t z0wf-24`~I(9*)NwWl^uQ;-L=Z+#BKqY>GCM^~tiCw3K2qTZqNwPExd)w3K2quOTQE zsE4QU5k2f}GifQaZ07F(M|4aV(jtn1XK!T{@yXH+!6ARrZPKxl{3C;(cYn9K!G0>b zu>!Gp(7t>6;H` z%k*Xt$?B)4QC5~r??i>O`ss8ZGChN`vSj*?z=_F}hj$|3D9YhKb6GMKoJ%89TAeJJ zP6H=Prns@!j?2Am???NP={b~@CDW(+km;#DWC}rK%JjcbACV~{&PR|V9)1^)Nqn+o zDmauW7h4eRO8=wSN9& zIMWR2aXkHDAk$CAD{Rr|Yth3R!YAiGo#G$SIOZ1cBunlSm~=~D{vJ@%r08pX1RwFW zJ{=!S0cSAdGO}jbaP~pz?+1}9PD;n+4ZsoIi0*DR#h9Wt-}+@0T9j|L!6%iawfphd5YABviLr*DU~p& z9!>)!dKf;_nCc;OnzCHhH6BzCCjk~cjF&@f)x#ykQAyNiJHA)r6Aup|dH*KY>f!jk zjx!cVK#F?!rx2Em7w@HLQ-ONup;4?!&i%V|=K-90co2A5dU)AJ)x)o&EM!Oo>ft1w zh#u}vJe4H%uz>nx>EQ{G7d<4W$jvaQ9_|26sE4{SQ}FiHYJ8QEb5=DWUEN?+L~zKT zcsZnWKDsdpe9;Z&j0e??g8++eq(z~+@loK2ZWzhN2_Z$@_}~Mo8^5?B$scB*Zft)b(^GxOl)IC9%2d~=!5o&5bBa~2hHant8Il}Y1IXAjNW~zd zC3EQk#ZKDp+4wL^+Bi52c7%-ptG|NI@5j7ne2nk zY#($E_Ce=xA9SYsp!5EK4wS^~c;jyv-U_X38ajop|EDY#$0o+db~}^EBHo4i5|WE{ zV+Wqa`{47l8@HgY@u1_y6u_t?%A%gfgN_$p065ET9Q~l$jUQbN3mGSb6z#?v1G~`y zZ_n z>9$AtW841OW!kPi_Y$^i^f5HU$g5k=m9~#QU+(HtW)`oB56z}wp2}%W860WI;B`F}4R-#V>$~Rz&mqNce z9cU#AP%E(#aETK^dAJf~N#DW0OZu-XUM#C?Sv5Qt{VBj2Cx{?mlV`Ch@ zVwP=`|9ZqA6X#H14AM`o@oSQ~CVrBHj6IPoYjj@{GJbtB*97M&@%nrmX7@-nQQdDNyzx4DLR`{bbgl1HTrN8GR|32tn`VkDLN~X zIHMm((Rm_?Gx3TPopni^(LYJiIg`TqXcA`(i$;k$7s9eyID3U046E^>O>~?u<2l1G zvHM7(XJZf_ulB}LigN}y;mX@)WS+MDUC>97($PvF2c-Z*RUkef|6whOKK4Fz%n z5baF@ISGjN3xRwL5C*nFAdeZyWTX{e0_2n_3m(3~{wg5xI)96~PDI;&ju5!G!VUkv z`mqI*SH1?^*CGNIC&KC#1Qa5rzXlN6)R3!hHaO8b-<5)tQ;;?wg;*=z2MB#|jt72*6zixbM? zQwA~_!TACqK`U_Y7H&cUB*w$90Y}FaDg7IO#5wj8K-AU=P98L-L5eAX3E z=0Y^2a}JPaVz~xDKrOB08UlnJL2^M4OL0Bij%R5-yaKtt5K#7U$Hy$*dB_m*XAdiD z!+={rEKTPY;Kc3Wy)nwnUX9UtO;c$Kr&t_;Cudf>pC&z9V#0C*HrV2BZL7mLp}o z2@uA@vhK5#LrBX)fCk%gIlj|ny&pL7vi<^)gE4*nlBL6+0cQ>;xJhwmfb%pS6lW_l zi}N^-SE|qBoSRMZax;yWW@cKIqnfJmf=G*nGgk{i0(ZG7oW_Ww@J)CRaR(>t7Msr7 zt9Aax5rJful&Dg)U{jXah`9a12Ord8r8>TkT>R-ZV9J6JAk@?ar;eH{Mz-H=BAm%N)M4wP#E1{yyExl}Pt- zCNi=?(B8?{?YtxJ@h}61`Kzdn1A>*=gQ%^<4pmC+M%^al*jqp(_~X-Ij5p{l1<&dY z9O*N+41`#{59f8gRKw;^pJEFkn3l#l@AIU*%tDK8t0J@X>3>&M5&_KZ2j zW0lg8q7NzKV5G4G#cn6x(rAZnzq@m7aK^K1Cg1lDz3mRXWE}6bzWXh2+jl2kKfM3W zoAgbwzK>Ol@lk#s!Rg6L4ez2afvM~X5D)$hz~u+fc^FtwioQ)&__WK6`HEj%Xo?dc zC;EJ*?P!kNyo@g-cI!fEzH%e3Z7^blxNIJj)oiyaP(_O^YU1;T!BQE003D%_ZA}Gm(AK6 zW{dJi>O&}xfG+t96*#9j3LD|uVcZ-QWgC%=T}6SWPp`CIw*Xwt)M(4D{B$_tmwS{3C#h?`1bs}N z`lyr&tsF`^{w`@~!cqyBw(y+0)v_+UiS=6a%B0fMv+JuiR6#rG6_vI#D&OZ?b3#iD zGQL6$Bt*Sol3{00=pR)p&}!py#w&(KM(v!`BF+U)OjDWE7@1BLH8~>9PFQHf{1~%C z!>Ibo2IvqLIW}#ZB7G-nv*a31IRwt0Lq9TAwWxGZ5L#%9z%8wyY^GbB*_$ T&CD@XT$Zg$*(2qUFya3I?M1?6 diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeRCCompiler.cmake b/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeRCCompiler.cmake deleted file mode 100644 index 21eff0e..0000000 --- a/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeRCCompiler.cmake +++ /dev/null @@ -1,6 +0,0 @@ -set(CMAKE_RC_COMPILER "/usr/bin/windres.exe") -set(CMAKE_RC_COMPILER_ARG1 "") -set(CMAKE_RC_COMPILER_LOADED 1) -set(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc;RC) -set(CMAKE_RC_OUTPUT_EXTENSION .obj) -set(CMAKE_RC_COMPILER_ENV_VAR "RC") diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeSystem.cmake b/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeSystem.cmake deleted file mode 100644 index 6672a79..0000000 --- a/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CMakeSystem.cmake +++ /dev/null @@ -1,15 +0,0 @@ -set(CMAKE_HOST_SYSTEM "CYGWIN-3.1.7(0.340/5/3)") -set(CMAKE_HOST_SYSTEM_NAME "CYGWIN") -set(CMAKE_HOST_SYSTEM_VERSION "3.1.7(0.340/5/3)") -set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") - - - -set(CMAKE_SYSTEM "CYGWIN-3.1.7(0.340/5/3)") -set(CMAKE_SYSTEM_NAME "CYGWIN") -set(CMAKE_SYSTEM_VERSION "3.1.7(0.340/5/3)") -set(CMAKE_SYSTEM_PROCESSOR "x86_64") - -set(CMAKE_CROSSCOMPILING "FALSE") - -set(CMAKE_SYSTEM_LOADED 1) diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.c b/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.c deleted file mode 100644 index d884b50..0000000 --- a/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CompilerIdC/CMakeCCompilerId.c +++ /dev/null @@ -1,671 +0,0 @@ -#ifdef __cplusplus -# error "A C++ compiler has been selected for C." -#endif - -#if defined(__18CXX) -# define ID_VOID_MAIN -#endif -#if defined(__CLASSIC_C__) -/* cv-qualifiers did not exist in K&R C */ -# define const -# define volatile -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_C) -# define COMPILER_ID "SunPro" -# if __SUNPRO_C >= 0x5100 - /* __SUNPRO_C = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# endif - -#elif defined(__HP_cc) -# define COMPILER_ID "HP" - /* __HP_cc = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) - -#elif defined(__DECC) -# define COMPILER_ID "Compaq" - /* __DECC_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) - -#elif defined(__IBMC__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 -# define COMPILER_ID "XL" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) -# define COMPILER_ID "Fujitsu" - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TINYC__) -# define COMPILER_ID "TinyCC" - -#elif defined(__BCC__) -# define COMPILER_ID "Bruce" - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__GNUC__) -# define COMPILER_ID "GNU" -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) -# define COMPILER_ID "ADSP" -#if defined(__VISUALDSPVERSION__) - /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ -# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) -# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - -#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) -# define COMPILER_ID "SDCC" -# if defined(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) -# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) -# else - /* SDCC = VRP */ -# define COMPILER_VERSION_MAJOR DEC(SDCC/100) -# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) -# define COMPILER_VERSION_PATCH DEC(SDCC % 10) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXE) || defined(__CRAYXC) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number components. */ -#ifdef COMPILER_VERSION_MAJOR -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - - -#if !defined(__STDC__) -# if (defined(_MSC_VER) && !defined(__clang__)) \ - || (defined(__ibmxl__) || defined(__IBMC__)) -# define C_DIALECT "90" -# else -# define C_DIALECT -# endif -#elif __STDC_VERSION__ >= 201000L -# define C_DIALECT "11" -#elif __STDC_VERSION__ >= 199901L -# define C_DIALECT "99" -#else -# define C_DIALECT "90" -#endif -const char* info_language_dialect_default = - "INFO" ":" "dialect_default[" C_DIALECT "]"; - -/*--------------------------------------------------------------------------*/ - -#ifdef ID_VOID_MAIN -void main() {} -#else -# if defined(__CLASSIC_C__) -int main(argc, argv) int argc; char *argv[]; -# else -int main(int argc, char* argv[]) -# endif -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; - require += info_arch[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXE) || defined(__CRAYXC) - require += info_cray[argc]; -#endif - require += info_language_dialect_default[argc]; - (void)argv; - return require; -} -#endif diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CompilerIdC/a.exe b/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CompilerIdC/a.exe deleted file mode 100644 index aeefafdd2c9eadc36c5a055177065a068fcd5b4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159745 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 ZHC0?MbC)t{${}Hb(MMcOXU?d2{|_^I250~P diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CompilerIdCXX/CMakeCXXCompilerId.cpp b/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CompilerIdCXX/CMakeCXXCompilerId.cpp deleted file mode 100644 index 69cfdba..0000000 --- a/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CompilerIdCXX/CMakeCXXCompilerId.cpp +++ /dev/null @@ -1,660 +0,0 @@ -/* This source file must have a .cpp extension so that all C++ compilers - recognize the extension without flags. Borland does not know .cxx for - example. */ -#ifndef __cplusplus -# error "A C compiler has been selected for C++." -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__COMO__) -# define COMPILER_ID "Comeau" - /* __COMO_VERSION__ = VRR */ -# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) -# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) - -#elif defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_CC) -# define COMPILER_ID "SunPro" -# if __SUNPRO_CC >= 0x5100 - /* __SUNPRO_CC = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# endif - -#elif defined(__HP_aCC) -# define COMPILER_ID "HP" - /* __HP_aCC = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) - -#elif defined(__DECCXX) -# define COMPILER_ID "Compaq" - /* __DECCXX_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) - -#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 -# define COMPILER_ID "XL" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) -# define COMPILER_ID "Fujitsu" - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__GNUC__) || defined(__GNUG__) -# define COMPILER_ID "GNU" -# if defined(__GNUC__) -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# else -# define COMPILER_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) -# define COMPILER_ID "ADSP" -#if defined(__VISUALDSPVERSION__) - /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ -# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) -# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXE) || defined(__CRAYXC) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number components. */ -#ifdef COMPILER_VERSION_MAJOR -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - - -#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L -# if defined(__INTEL_CXX11_MODE__) -# if defined(__cpp_aggregate_nsdmi) -# define CXX_STD 201402L -# else -# define CXX_STD 201103L -# endif -# else -# define CXX_STD 199711L -# endif -#elif defined(_MSC_VER) && defined(_MSVC_LANG) -# define CXX_STD _MSVC_LANG -#else -# define CXX_STD __cplusplus -#endif - -const char* info_language_dialect_default = "INFO" ":" "dialect_default[" -#if CXX_STD > 201703L - "20" -#elif CXX_STD >= 201703L - "17" -#elif CXX_STD >= 201402L - "14" -#elif CXX_STD >= 201103L - "11" -#else - "98" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -int main(int argc, char* argv[]) -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXE) || defined(__CRAYXC) - require += info_cray[argc]; -#endif - require += info_language_dialect_default[argc]; - (void)argv; - return require; -} diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CompilerIdCXX/a.exe b/UnitTests_App/GoogleTest/build/CMakeFiles/3.17.3/CompilerIdCXX/a.exe deleted file mode 100644 index 84d2aa8a4821ff6580ce284ca0ea5303c72c2903..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159773 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 z 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 diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/CMakeDirectoryInformation.cmake b/UnitTests_App/GoogleTest/build/CMakeFiles/CMakeDirectoryInformation.cmake deleted file mode 100644 index 3f785f7..0000000 --- a/UnitTests_App/GoogleTest/build/CMakeFiles/CMakeDirectoryInformation.cmake +++ /dev/null @@ -1,16 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# Relative path conversion top directories. -set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/cygdrive/c/Users/Eyal/documents/googletest") -set(CMAKE_RELATIVE_PATH_TOP_BINARY "/cygdrive/c/Users/Eyal/documents/googletest/build") - -# Force unix paths in dependencies. -set(CMAKE_FORCE_UNIX_PATHS 1) - - -# The C and CXX include file regular expressions for this directory. -set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") -set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") -set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) -set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/CMakeOutput.log b/UnitTests_App/GoogleTest/build/CMakeFiles/CMakeOutput.log deleted file mode 100644 index 8a71459..0000000 --- a/UnitTests_App/GoogleTest/build/CMakeFiles/CMakeOutput.log +++ /dev/null @@ -1,542 +0,0 @@ -The system is: CYGWIN - 3.1.7(0.340/5/3) - x86_64 -Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. -Compiler: /usr/bin/cc -Build flags: -Id flags: - -The output was: -0 - - -Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.exe" - -The C compiler identification is GNU, found in "/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/3.17.3/CompilerIdC/a.exe" - -Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. -Compiler: /usr/bin/c++.exe -Build flags: -Id flags: - -The output was: -0 - - -Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.exe" - -The CXX compiler identification is GNU, found in "/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/3.17.3/CompilerIdCXX/a.exe" - -Determining if the C compiler works passed with the following output: -Change Dir: /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp - -Run Build Command(s):/usr/bin/make.exe cmTC_40227/fast && /usr/bin/make -f CMakeFiles/cmTC_40227.dir/build.make CMakeFiles/cmTC_40227.dir/build -make[1]: Entering directory '/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp' -Building C object CMakeFiles/cmTC_40227.dir/testCCompiler.c.o -/usr/bin/cc -o CMakeFiles/cmTC_40227.dir/testCCompiler.c.o -c /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp/testCCompiler.c -Linking C executable cmTC_40227.exe -/usr/bin/cmake.exe -E cmake_link_script CMakeFiles/cmTC_40227.dir/link.txt --verbose=1 -/usr/bin/cc -Wl,--enable-auto-import CMakeFiles/cmTC_40227.dir/testCCompiler.c.o -o cmTC_40227.exe -Wl,--out-implib,libcmTC_40227.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -make[1]: Leaving directory '/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp' - - - -Detecting C compiler ABI info compiled with the following output: -Change Dir: /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp - -Run Build Command(s):/usr/bin/make.exe cmTC_bd7a9/fast && /usr/bin/make -f CMakeFiles/cmTC_bd7a9.dir/build.make CMakeFiles/cmTC_bd7a9.dir/build -make[1]: Entering directory '/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp' -Building C object CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o -/usr/bin/cc -v -o CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.17.3/Modules/CMakeCCompilerABI.c -Using built-in specs. -COLLECT_GCC=/usr/bin/cc -Target: x86_64-pc-cygwin -Configured with: /mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0/configure --srcdir=/mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=x86_64-pc-cygwin --host=x86_64-pc-cygwin --target=x86_64-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --with-gcc-major-version-only --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-tune=generic --enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libgomp --enable-libquadmath --enable-libquadmath-support --disable-libssp --enable-libada --disable-symvers --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible --enable-libstdcxx-filesystem-ts -Thread model: posix -Supported LTO compression algorithms: zlib zstd -gcc version 10.2.0 (GCC) -COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' - /usr/lib/gcc/x86_64-pc-cygwin/10/cc1.exe -quiet -v -idirafter /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/../include/w32api -idirafter /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib/../../include/w32api /usr/share/cmake-3.17.3/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o -version -o /tmp/ccts2nUW.s -GNU C17 (GCC) version 10.2.0 (x86_64-pc-cygwin) - compiled by GNU C version 10.2.0, GMP version 6.2.0, MPFR version 4.1.0, MPC version 1.1.0, isl version isl-0.22.1-GMP - -warning: MPC header version 1.1.0 differs from library version 1.2.1. -GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 -ignoring nonexistent directory "/usr/local/include" -ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-cygwin/10/include-fixed" -ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/include" -ignoring duplicate directory "/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib/../../include/w32api" -#include "..." search starts here: -#include <...> search starts here: - /usr/lib/gcc/x86_64-pc-cygwin/10/include - /usr/include - /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/../include/w32api -End of search list. -GNU C17 (GCC) version 10.2.0 (x86_64-pc-cygwin) - compiled by GNU C version 10.2.0, GMP version 6.2.0, MPFR version 4.1.0, MPC version 1.1.0, isl version isl-0.22.1-GMP - -warning: MPC header version 1.1.0 differs from library version 1.2.1. -GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 -Compiler executable checksum: 734d9bd8d3f826660b4544bd016c5bfa -COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' - /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/as.exe -v -o CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o /tmp/ccts2nUW.s -GNU assembler version 2.34.0 (x86_64-pc-cygwin) using BFD version (GNU Binutils) 2.34.0.20200307 -COMPILER_PATH=/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/:/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/ -LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../:/lib/:/usr/lib/ -COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' -Linking C executable cmTC_bd7a9.exe -/usr/bin/cmake.exe -E cmake_link_script CMakeFiles/cmTC_bd7a9.dir/link.txt --verbose=1 -/usr/bin/cc -Wl,--enable-auto-import -v CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o -o cmTC_bd7a9.exe -Wl,--out-implib,libcmTC_bd7a9.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -Using built-in specs. -COLLECT_GCC=/usr/bin/cc -COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-cygwin/10/lto-wrapper.exe -Target: x86_64-pc-cygwin -Configured with: /mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0/configure --srcdir=/mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=x86_64-pc-cygwin --host=x86_64-pc-cygwin --target=x86_64-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --with-gcc-major-version-only --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-tune=generic --enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libgomp --enable-libquadmath --enable-libquadmath-support --disable-libssp --enable-libada --disable-symvers --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible --enable-libstdcxx-filesystem-ts -Thread model: posix -Supported LTO compression algorithms: zlib zstd -gcc version 10.2.0 (GCC) -COMPILER_PATH=/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/:/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/ -LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../:/lib/:/usr/lib/ -COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bd7a9.exe' '-mtune=generic' '-march=x86-64' - /usr/lib/gcc/x86_64-pc-cygwin/10/collect2.exe -plugin /usr/lib/gcc/x86_64-pc-cygwin/10/cyglto_plugin.dll -plugin-opt=/usr/lib/gcc/x86_64-pc-cygwin/10/lto-wrapper.exe -plugin-opt=-fresolution=/tmp/ccn6z3kr.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lcygwin -plugin-opt=-pass-through=-ladvapi32 -plugin-opt=-pass-through=-lshell32 -plugin-opt=-pass-through=-luser32 -plugin-opt=-pass-through=-lkernel32 -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id -m i386pep --wrap _Znwm --wrap _Znam --wrap _ZdlPv --wrap _ZdaPv --wrap _ZnwmRKSt9nothrow_t --wrap _ZnamRKSt9nothrow_t --wrap _ZdlPvRKSt9nothrow_t --wrap _ZdaPvRKSt9nothrow_t -Bdynamic --dll-search-prefix=cyg --tsaware -o cmTC_bd7a9.exe /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/crt0.o /usr/lib/gcc/x86_64-pc-cygwin/10/crtbegin.o -L/usr/lib/gcc/x86_64-pc-cygwin/10 -L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib -L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib -L/usr/lib/gcc/x86_64-pc-cygwin/10/../../.. --enable-auto-import CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o --out-implib libcmTC_bd7a9.dll.a --major-image-version 0 --minor-image-version 0 -lgcc_s -lgcc -lcygwin -ladvapi32 -lshell32 -luser32 -lkernel32 -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/default-manifest.o /usr/lib/gcc/x86_64-pc-cygwin/10/crtend.o -COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bd7a9.exe' '-mtune=generic' '-march=x86-64' -make[1]: Leaving directory '/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp' - - - -Parsed C implicit include dir info from above output: rv=done - found start of include info - found start of implicit include info - add: [/usr/lib/gcc/x86_64-pc-cygwin/10/include] - add: [/usr/include] - add: [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/../include/w32api] - end of search list found - collapse include dir [/usr/lib/gcc/x86_64-pc-cygwin/10/include] ==> [/usr/lib/gcc/x86_64-pc-cygwin/10/include] - collapse include dir [/usr/include] ==> [/usr/include] - collapse include dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/../include/w32api] ==> [/usr/include/w32api] - implicit include dirs: [/usr/lib/gcc/x86_64-pc-cygwin/10/include;/usr/include;/usr/include/w32api] - - -Parsed C implicit link information from above output: - link line regex: [^( *|.*[/\])(ld\.exe|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] - ignore line: [Change Dir: /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp] - ignore line: [] - ignore line: [Run Build Command(s):/usr/bin/make.exe cmTC_bd7a9/fast && /usr/bin/make -f CMakeFiles/cmTC_bd7a9.dir/build.make CMakeFiles/cmTC_bd7a9.dir/build] - ignore line: [make[1]: Entering directory '/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp'] - ignore line: [Building C object CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o] - ignore line: [/usr/bin/cc -v -o CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.17.3/Modules/CMakeCCompilerABI.c] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/cc] - ignore line: [Target: x86_64-pc-cygwin] - ignore line: [Configured with: /mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0/configure --srcdir=/mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=x86_64-pc-cygwin --host=x86_64-pc-cygwin --target=x86_64-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --with-gcc-major-version-only --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-tune=generic --enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libgomp --enable-libquadmath --enable-libquadmath-support --disable-libssp --enable-libada --disable-symvers --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible --enable-libstdcxx-filesystem-ts] - ignore line: [Thread model: posix] - ignore line: [Supported LTO compression algorithms: zlib zstd] - ignore line: [gcc version 10.2.0 (GCC) ] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'] - ignore line: [ /usr/lib/gcc/x86_64-pc-cygwin/10/cc1.exe -quiet -v -idirafter /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/../include/w32api -idirafter /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib/../../include/w32api /usr/share/cmake-3.17.3/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o -version -o /tmp/ccts2nUW.s] - ignore line: [GNU C17 (GCC) version 10.2.0 (x86_64-pc-cygwin)] - ignore line: [ compiled by GNU C version 10.2.0 GMP version 6.2.0 MPFR version 4.1.0 MPC version 1.1.0 isl version isl-0.22.1-GMP] - ignore line: [] - ignore line: [warning: MPC header version 1.1.0 differs from library version 1.2.1.] - ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] - ignore line: [ignoring nonexistent directory "/usr/local/include"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-cygwin/10/include-fixed"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/include"] - ignore line: [ignoring duplicate directory "/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib/../../include/w32api"] - ignore line: [#include "..." search starts here:] - ignore line: [#include <...> search starts here:] - ignore line: [ /usr/lib/gcc/x86_64-pc-cygwin/10/include] - ignore line: [ /usr/include] - ignore line: [ /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/../include/w32api] - ignore line: [End of search list.] - ignore line: [GNU C17 (GCC) version 10.2.0 (x86_64-pc-cygwin)] - ignore line: [ compiled by GNU C version 10.2.0 GMP version 6.2.0 MPFR version 4.1.0 MPC version 1.1.0 isl version isl-0.22.1-GMP] - ignore line: [] - ignore line: [warning: MPC header version 1.1.0 differs from library version 1.2.1.] - ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] - ignore line: [Compiler executable checksum: 734d9bd8d3f826660b4544bd016c5bfa] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'] - ignore line: [ /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/as.exe -v -o CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o /tmp/ccts2nUW.s] - ignore line: [GNU assembler version 2.34.0 (x86_64-pc-cygwin) using BFD version (GNU Binutils) 2.34.0.20200307] - ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/:/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'] - ignore line: [Linking C executable cmTC_bd7a9.exe] - ignore line: [/usr/bin/cmake.exe -E cmake_link_script CMakeFiles/cmTC_bd7a9.dir/link.txt --verbose=1] - ignore line: [/usr/bin/cc -Wl --enable-auto-import -v CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o -o cmTC_bd7a9.exe -Wl --out-implib libcmTC_bd7a9.dll.a -Wl --major-image-version 0 --minor-image-version 0 ] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/cc] - ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-cygwin/10/lto-wrapper.exe] - ignore line: [Target: x86_64-pc-cygwin] - ignore line: [Configured with: /mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0/configure --srcdir=/mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=x86_64-pc-cygwin --host=x86_64-pc-cygwin --target=x86_64-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --with-gcc-major-version-only --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-tune=generic --enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libgomp --enable-libquadmath --enable-libquadmath-support --disable-libssp --enable-libada --disable-symvers --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible --enable-libstdcxx-filesystem-ts] - ignore line: [Thread model: posix] - ignore line: [Supported LTO compression algorithms: zlib zstd] - ignore line: [gcc version 10.2.0 (GCC) ] - ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/:/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bd7a9.exe' '-mtune=generic' '-march=x86-64'] - link line: [ /usr/lib/gcc/x86_64-pc-cygwin/10/collect2.exe -plugin /usr/lib/gcc/x86_64-pc-cygwin/10/cyglto_plugin.dll -plugin-opt=/usr/lib/gcc/x86_64-pc-cygwin/10/lto-wrapper.exe -plugin-opt=-fresolution=/tmp/ccn6z3kr.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lcygwin -plugin-opt=-pass-through=-ladvapi32 -plugin-opt=-pass-through=-lshell32 -plugin-opt=-pass-through=-luser32 -plugin-opt=-pass-through=-lkernel32 -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id -m i386pep --wrap _Znwm --wrap _Znam --wrap _ZdlPv --wrap _ZdaPv --wrap _ZnwmRKSt9nothrow_t --wrap _ZnamRKSt9nothrow_t --wrap _ZdlPvRKSt9nothrow_t --wrap _ZdaPvRKSt9nothrow_t -Bdynamic --dll-search-prefix=cyg --tsaware -o cmTC_bd7a9.exe /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/crt0.o /usr/lib/gcc/x86_64-pc-cygwin/10/crtbegin.o -L/usr/lib/gcc/x86_64-pc-cygwin/10 -L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib -L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib -L/usr/lib/gcc/x86_64-pc-cygwin/10/../../.. --enable-auto-import CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o --out-implib libcmTC_bd7a9.dll.a --major-image-version 0 --minor-image-version 0 -lgcc_s -lgcc -lcygwin -ladvapi32 -lshell32 -luser32 -lkernel32 -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/default-manifest.o /usr/lib/gcc/x86_64-pc-cygwin/10/crtend.o] - arg [/usr/lib/gcc/x86_64-pc-cygwin/10/collect2.exe] ==> ignore - arg [-plugin] ==> ignore - arg [/usr/lib/gcc/x86_64-pc-cygwin/10/cyglto_plugin.dll] ==> ignore - arg [-plugin-opt=/usr/lib/gcc/x86_64-pc-cygwin/10/lto-wrapper.exe] ==> ignore - arg [-plugin-opt=-fresolution=/tmp/ccn6z3kr.res] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc] ==> ignore - arg [-plugin-opt=-pass-through=-lcygwin] ==> ignore - arg [-plugin-opt=-pass-through=-ladvapi32] ==> ignore - arg [-plugin-opt=-pass-through=-lshell32] ==> ignore - arg [-plugin-opt=-pass-through=-luser32] ==> ignore - arg [-plugin-opt=-pass-through=-lkernel32] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc] ==> ignore - arg [--build-id] ==> ignore - arg [-m] ==> ignore - arg [i386pep] ==> ignore - arg [--wrap] ==> ignore - arg [_Znwm] ==> ignore - arg [--wrap] ==> ignore - arg [_Znam] ==> ignore - arg [--wrap] ==> ignore - arg [_ZdlPv] ==> ignore - arg [--wrap] ==> ignore - arg [_ZdaPv] ==> ignore - arg [--wrap] ==> ignore - arg [_ZnwmRKSt9nothrow_t] ==> ignore - arg [--wrap] ==> ignore - arg [_ZnamRKSt9nothrow_t] ==> ignore - arg [--wrap] ==> ignore - arg [_ZdlPvRKSt9nothrow_t] ==> ignore - arg [--wrap] ==> ignore - arg [_ZdaPvRKSt9nothrow_t] ==> ignore - arg [-Bdynamic] ==> ignore - arg [--dll-search-prefix=cyg] ==> ignore - arg [--tsaware] ==> ignore - arg [-o] ==> ignore - arg [cmTC_bd7a9.exe] ==> ignore - arg [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/crt0.o] ==> ignore - arg [/usr/lib/gcc/x86_64-pc-cygwin/10/crtbegin.o] ==> ignore - arg [-L/usr/lib/gcc/x86_64-pc-cygwin/10] ==> dir [/usr/lib/gcc/x86_64-pc-cygwin/10] - arg [-L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib] ==> dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib] - arg [-L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib] - arg [-L/lib/../lib] ==> dir [/lib/../lib] - arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] - arg [-L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib] ==> dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib] - arg [-L/usr/lib/gcc/x86_64-pc-cygwin/10/../../..] ==> dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../..] - arg [--enable-auto-import] ==> ignore - arg [CMakeFiles/cmTC_bd7a9.dir/CMakeCCompilerABI.c.o] ==> ignore - arg [--out-implib] ==> ignore - arg [libcmTC_bd7a9.dll.a] ==> ignore - arg [--major-image-version] ==> ignore - arg [0] ==> ignore - arg [--minor-image-version] ==> ignore - arg [0] ==> ignore - arg [-lgcc_s] ==> lib [gcc_s] - arg [-lgcc] ==> lib [gcc] - arg [-lcygwin] ==> lib [cygwin] - arg [-ladvapi32] ==> lib [advapi32] - arg [-lshell32] ==> lib [shell32] - arg [-luser32] ==> lib [user32] - arg [-lkernel32] ==> lib [kernel32] - arg [-lgcc_s] ==> lib [gcc_s] - arg [-lgcc] ==> lib [gcc] - arg [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/default-manifest.o] ==> ignore - arg [/usr/lib/gcc/x86_64-pc-cygwin/10/crtend.o] ==> ignore - collapse library dir [/usr/lib/gcc/x86_64-pc-cygwin/10] ==> [/usr/lib/gcc/x86_64-pc-cygwin/10] - collapse library dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib] ==> [/usr/x86_64-pc-cygwin/lib] - collapse library dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib] ==> [/usr/lib] - collapse library dir [/lib/../lib] ==> [/lib] - collapse library dir [/usr/lib/../lib] ==> [/usr/lib] - collapse library dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib] ==> [/usr/x86_64-pc-cygwin/lib] - collapse library dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../..] ==> [/usr/lib] - implicit libs: [gcc_s;gcc;cygwin;advapi32;shell32;user32;kernel32;gcc_s;gcc] - implicit dirs: [/usr/lib/gcc/x86_64-pc-cygwin/10;/usr/x86_64-pc-cygwin/lib;/usr/lib;/lib] - implicit fwks: [] - - -Determining if the CXX compiler works passed with the following output: -Change Dir: /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp - -Run Build Command(s):/usr/bin/make.exe cmTC_42587/fast && /usr/bin/make -f CMakeFiles/cmTC_42587.dir/build.make CMakeFiles/cmTC_42587.dir/build -make[1]: Entering directory '/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp' -Building CXX object CMakeFiles/cmTC_42587.dir/testCXXCompiler.cxx.o -/usr/bin/c++.exe -o CMakeFiles/cmTC_42587.dir/testCXXCompiler.cxx.o -c /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx -Linking CXX executable cmTC_42587.exe -/usr/bin/cmake.exe -E cmake_link_script CMakeFiles/cmTC_42587.dir/link.txt --verbose=1 -/usr/bin/c++.exe -Wl,--enable-auto-import CMakeFiles/cmTC_42587.dir/testCXXCompiler.cxx.o -o cmTC_42587.exe -Wl,--out-implib,libcmTC_42587.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -make[1]: Leaving directory '/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp' - - - -Detecting CXX compiler ABI info compiled with the following output: -Change Dir: /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp - -Run Build Command(s):/usr/bin/make.exe cmTC_781a9/fast && /usr/bin/make -f CMakeFiles/cmTC_781a9.dir/build.make CMakeFiles/cmTC_781a9.dir/build -make[1]: Entering directory '/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp' -Building CXX object CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o -/usr/bin/c++.exe -v -o CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.17.3/Modules/CMakeCXXCompilerABI.cpp -Using built-in specs. -COLLECT_GCC=/usr/bin/c++ -Target: x86_64-pc-cygwin -Configured with: /mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0/configure --srcdir=/mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=x86_64-pc-cygwin --host=x86_64-pc-cygwin --target=x86_64-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --with-gcc-major-version-only --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-tune=generic --enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libgomp --enable-libquadmath --enable-libquadmath-support --disable-libssp --enable-libada --disable-symvers --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible --enable-libstdcxx-filesystem-ts -Thread model: posix -Supported LTO compression algorithms: zlib zstd -gcc version 10.2.0 (GCC) -COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' - /usr/lib/gcc/x86_64-pc-cygwin/10/cc1plus.exe -quiet -v -idirafter /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/../include/w32api -idirafter /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib/../../include/w32api /usr/share/cmake-3.17.3/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o -version -o /tmp/cclXZM3n.s -GNU C++14 (GCC) version 10.2.0 (x86_64-pc-cygwin) - compiled by GNU C version 10.2.0, GMP version 6.2.0, MPFR version 4.1.0, MPC version 1.1.0, isl version isl-0.22.1-GMP - -warning: MPC header version 1.1.0 differs from library version 1.2.1. -GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 -ignoring nonexistent directory "/usr/local/include" -ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-cygwin/10/include-fixed" -ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/include" -ignoring duplicate directory "/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib/../../include/w32api" -#include "..." search starts here: -#include <...> search starts here: - /usr/lib/gcc/x86_64-pc-cygwin/10/include/c++ - /usr/lib/gcc/x86_64-pc-cygwin/10/include/c++/x86_64-pc-cygwin - /usr/lib/gcc/x86_64-pc-cygwin/10/include/c++/backward - /usr/lib/gcc/x86_64-pc-cygwin/10/include - /usr/include - /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/../include/w32api -End of search list. -GNU C++14 (GCC) version 10.2.0 (x86_64-pc-cygwin) - compiled by GNU C version 10.2.0, GMP version 6.2.0, MPFR version 4.1.0, MPC version 1.1.0, isl version isl-0.22.1-GMP - -warning: MPC header version 1.1.0 differs from library version 1.2.1. -GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 -Compiler executable checksum: 91598a8452df03f30a560d5af0d56f5c -COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' - /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/as.exe -v -o CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o /tmp/cclXZM3n.s -GNU assembler version 2.34.0 (x86_64-pc-cygwin) using BFD version (GNU Binutils) 2.34.0.20200307 -COMPILER_PATH=/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/:/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/ -LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../:/lib/:/usr/lib/ -COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' -Linking CXX executable cmTC_781a9.exe -/usr/bin/cmake.exe -E cmake_link_script CMakeFiles/cmTC_781a9.dir/link.txt --verbose=1 -/usr/bin/c++.exe -Wl,--enable-auto-import -v CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_781a9.exe -Wl,--out-implib,libcmTC_781a9.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -Using built-in specs. -COLLECT_GCC=/usr/bin/c++ -COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-cygwin/10/lto-wrapper.exe -Target: x86_64-pc-cygwin -Configured with: /mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0/configure --srcdir=/mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=x86_64-pc-cygwin --host=x86_64-pc-cygwin --target=x86_64-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --with-gcc-major-version-only --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-tune=generic --enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libgomp --enable-libquadmath --enable-libquadmath-support --disable-libssp --enable-libada --disable-symvers --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible --enable-libstdcxx-filesystem-ts -Thread model: posix -Supported LTO compression algorithms: zlib zstd -gcc version 10.2.0 (GCC) -COMPILER_PATH=/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/:/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/ -LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../:/lib/:/usr/lib/ -COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_781a9.exe' '-shared-libgcc' '-mtune=generic' '-march=x86-64' - /usr/lib/gcc/x86_64-pc-cygwin/10/collect2.exe -plugin /usr/lib/gcc/x86_64-pc-cygwin/10/cyglto_plugin.dll -plugin-opt=/usr/lib/gcc/x86_64-pc-cygwin/10/lto-wrapper.exe -plugin-opt=-fresolution=/tmp/cc9RX0Es.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lcygwin -plugin-opt=-pass-through=-ladvapi32 -plugin-opt=-pass-through=-lshell32 -plugin-opt=-pass-through=-luser32 -plugin-opt=-pass-through=-lkernel32 -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id -m i386pep --wrap _Znwm --wrap _Znam --wrap _ZdlPv --wrap _ZdaPv --wrap _ZnwmRKSt9nothrow_t --wrap _ZnamRKSt9nothrow_t --wrap _ZdlPvRKSt9nothrow_t --wrap _ZdaPvRKSt9nothrow_t -Bdynamic --dll-search-prefix=cyg --tsaware -o cmTC_781a9.exe /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/crt0.o /usr/lib/gcc/x86_64-pc-cygwin/10/crtbegin.o -L/usr/lib/gcc/x86_64-pc-cygwin/10 -L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib -L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib -L/usr/lib/gcc/x86_64-pc-cygwin/10/../../.. --enable-auto-import CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o --out-implib libcmTC_781a9.dll.a --major-image-version 0 --minor-image-version 0 -lstdc++ -lgcc_s -lgcc -lcygwin -ladvapi32 -lshell32 -luser32 -lkernel32 -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/default-manifest.o /usr/lib/gcc/x86_64-pc-cygwin/10/crtend.o -COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_781a9.exe' '-shared-libgcc' '-mtune=generic' '-march=x86-64' -make[1]: Leaving directory '/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp' - - - -Parsed CXX implicit include dir info from above output: rv=done - found start of include info - found start of implicit include info - add: [/usr/lib/gcc/x86_64-pc-cygwin/10/include/c++] - add: [/usr/lib/gcc/x86_64-pc-cygwin/10/include/c++/x86_64-pc-cygwin] - add: [/usr/lib/gcc/x86_64-pc-cygwin/10/include/c++/backward] - add: [/usr/lib/gcc/x86_64-pc-cygwin/10/include] - add: [/usr/include] - add: [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/../include/w32api] - end of search list found - collapse include dir [/usr/lib/gcc/x86_64-pc-cygwin/10/include/c++] ==> [/usr/lib/gcc/x86_64-pc-cygwin/10/include/c++] - collapse include dir [/usr/lib/gcc/x86_64-pc-cygwin/10/include/c++/x86_64-pc-cygwin] ==> [/usr/lib/gcc/x86_64-pc-cygwin/10/include/c++/x86_64-pc-cygwin] - collapse include dir [/usr/lib/gcc/x86_64-pc-cygwin/10/include/c++/backward] ==> [/usr/lib/gcc/x86_64-pc-cygwin/10/include/c++/backward] - collapse include dir [/usr/lib/gcc/x86_64-pc-cygwin/10/include] ==> [/usr/lib/gcc/x86_64-pc-cygwin/10/include] - collapse include dir [/usr/include] ==> [/usr/include] - collapse include dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/../include/w32api] ==> [/usr/include/w32api] - implicit include dirs: [/usr/lib/gcc/x86_64-pc-cygwin/10/include/c++;/usr/lib/gcc/x86_64-pc-cygwin/10/include/c++/x86_64-pc-cygwin;/usr/lib/gcc/x86_64-pc-cygwin/10/include/c++/backward;/usr/lib/gcc/x86_64-pc-cygwin/10/include;/usr/include;/usr/include/w32api] - - -Parsed CXX implicit link information from above output: - link line regex: [^( *|.*[/\])(ld\.exe|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] - ignore line: [Change Dir: /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp] - ignore line: [] - ignore line: [Run Build Command(s):/usr/bin/make.exe cmTC_781a9/fast && /usr/bin/make -f CMakeFiles/cmTC_781a9.dir/build.make CMakeFiles/cmTC_781a9.dir/build] - ignore line: [make[1]: Entering directory '/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp'] - ignore line: [Building CXX object CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o] - ignore line: [/usr/bin/c++.exe -v -o CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.17.3/Modules/CMakeCXXCompilerABI.cpp] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/c++] - ignore line: [Target: x86_64-pc-cygwin] - ignore line: [Configured with: /mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0/configure --srcdir=/mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=x86_64-pc-cygwin --host=x86_64-pc-cygwin --target=x86_64-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --with-gcc-major-version-only --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-tune=generic --enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libgomp --enable-libquadmath --enable-libquadmath-support --disable-libssp --enable-libada --disable-symvers --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible --enable-libstdcxx-filesystem-ts] - ignore line: [Thread model: posix] - ignore line: [Supported LTO compression algorithms: zlib zstd] - ignore line: [gcc version 10.2.0 (GCC) ] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] - ignore line: [ /usr/lib/gcc/x86_64-pc-cygwin/10/cc1plus.exe -quiet -v -idirafter /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/../include/w32api -idirafter /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib/../../include/w32api /usr/share/cmake-3.17.3/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o -version -o /tmp/cclXZM3n.s] - ignore line: [GNU C++14 (GCC) version 10.2.0 (x86_64-pc-cygwin)] - ignore line: [ compiled by GNU C version 10.2.0 GMP version 6.2.0 MPFR version 4.1.0 MPC version 1.1.0 isl version isl-0.22.1-GMP] - ignore line: [] - ignore line: [warning: MPC header version 1.1.0 differs from library version 1.2.1.] - ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] - ignore line: [ignoring nonexistent directory "/usr/local/include"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-cygwin/10/include-fixed"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/include"] - ignore line: [ignoring duplicate directory "/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib/../../include/w32api"] - ignore line: [#include "..." search starts here:] - ignore line: [#include <...> search starts here:] - ignore line: [ /usr/lib/gcc/x86_64-pc-cygwin/10/include/c++] - ignore line: [ /usr/lib/gcc/x86_64-pc-cygwin/10/include/c++/x86_64-pc-cygwin] - ignore line: [ /usr/lib/gcc/x86_64-pc-cygwin/10/include/c++/backward] - ignore line: [ /usr/lib/gcc/x86_64-pc-cygwin/10/include] - ignore line: [ /usr/include] - ignore line: [ /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/../include/w32api] - ignore line: [End of search list.] - ignore line: [GNU C++14 (GCC) version 10.2.0 (x86_64-pc-cygwin)] - ignore line: [ compiled by GNU C version 10.2.0 GMP version 6.2.0 MPFR version 4.1.0 MPC version 1.1.0 isl version isl-0.22.1-GMP] - ignore line: [] - ignore line: [warning: MPC header version 1.1.0 differs from library version 1.2.1.] - ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] - ignore line: [Compiler executable checksum: 91598a8452df03f30a560d5af0d56f5c] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] - ignore line: [ /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/as.exe -v -o CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o /tmp/cclXZM3n.s] - ignore line: [GNU assembler version 2.34.0 (x86_64-pc-cygwin) using BFD version (GNU Binutils) 2.34.0.20200307] - ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/:/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] - ignore line: [Linking CXX executable cmTC_781a9.exe] - ignore line: [/usr/bin/cmake.exe -E cmake_link_script CMakeFiles/cmTC_781a9.dir/link.txt --verbose=1] - ignore line: [/usr/bin/c++.exe -Wl --enable-auto-import -v CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_781a9.exe -Wl --out-implib libcmTC_781a9.dll.a -Wl --major-image-version 0 --minor-image-version 0 ] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/c++] - ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-cygwin/10/lto-wrapper.exe] - ignore line: [Target: x86_64-pc-cygwin] - ignore line: [Configured with: /mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0/configure --srcdir=/mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=x86_64-pc-cygwin --host=x86_64-pc-cygwin --target=x86_64-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --with-gcc-major-version-only --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-tune=generic --enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libgomp --enable-libquadmath --enable-libquadmath-support --disable-libssp --enable-libada --disable-symvers --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible --enable-libstdcxx-filesystem-ts] - ignore line: [Thread model: posix] - ignore line: [Supported LTO compression algorithms: zlib zstd] - ignore line: [gcc version 10.2.0 (GCC) ] - ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/:/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-cygwin/10/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/:/usr/lib/gcc/x86_64-pc-cygwin/10/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_781a9.exe' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] - link line: [ /usr/lib/gcc/x86_64-pc-cygwin/10/collect2.exe -plugin /usr/lib/gcc/x86_64-pc-cygwin/10/cyglto_plugin.dll -plugin-opt=/usr/lib/gcc/x86_64-pc-cygwin/10/lto-wrapper.exe -plugin-opt=-fresolution=/tmp/cc9RX0Es.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lcygwin -plugin-opt=-pass-through=-ladvapi32 -plugin-opt=-pass-through=-lshell32 -plugin-opt=-pass-through=-luser32 -plugin-opt=-pass-through=-lkernel32 -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id -m i386pep --wrap _Znwm --wrap _Znam --wrap _ZdlPv --wrap _ZdaPv --wrap _ZnwmRKSt9nothrow_t --wrap _ZnamRKSt9nothrow_t --wrap _ZdlPvRKSt9nothrow_t --wrap _ZdaPvRKSt9nothrow_t -Bdynamic --dll-search-prefix=cyg --tsaware -o cmTC_781a9.exe /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/crt0.o /usr/lib/gcc/x86_64-pc-cygwin/10/crtbegin.o -L/usr/lib/gcc/x86_64-pc-cygwin/10 -L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib -L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib -L/usr/lib/gcc/x86_64-pc-cygwin/10/../../.. --enable-auto-import CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o --out-implib libcmTC_781a9.dll.a --major-image-version 0 --minor-image-version 0 -lstdc++ -lgcc_s -lgcc -lcygwin -ladvapi32 -lshell32 -luser32 -lkernel32 -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/default-manifest.o /usr/lib/gcc/x86_64-pc-cygwin/10/crtend.o] - arg [/usr/lib/gcc/x86_64-pc-cygwin/10/collect2.exe] ==> ignore - arg [-plugin] ==> ignore - arg [/usr/lib/gcc/x86_64-pc-cygwin/10/cyglto_plugin.dll] ==> ignore - arg [-plugin-opt=/usr/lib/gcc/x86_64-pc-cygwin/10/lto-wrapper.exe] ==> ignore - arg [-plugin-opt=-fresolution=/tmp/cc9RX0Es.res] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc] ==> ignore - arg [-plugin-opt=-pass-through=-lcygwin] ==> ignore - arg [-plugin-opt=-pass-through=-ladvapi32] ==> ignore - arg [-plugin-opt=-pass-through=-lshell32] ==> ignore - arg [-plugin-opt=-pass-through=-luser32] ==> ignore - arg [-plugin-opt=-pass-through=-lkernel32] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc] ==> ignore - arg [--build-id] ==> ignore - arg [-m] ==> ignore - arg [i386pep] ==> ignore - arg [--wrap] ==> ignore - arg [_Znwm] ==> ignore - arg [--wrap] ==> ignore - arg [_Znam] ==> ignore - arg [--wrap] ==> ignore - arg [_ZdlPv] ==> ignore - arg [--wrap] ==> ignore - arg [_ZdaPv] ==> ignore - arg [--wrap] ==> ignore - arg [_ZnwmRKSt9nothrow_t] ==> ignore - arg [--wrap] ==> ignore - arg [_ZnamRKSt9nothrow_t] ==> ignore - arg [--wrap] ==> ignore - arg [_ZdlPvRKSt9nothrow_t] ==> ignore - arg [--wrap] ==> ignore - arg [_ZdaPvRKSt9nothrow_t] ==> ignore - arg [-Bdynamic] ==> ignore - arg [--dll-search-prefix=cyg] ==> ignore - arg [--tsaware] ==> ignore - arg [-o] ==> ignore - arg [cmTC_781a9.exe] ==> ignore - arg [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/crt0.o] ==> ignore - arg [/usr/lib/gcc/x86_64-pc-cygwin/10/crtbegin.o] ==> ignore - arg [-L/usr/lib/gcc/x86_64-pc-cygwin/10] ==> dir [/usr/lib/gcc/x86_64-pc-cygwin/10] - arg [-L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib] ==> dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib] - arg [-L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib] - arg [-L/lib/../lib] ==> dir [/lib/../lib] - arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] - arg [-L/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib] ==> dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib] - arg [-L/usr/lib/gcc/x86_64-pc-cygwin/10/../../..] ==> dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../..] - arg [--enable-auto-import] ==> ignore - arg [CMakeFiles/cmTC_781a9.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore - arg [--out-implib] ==> ignore - arg [libcmTC_781a9.dll.a] ==> ignore - arg [--major-image-version] ==> ignore - arg [0] ==> ignore - arg [--minor-image-version] ==> ignore - arg [0] ==> ignore - arg [-lstdc++] ==> lib [stdc++] - arg [-lgcc_s] ==> lib [gcc_s] - arg [-lgcc] ==> lib [gcc] - arg [-lcygwin] ==> lib [cygwin] - arg [-ladvapi32] ==> lib [advapi32] - arg [-lshell32] ==> lib [shell32] - arg [-luser32] ==> lib [user32] - arg [-lkernel32] ==> lib [kernel32] - arg [-lgcc_s] ==> lib [gcc_s] - arg [-lgcc] ==> lib [gcc] - arg [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib/default-manifest.o] ==> ignore - arg [/usr/lib/gcc/x86_64-pc-cygwin/10/crtend.o] ==> ignore - collapse library dir [/usr/lib/gcc/x86_64-pc-cygwin/10] ==> [/usr/lib/gcc/x86_64-pc-cygwin/10] - collapse library dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib/../lib] ==> [/usr/x86_64-pc-cygwin/lib] - collapse library dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../lib] ==> [/usr/lib] - collapse library dir [/lib/../lib] ==> [/lib] - collapse library dir [/usr/lib/../lib] ==> [/usr/lib] - collapse library dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/lib] ==> [/usr/x86_64-pc-cygwin/lib] - collapse library dir [/usr/lib/gcc/x86_64-pc-cygwin/10/../../..] ==> [/usr/lib] - implicit libs: [stdc++;gcc_s;gcc;cygwin;advapi32;shell32;user32;kernel32;gcc_s;gcc] - implicit dirs: [/usr/lib/gcc/x86_64-pc-cygwin/10;/usr/x86_64-pc-cygwin/lib;/usr/lib;/lib] - implicit fwks: [] - - -Determining if the include file pthread.h exists passed with the following output: -Change Dir: /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp - -Run Build Command(s):/usr/bin/make.exe cmTC_2e4ce/fast && /usr/bin/make -f CMakeFiles/cmTC_2e4ce.dir/build.make CMakeFiles/cmTC_2e4ce.dir/build -make[1]: Entering directory '/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp' -Building C object CMakeFiles/cmTC_2e4ce.dir/CheckIncludeFile.c.o -/usr/bin/cc -o CMakeFiles/cmTC_2e4ce.dir/CheckIncludeFile.c.o -c /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c -Linking C executable cmTC_2e4ce.exe -/usr/bin/cmake.exe -E cmake_link_script CMakeFiles/cmTC_2e4ce.dir/link.txt --verbose=1 -/usr/bin/cc -Wl,--enable-auto-import CMakeFiles/cmTC_2e4ce.dir/CheckIncludeFile.c.o -o cmTC_2e4ce.exe -Wl,--out-implib,libcmTC_2e4ce.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -make[1]: Leaving directory '/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp' - - - -Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD succeeded with the following output: -Change Dir: /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp - -Run Build Command(s):/usr/bin/make.exe cmTC_3c38b/fast && /usr/bin/make -f CMakeFiles/cmTC_3c38b.dir/build.make CMakeFiles/cmTC_3c38b.dir/build -make[1]: Entering directory '/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp' -Building C object CMakeFiles/cmTC_3c38b.dir/src.c.o -/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -o CMakeFiles/cmTC_3c38b.dir/src.c.o -c /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp/src.c -Linking C executable cmTC_3c38b.exe -/usr/bin/cmake.exe -E cmake_link_script CMakeFiles/cmTC_3c38b.dir/link.txt --verbose=1 -/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -Wl,--enable-auto-import CMakeFiles/cmTC_3c38b.dir/src.c.o -o cmTC_3c38b.exe -Wl,--out-implib,libcmTC_3c38b.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -make[1]: Leaving directory '/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/CMakeTmp' - - -Source file was: -#include - -void* test_func(void* data) -{ - return data; -} - -int main(void) -{ - pthread_t thread; - pthread_create(&thread, NULL, test_func, NULL); - pthread_detach(thread); - pthread_cancel(thread); - pthread_join(thread, NULL); - pthread_atfork(NULL, NULL, NULL); - pthread_exit(NULL); - - return 0; -} - diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/Makefile.cmake b/UnitTests_App/GoogleTest/build/CMakeFiles/Makefile.cmake deleted file mode 100644 index 4625e13..0000000 --- a/UnitTests_App/GoogleTest/build/CMakeFiles/Makefile.cmake +++ /dev/null @@ -1,154 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# The generator used is: -set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") - -# The top level Makefile was generated from the following files: -set(CMAKE_MAKEFILE_DEPENDS - "CMakeCache.txt" - "../CMakeLists.txt" - "CMakeFiles/3.17.3/CMakeCCompiler.cmake" - "CMakeFiles/3.17.3/CMakeCXXCompiler.cmake" - "CMakeFiles/3.17.3/CMakeRCCompiler.cmake" - "CMakeFiles/3.17.3/CMakeSystem.cmake" - "../googlemock/CMakeLists.txt" - "../googlemock/cmake/gmock.pc.in" - "../googlemock/cmake/gmock_main.pc.in" - "../googletest/CMakeLists.txt" - "../googletest/cmake/Config.cmake.in" - "../googletest/cmake/gtest.pc.in" - "../googletest/cmake/gtest_main.pc.in" - "../googletest/cmake/internal_utils.cmake" - "/usr/share/cmake-3.17.3/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in" - "/usr/share/cmake-3.17.3/Modules/CMakeCCompiler.cmake.in" - "/usr/share/cmake-3.17.3/Modules/CMakeCCompilerABI.c" - "/usr/share/cmake-3.17.3/Modules/CMakeCInformation.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeCXXCompiler.cmake.in" - "/usr/share/cmake-3.17.3/Modules/CMakeCXXCompilerABI.cpp" - "/usr/share/cmake-3.17.3/Modules/CMakeCXXInformation.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeCommonLanguageInclude.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeCompilerIdDetection.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeDependentOption.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeDetermineCCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeDetermineCXXCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeDetermineCompileFeatures.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeDetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeDetermineCompilerABI.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeDetermineCompilerId.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeDetermineRCCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeDetermineSystem.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeFindBinUtils.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeGenericSystem.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeInitializeConfigs.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeLanguageInformation.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakePackageConfigHelpers.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeParseImplicitIncludeInfo.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeParseImplicitLinkInfo.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeRCCompiler.cmake.in" - "/usr/share/cmake-3.17.3/Modules/CMakeRCInformation.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeSystem.cmake.in" - "/usr/share/cmake-3.17.3/Modules/CMakeSystemSpecificInformation.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeSystemSpecificInitialize.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeTestCCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeTestCXXCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeTestCompilerCommon.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeTestRCCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/CMakeUnixFindMake.cmake" - "/usr/share/cmake-3.17.3/Modules/CheckCSourceCompiles.cmake" - "/usr/share/cmake-3.17.3/Modules/CheckIncludeFile.c.in" - "/usr/share/cmake-3.17.3/Modules/CheckIncludeFile.cmake" - "/usr/share/cmake-3.17.3/Modules/CheckLibraryExists.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/ADSP-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/ARMCC-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/ARMClang-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/AppleClang-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/Borland-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/CMakeCommonCompilerMacros.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/Clang-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/Cray-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/GHS-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/GNU-C-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/GNU-C.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/GNU-CXX.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/GNU-FindBinUtils.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/GNU.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/HP-C-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/IAR-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/Intel-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/MSVC-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/PGI-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/PathScale-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/SCO-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/TI-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/Watcom-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/XL-C-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/zOS-C-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" - "/usr/share/cmake-3.17.3/Modules/FindPackageHandleStandardArgs.cmake" - "/usr/share/cmake-3.17.3/Modules/FindPackageMessage.cmake" - "/usr/share/cmake-3.17.3/Modules/FindPython.cmake" - "/usr/share/cmake-3.17.3/Modules/FindPython/Support.cmake" - "/usr/share/cmake-3.17.3/Modules/FindThreads.cmake" - "/usr/share/cmake-3.17.3/Modules/GNUInstallDirs.cmake" - "/usr/share/cmake-3.17.3/Modules/Internal/CMakeCheckCompilerFlag.cmake" - "/usr/share/cmake-3.17.3/Modules/Internal/FeatureTesting.cmake" - "/usr/share/cmake-3.17.3/Modules/Platform/CYGWIN-Determine-CXX.cmake" - "/usr/share/cmake-3.17.3/Modules/Platform/CYGWIN-GNU-C.cmake" - "/usr/share/cmake-3.17.3/Modules/Platform/CYGWIN-GNU-CXX.cmake" - "/usr/share/cmake-3.17.3/Modules/Platform/CYGWIN-GNU.cmake" - "/usr/share/cmake-3.17.3/Modules/Platform/CYGWIN-windres.cmake" - "/usr/share/cmake-3.17.3/Modules/Platform/CYGWIN.cmake" - "/usr/share/cmake-3.17.3/Modules/Platform/UnixPaths.cmake" - "/usr/share/cmake-3.17.3/Modules/WriteBasicConfigVersionFile.cmake" - ) - -# The corresponding makefile is: -set(CMAKE_MAKEFILE_OUTPUTS - "Makefile" - "CMakeFiles/cmake.check_cache" - ) - -# Byproducts of CMake generate step: -set(CMAKE_MAKEFILE_PRODUCTS - "CMakeFiles/3.17.3/CMakeSystem.cmake" - "CMakeFiles/3.17.3/CMakeCCompiler.cmake" - "CMakeFiles/3.17.3/CMakeCXXCompiler.cmake" - "CMakeFiles/3.17.3/CMakeRCCompiler.cmake" - "CMakeFiles/3.17.3/CMakeCCompiler.cmake" - "CMakeFiles/3.17.3/CMakeCXXCompiler.cmake" - "CMakeFiles/CMakeDirectoryInformation.cmake" - "googlemock/CMakeFiles/CMakeDirectoryInformation.cmake" - "googletest/CMakeFiles/CMakeDirectoryInformation.cmake" - ) - -# Dependency information for all targets: -set(CMAKE_DEPEND_INFO_FILES - "googlemock/CMakeFiles/gmock_main.dir/DependInfo.cmake" - "googlemock/CMakeFiles/gmock.dir/DependInfo.cmake" - "googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake" - "googletest/CMakeFiles/gtest.dir/DependInfo.cmake" - ) diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/Makefile2 b/UnitTests_App/GoogleTest/build/CMakeFiles/Makefile2 deleted file mode 100644 index 11d8c62..0000000 --- a/UnitTests_App/GoogleTest/build/CMakeFiles/Makefile2 +++ /dev/null @@ -1,250 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# Default target executed when no arguments are given to make. -default_target: all - -.PHONY : default_target - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -# Suppress display of executed commands. -$(VERBOSE).SILENT: - - -# A target that is always out of date. -cmake_force: - -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/bin/cmake.exe - -# The command to remove a file. -RM = /usr/bin/cmake.exe -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /cygdrive/c/Users/Eyal/documents/googletest - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /cygdrive/c/Users/Eyal/documents/googletest/build - -#============================================================================= -# Directory level rules for the build root directory - -# The main recursive "all" target. -all: googlemock/all - -.PHONY : all - -# The main recursive "preinstall" target. -preinstall: googlemock/preinstall - -.PHONY : preinstall - -# The main recursive "clean" target. -clean: googlemock/clean - -.PHONY : clean - -#============================================================================= -# Directory level rules for directory googlemock - -# Recursive "all" directory target. -googlemock/all: googlemock/CMakeFiles/gmock_main.dir/all -googlemock/all: googlemock/CMakeFiles/gmock.dir/all -googlemock/all: googletest/all - -.PHONY : googlemock/all - -# Recursive "preinstall" directory target. -googlemock/preinstall: googletest/preinstall - -.PHONY : googlemock/preinstall - -# Recursive "clean" directory target. -googlemock/clean: googlemock/CMakeFiles/gmock_main.dir/clean -googlemock/clean: googlemock/CMakeFiles/gmock.dir/clean -googlemock/clean: googletest/clean - -.PHONY : googlemock/clean - -#============================================================================= -# Directory level rules for directory googletest - -# Recursive "all" directory target. -googletest/all: googletest/CMakeFiles/gtest_main.dir/all -googletest/all: googletest/CMakeFiles/gtest.dir/all - -.PHONY : googletest/all - -# Recursive "preinstall" directory target. -googletest/preinstall: - -.PHONY : googletest/preinstall - -# Recursive "clean" directory target. -googletest/clean: googletest/CMakeFiles/gtest_main.dir/clean -googletest/clean: googletest/CMakeFiles/gtest.dir/clean - -.PHONY : googletest/clean - -#============================================================================= -# Target rules for target googlemock/CMakeFiles/gmock_main.dir - -# All Build rule for target. -googlemock/CMakeFiles/gmock_main.dir/all: googletest/CMakeFiles/gtest.dir/all -googlemock/CMakeFiles/gmock_main.dir/all: googlemock/CMakeFiles/gmock.dir/all - $(MAKE) $(MAKESILENT) -f googlemock/CMakeFiles/gmock_main.dir/build.make googlemock/CMakeFiles/gmock_main.dir/depend - $(MAKE) $(MAKESILENT) -f googlemock/CMakeFiles/gmock_main.dir/build.make googlemock/CMakeFiles/gmock_main.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles --progress-num=3,4 "Built target gmock_main" -.PHONY : googlemock/CMakeFiles/gmock_main.dir/all - -# Build rule for subdir invocation for target. -googlemock/CMakeFiles/gmock_main.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles 6 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 googlemock/CMakeFiles/gmock_main.dir/all - $(CMAKE_COMMAND) -E cmake_progress_start /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles 0 -.PHONY : googlemock/CMakeFiles/gmock_main.dir/rule - -# Convenience name for target. -gmock_main: googlemock/CMakeFiles/gmock_main.dir/rule - -.PHONY : gmock_main - -# clean rule for target. -googlemock/CMakeFiles/gmock_main.dir/clean: - $(MAKE) $(MAKESILENT) -f googlemock/CMakeFiles/gmock_main.dir/build.make googlemock/CMakeFiles/gmock_main.dir/clean -.PHONY : googlemock/CMakeFiles/gmock_main.dir/clean - -#============================================================================= -# Target rules for target googlemock/CMakeFiles/gmock.dir - -# All Build rule for target. -googlemock/CMakeFiles/gmock.dir/all: googletest/CMakeFiles/gtest.dir/all - $(MAKE) $(MAKESILENT) -f googlemock/CMakeFiles/gmock.dir/build.make googlemock/CMakeFiles/gmock.dir/depend - $(MAKE) $(MAKESILENT) -f googlemock/CMakeFiles/gmock.dir/build.make googlemock/CMakeFiles/gmock.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles --progress-num=1,2 "Built target gmock" -.PHONY : googlemock/CMakeFiles/gmock.dir/all - -# Build rule for subdir invocation for target. -googlemock/CMakeFiles/gmock.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles 4 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 googlemock/CMakeFiles/gmock.dir/all - $(CMAKE_COMMAND) -E cmake_progress_start /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles 0 -.PHONY : googlemock/CMakeFiles/gmock.dir/rule - -# Convenience name for target. -gmock: googlemock/CMakeFiles/gmock.dir/rule - -.PHONY : gmock - -# clean rule for target. -googlemock/CMakeFiles/gmock.dir/clean: - $(MAKE) $(MAKESILENT) -f googlemock/CMakeFiles/gmock.dir/build.make googlemock/CMakeFiles/gmock.dir/clean -.PHONY : googlemock/CMakeFiles/gmock.dir/clean - -#============================================================================= -# Target rules for target googletest/CMakeFiles/gtest_main.dir - -# All Build rule for target. -googletest/CMakeFiles/gtest_main.dir/all: googletest/CMakeFiles/gtest.dir/all - $(MAKE) $(MAKESILENT) -f googletest/CMakeFiles/gtest_main.dir/build.make googletest/CMakeFiles/gtest_main.dir/depend - $(MAKE) $(MAKESILENT) -f googletest/CMakeFiles/gtest_main.dir/build.make googletest/CMakeFiles/gtest_main.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles --progress-num=7,8 "Built target gtest_main" -.PHONY : googletest/CMakeFiles/gtest_main.dir/all - -# Build rule for subdir invocation for target. -googletest/CMakeFiles/gtest_main.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles 4 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 googletest/CMakeFiles/gtest_main.dir/all - $(CMAKE_COMMAND) -E cmake_progress_start /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles 0 -.PHONY : googletest/CMakeFiles/gtest_main.dir/rule - -# Convenience name for target. -gtest_main: googletest/CMakeFiles/gtest_main.dir/rule - -.PHONY : gtest_main - -# clean rule for target. -googletest/CMakeFiles/gtest_main.dir/clean: - $(MAKE) $(MAKESILENT) -f googletest/CMakeFiles/gtest_main.dir/build.make googletest/CMakeFiles/gtest_main.dir/clean -.PHONY : googletest/CMakeFiles/gtest_main.dir/clean - -#============================================================================= -# Target rules for target googletest/CMakeFiles/gtest.dir - -# All Build rule for target. -googletest/CMakeFiles/gtest.dir/all: - $(MAKE) $(MAKESILENT) -f googletest/CMakeFiles/gtest.dir/build.make googletest/CMakeFiles/gtest.dir/depend - $(MAKE) $(MAKESILENT) -f googletest/CMakeFiles/gtest.dir/build.make googletest/CMakeFiles/gtest.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles --progress-num=5,6 "Built target gtest" -.PHONY : googletest/CMakeFiles/gtest.dir/all - -# Build rule for subdir invocation for target. -googletest/CMakeFiles/gtest.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles 2 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 googletest/CMakeFiles/gtest.dir/all - $(CMAKE_COMMAND) -E cmake_progress_start /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles 0 -.PHONY : googletest/CMakeFiles/gtest.dir/rule - -# Convenience name for target. -gtest: googletest/CMakeFiles/gtest.dir/rule - -.PHONY : gtest - -# clean rule for target. -googletest/CMakeFiles/gtest.dir/clean: - $(MAKE) $(MAKESILENT) -f googletest/CMakeFiles/gtest.dir/build.make googletest/CMakeFiles/gtest.dir/clean -.PHONY : googletest/CMakeFiles/gtest.dir/clean - -#============================================================================= -# Special targets to cleanup operation of make. - -# Special rule to run CMake to check the build system integrity. -# No rule that depends on this can have commands that come from listfiles -# because they might be regenerated. -cmake_check_build_system: - $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 -.PHONY : cmake_check_build_system - diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/TargetDirectories.txt b/UnitTests_App/GoogleTest/build/CMakeFiles/TargetDirectories.txt deleted file mode 100644 index f6e4b17..0000000 --- a/UnitTests_App/GoogleTest/build/CMakeFiles/TargetDirectories.txt +++ /dev/null @@ -1,25 +0,0 @@ -/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/install/strip.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/install/local.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/install.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/list_install_components.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/rebuild_cache.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/edit_cache.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/test.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googlemock/CMakeFiles/install/strip.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googlemock/CMakeFiles/install/local.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googlemock/CMakeFiles/install.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googlemock/CMakeFiles/list_install_components.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googlemock/CMakeFiles/rebuild_cache.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googlemock/CMakeFiles/edit_cache.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googlemock/CMakeFiles/test.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googlemock/CMakeFiles/gmock_main.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googlemock/CMakeFiles/gmock.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/install/strip.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/install/local.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/install.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/list_install_components.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/rebuild_cache.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/edit_cache.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/test.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/gtest_main.dir -/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/gtest.dir diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/cmake.check_cache b/UnitTests_App/GoogleTest/build/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd73..0000000 --- a/UnitTests_App/GoogleTest/build/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/UnitTests_App/GoogleTest/build/CMakeFiles/progress.marks b/UnitTests_App/GoogleTest/build/CMakeFiles/progress.marks deleted file mode 100644 index 45a4fb7..0000000 --- a/UnitTests_App/GoogleTest/build/CMakeFiles/progress.marks +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/UnitTests_App/GoogleTest/build/CTestTestfile.cmake b/UnitTests_App/GoogleTest/build/CTestTestfile.cmake deleted file mode 100644 index 1c95b56..0000000 --- a/UnitTests_App/GoogleTest/build/CTestTestfile.cmake +++ /dev/null @@ -1,7 +0,0 @@ -# CMake generated Testfile for -# Source directory: /cygdrive/c/Users/Eyal/documents/googletest -# Build directory: /cygdrive/c/Users/Eyal/documents/googletest/build -# -# This file includes the relevant testing commands required for -# testing this directory and lists subdirectories to be tested as well. -subdirs("googlemock") diff --git a/UnitTests_App/GoogleTest/build/Makefile b/UnitTests_App/GoogleTest/build/Makefile deleted file mode 100644 index 4711846..0000000 --- a/UnitTests_App/GoogleTest/build/Makefile +++ /dev/null @@ -1,272 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# Default target executed when no arguments are given to make. -default_target: all - -.PHONY : default_target - -# Allow only one "make -f Makefile2" at a time, but pass parallelism. -.NOTPARALLEL: - - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -# Suppress display of executed commands. -$(VERBOSE).SILENT: - - -# A target that is always out of date. -cmake_force: - -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/bin/cmake.exe - -# The command to remove a file. -RM = /usr/bin/cmake.exe -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /cygdrive/c/Users/Eyal/documents/googletest - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /cygdrive/c/Users/Eyal/documents/googletest/build - -#============================================================================= -# Targets provided globally by CMake. - -# Special rule for the target install/strip -install/strip: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." - /usr/bin/cmake.exe -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake -.PHONY : install/strip - -# Special rule for the target install/strip -install/strip/fast: preinstall/fast - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." - /usr/bin/cmake.exe -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake -.PHONY : install/strip/fast - -# Special rule for the target install/local -install/local: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." - /usr/bin/cmake.exe -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake -.PHONY : install/local - -# Special rule for the target install/local -install/local/fast: preinstall/fast - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." - /usr/bin/cmake.exe -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake -.PHONY : install/local/fast - -# Special rule for the target install -install: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." - /usr/bin/cmake.exe -P cmake_install.cmake -.PHONY : install - -# Special rule for the target install -install/fast: preinstall/fast - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." - /usr/bin/cmake.exe -P cmake_install.cmake -.PHONY : install/fast - -# Special rule for the target list_install_components -list_install_components: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" -.PHONY : list_install_components - -# Special rule for the target list_install_components -list_install_components/fast: list_install_components - -.PHONY : list_install_components/fast - -# Special rule for the target rebuild_cache -rebuild_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." - /usr/bin/cmake.exe --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : rebuild_cache - -# Special rule for the target rebuild_cache -rebuild_cache/fast: rebuild_cache - -.PHONY : rebuild_cache/fast - -# Special rule for the target edit_cache -edit_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." - /usr/bin/ccmake.exe -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : edit_cache - -# Special rule for the target edit_cache -edit_cache/fast: edit_cache - -.PHONY : edit_cache/fast - -# Special rule for the target test -test: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." - /usr/bin/ctest.exe --force-new-ctest-process $(ARGS) -.PHONY : test - -# Special rule for the target test -test/fast: test - -.PHONY : test/fast - -# The main all target -all: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles/progress.marks - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all - $(CMAKE_COMMAND) -E cmake_progress_start /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles 0 -.PHONY : all - -# The main clean target -clean: - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean -.PHONY : clean - -# The main clean target -clean/fast: clean - -.PHONY : clean/fast - -# Prepare targets for installation. -preinstall: all - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall -.PHONY : preinstall - -# Prepare targets for installation. -preinstall/fast: - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall -.PHONY : preinstall/fast - -# clear depends -depend: - $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 -.PHONY : depend - -#============================================================================= -# Target rules for targets named gmock_main - -# Build rule for target. -gmock_main: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 gmock_main -.PHONY : gmock_main - -# fast build rule for target. -gmock_main/fast: - $(MAKE) $(MAKESILENT) -f googlemock/CMakeFiles/gmock_main.dir/build.make googlemock/CMakeFiles/gmock_main.dir/build -.PHONY : gmock_main/fast - -#============================================================================= -# Target rules for targets named gmock - -# Build rule for target. -gmock: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 gmock -.PHONY : gmock - -# fast build rule for target. -gmock/fast: - $(MAKE) $(MAKESILENT) -f googlemock/CMakeFiles/gmock.dir/build.make googlemock/CMakeFiles/gmock.dir/build -.PHONY : gmock/fast - -#============================================================================= -# Target rules for targets named gtest_main - -# Build rule for target. -gtest_main: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 gtest_main -.PHONY : gtest_main - -# fast build rule for target. -gtest_main/fast: - $(MAKE) $(MAKESILENT) -f googletest/CMakeFiles/gtest_main.dir/build.make googletest/CMakeFiles/gtest_main.dir/build -.PHONY : gtest_main/fast - -#============================================================================= -# Target rules for targets named gtest - -# Build rule for target. -gtest: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 gtest -.PHONY : gtest - -# fast build rule for target. -gtest/fast: - $(MAKE) $(MAKESILENT) -f googletest/CMakeFiles/gtest.dir/build.make googletest/CMakeFiles/gtest.dir/build -.PHONY : gtest/fast - -# Help Target -help: - @echo "The following are some of the valid targets for this Makefile:" - @echo "... all (the default if no target is provided)" - @echo "... clean" - @echo "... depend" - @echo "... edit_cache" - @echo "... install" - @echo "... install/local" - @echo "... install/strip" - @echo "... list_install_components" - @echo "... rebuild_cache" - @echo "... test" - @echo "... gmock" - @echo "... gmock_main" - @echo "... gtest" - @echo "... gtest_main" -.PHONY : help - - - -#============================================================================= -# Special targets to cleanup operation of make. - -# Special rule to run CMake to check the build system integrity. -# No rule that depends on this can have commands that come from listfiles -# because they might be regenerated. -cmake_check_build_system: - $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 -.PHONY : cmake_check_build_system - diff --git a/UnitTests_App/GoogleTest/build/cmake_install.cmake b/UnitTests_App/GoogleTest/build/cmake_install.cmake deleted file mode 100644 index 5fbb5ca..0000000 --- a/UnitTests_App/GoogleTest/build/cmake_install.cmake +++ /dev/null @@ -1,50 +0,0 @@ -# Install script for directory: /cygdrive/c/Users/Eyal/documents/googletest - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "FALSE") -endif() - -if(NOT CMAKE_INSTALL_LOCAL_ONLY) - # Include the install script for each subdirectory. - include("/cygdrive/c/Users/Eyal/documents/googletest/build/googlemock/cmake_install.cmake") - -endif() - -if(CMAKE_INSTALL_COMPONENT) - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "/cygdrive/c/Users/Eyal/documents/googletest/build/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/CMakeDirectoryInformation.cmake b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/CMakeDirectoryInformation.cmake deleted file mode 100644 index 3f785f7..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/CMakeDirectoryInformation.cmake +++ /dev/null @@ -1,16 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# Relative path conversion top directories. -set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/cygdrive/c/Users/Eyal/documents/googletest") -set(CMAKE_RELATIVE_PATH_TOP_BINARY "/cygdrive/c/Users/Eyal/documents/googletest/build") - -# Force unix paths in dependencies. -set(CMAKE_FORCE_UNIX_PATHS 1) - - -# The C and CXX include file regular expressions for this directory. -set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") -set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") -set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) -set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/CXX.includecache b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/CXX.includecache deleted file mode 100644 index 80be6ec..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/CXX.includecache +++ /dev/null @@ -1,614 +0,0 @@ -#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) - -#IncludeRegexScan: ^.*$ - -#IncludeRegexComplain: ^$ - -#IncludeRegexTransform: - -../googlemock/include/gmock/gmock-actions.h -errno.h -- -algorithm -- -functional -- -memory -- -string -- -tuple -- -type_traits -- -utility -- -gmock/internal/gmock-internal-utils.h -../googlemock/include/gmock/gmock/internal/gmock-internal-utils.h -gmock/internal/gmock-port.h -../googlemock/include/gmock/gmock/internal/gmock-port.h -gmock/internal/gmock-pp.h -../googlemock/include/gmock/gmock/internal/gmock-pp.h - -../googlemock/include/gmock/gmock-cardinalities.h -limits.h -- -memory -- -ostream -- -gmock/internal/gmock-port.h -../googlemock/include/gmock/gmock/internal/gmock-port.h -gtest/gtest.h -../googlemock/include/gmock/gtest/gtest.h - -../googlemock/include/gmock/gmock-function-mocker.h -type_traits -- -utility -- -gmock/gmock-spec-builders.h -../googlemock/include/gmock/gmock/gmock-spec-builders.h -gmock/internal/gmock-internal-utils.h -../googlemock/include/gmock/gmock/internal/gmock-internal-utils.h -gmock/internal/gmock-pp.h -../googlemock/include/gmock/gmock/internal/gmock-pp.h - -../googlemock/include/gmock/gmock-generated-actions.h -memory -- -utility -- -gmock/gmock-actions.h -../googlemock/include/gmock/gmock/gmock-actions.h -gmock/internal/gmock-port.h -../googlemock/include/gmock/gmock/internal/gmock-port.h -gmock/internal/custom/gmock-generated-actions.h -../googlemock/include/gmock/gmock/internal/custom/gmock-generated-actions.h - -../googlemock/include/gmock/gmock-matchers.h -algorithm -- -cmath -- -initializer_list -- -iterator -- -limits -- -memory -- -ostream -- -sstream -- -string -- -type_traits -- -utility -- -vector -- -gmock/internal/gmock-internal-utils.h -../googlemock/include/gmock/gmock/internal/gmock-internal-utils.h -gmock/internal/gmock-port.h -../googlemock/include/gmock/gmock/internal/gmock-port.h -gmock/internal/gmock-pp.h -../googlemock/include/gmock/gmock/internal/gmock-pp.h -gtest/gtest.h -../googlemock/include/gmock/gtest/gtest.h -gmock/internal/custom/gmock-matchers.h -../googlemock/include/gmock/gmock/internal/custom/gmock-matchers.h - -../googlemock/include/gmock/gmock-more-matchers.h -gmock/gmock-matchers.h -../googlemock/include/gmock/gmock/gmock-matchers.h - -../googlemock/include/gmock/gmock-nice-strict.h -type_traits -- -gmock/gmock-spec-builders.h -../googlemock/include/gmock/gmock/gmock-spec-builders.h -gmock/internal/gmock-port.h -../googlemock/include/gmock/gmock/internal/gmock-port.h - -../googlemock/include/gmock/gmock-spec-builders.h -functional -- -map -- -memory -- -set -- -sstream -- -string -- -type_traits -- -utility -- -vector -- -gmock/gmock-actions.h -../googlemock/include/gmock/gmock/gmock-actions.h -gmock/gmock-cardinalities.h -../googlemock/include/gmock/gmock/gmock-cardinalities.h -gmock/gmock-matchers.h -../googlemock/include/gmock/gmock/gmock-matchers.h -gmock/internal/gmock-internal-utils.h -../googlemock/include/gmock/gmock/internal/gmock-internal-utils.h -gmock/internal/gmock-port.h -../googlemock/include/gmock/gmock/internal/gmock-port.h -gtest/gtest.h -../googlemock/include/gmock/gtest/gtest.h -stdexcept -- - -../googlemock/include/gmock/gmock.h -gmock/gmock-actions.h -../googlemock/include/gmock/gmock/gmock-actions.h -gmock/gmock-cardinalities.h -../googlemock/include/gmock/gmock/gmock-cardinalities.h -gmock/gmock-function-mocker.h -../googlemock/include/gmock/gmock/gmock-function-mocker.h -gmock/gmock-generated-actions.h -../googlemock/include/gmock/gmock/gmock-generated-actions.h -gmock/gmock-matchers.h -../googlemock/include/gmock/gmock/gmock-matchers.h -gmock/gmock-more-matchers.h -../googlemock/include/gmock/gmock/gmock-more-matchers.h -gmock/gmock-nice-strict.h -../googlemock/include/gmock/gmock/gmock-nice-strict.h -gmock/internal/gmock-internal-utils.h -../googlemock/include/gmock/gmock/internal/gmock-internal-utils.h - -../googlemock/include/gmock/internal/custom/gmock-generated-actions.h - -../googlemock/include/gmock/internal/custom/gmock-matchers.h - -../googlemock/include/gmock/internal/custom/gmock-port.h - -../googlemock/include/gmock/internal/gmock-internal-utils.h -stdio.h -- -ostream -- -string -- -type_traits -- -gmock/internal/gmock-port.h -../googlemock/include/gmock/internal/gmock/internal/gmock-port.h -gtest/gtest.h -../googlemock/include/gmock/internal/gtest/gtest.h - -../googlemock/include/gmock/internal/gmock-port.h -assert.h -- -stdlib.h -- -cstdint -- -iostream -- -gtest/internal/gtest-port.h -../googlemock/include/gmock/internal/gtest/internal/gtest-port.h -gmock/internal/custom/gmock-port.h -../googlemock/include/gmock/internal/gmock/internal/custom/gmock-port.h - -../googlemock/include/gmock/internal/gmock-pp.h - -../googlemock/src/gmock-cardinalities.cc -gmock/gmock-cardinalities.h -../googlemock/src/gmock/gmock-cardinalities.h -limits.h -- -ostream -- -sstream -- -string -- -gmock/internal/gmock-internal-utils.h -../googlemock/src/gmock/internal/gmock-internal-utils.h -gtest/gtest.h -../googlemock/src/gtest/gtest.h - -../googlemock/src/gmock-internal-utils.cc -gmock/internal/gmock-internal-utils.h -../googlemock/src/gmock/internal/gmock-internal-utils.h -ctype.h -- -ostream -- -string -- -gmock/gmock.h -../googlemock/src/gmock/gmock.h -gmock/internal/gmock-port.h -../googlemock/src/gmock/internal/gmock-port.h -gtest/gtest.h -../googlemock/src/gtest/gtest.h - -../googlemock/src/gmock-matchers.cc -gmock/gmock-matchers.h -../googlemock/src/gmock/gmock-matchers.h -string.h -- -iostream -- -sstream -- -string -- - -../googlemock/src/gmock-spec-builders.cc -gmock/gmock-spec-builders.h -../googlemock/src/gmock/gmock-spec-builders.h -stdlib.h -- -iostream -- -map -- -memory -- -set -- -string -- -vector -- -gmock/gmock.h -../googlemock/src/gmock/gmock.h -gtest/gtest.h -../googlemock/src/gtest/gtest.h -gtest/internal/gtest-port.h -../googlemock/src/gtest/internal/gtest-port.h -unistd.h -- - -../googlemock/src/gmock.cc -gmock/gmock.h -../googlemock/src/gmock/gmock.h -gmock/internal/gmock-port.h -../googlemock/src/gmock/internal/gmock-port.h - -../googletest/include/gtest/gtest-death-test.h -gtest/internal/gtest-death-test-internal.h -../googletest/include/gtest/gtest/internal/gtest-death-test-internal.h - -../googletest/include/gtest/gtest-matchers.h -memory -- -ostream -- -string -- -type_traits -- -gtest/gtest-printers.h -../googletest/include/gtest/gtest/gtest-printers.h -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h - -../googletest/include/gtest/gtest-message.h -limits -- -memory -- -sstream -- -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h - -../googletest/include/gtest/gtest-param-test.h -iterator -- -utility -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-param-util.h -../googletest/include/gtest/gtest/internal/gtest-param-util.h -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h - -../googletest/include/gtest/gtest-printers.h -functional -- -ostream -- -sstream -- -string -- -tuple -- -type_traits -- -utility -- -vector -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h -gtest/internal/custom/gtest-printers.h -../googletest/include/gtest/gtest/internal/custom/gtest-printers.h - -../googletest/include/gtest/gtest-test-part.h -iosfwd -- -vector -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-string.h -../googletest/include/gtest/gtest/internal/gtest-string.h - -../googletest/include/gtest/gtest-typed-test.h -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h -gtest/internal/gtest-type-util.h -../googletest/include/gtest/gtest/internal/gtest-type-util.h - -../googletest/include/gtest/gtest.h -cstddef -- -limits -- -memory -- -ostream -- -type_traits -- -vector -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-string.h -../googletest/include/gtest/gtest/internal/gtest-string.h -gtest/gtest-death-test.h -../googletest/include/gtest/gtest/gtest-death-test.h -gtest/gtest-matchers.h -../googletest/include/gtest/gtest/gtest-matchers.h -gtest/gtest-message.h -../googletest/include/gtest/gtest/gtest-message.h -gtest/gtest-param-test.h -../googletest/include/gtest/gtest/gtest-param-test.h -gtest/gtest-printers.h -../googletest/include/gtest/gtest/gtest-printers.h -gtest/gtest_prod.h -../googletest/include/gtest/gtest/gtest_prod.h -gtest/gtest-test-part.h -../googletest/include/gtest/gtest/gtest-test-part.h -gtest/gtest-typed-test.h -../googletest/include/gtest/gtest/gtest-typed-test.h -gtest/gtest_pred_impl.h -../googletest/include/gtest/gtest/gtest_pred_impl.h - -../googletest/include/gtest/gtest_pred_impl.h -gtest/gtest.h -../googletest/include/gtest/gtest/gtest.h - -../googletest/include/gtest/gtest_prod.h - -../googletest/include/gtest/internal/custom/gtest-port.h - -../googletest/include/gtest/internal/custom/gtest-printers.h - -../googletest/include/gtest/internal/gtest-death-test-internal.h -gtest/gtest-matchers.h -../googletest/include/gtest/internal/gtest/gtest-matchers.h -gtest/internal/gtest-internal.h -../googletest/include/gtest/internal/gtest/internal/gtest-internal.h -stdio.h -- -memory -- - -../googletest/include/gtest/internal/gtest-filepath.h -gtest/internal/gtest-string.h -../googletest/include/gtest/internal/gtest/internal/gtest-string.h - -../googletest/include/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/gtest-port.h -stdlib.h -- -sys/types.h -- -sys/wait.h -- -unistd.h -- -stdexcept -- -ctype.h -- -float.h -- -string.h -- -cstdint -- -iomanip -- -limits -- -map -- -set -- -string -- -type_traits -- -vector -- -gtest/gtest-message.h -../googletest/include/gtest/internal/gtest/gtest-message.h -gtest/internal/gtest-filepath.h -../googletest/include/gtest/internal/gtest/internal/gtest-filepath.h -gtest/internal/gtest-string.h -../googletest/include/gtest/internal/gtest/internal/gtest-string.h -gtest/internal/gtest-type-util.h -../googletest/include/gtest/internal/gtest/internal/gtest-type-util.h - -../googletest/include/gtest/internal/gtest-param-util.h -ctype.h -- -cassert -- -iterator -- -memory -- -set -- -tuple -- -type_traits -- -utility -- -vector -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/internal/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/gtest-port.h -gtest/gtest-printers.h -../googletest/include/gtest/internal/gtest/gtest-printers.h -gtest/gtest-test-part.h -../googletest/include/gtest/internal/gtest/gtest-test-part.h - -../googletest/include/gtest/internal/gtest-port-arch.h -winapifamily.h -- -TargetConditionals.h -- - -../googletest/include/gtest/internal/gtest-port.h -ctype.h -- -stddef.h -- -stdio.h -- -stdlib.h -- -string.h -- -cerrno -- -cstdint -- -limits -- -type_traits -- -sys/types.h -- -sys/stat.h -- -AvailabilityMacros.h -- -TargetConditionals.h -- -iostream -- -locale -- -memory -- -string -- -tuple -- -vector -- -gtest/internal/custom/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/custom/gtest-port.h -gtest/internal/gtest-port-arch.h -../googletest/include/gtest/internal/gtest/internal/gtest-port-arch.h -direct.h -- -io.h -- -unistd.h -- -strings.h -- -android/api-level.h -- -regex.h -- -typeinfo -- -pthread.h -- -time.h -- -absl/types/any.h -../googletest/include/gtest/internal/absl/types/any.h -any -- -absl/types/optional.h -../googletest/include/gtest/internal/absl/types/optional.h -optional -- -absl/strings/string_view.h -../googletest/include/gtest/internal/absl/strings/string_view.h -string_view -- -absl/types/variant.h -../googletest/include/gtest/internal/absl/types/variant.h -variant -- - -../googletest/include/gtest/internal/gtest-string.h -mem.h -- -string.h -- -cstdint -- -string -- -gtest/internal/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/gtest-port.h - -../googletest/include/gtest/internal/gtest-type-util.h -gtest/internal/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/gtest-port.h -cxxabi.h -- -acxx_demangle.h -- - -/cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/gmock-all.cc -gmock/gmock.h -/cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/gmock/gmock.h -src/gmock-cardinalities.cc -/cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/src/gmock-cardinalities.cc -src/gmock-internal-utils.cc -/cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/src/gmock-internal-utils.cc -src/gmock-matchers.cc -/cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/src/gmock-matchers.cc -src/gmock-spec-builders.cc -/cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/src/gmock-spec-builders.cc -src/gmock.cc -/cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/src/gmock.cc - diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/DependInfo.cmake b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/DependInfo.cmake deleted file mode 100644 index b08b277..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/DependInfo.cmake +++ /dev/null @@ -1,25 +0,0 @@ -# The set of languages for which implicit dependencies are needed: -set(CMAKE_DEPENDS_LANGUAGES - "CXX" - ) -# The set of files for implicit dependencies of each language: -set(CMAKE_DEPENDS_CHECK_CXX - "/cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/gmock-all.cc" "/cygdrive/c/Users/Eyal/documents/googletest/build/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o" - ) -set(CMAKE_CXX_COMPILER_ID "GNU") - -# The include file search paths: -set(CMAKE_CXX_TARGET_INCLUDE_PATH - "../googlemock/include" - "../googlemock" - "../googletest/include" - "../googletest" - ) - -# Targets to which this target links. -set(CMAKE_TARGET_LINKED_INFO_FILES - "/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/gtest.dir/DependInfo.cmake" - ) - -# Fortran module output directory. -set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/build.make b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/build.make deleted file mode 100644 index c4d83b8..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/build.make +++ /dev/null @@ -1,119 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# Delete rule output on recipe failure. -.DELETE_ON_ERROR: - - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -# Suppress display of executed commands. -$(VERBOSE).SILENT: - - -# A target that is always out of date. -cmake_force: - -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/bin/cmake.exe - -# The command to remove a file. -RM = /usr/bin/cmake.exe -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /cygdrive/c/Users/Eyal/documents/googletest - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /cygdrive/c/Users/Eyal/documents/googletest/build - -# Include any dependencies generated for this target. -include googlemock/CMakeFiles/gmock.dir/depend.make - -# Include the progress variables for this target. -include googlemock/CMakeFiles/gmock.dir/progress.make - -# Include the compile flags for this target's objects. -include googlemock/CMakeFiles/gmock.dir/flags.make - -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: googlemock/CMakeFiles/gmock.dir/flags.make -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/src/gmock-all.cc - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o" - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock && /usr/bin/c++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/gmock.dir/src/gmock-all.cc.o -c /cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/gmock-all.cc - -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.i: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/gmock.dir/src/gmock-all.cc.i" - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock && /usr/bin/c++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/gmock-all.cc > CMakeFiles/gmock.dir/src/gmock-all.cc.i - -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.s: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/gmock.dir/src/gmock-all.cc.s" - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock && /usr/bin/c++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/gmock-all.cc -o CMakeFiles/gmock.dir/src/gmock-all.cc.s - -# Object files for target gmock -gmock_OBJECTS = \ -"CMakeFiles/gmock.dir/src/gmock-all.cc.o" - -# External object files for target gmock -gmock_EXTERNAL_OBJECTS = - -lib/libgmock.a: googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o -lib/libgmock.a: googlemock/CMakeFiles/gmock.dir/build.make -lib/libgmock.a: googlemock/CMakeFiles/gmock.dir/link.txt - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX static library ../lib/libgmock.a" - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock && $(CMAKE_COMMAND) -P CMakeFiles/gmock.dir/cmake_clean_target.cmake - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/gmock.dir/link.txt --verbose=$(VERBOSE) - -# Rule to build all files generated by this target. -googlemock/CMakeFiles/gmock.dir/build: lib/libgmock.a - -.PHONY : googlemock/CMakeFiles/gmock.dir/build - -googlemock/CMakeFiles/gmock.dir/clean: - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock && $(CMAKE_COMMAND) -P CMakeFiles/gmock.dir/cmake_clean.cmake -.PHONY : googlemock/CMakeFiles/gmock.dir/clean - -googlemock/CMakeFiles/gmock.dir/depend: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /cygdrive/c/Users/Eyal/documents/googletest /cygdrive/c/Users/Eyal/documents/googletest/googlemock /cygdrive/c/Users/Eyal/documents/googletest/build /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock/CMakeFiles/gmock.dir/DependInfo.cmake --color=$(COLOR) -.PHONY : googlemock/CMakeFiles/gmock.dir/depend - diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/cmake_clean.cmake b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/cmake_clean.cmake deleted file mode 100644 index f90b98f..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/cmake_clean.cmake +++ /dev/null @@ -1,10 +0,0 @@ -file(REMOVE_RECURSE - "../bin/libgmock.pdb" - "../lib/libgmock.a" - "CMakeFiles/gmock.dir/src/gmock-all.cc.o" -) - -# Per-language clean rules from dependency scanning. -foreach(lang CXX) - include(CMakeFiles/gmock.dir/cmake_clean_${lang}.cmake OPTIONAL) -endforeach() diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/cmake_clean_target.cmake b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/cmake_clean_target.cmake deleted file mode 100644 index d313bfa..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/cmake_clean_target.cmake +++ /dev/null @@ -1,3 +0,0 @@ -file(REMOVE_RECURSE - "../lib/libgmock.a" -) diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/depend.internal b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/depend.internal deleted file mode 100644 index 5870f9a..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/depend.internal +++ /dev/null @@ -1,45 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o - ../googlemock/include/gmock/gmock-actions.h - ../googlemock/include/gmock/gmock-cardinalities.h - ../googlemock/include/gmock/gmock-function-mocker.h - ../googlemock/include/gmock/gmock-generated-actions.h - ../googlemock/include/gmock/gmock-matchers.h - ../googlemock/include/gmock/gmock-more-matchers.h - ../googlemock/include/gmock/gmock-nice-strict.h - ../googlemock/include/gmock/gmock-spec-builders.h - ../googlemock/include/gmock/gmock.h - ../googlemock/include/gmock/internal/custom/gmock-generated-actions.h - ../googlemock/include/gmock/internal/custom/gmock-matchers.h - ../googlemock/include/gmock/internal/custom/gmock-port.h - ../googlemock/include/gmock/internal/gmock-internal-utils.h - ../googlemock/include/gmock/internal/gmock-port.h - ../googlemock/include/gmock/internal/gmock-pp.h - ../googlemock/src/gmock-cardinalities.cc - ../googlemock/src/gmock-internal-utils.cc - ../googlemock/src/gmock-matchers.cc - ../googlemock/src/gmock-spec-builders.cc - ../googlemock/src/gmock.cc - ../googletest/include/gtest/gtest-death-test.h - ../googletest/include/gtest/gtest-matchers.h - ../googletest/include/gtest/gtest-message.h - ../googletest/include/gtest/gtest-param-test.h - ../googletest/include/gtest/gtest-printers.h - ../googletest/include/gtest/gtest-test-part.h - ../googletest/include/gtest/gtest-typed-test.h - ../googletest/include/gtest/gtest.h - ../googletest/include/gtest/gtest_pred_impl.h - ../googletest/include/gtest/gtest_prod.h - ../googletest/include/gtest/internal/custom/gtest-port.h - ../googletest/include/gtest/internal/custom/gtest-printers.h - ../googletest/include/gtest/internal/gtest-death-test-internal.h - ../googletest/include/gtest/internal/gtest-filepath.h - ../googletest/include/gtest/internal/gtest-internal.h - ../googletest/include/gtest/internal/gtest-param-util.h - ../googletest/include/gtest/internal/gtest-port-arch.h - ../googletest/include/gtest/internal/gtest-port.h - ../googletest/include/gtest/internal/gtest-string.h - ../googletest/include/gtest/internal/gtest-type-util.h - /cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/gmock-all.cc diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/depend.make b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/depend.make deleted file mode 100644 index a137c98..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/depend.make +++ /dev/null @@ -1,45 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/include/gmock/gmock-actions.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/include/gmock/gmock-cardinalities.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/include/gmock/gmock-function-mocker.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/include/gmock/gmock-generated-actions.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/include/gmock/gmock-matchers.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/include/gmock/gmock-more-matchers.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/include/gmock/gmock-nice-strict.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/include/gmock/gmock-spec-builders.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/include/gmock/gmock.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/include/gmock/internal/custom/gmock-generated-actions.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/include/gmock/internal/custom/gmock-matchers.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/include/gmock/internal/custom/gmock-port.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/include/gmock/internal/gmock-internal-utils.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/include/gmock/internal/gmock-port.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/include/gmock/internal/gmock-pp.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/src/gmock-cardinalities.cc -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/src/gmock-internal-utils.cc -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/src/gmock-matchers.cc -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/src/gmock-spec-builders.cc -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/src/gmock.cc -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/gtest-death-test.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/gtest-matchers.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/gtest-message.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/gtest-param-test.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/gtest-printers.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/gtest-test-part.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/gtest-typed-test.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/gtest.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/gtest_pred_impl.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/gtest_prod.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/internal/custom/gtest-port.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/internal/custom/gtest-printers.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/internal/gtest-death-test-internal.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/internal/gtest-filepath.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/internal/gtest-internal.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/internal/gtest-param-util.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/internal/gtest-port-arch.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/internal/gtest-port.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/internal/gtest-string.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googletest/include/gtest/internal/gtest-type-util.h -googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: ../googlemock/src/gmock-all.cc - diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/flags.make b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/flags.make deleted file mode 100644 index df63c9e..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/flags.make +++ /dev/null @@ -1,10 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# compile CXX with /usr/bin/c++.exe -CXX_FLAGS = -Wall -Wshadow -Werror -Wno-error=dangling-else -DGTEST_HAS_PTHREAD=1 -fexceptions -Wextra -Wno-unused-parameter -Wno-missing-field-initializers - -CXX_DEFINES = - -CXX_INCLUDES = -I/cygdrive/c/Users/Eyal/documents/googletest/googlemock/include -I/cygdrive/c/Users/Eyal/documents/googletest/googlemock -isystem /cygdrive/c/Users/Eyal/documents/googletest/googletest/include -isystem /cygdrive/c/Users/Eyal/documents/googletest/googletest - diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/link.txt b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/link.txt deleted file mode 100644 index efc8139..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/link.txt +++ /dev/null @@ -1,2 +0,0 @@ -/usr/bin/ar.exe qc ../lib/libgmock.a CMakeFiles/gmock.dir/src/gmock-all.cc.o -/usr/bin/ranlib.exe ../lib/libgmock.a diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/progress.make b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/progress.make deleted file mode 100644 index abadeb0..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/progress.make +++ /dev/null @@ -1,3 +0,0 @@ -CMAKE_PROGRESS_1 = 1 -CMAKE_PROGRESS_2 = 2 - diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o deleted file mode 100644 index c529c03cc0e110494828172985ae1d8ab0c958dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1021528 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

F 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]+)([">]) - -#IncludeRegexScan: ^.*$ - -#IncludeRegexComplain: ^$ - -#IncludeRegexTransform: - -../googlemock/include/gmock/gmock-actions.h -errno.h -- -algorithm -- -functional -- -memory -- -string -- -tuple -- -type_traits -- -utility -- -gmock/internal/gmock-internal-utils.h -../googlemock/include/gmock/gmock/internal/gmock-internal-utils.h -gmock/internal/gmock-port.h -../googlemock/include/gmock/gmock/internal/gmock-port.h -gmock/internal/gmock-pp.h -../googlemock/include/gmock/gmock/internal/gmock-pp.h - -../googlemock/include/gmock/gmock-cardinalities.h -limits.h -- -memory -- -ostream -- -gmock/internal/gmock-port.h -../googlemock/include/gmock/gmock/internal/gmock-port.h -gtest/gtest.h -../googlemock/include/gmock/gtest/gtest.h - -../googlemock/include/gmock/gmock-function-mocker.h -type_traits -- -utility -- -gmock/gmock-spec-builders.h -../googlemock/include/gmock/gmock/gmock-spec-builders.h -gmock/internal/gmock-internal-utils.h -../googlemock/include/gmock/gmock/internal/gmock-internal-utils.h -gmock/internal/gmock-pp.h -../googlemock/include/gmock/gmock/internal/gmock-pp.h - -../googlemock/include/gmock/gmock-generated-actions.h -memory -- -utility -- -gmock/gmock-actions.h -../googlemock/include/gmock/gmock/gmock-actions.h -gmock/internal/gmock-port.h -../googlemock/include/gmock/gmock/internal/gmock-port.h -gmock/internal/custom/gmock-generated-actions.h -../googlemock/include/gmock/gmock/internal/custom/gmock-generated-actions.h - -../googlemock/include/gmock/gmock-matchers.h -algorithm -- -cmath -- -initializer_list -- -iterator -- -limits -- -memory -- -ostream -- -sstream -- -string -- -type_traits -- -utility -- -vector -- -gmock/internal/gmock-internal-utils.h -../googlemock/include/gmock/gmock/internal/gmock-internal-utils.h -gmock/internal/gmock-port.h -../googlemock/include/gmock/gmock/internal/gmock-port.h -gmock/internal/gmock-pp.h -../googlemock/include/gmock/gmock/internal/gmock-pp.h -gtest/gtest.h -../googlemock/include/gmock/gtest/gtest.h -gmock/internal/custom/gmock-matchers.h -../googlemock/include/gmock/gmock/internal/custom/gmock-matchers.h - -../googlemock/include/gmock/gmock-more-matchers.h -gmock/gmock-matchers.h -../googlemock/include/gmock/gmock/gmock-matchers.h - -../googlemock/include/gmock/gmock-nice-strict.h -type_traits -- -gmock/gmock-spec-builders.h -../googlemock/include/gmock/gmock/gmock-spec-builders.h -gmock/internal/gmock-port.h -../googlemock/include/gmock/gmock/internal/gmock-port.h - -../googlemock/include/gmock/gmock-spec-builders.h -functional -- -map -- -memory -- -set -- -sstream -- -string -- -type_traits -- -utility -- -vector -- -gmock/gmock-actions.h -../googlemock/include/gmock/gmock/gmock-actions.h -gmock/gmock-cardinalities.h -../googlemock/include/gmock/gmock/gmock-cardinalities.h -gmock/gmock-matchers.h -../googlemock/include/gmock/gmock/gmock-matchers.h -gmock/internal/gmock-internal-utils.h -../googlemock/include/gmock/gmock/internal/gmock-internal-utils.h -gmock/internal/gmock-port.h -../googlemock/include/gmock/gmock/internal/gmock-port.h -gtest/gtest.h -../googlemock/include/gmock/gtest/gtest.h -stdexcept -- - -../googlemock/include/gmock/gmock.h -gmock/gmock-actions.h -../googlemock/include/gmock/gmock/gmock-actions.h -gmock/gmock-cardinalities.h -../googlemock/include/gmock/gmock/gmock-cardinalities.h -gmock/gmock-function-mocker.h -../googlemock/include/gmock/gmock/gmock-function-mocker.h -gmock/gmock-generated-actions.h -../googlemock/include/gmock/gmock/gmock-generated-actions.h -gmock/gmock-matchers.h -../googlemock/include/gmock/gmock/gmock-matchers.h -gmock/gmock-more-matchers.h -../googlemock/include/gmock/gmock/gmock-more-matchers.h -gmock/gmock-nice-strict.h -../googlemock/include/gmock/gmock/gmock-nice-strict.h -gmock/internal/gmock-internal-utils.h -../googlemock/include/gmock/gmock/internal/gmock-internal-utils.h - -../googlemock/include/gmock/internal/custom/gmock-generated-actions.h - -../googlemock/include/gmock/internal/custom/gmock-matchers.h - -../googlemock/include/gmock/internal/custom/gmock-port.h - -../googlemock/include/gmock/internal/gmock-internal-utils.h -stdio.h -- -ostream -- -string -- -type_traits -- -gmock/internal/gmock-port.h -../googlemock/include/gmock/internal/gmock/internal/gmock-port.h -gtest/gtest.h -../googlemock/include/gmock/internal/gtest/gtest.h - -../googlemock/include/gmock/internal/gmock-port.h -assert.h -- -stdlib.h -- -cstdint -- -iostream -- -gtest/internal/gtest-port.h -../googlemock/include/gmock/internal/gtest/internal/gtest-port.h -gmock/internal/custom/gmock-port.h -../googlemock/include/gmock/internal/gmock/internal/custom/gmock-port.h - -../googlemock/include/gmock/internal/gmock-pp.h - -../googletest/include/gtest/gtest-death-test.h -gtest/internal/gtest-death-test-internal.h -../googletest/include/gtest/gtest/internal/gtest-death-test-internal.h - -../googletest/include/gtest/gtest-matchers.h -memory -- -ostream -- -string -- -type_traits -- -gtest/gtest-printers.h -../googletest/include/gtest/gtest/gtest-printers.h -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h - -../googletest/include/gtest/gtest-message.h -limits -- -memory -- -sstream -- -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h - -../googletest/include/gtest/gtest-param-test.h -iterator -- -utility -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-param-util.h -../googletest/include/gtest/gtest/internal/gtest-param-util.h -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h - -../googletest/include/gtest/gtest-printers.h -functional -- -ostream -- -sstream -- -string -- -tuple -- -type_traits -- -utility -- -vector -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h -gtest/internal/custom/gtest-printers.h -../googletest/include/gtest/gtest/internal/custom/gtest-printers.h - -../googletest/include/gtest/gtest-test-part.h -iosfwd -- -vector -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-string.h -../googletest/include/gtest/gtest/internal/gtest-string.h - -../googletest/include/gtest/gtest-typed-test.h -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h -gtest/internal/gtest-type-util.h -../googletest/include/gtest/gtest/internal/gtest-type-util.h - -../googletest/include/gtest/gtest.h -cstddef -- -limits -- -memory -- -ostream -- -type_traits -- -vector -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-string.h -../googletest/include/gtest/gtest/internal/gtest-string.h -gtest/gtest-death-test.h -../googletest/include/gtest/gtest/gtest-death-test.h -gtest/gtest-matchers.h -../googletest/include/gtest/gtest/gtest-matchers.h -gtest/gtest-message.h -../googletest/include/gtest/gtest/gtest-message.h -gtest/gtest-param-test.h -../googletest/include/gtest/gtest/gtest-param-test.h -gtest/gtest-printers.h -../googletest/include/gtest/gtest/gtest-printers.h -gtest/gtest_prod.h -../googletest/include/gtest/gtest/gtest_prod.h -gtest/gtest-test-part.h -../googletest/include/gtest/gtest/gtest-test-part.h -gtest/gtest-typed-test.h -../googletest/include/gtest/gtest/gtest-typed-test.h -gtest/gtest_pred_impl.h -../googletest/include/gtest/gtest/gtest_pred_impl.h - -../googletest/include/gtest/gtest_pred_impl.h -gtest/gtest.h -../googletest/include/gtest/gtest/gtest.h - -../googletest/include/gtest/gtest_prod.h - -../googletest/include/gtest/internal/custom/gtest-port.h - -../googletest/include/gtest/internal/custom/gtest-printers.h - -../googletest/include/gtest/internal/gtest-death-test-internal.h -gtest/gtest-matchers.h -../googletest/include/gtest/internal/gtest/gtest-matchers.h -gtest/internal/gtest-internal.h -../googletest/include/gtest/internal/gtest/internal/gtest-internal.h -stdio.h -- -memory -- - -../googletest/include/gtest/internal/gtest-filepath.h -gtest/internal/gtest-string.h -../googletest/include/gtest/internal/gtest/internal/gtest-string.h - -../googletest/include/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/gtest-port.h -stdlib.h -- -sys/types.h -- -sys/wait.h -- -unistd.h -- -stdexcept -- -ctype.h -- -float.h -- -string.h -- -cstdint -- -iomanip -- -limits -- -map -- -set -- -string -- -type_traits -- -vector -- -gtest/gtest-message.h -../googletest/include/gtest/internal/gtest/gtest-message.h -gtest/internal/gtest-filepath.h -../googletest/include/gtest/internal/gtest/internal/gtest-filepath.h -gtest/internal/gtest-string.h -../googletest/include/gtest/internal/gtest/internal/gtest-string.h -gtest/internal/gtest-type-util.h -../googletest/include/gtest/internal/gtest/internal/gtest-type-util.h - -../googletest/include/gtest/internal/gtest-param-util.h -ctype.h -- -cassert -- -iterator -- -memory -- -set -- -tuple -- -type_traits -- -utility -- -vector -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/internal/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/gtest-port.h -gtest/gtest-printers.h -../googletest/include/gtest/internal/gtest/gtest-printers.h -gtest/gtest-test-part.h -../googletest/include/gtest/internal/gtest/gtest-test-part.h - -../googletest/include/gtest/internal/gtest-port-arch.h -winapifamily.h -- -TargetConditionals.h -- - -../googletest/include/gtest/internal/gtest-port.h -ctype.h -- -stddef.h -- -stdio.h -- -stdlib.h -- -string.h -- -cerrno -- -cstdint -- -limits -- -type_traits -- -sys/types.h -- -sys/stat.h -- -AvailabilityMacros.h -- -TargetConditionals.h -- -iostream -- -locale -- -memory -- -string -- -tuple -- -vector -- -gtest/internal/custom/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/custom/gtest-port.h -gtest/internal/gtest-port-arch.h -../googletest/include/gtest/internal/gtest/internal/gtest-port-arch.h -direct.h -- -io.h -- -unistd.h -- -strings.h -- -android/api-level.h -- -regex.h -- -typeinfo -- -pthread.h -- -time.h -- -absl/types/any.h -../googletest/include/gtest/internal/absl/types/any.h -any -- -absl/types/optional.h -../googletest/include/gtest/internal/absl/types/optional.h -optional -- -absl/strings/string_view.h -../googletest/include/gtest/internal/absl/strings/string_view.h -string_view -- -absl/types/variant.h -../googletest/include/gtest/internal/absl/types/variant.h -variant -- - -../googletest/include/gtest/internal/gtest-string.h -mem.h -- -string.h -- -cstdint -- -string -- -gtest/internal/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/gtest-port.h - -../googletest/include/gtest/internal/gtest-type-util.h -gtest/internal/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/gtest-port.h -cxxabi.h -- -acxx_demangle.h -- - -/cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/gmock_main.cc -iostream -- -gmock/gmock.h -/cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/gmock/gmock.h -gtest/gtest.h -/cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/gtest/gtest.h -tchar.h -- - diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/DependInfo.cmake b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/DependInfo.cmake deleted file mode 100644 index 5afe10f..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/DependInfo.cmake +++ /dev/null @@ -1,26 +0,0 @@ -# The set of languages for which implicit dependencies are needed: -set(CMAKE_DEPENDS_LANGUAGES - "CXX" - ) -# The set of files for implicit dependencies of each language: -set(CMAKE_DEPENDS_CHECK_CXX - "/cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/gmock_main.cc" "/cygdrive/c/Users/Eyal/documents/googletest/build/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o" - ) -set(CMAKE_CXX_COMPILER_ID "GNU") - -# The include file search paths: -set(CMAKE_CXX_TARGET_INCLUDE_PATH - "../googlemock/include" - "../googlemock" - "../googletest/include" - "../googletest" - ) - -# Targets to which this target links. -set(CMAKE_TARGET_LINKED_INFO_FILES - "/cygdrive/c/Users/Eyal/documents/googletest/build/googlemock/CMakeFiles/gmock.dir/DependInfo.cmake" - "/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/gtest.dir/DependInfo.cmake" - ) - -# Fortran module output directory. -set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/build.make b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/build.make deleted file mode 100644 index c66d1b9..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/build.make +++ /dev/null @@ -1,119 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# Delete rule output on recipe failure. -.DELETE_ON_ERROR: - - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -# Suppress display of executed commands. -$(VERBOSE).SILENT: - - -# A target that is always out of date. -cmake_force: - -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/bin/cmake.exe - -# The command to remove a file. -RM = /usr/bin/cmake.exe -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /cygdrive/c/Users/Eyal/documents/googletest - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /cygdrive/c/Users/Eyal/documents/googletest/build - -# Include any dependencies generated for this target. -include googlemock/CMakeFiles/gmock_main.dir/depend.make - -# Include the progress variables for this target. -include googlemock/CMakeFiles/gmock_main.dir/progress.make - -# Include the compile flags for this target's objects. -include googlemock/CMakeFiles/gmock_main.dir/flags.make - -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: googlemock/CMakeFiles/gmock_main.dir/flags.make -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/src/gmock_main.cc - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o" - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock && /usr/bin/c++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/gmock_main.dir/src/gmock_main.cc.o -c /cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/gmock_main.cc - -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.i: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/gmock_main.dir/src/gmock_main.cc.i" - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock && /usr/bin/c++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/gmock_main.cc > CMakeFiles/gmock_main.dir/src/gmock_main.cc.i - -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.s: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/gmock_main.dir/src/gmock_main.cc.s" - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock && /usr/bin/c++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/gmock_main.cc -o CMakeFiles/gmock_main.dir/src/gmock_main.cc.s - -# Object files for target gmock_main -gmock_main_OBJECTS = \ -"CMakeFiles/gmock_main.dir/src/gmock_main.cc.o" - -# External object files for target gmock_main -gmock_main_EXTERNAL_OBJECTS = - -lib/libgmock_main.a: googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o -lib/libgmock_main.a: googlemock/CMakeFiles/gmock_main.dir/build.make -lib/libgmock_main.a: googlemock/CMakeFiles/gmock_main.dir/link.txt - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX static library ../lib/libgmock_main.a" - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock && $(CMAKE_COMMAND) -P CMakeFiles/gmock_main.dir/cmake_clean_target.cmake - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/gmock_main.dir/link.txt --verbose=$(VERBOSE) - -# Rule to build all files generated by this target. -googlemock/CMakeFiles/gmock_main.dir/build: lib/libgmock_main.a - -.PHONY : googlemock/CMakeFiles/gmock_main.dir/build - -googlemock/CMakeFiles/gmock_main.dir/clean: - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock && $(CMAKE_COMMAND) -P CMakeFiles/gmock_main.dir/cmake_clean.cmake -.PHONY : googlemock/CMakeFiles/gmock_main.dir/clean - -googlemock/CMakeFiles/gmock_main.dir/depend: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /cygdrive/c/Users/Eyal/documents/googletest /cygdrive/c/Users/Eyal/documents/googletest/googlemock /cygdrive/c/Users/Eyal/documents/googletest/build /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock/CMakeFiles/gmock_main.dir/DependInfo.cmake --color=$(COLOR) -.PHONY : googlemock/CMakeFiles/gmock_main.dir/depend - diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/cmake_clean.cmake b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/cmake_clean.cmake deleted file mode 100644 index 1c8b03f..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/cmake_clean.cmake +++ /dev/null @@ -1,10 +0,0 @@ -file(REMOVE_RECURSE - "../bin/libgmock_main.pdb" - "../lib/libgmock_main.a" - "CMakeFiles/gmock_main.dir/src/gmock_main.cc.o" -) - -# Per-language clean rules from dependency scanning. -foreach(lang CXX) - include(CMakeFiles/gmock_main.dir/cmake_clean_${lang}.cmake OPTIONAL) -endforeach() diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/cmake_clean_target.cmake b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/cmake_clean_target.cmake deleted file mode 100644 index 1895ab1..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/cmake_clean_target.cmake +++ /dev/null @@ -1,3 +0,0 @@ -file(REMOVE_RECURSE - "../lib/libgmock_main.a" -) diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/depend.internal b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/depend.internal deleted file mode 100644 index 3693b97..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/depend.internal +++ /dev/null @@ -1,40 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o - ../googlemock/include/gmock/gmock-actions.h - ../googlemock/include/gmock/gmock-cardinalities.h - ../googlemock/include/gmock/gmock-function-mocker.h - ../googlemock/include/gmock/gmock-generated-actions.h - ../googlemock/include/gmock/gmock-matchers.h - ../googlemock/include/gmock/gmock-more-matchers.h - ../googlemock/include/gmock/gmock-nice-strict.h - ../googlemock/include/gmock/gmock-spec-builders.h - ../googlemock/include/gmock/gmock.h - ../googlemock/include/gmock/internal/custom/gmock-generated-actions.h - ../googlemock/include/gmock/internal/custom/gmock-matchers.h - ../googlemock/include/gmock/internal/custom/gmock-port.h - ../googlemock/include/gmock/internal/gmock-internal-utils.h - ../googlemock/include/gmock/internal/gmock-port.h - ../googlemock/include/gmock/internal/gmock-pp.h - ../googletest/include/gtest/gtest-death-test.h - ../googletest/include/gtest/gtest-matchers.h - ../googletest/include/gtest/gtest-message.h - ../googletest/include/gtest/gtest-param-test.h - ../googletest/include/gtest/gtest-printers.h - ../googletest/include/gtest/gtest-test-part.h - ../googletest/include/gtest/gtest-typed-test.h - ../googletest/include/gtest/gtest.h - ../googletest/include/gtest/gtest_pred_impl.h - ../googletest/include/gtest/gtest_prod.h - ../googletest/include/gtest/internal/custom/gtest-port.h - ../googletest/include/gtest/internal/custom/gtest-printers.h - ../googletest/include/gtest/internal/gtest-death-test-internal.h - ../googletest/include/gtest/internal/gtest-filepath.h - ../googletest/include/gtest/internal/gtest-internal.h - ../googletest/include/gtest/internal/gtest-param-util.h - ../googletest/include/gtest/internal/gtest-port-arch.h - ../googletest/include/gtest/internal/gtest-port.h - ../googletest/include/gtest/internal/gtest-string.h - ../googletest/include/gtest/internal/gtest-type-util.h - /cygdrive/c/Users/Eyal/documents/googletest/googlemock/src/gmock_main.cc diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/depend.make b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/depend.make deleted file mode 100644 index fbb0d7d..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/depend.make +++ /dev/null @@ -1,40 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/include/gmock/gmock-actions.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/include/gmock/gmock-cardinalities.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/include/gmock/gmock-function-mocker.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/include/gmock/gmock-generated-actions.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/include/gmock/gmock-matchers.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/include/gmock/gmock-more-matchers.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/include/gmock/gmock-nice-strict.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/include/gmock/gmock-spec-builders.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/include/gmock/gmock.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/include/gmock/internal/custom/gmock-generated-actions.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/include/gmock/internal/custom/gmock-matchers.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/include/gmock/internal/custom/gmock-port.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/include/gmock/internal/gmock-internal-utils.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/include/gmock/internal/gmock-port.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/include/gmock/internal/gmock-pp.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/gtest-death-test.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/gtest-matchers.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/gtest-message.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/gtest-param-test.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/gtest-printers.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/gtest-test-part.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/gtest-typed-test.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/gtest.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/gtest_pred_impl.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/gtest_prod.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/internal/custom/gtest-port.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/internal/custom/gtest-printers.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/internal/gtest-death-test-internal.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/internal/gtest-filepath.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/internal/gtest-internal.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/internal/gtest-param-util.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/internal/gtest-port-arch.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/internal/gtest-port.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/internal/gtest-string.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googletest/include/gtest/internal/gtest-type-util.h -googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: ../googlemock/src/gmock_main.cc - diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/flags.make b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/flags.make deleted file mode 100644 index 864f0f0..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/flags.make +++ /dev/null @@ -1,10 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# compile CXX with /usr/bin/c++.exe -CXX_FLAGS = -Wall -Wshadow -Werror -Wno-error=dangling-else -DGTEST_HAS_PTHREAD=1 -fexceptions -Wextra -Wno-unused-parameter -Wno-missing-field-initializers - -CXX_DEFINES = - -CXX_INCLUDES = -isystem /cygdrive/c/Users/Eyal/documents/googletest/googlemock/include -isystem /cygdrive/c/Users/Eyal/documents/googletest/googlemock -isystem /cygdrive/c/Users/Eyal/documents/googletest/googletest/include -isystem /cygdrive/c/Users/Eyal/documents/googletest/googletest - diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/link.txt b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/link.txt deleted file mode 100644 index 152ecb8..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/link.txt +++ /dev/null @@ -1,2 +0,0 @@ -/usr/bin/ar.exe qc ../lib/libgmock_main.a CMakeFiles/gmock_main.dir/src/gmock_main.cc.o -/usr/bin/ranlib.exe ../lib/libgmock_main.a diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/progress.make b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/progress.make deleted file mode 100644 index 8c8fb6f..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/progress.make +++ /dev/null @@ -1,3 +0,0 @@ -CMAKE_PROGRESS_1 = 3 -CMAKE_PROGRESS_2 = 4 - diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o deleted file mode 100644 index 317243c44191add72502db3c050451127248e870..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3785 zcmbtXUuYaf7@zB1HU8xkwE_RIVk`~HC6_-?~AU-Ns9}0qqPgP&4)+b*CUqpNogg*Ev_~4)T`(|cucki+)IB+xH{J!6O zGyBc=&CIP_yqi(Ex}UM5Ldvm1U~UFNmet2-ruQ-Sa!&T|M5D3VsltjL=n_h;Ct2-! zVcGZNgnYcCZ0T7SPs#?{Pn0@HJJn|m#XM`X4FmgTIvA^D8% zIhNC4rsugH!1Ph4$NHj~t z`3*hFhzQAnK)ncg0tkI`gvFOHB`fKXIK$W+1U(5FRewE zP^pCALx3)P7K%Y4A+m$?=&Gey8miWy| zSu8muMJ0Z#(gE7(`H*>0O@D{r+#AA)_ASMsGe>^M6@}2AO5~bC=&ScJF3#@Ih^9E- zD-OdB%29uGAqU98qJ*52UC2va$aWX&X#ixV4`X_#j$+{}jS_<`3llxm!F%e63tVh-!J z?HW2BU0nAX5&v;Svjp5p10w=z(Q$+Ima3tu6Fiha;M>sWL#QKWJH9hW;_`_6}V> zQ$2b7SQWFjmU%^{zdXzKOpX7RG-0-cp`MZ$AuVNPv0z<DFMV~jQ3t diff --git a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/progress.marks b/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/progress.marks deleted file mode 100644 index 45a4fb7..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CMakeFiles/progress.marks +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/UnitTests_App/GoogleTest/build/googlemock/CTestTestfile.cmake b/UnitTests_App/GoogleTest/build/googlemock/CTestTestfile.cmake deleted file mode 100644 index 5f003db..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/CTestTestfile.cmake +++ /dev/null @@ -1,7 +0,0 @@ -# CMake generated Testfile for -# Source directory: /cygdrive/c/Users/Eyal/documents/googletest/googlemock -# Build directory: /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock -# -# This file includes the relevant testing commands required for -# testing this directory and lists subdirectories to be tested as well. -subdirs("../googletest") diff --git a/UnitTests_App/GoogleTest/build/googlemock/Makefile b/UnitTests_App/GoogleTest/build/googlemock/Makefile deleted file mode 100644 index 18d9acc..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/Makefile +++ /dev/null @@ -1,308 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# Default target executed when no arguments are given to make. -default_target: all - -.PHONY : default_target - -# Allow only one "make -f Makefile2" at a time, but pass parallelism. -.NOTPARALLEL: - - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -# Suppress display of executed commands. -$(VERBOSE).SILENT: - - -# A target that is always out of date. -cmake_force: - -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/bin/cmake.exe - -# The command to remove a file. -RM = /usr/bin/cmake.exe -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /cygdrive/c/Users/Eyal/documents/googletest - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /cygdrive/c/Users/Eyal/documents/googletest/build - -#============================================================================= -# Targets provided globally by CMake. - -# Special rule for the target install/strip -install/strip: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." - /usr/bin/cmake.exe -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake -.PHONY : install/strip - -# Special rule for the target install/strip -install/strip/fast: preinstall/fast - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." - /usr/bin/cmake.exe -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake -.PHONY : install/strip/fast - -# Special rule for the target install/local -install/local: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." - /usr/bin/cmake.exe -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake -.PHONY : install/local - -# Special rule for the target install/local -install/local/fast: preinstall/fast - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." - /usr/bin/cmake.exe -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake -.PHONY : install/local/fast - -# Special rule for the target install -install: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." - /usr/bin/cmake.exe -P cmake_install.cmake -.PHONY : install - -# Special rule for the target install -install/fast: preinstall/fast - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." - /usr/bin/cmake.exe -P cmake_install.cmake -.PHONY : install/fast - -# Special rule for the target list_install_components -list_install_components: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" -.PHONY : list_install_components - -# Special rule for the target list_install_components -list_install_components/fast: list_install_components - -.PHONY : list_install_components/fast - -# Special rule for the target rebuild_cache -rebuild_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." - /usr/bin/cmake.exe --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : rebuild_cache - -# Special rule for the target rebuild_cache -rebuild_cache/fast: rebuild_cache - -.PHONY : rebuild_cache/fast - -# Special rule for the target edit_cache -edit_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." - /usr/bin/ccmake.exe -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : edit_cache - -# Special rule for the target edit_cache -edit_cache/fast: edit_cache - -.PHONY : edit_cache/fast - -# Special rule for the target test -test: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." - /usr/bin/ctest.exe --force-new-ctest-process $(ARGS) -.PHONY : test - -# Special rule for the target test -test/fast: test - -.PHONY : test/fast - -# The main all target -all: cmake_check_build_system - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(CMAKE_COMMAND) -E cmake_progress_start /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles /cygdrive/c/Users/Eyal/documents/googletest/build/googlemock/CMakeFiles/progress.marks - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 googlemock/all - $(CMAKE_COMMAND) -E cmake_progress_start /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles 0 -.PHONY : all - -# The main clean target -clean: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 googlemock/clean -.PHONY : clean - -# The main clean target -clean/fast: clean - -.PHONY : clean/fast - -# Prepare targets for installation. -preinstall: all - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 googlemock/preinstall -.PHONY : preinstall - -# Prepare targets for installation. -preinstall/fast: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 googlemock/preinstall -.PHONY : preinstall/fast - -# clear depends -depend: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 -.PHONY : depend - -# Convenience name for target. -googlemock/CMakeFiles/gmock_main.dir/rule: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 googlemock/CMakeFiles/gmock_main.dir/rule -.PHONY : googlemock/CMakeFiles/gmock_main.dir/rule - -# Convenience name for target. -gmock_main: googlemock/CMakeFiles/gmock_main.dir/rule - -.PHONY : gmock_main - -# fast build rule for target. -gmock_main/fast: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f googlemock/CMakeFiles/gmock_main.dir/build.make googlemock/CMakeFiles/gmock_main.dir/build -.PHONY : gmock_main/fast - -# Convenience name for target. -googlemock/CMakeFiles/gmock.dir/rule: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 googlemock/CMakeFiles/gmock.dir/rule -.PHONY : googlemock/CMakeFiles/gmock.dir/rule - -# Convenience name for target. -gmock: googlemock/CMakeFiles/gmock.dir/rule - -.PHONY : gmock - -# fast build rule for target. -gmock/fast: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f googlemock/CMakeFiles/gmock.dir/build.make googlemock/CMakeFiles/gmock.dir/build -.PHONY : gmock/fast - -src/gmock-all.o: src/gmock-all.cc.o - -.PHONY : src/gmock-all.o - -# target to build an object file -src/gmock-all.cc.o: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f googlemock/CMakeFiles/gmock.dir/build.make googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o -.PHONY : src/gmock-all.cc.o - -src/gmock-all.i: src/gmock-all.cc.i - -.PHONY : src/gmock-all.i - -# target to preprocess a source file -src/gmock-all.cc.i: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f googlemock/CMakeFiles/gmock.dir/build.make googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.i -.PHONY : src/gmock-all.cc.i - -src/gmock-all.s: src/gmock-all.cc.s - -.PHONY : src/gmock-all.s - -# target to generate assembly for a file -src/gmock-all.cc.s: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f googlemock/CMakeFiles/gmock.dir/build.make googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.s -.PHONY : src/gmock-all.cc.s - -src/gmock_main.o: src/gmock_main.cc.o - -.PHONY : src/gmock_main.o - -# target to build an object file -src/gmock_main.cc.o: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f googlemock/CMakeFiles/gmock_main.dir/build.make googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o -.PHONY : src/gmock_main.cc.o - -src/gmock_main.i: src/gmock_main.cc.i - -.PHONY : src/gmock_main.i - -# target to preprocess a source file -src/gmock_main.cc.i: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f googlemock/CMakeFiles/gmock_main.dir/build.make googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.i -.PHONY : src/gmock_main.cc.i - -src/gmock_main.s: src/gmock_main.cc.s - -.PHONY : src/gmock_main.s - -# target to generate assembly for a file -src/gmock_main.cc.s: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f googlemock/CMakeFiles/gmock_main.dir/build.make googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.s -.PHONY : src/gmock_main.cc.s - -# Help Target -help: - @echo "The following are some of the valid targets for this Makefile:" - @echo "... all (the default if no target is provided)" - @echo "... clean" - @echo "... depend" - @echo "... edit_cache" - @echo "... install" - @echo "... install/local" - @echo "... install/strip" - @echo "... list_install_components" - @echo "... rebuild_cache" - @echo "... test" - @echo "... gmock" - @echo "... gmock_main" - @echo "... src/gmock-all.o" - @echo "... src/gmock-all.i" - @echo "... src/gmock-all.s" - @echo "... src/gmock_main.o" - @echo "... src/gmock_main.i" - @echo "... src/gmock_main.s" -.PHONY : help - - - -#============================================================================= -# Special targets to cleanup operation of make. - -# Special rule to run CMake to check the build system integrity. -# No rule that depends on this can have commands that come from listfiles -# because they might be regenerated. -cmake_check_build_system: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 -.PHONY : cmake_check_build_system - diff --git a/UnitTests_App/GoogleTest/build/googlemock/cmake_install.cmake b/UnitTests_App/GoogleTest/build/googlemock/cmake_install.cmake deleted file mode 100644 index 0723462..0000000 --- a/UnitTests_App/GoogleTest/build/googlemock/cmake_install.cmake +++ /dev/null @@ -1,60 +0,0 @@ -# Install script for directory: /cygdrive/c/Users/Eyal/documents/googletest/googlemock - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "FALSE") -endif() - -if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include" TYPE DIRECTORY FILES "/cygdrive/c/Users/Eyal/documents/googletest/googlemock/include/") -endif() - -if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/cygdrive/c/Users/Eyal/documents/googletest/build/lib/libgmock.a") -endif() - -if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/cygdrive/c/Users/Eyal/documents/googletest/build/lib/libgmock_main.a") -endif() - -if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" TYPE FILE FILES "/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/generated/gmock.pc") -endif() - -if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" TYPE FILE FILES "/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/generated/gmock_main.pc") -endif() - -if(NOT CMAKE_INSTALL_LOCAL_ONLY) - # Include the install script for each subdirectory. - include("/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/cmake_install.cmake") - -endif() - diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/CMakeDirectoryInformation.cmake b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/CMakeDirectoryInformation.cmake deleted file mode 100644 index 3f785f7..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/CMakeDirectoryInformation.cmake +++ /dev/null @@ -1,16 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# Relative path conversion top directories. -set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/cygdrive/c/Users/Eyal/documents/googletest") -set(CMAKE_RELATIVE_PATH_TOP_BINARY "/cygdrive/c/Users/Eyal/documents/googletest/build") - -# Force unix paths in dependencies. -set(CMAKE_FORCE_UNIX_PATHS 1) - - -# The C and CXX include file regular expressions for this directory. -set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") -set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") -set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) -set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/Export/lib/cmake/GTest/GTestTargets-noconfig.cmake b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/Export/lib/cmake/GTest/GTestTargets-noconfig.cmake deleted file mode 100644 index 1f8e434..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/Export/lib/cmake/GTest/GTestTargets-noconfig.cmake +++ /dev/null @@ -1,49 +0,0 @@ -#---------------------------------------------------------------- -# Generated CMake target import file. -#---------------------------------------------------------------- - -# Commands may need to know the format version. -set(CMAKE_IMPORT_FILE_VERSION 1) - -# Import target "GTest::gtest" for configuration "" -set_property(TARGET GTest::gtest APPEND PROPERTY IMPORTED_CONFIGURATIONS NOCONFIG) -set_target_properties(GTest::gtest PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_NOCONFIG "CXX" - IMPORTED_LOCATION_NOCONFIG "${_IMPORT_PREFIX}/lib/libgtest.a" - ) - -list(APPEND _IMPORT_CHECK_TARGETS GTest::gtest ) -list(APPEND _IMPORT_CHECK_FILES_FOR_GTest::gtest "${_IMPORT_PREFIX}/lib/libgtest.a" ) - -# Import target "GTest::gtest_main" for configuration "" -set_property(TARGET GTest::gtest_main APPEND PROPERTY IMPORTED_CONFIGURATIONS NOCONFIG) -set_target_properties(GTest::gtest_main PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_NOCONFIG "CXX" - IMPORTED_LOCATION_NOCONFIG "${_IMPORT_PREFIX}/lib/libgtest_main.a" - ) - -list(APPEND _IMPORT_CHECK_TARGETS GTest::gtest_main ) -list(APPEND _IMPORT_CHECK_FILES_FOR_GTest::gtest_main "${_IMPORT_PREFIX}/lib/libgtest_main.a" ) - -# Import target "GTest::gmock" for configuration "" -set_property(TARGET GTest::gmock APPEND PROPERTY IMPORTED_CONFIGURATIONS NOCONFIG) -set_target_properties(GTest::gmock PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_NOCONFIG "CXX" - IMPORTED_LOCATION_NOCONFIG "${_IMPORT_PREFIX}/lib/libgmock.a" - ) - -list(APPEND _IMPORT_CHECK_TARGETS GTest::gmock ) -list(APPEND _IMPORT_CHECK_FILES_FOR_GTest::gmock "${_IMPORT_PREFIX}/lib/libgmock.a" ) - -# Import target "GTest::gmock_main" for configuration "" -set_property(TARGET GTest::gmock_main APPEND PROPERTY IMPORTED_CONFIGURATIONS NOCONFIG) -set_target_properties(GTest::gmock_main PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_NOCONFIG "CXX" - IMPORTED_LOCATION_NOCONFIG "${_IMPORT_PREFIX}/lib/libgmock_main.a" - ) - -list(APPEND _IMPORT_CHECK_TARGETS GTest::gmock_main ) -list(APPEND _IMPORT_CHECK_FILES_FOR_GTest::gmock_main "${_IMPORT_PREFIX}/lib/libgmock_main.a" ) - -# Commands beyond this point should not need to know the version. -set(CMAKE_IMPORT_FILE_VERSION) diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/Export/lib/cmake/GTest/GTestTargets.cmake b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/Export/lib/cmake/GTest/GTestTargets.cmake deleted file mode 100644 index 8df79fe..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/Export/lib/cmake/GTest/GTestTargets.cmake +++ /dev/null @@ -1,131 +0,0 @@ -# Generated by CMake - -if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5) - message(FATAL_ERROR "CMake >= 2.6.0 required") -endif() -cmake_policy(PUSH) -cmake_policy(VERSION 2.6) -#---------------------------------------------------------------- -# Generated CMake target import file. -#---------------------------------------------------------------- - -# Commands may need to know the format version. -set(CMAKE_IMPORT_FILE_VERSION 1) - -# Protect against multiple inclusion, which would fail when already imported targets are added once more. -set(_targetsDefined) -set(_targetsNotDefined) -set(_expectedTargets) -foreach(_expectedTarget GTest::gtest GTest::gtest_main GTest::gmock GTest::gmock_main) - list(APPEND _expectedTargets ${_expectedTarget}) - if(NOT TARGET ${_expectedTarget}) - list(APPEND _targetsNotDefined ${_expectedTarget}) - endif() - if(TARGET ${_expectedTarget}) - list(APPEND _targetsDefined ${_expectedTarget}) - endif() -endforeach() -if("${_targetsDefined}" STREQUAL "${_expectedTargets}") - unset(_targetsDefined) - unset(_targetsNotDefined) - unset(_expectedTargets) - set(CMAKE_IMPORT_FILE_VERSION) - cmake_policy(POP) - return() -endif() -if(NOT "${_targetsDefined}" STREQUAL "") - message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_targetsDefined}\nTargets not yet defined: ${_targetsNotDefined}\n") -endif() -unset(_targetsDefined) -unset(_targetsNotDefined) -unset(_expectedTargets) - - -# Compute the installation prefix relative to this file. -get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) -get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) -get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) -get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) -if(_IMPORT_PREFIX STREQUAL "/") - set(_IMPORT_PREFIX "") -endif() - -# Create imported target GTest::gtest -add_library(GTest::gtest STATIC IMPORTED) - -set_target_properties(GTest::gtest PROPERTIES - INTERFACE_COMPILE_FEATURES "cxx_std_11" - INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" - INTERFACE_LINK_LIBRARIES "Threads::Threads" - INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" -) - -# Create imported target GTest::gtest_main -add_library(GTest::gtest_main STATIC IMPORTED) - -set_target_properties(GTest::gtest_main PROPERTIES - INTERFACE_COMPILE_FEATURES "cxx_std_11" - INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" - INTERFACE_LINK_LIBRARIES "Threads::Threads;GTest::gtest" - INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" -) - -# Create imported target GTest::gmock -add_library(GTest::gmock STATIC IMPORTED) - -set_target_properties(GTest::gmock PROPERTIES - INTERFACE_COMPILE_FEATURES "cxx_std_11" - INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" - INTERFACE_LINK_LIBRARIES "Threads::Threads;GTest::gtest" - INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" -) - -# Create imported target GTest::gmock_main -add_library(GTest::gmock_main STATIC IMPORTED) - -set_target_properties(GTest::gmock_main PROPERTIES - INTERFACE_COMPILE_FEATURES "cxx_std_11" - INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" - INTERFACE_LINK_LIBRARIES "Threads::Threads;GTest::gmock" - INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" -) - -if(CMAKE_VERSION VERSION_LESS 2.8.12) - message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.") -endif() - -# Load information for each installed configuration. -get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -file(GLOB CONFIG_FILES "${_DIR}/GTestTargets-*.cmake") -foreach(f ${CONFIG_FILES}) - include(${f}) -endforeach() - -# Cleanup temporary variables. -set(_IMPORT_PREFIX) - -# Loop over all imported files and verify that they actually exist -foreach(target ${_IMPORT_CHECK_TARGETS} ) - foreach(file ${_IMPORT_CHECK_FILES_FOR_${target}} ) - if(NOT EXISTS "${file}" ) - message(FATAL_ERROR "The imported target \"${target}\" references the file - \"${file}\" -but this file does not exist. Possible reasons include: -* The file was deleted, renamed, or moved to another location. -* An install or uninstall procedure did not complete successfully. -* The installation package was faulty and contained - \"${CMAKE_CURRENT_LIST_FILE}\" -but not all the files it references. -") - endif() - endforeach() - unset(_IMPORT_CHECK_FILES_FOR_${target}) -endforeach() -unset(_IMPORT_CHECK_TARGETS) - -# This file does not depend on other imported targets which have -# been exported from the same project but in a separate export set. - -# Commands beyond this point should not need to know the version. -set(CMAKE_IMPORT_FILE_VERSION) -cmake_policy(POP) diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/CXX.includecache b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/CXX.includecache deleted file mode 100644 index 5afe6e1..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/CXX.includecache +++ /dev/null @@ -1,682 +0,0 @@ -#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) - -#IncludeRegexScan: ^.*$ - -#IncludeRegexComplain: ^$ - -#IncludeRegexTransform: - -../googletest/include/gtest/gtest-death-test.h -gtest/internal/gtest-death-test-internal.h -../googletest/include/gtest/gtest/internal/gtest-death-test-internal.h - -../googletest/include/gtest/gtest-matchers.h -memory -- -ostream -- -string -- -type_traits -- -gtest/gtest-printers.h -../googletest/include/gtest/gtest/gtest-printers.h -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h - -../googletest/include/gtest/gtest-message.h -limits -- -memory -- -sstream -- -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h - -../googletest/include/gtest/gtest-param-test.h -iterator -- -utility -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-param-util.h -../googletest/include/gtest/gtest/internal/gtest-param-util.h -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h - -../googletest/include/gtest/gtest-printers.h -functional -- -ostream -- -sstream -- -string -- -tuple -- -type_traits -- -utility -- -vector -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h -gtest/internal/custom/gtest-printers.h -../googletest/include/gtest/gtest/internal/custom/gtest-printers.h - -../googletest/include/gtest/gtest-spi.h -gtest/gtest.h -../googletest/include/gtest/gtest/gtest.h - -../googletest/include/gtest/gtest-test-part.h -iosfwd -- -vector -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-string.h -../googletest/include/gtest/gtest/internal/gtest-string.h - -../googletest/include/gtest/gtest-typed-test.h -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h -gtest/internal/gtest-type-util.h -../googletest/include/gtest/gtest/internal/gtest-type-util.h - -../googletest/include/gtest/gtest.h -cstddef -- -limits -- -memory -- -ostream -- -type_traits -- -vector -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-string.h -../googletest/include/gtest/gtest/internal/gtest-string.h -gtest/gtest-death-test.h -../googletest/include/gtest/gtest/gtest-death-test.h -gtest/gtest-matchers.h -../googletest/include/gtest/gtest/gtest-matchers.h -gtest/gtest-message.h -../googletest/include/gtest/gtest/gtest-message.h -gtest/gtest-param-test.h -../googletest/include/gtest/gtest/gtest-param-test.h -gtest/gtest-printers.h -../googletest/include/gtest/gtest/gtest-printers.h -gtest/gtest_prod.h -../googletest/include/gtest/gtest/gtest_prod.h -gtest/gtest-test-part.h -../googletest/include/gtest/gtest/gtest-test-part.h -gtest/gtest-typed-test.h -../googletest/include/gtest/gtest/gtest-typed-test.h -gtest/gtest_pred_impl.h -../googletest/include/gtest/gtest/gtest_pred_impl.h - -../googletest/include/gtest/gtest_pred_impl.h -gtest/gtest.h -../googletest/include/gtest/gtest/gtest.h - -../googletest/include/gtest/gtest_prod.h - -../googletest/include/gtest/internal/custom/gtest-port.h - -../googletest/include/gtest/internal/custom/gtest-printers.h - -../googletest/include/gtest/internal/custom/gtest.h - -../googletest/include/gtest/internal/gtest-death-test-internal.h -gtest/gtest-matchers.h -../googletest/include/gtest/internal/gtest/gtest-matchers.h -gtest/internal/gtest-internal.h -../googletest/include/gtest/internal/gtest/internal/gtest-internal.h -stdio.h -- -memory -- - -../googletest/include/gtest/internal/gtest-filepath.h -gtest/internal/gtest-string.h -../googletest/include/gtest/internal/gtest/internal/gtest-string.h - -../googletest/include/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/gtest-port.h -stdlib.h -- -sys/types.h -- -sys/wait.h -- -unistd.h -- -stdexcept -- -ctype.h -- -float.h -- -string.h -- -cstdint -- -iomanip -- -limits -- -map -- -set -- -string -- -type_traits -- -vector -- -gtest/gtest-message.h -../googletest/include/gtest/internal/gtest/gtest-message.h -gtest/internal/gtest-filepath.h -../googletest/include/gtest/internal/gtest/internal/gtest-filepath.h -gtest/internal/gtest-string.h -../googletest/include/gtest/internal/gtest/internal/gtest-string.h -gtest/internal/gtest-type-util.h -../googletest/include/gtest/internal/gtest/internal/gtest-type-util.h - -../googletest/include/gtest/internal/gtest-param-util.h -ctype.h -- -cassert -- -iterator -- -memory -- -set -- -tuple -- -type_traits -- -utility -- -vector -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/internal/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/gtest-port.h -gtest/gtest-printers.h -../googletest/include/gtest/internal/gtest/gtest-printers.h -gtest/gtest-test-part.h -../googletest/include/gtest/internal/gtest/gtest-test-part.h - -../googletest/include/gtest/internal/gtest-port-arch.h -winapifamily.h -- -TargetConditionals.h -- - -../googletest/include/gtest/internal/gtest-port.h -ctype.h -- -stddef.h -- -stdio.h -- -stdlib.h -- -string.h -- -cerrno -- -cstdint -- -limits -- -type_traits -- -sys/types.h -- -sys/stat.h -- -AvailabilityMacros.h -- -TargetConditionals.h -- -iostream -- -locale -- -memory -- -string -- -tuple -- -vector -- -gtest/internal/custom/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/custom/gtest-port.h -gtest/internal/gtest-port-arch.h -../googletest/include/gtest/internal/gtest/internal/gtest-port-arch.h -direct.h -- -io.h -- -unistd.h -- -strings.h -- -android/api-level.h -- -regex.h -- -typeinfo -- -pthread.h -- -time.h -- -absl/types/any.h -../googletest/include/gtest/internal/absl/types/any.h -any -- -absl/types/optional.h -../googletest/include/gtest/internal/absl/types/optional.h -optional -- -absl/strings/string_view.h -../googletest/include/gtest/internal/absl/strings/string_view.h -string_view -- -absl/types/variant.h -../googletest/include/gtest/internal/absl/types/variant.h -variant -- - -../googletest/include/gtest/internal/gtest-string.h -mem.h -- -string.h -- -cstdint -- -string -- -gtest/internal/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/gtest-port.h - -../googletest/include/gtest/internal/gtest-type-util.h -gtest/internal/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/gtest-port.h -cxxabi.h -- -acxx_demangle.h -- - -../googletest/src/gtest-death-test.cc -gtest/gtest-death-test.h -../googletest/src/gtest/gtest-death-test.h -functional -- -utility -- -gtest/internal/gtest-port.h -../googletest/src/gtest/internal/gtest-port.h -gtest/internal/custom/gtest.h -../googletest/src/gtest/internal/custom/gtest.h -crt_externs.h -- -errno.h -- -fcntl.h -- -limits.h -- -signal.h -- -stdarg.h -- -windows.h -- -sys/mman.h -- -sys/wait.h -- -spawn.h -- -lib/fdio/fd.h -- -lib/fdio/io.h -- -lib/fdio/spawn.h -- -lib/zx/channel.h -- -lib/zx/port.h -- -lib/zx/process.h -- -lib/zx/socket.h -- -zircon/processargs.h -- -zircon/syscalls.h -- -zircon/syscalls/policy.h -- -zircon/syscalls/port.h -- -gtest/gtest-message.h -../googletest/src/gtest/gtest-message.h -gtest/internal/gtest-string.h -../googletest/src/gtest/internal/gtest-string.h -src/gtest-internal-inl.h -../googletest/src/src/gtest-internal-inl.h - -../googletest/src/gtest-filepath.cc -gtest/internal/gtest-filepath.h -../googletest/src/gtest/internal/gtest-filepath.h -stdlib.h -- -gtest/internal/gtest-port.h -../googletest/src/gtest/internal/gtest-port.h -gtest/gtest-message.h -../googletest/src/gtest/gtest-message.h -windows.h -- -direct.h -- -io.h -- -limits.h -- -climits -- -gtest/internal/gtest-string.h -../googletest/src/gtest/internal/gtest-string.h - -../googletest/src/gtest-internal-inl.h -errno.h -- -stddef.h -- -stdlib.h -- -string.h -- -algorithm -- -cstdint -- -memory -- -string -- -vector -- -gtest/internal/gtest-port.h -../googletest/src/gtest/internal/gtest-port.h -arpa/inet.h -- -netdb.h -- -windows.h -- -gtest/gtest.h -../googletest/src/gtest/gtest.h -gtest/gtest-spi.h -../googletest/src/gtest/gtest-spi.h - -../googletest/src/gtest-matchers.cc -gtest/internal/gtest-internal.h -../googletest/src/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/src/gtest/internal/gtest-port.h -gtest/gtest-matchers.h -../googletest/src/gtest/gtest-matchers.h -string -- - -../googletest/src/gtest-port.cc -gtest/internal/gtest-port.h -../googletest/src/gtest/internal/gtest-port.h -limits.h -- -stdio.h -- -stdlib.h -- -string.h -- -cstdint -- -fstream -- -memory -- -windows.h -- -io.h -- -sys/stat.h -- -map -- -crtdbg.h -- -unistd.h -- -mach/mach_init.h -- -mach/task.h -- -mach/vm_map.h -- -sys/sysctl.h -- -sys/user.h -- -devctl.h -- -fcntl.h -- -sys/procfs.h -- -procinfo.h -- -sys/types.h -- -zircon/process.h -- -zircon/syscalls.h -- -gtest/gtest-spi.h -../googletest/src/gtest/gtest-spi.h -gtest/gtest-message.h -../googletest/src/gtest/gtest-message.h -gtest/internal/gtest-internal.h -../googletest/src/gtest/internal/gtest-internal.h -gtest/internal/gtest-string.h -../googletest/src/gtest/internal/gtest-string.h -src/gtest-internal-inl.h -../googletest/src/src/gtest-internal-inl.h - -../googletest/src/gtest-printers.cc -gtest/gtest-printers.h -../googletest/src/gtest/gtest-printers.h -stdio.h -- -cctype -- -cstdint -- -cwchar -- -ostream -- -string -- -gtest/internal/gtest-port.h -../googletest/src/gtest/internal/gtest-port.h -src/gtest-internal-inl.h -../googletest/src/src/gtest-internal-inl.h - -../googletest/src/gtest-test-part.cc -gtest/gtest-test-part.h -../googletest/src/gtest/gtest-test-part.h -gtest/internal/gtest-port.h -../googletest/src/gtest/internal/gtest-port.h -src/gtest-internal-inl.h -../googletest/src/src/gtest-internal-inl.h - -../googletest/src/gtest-typed-test.cc -gtest/gtest-typed-test.h -../googletest/src/gtest/gtest-typed-test.h -gtest/gtest.h -../googletest/src/gtest/gtest.h - -../googletest/src/gtest.cc -gtest/gtest.h -../googletest/src/gtest/gtest.h -gtest/internal/custom/gtest.h -../googletest/src/gtest/internal/custom/gtest.h -gtest/gtest-spi.h -../googletest/src/gtest/gtest-spi.h -ctype.h -- -stdarg.h -- -stdio.h -- -stdlib.h -- -time.h -- -wchar.h -- -wctype.h -- -algorithm -- -chrono -- -cmath -- -cstdint -- -iomanip -- -limits -- -list -- -map -- -ostream -- -sstream -- -vector -- -fcntl.h -- -limits.h -- -sched.h -- -strings.h -- -sys/mman.h -- -sys/time.h -- -unistd.h -- -string -- -sys/time.h -- -strings.h -- -windows.h -- -windows.h -- -crtdbg.h -- -io.h -- -sys/timeb.h -- -sys/types.h -- -sys/stat.h -- -sys/time.h -- -sys/time.h -- -unistd.h -- -stdexcept -- -arpa/inet.h -- -netdb.h -- -sys/socket.h -- -sys/types.h -- -src/gtest-internal-inl.h -../googletest/src/src/gtest-internal-inl.h -crt_externs.h -- -absl/debugging/failure_signal_handler.h -../googletest/src/absl/debugging/failure_signal_handler.h -absl/debugging/stacktrace.h -../googletest/src/absl/debugging/stacktrace.h -absl/debugging/symbolize.h -../googletest/src/absl/debugging/symbolize.h -absl/strings/str_cat.h -../googletest/src/absl/strings/str_cat.h - -/cygdrive/c/Users/Eyal/documents/googletest/googletest/src/gtest-all.cc -gtest/gtest.h -/cygdrive/c/Users/Eyal/documents/googletest/googletest/src/gtest/gtest.h -src/gtest.cc -/cygdrive/c/Users/Eyal/documents/googletest/googletest/src/src/gtest.cc -src/gtest-death-test.cc -/cygdrive/c/Users/Eyal/documents/googletest/googletest/src/src/gtest-death-test.cc -src/gtest-filepath.cc -/cygdrive/c/Users/Eyal/documents/googletest/googletest/src/src/gtest-filepath.cc -src/gtest-matchers.cc -/cygdrive/c/Users/Eyal/documents/googletest/googletest/src/src/gtest-matchers.cc -src/gtest-port.cc -/cygdrive/c/Users/Eyal/documents/googletest/googletest/src/src/gtest-port.cc -src/gtest-printers.cc -/cygdrive/c/Users/Eyal/documents/googletest/googletest/src/src/gtest-printers.cc -src/gtest-test-part.cc -/cygdrive/c/Users/Eyal/documents/googletest/googletest/src/src/gtest-test-part.cc -src/gtest-typed-test.cc -/cygdrive/c/Users/Eyal/documents/googletest/googletest/src/src/gtest-typed-test.cc - diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/DependInfo.cmake b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/DependInfo.cmake deleted file mode 100644 index f76b0a2..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/DependInfo.cmake +++ /dev/null @@ -1,22 +0,0 @@ -# The set of languages for which implicit dependencies are needed: -set(CMAKE_DEPENDS_LANGUAGES - "CXX" - ) -# The set of files for implicit dependencies of each language: -set(CMAKE_DEPENDS_CHECK_CXX - "/cygdrive/c/Users/Eyal/documents/googletest/googletest/src/gtest-all.cc" "/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o" - ) -set(CMAKE_CXX_COMPILER_ID "GNU") - -# The include file search paths: -set(CMAKE_CXX_TARGET_INCLUDE_PATH - "../googletest/include" - "../googletest" - ) - -# Targets to which this target links. -set(CMAKE_TARGET_LINKED_INFO_FILES - ) - -# Fortran module output directory. -set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/build.make b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/build.make deleted file mode 100644 index f3fc578..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/build.make +++ /dev/null @@ -1,119 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# Delete rule output on recipe failure. -.DELETE_ON_ERROR: - - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -# Suppress display of executed commands. -$(VERBOSE).SILENT: - - -# A target that is always out of date. -cmake_force: - -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/bin/cmake.exe - -# The command to remove a file. -RM = /usr/bin/cmake.exe -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /cygdrive/c/Users/Eyal/documents/googletest - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /cygdrive/c/Users/Eyal/documents/googletest/build - -# Include any dependencies generated for this target. -include googletest/CMakeFiles/gtest.dir/depend.make - -# Include the progress variables for this target. -include googletest/CMakeFiles/gtest.dir/progress.make - -# Include the compile flags for this target's objects. -include googletest/CMakeFiles/gtest.dir/flags.make - -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: googletest/CMakeFiles/gtest.dir/flags.make -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/src/gtest-all.cc - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o" - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googletest && /usr/bin/c++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/gtest.dir/src/gtest-all.cc.o -c /cygdrive/c/Users/Eyal/documents/googletest/googletest/src/gtest-all.cc - -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.i: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/gtest.dir/src/gtest-all.cc.i" - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googletest && /usr/bin/c++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /cygdrive/c/Users/Eyal/documents/googletest/googletest/src/gtest-all.cc > CMakeFiles/gtest.dir/src/gtest-all.cc.i - -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.s: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/gtest.dir/src/gtest-all.cc.s" - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googletest && /usr/bin/c++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /cygdrive/c/Users/Eyal/documents/googletest/googletest/src/gtest-all.cc -o CMakeFiles/gtest.dir/src/gtest-all.cc.s - -# Object files for target gtest -gtest_OBJECTS = \ -"CMakeFiles/gtest.dir/src/gtest-all.cc.o" - -# External object files for target gtest -gtest_EXTERNAL_OBJECTS = - -lib/libgtest.a: googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o -lib/libgtest.a: googletest/CMakeFiles/gtest.dir/build.make -lib/libgtest.a: googletest/CMakeFiles/gtest.dir/link.txt - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX static library ../lib/libgtest.a" - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googletest && $(CMAKE_COMMAND) -P CMakeFiles/gtest.dir/cmake_clean_target.cmake - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googletest && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/gtest.dir/link.txt --verbose=$(VERBOSE) - -# Rule to build all files generated by this target. -googletest/CMakeFiles/gtest.dir/build: lib/libgtest.a - -.PHONY : googletest/CMakeFiles/gtest.dir/build - -googletest/CMakeFiles/gtest.dir/clean: - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googletest && $(CMAKE_COMMAND) -P CMakeFiles/gtest.dir/cmake_clean.cmake -.PHONY : googletest/CMakeFiles/gtest.dir/clean - -googletest/CMakeFiles/gtest.dir/depend: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /cygdrive/c/Users/Eyal/documents/googletest /cygdrive/c/Users/Eyal/documents/googletest/googletest /cygdrive/c/Users/Eyal/documents/googletest/build /cygdrive/c/Users/Eyal/documents/googletest/build/googletest /cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/gtest.dir/DependInfo.cmake --color=$(COLOR) -.PHONY : googletest/CMakeFiles/gtest.dir/depend - diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/cmake_clean.cmake b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/cmake_clean.cmake deleted file mode 100644 index c091c77..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/cmake_clean.cmake +++ /dev/null @@ -1,10 +0,0 @@ -file(REMOVE_RECURSE - "../bin/libgtest.pdb" - "../lib/libgtest.a" - "CMakeFiles/gtest.dir/src/gtest-all.cc.o" -) - -# Per-language clean rules from dependency scanning. -foreach(lang CXX) - include(CMakeFiles/gtest.dir/cmake_clean_${lang}.cmake OPTIONAL) -endforeach() diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/cmake_clean_target.cmake b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/cmake_clean_target.cmake deleted file mode 100644 index 0a31a57..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/cmake_clean_target.cmake +++ /dev/null @@ -1,3 +0,0 @@ -file(REMOVE_RECURSE - "../lib/libgtest.a" -) diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/depend.internal b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/depend.internal deleted file mode 100644 index 0c0c874..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/depend.internal +++ /dev/null @@ -1,36 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o - ../googletest/include/gtest/gtest-death-test.h - ../googletest/include/gtest/gtest-matchers.h - ../googletest/include/gtest/gtest-message.h - ../googletest/include/gtest/gtest-param-test.h - ../googletest/include/gtest/gtest-printers.h - ../googletest/include/gtest/gtest-spi.h - ../googletest/include/gtest/gtest-test-part.h - ../googletest/include/gtest/gtest-typed-test.h - ../googletest/include/gtest/gtest.h - ../googletest/include/gtest/gtest_pred_impl.h - ../googletest/include/gtest/gtest_prod.h - ../googletest/include/gtest/internal/custom/gtest-port.h - ../googletest/include/gtest/internal/custom/gtest-printers.h - ../googletest/include/gtest/internal/custom/gtest.h - ../googletest/include/gtest/internal/gtest-death-test-internal.h - ../googletest/include/gtest/internal/gtest-filepath.h - ../googletest/include/gtest/internal/gtest-internal.h - ../googletest/include/gtest/internal/gtest-param-util.h - ../googletest/include/gtest/internal/gtest-port-arch.h - ../googletest/include/gtest/internal/gtest-port.h - ../googletest/include/gtest/internal/gtest-string.h - ../googletest/include/gtest/internal/gtest-type-util.h - ../googletest/src/gtest-death-test.cc - ../googletest/src/gtest-filepath.cc - ../googletest/src/gtest-internal-inl.h - ../googletest/src/gtest-matchers.cc - ../googletest/src/gtest-port.cc - ../googletest/src/gtest-printers.cc - ../googletest/src/gtest-test-part.cc - ../googletest/src/gtest-typed-test.cc - ../googletest/src/gtest.cc - /cygdrive/c/Users/Eyal/documents/googletest/googletest/src/gtest-all.cc diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/depend.make b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/depend.make deleted file mode 100644 index 89178af..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/depend.make +++ /dev/null @@ -1,36 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/gtest-death-test.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/gtest-matchers.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/gtest-message.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/gtest-param-test.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/gtest-printers.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/gtest-spi.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/gtest-test-part.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/gtest-typed-test.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/gtest.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/gtest_pred_impl.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/gtest_prod.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/internal/custom/gtest-port.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/internal/custom/gtest-printers.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/internal/custom/gtest.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/internal/gtest-death-test-internal.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/internal/gtest-filepath.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/internal/gtest-internal.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/internal/gtest-param-util.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/internal/gtest-port-arch.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/internal/gtest-port.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/internal/gtest-string.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/include/gtest/internal/gtest-type-util.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/src/gtest-death-test.cc -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/src/gtest-filepath.cc -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/src/gtest-internal-inl.h -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/src/gtest-matchers.cc -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/src/gtest-port.cc -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/src/gtest-printers.cc -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/src/gtest-test-part.cc -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/src/gtest-typed-test.cc -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/src/gtest.cc -googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: ../googletest/src/gtest-all.cc - diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/flags.make b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/flags.make deleted file mode 100644 index 28383d8..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/flags.make +++ /dev/null @@ -1,10 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# compile CXX with /usr/bin/c++.exe -CXX_FLAGS = -Wall -Wshadow -Werror -Wno-error=dangling-else -DGTEST_HAS_PTHREAD=1 -fexceptions -Wextra -Wno-unused-parameter -Wno-missing-field-initializers - -CXX_DEFINES = - -CXX_INCLUDES = -I/cygdrive/c/Users/Eyal/documents/googletest/googletest/include -I/cygdrive/c/Users/Eyal/documents/googletest/googletest - diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/link.txt b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/link.txt deleted file mode 100644 index ad1505a..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/link.txt +++ /dev/null @@ -1,2 +0,0 @@ -/usr/bin/ar.exe qc ../lib/libgtest.a CMakeFiles/gtest.dir/src/gtest-all.cc.o -/usr/bin/ranlib.exe ../lib/libgtest.a diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/progress.make b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/progress.make deleted file mode 100644 index 3a86673..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/progress.make +++ /dev/null @@ -1,3 +0,0 @@ -CMAKE_PROGRESS_1 = 5 -CMAKE_PROGRESS_2 = 6 - diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o deleted file mode 100644 index 2a75b90f848afe4a97bed8dca85c718c937df68b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2670940 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ℜ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%0AG$C##N8I+Th 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

VTE(MpdkplAN6r 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⪻4dkO>^A9AsXqo=yCSDE+(C;=T_Wd#!%ud#|^ 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 G_]+)([">]) - -#IncludeRegexScan: ^.*$ - -#IncludeRegexComplain: ^$ - -#IncludeRegexTransform: - -../googletest/include/gtest/gtest-death-test.h -gtest/internal/gtest-death-test-internal.h -../googletest/include/gtest/gtest/internal/gtest-death-test-internal.h - -../googletest/include/gtest/gtest-matchers.h -memory -- -ostream -- -string -- -type_traits -- -gtest/gtest-printers.h -../googletest/include/gtest/gtest/gtest-printers.h -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h - -../googletest/include/gtest/gtest-message.h -limits -- -memory -- -sstream -- -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h - -../googletest/include/gtest/gtest-param-test.h -iterator -- -utility -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-param-util.h -../googletest/include/gtest/gtest/internal/gtest-param-util.h -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h - -../googletest/include/gtest/gtest-printers.h -functional -- -ostream -- -sstream -- -string -- -tuple -- -type_traits -- -utility -- -vector -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h -gtest/internal/custom/gtest-printers.h -../googletest/include/gtest/gtest/internal/custom/gtest-printers.h - -../googletest/include/gtest/gtest-test-part.h -iosfwd -- -vector -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-string.h -../googletest/include/gtest/gtest/internal/gtest-string.h - -../googletest/include/gtest/gtest-typed-test.h -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/gtest/internal/gtest-port.h -gtest/internal/gtest-type-util.h -../googletest/include/gtest/gtest/internal/gtest-type-util.h - -../googletest/include/gtest/gtest.h -cstddef -- -limits -- -memory -- -ostream -- -type_traits -- -vector -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/gtest/internal/gtest-internal.h -gtest/internal/gtest-string.h -../googletest/include/gtest/gtest/internal/gtest-string.h -gtest/gtest-death-test.h -../googletest/include/gtest/gtest/gtest-death-test.h -gtest/gtest-matchers.h -../googletest/include/gtest/gtest/gtest-matchers.h -gtest/gtest-message.h -../googletest/include/gtest/gtest/gtest-message.h -gtest/gtest-param-test.h -../googletest/include/gtest/gtest/gtest-param-test.h -gtest/gtest-printers.h -../googletest/include/gtest/gtest/gtest-printers.h -gtest/gtest_prod.h -../googletest/include/gtest/gtest/gtest_prod.h -gtest/gtest-test-part.h -../googletest/include/gtest/gtest/gtest-test-part.h -gtest/gtest-typed-test.h -../googletest/include/gtest/gtest/gtest-typed-test.h -gtest/gtest_pred_impl.h -../googletest/include/gtest/gtest/gtest_pred_impl.h - -../googletest/include/gtest/gtest_pred_impl.h -gtest/gtest.h -../googletest/include/gtest/gtest/gtest.h - -../googletest/include/gtest/gtest_prod.h - -../googletest/include/gtest/internal/custom/gtest-port.h - -../googletest/include/gtest/internal/custom/gtest-printers.h - -../googletest/include/gtest/internal/gtest-death-test-internal.h -gtest/gtest-matchers.h -../googletest/include/gtest/internal/gtest/gtest-matchers.h -gtest/internal/gtest-internal.h -../googletest/include/gtest/internal/gtest/internal/gtest-internal.h -stdio.h -- -memory -- - -../googletest/include/gtest/internal/gtest-filepath.h -gtest/internal/gtest-string.h -../googletest/include/gtest/internal/gtest/internal/gtest-string.h - -../googletest/include/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/gtest-port.h -stdlib.h -- -sys/types.h -- -sys/wait.h -- -unistd.h -- -stdexcept -- -ctype.h -- -float.h -- -string.h -- -cstdint -- -iomanip -- -limits -- -map -- -set -- -string -- -type_traits -- -vector -- -gtest/gtest-message.h -../googletest/include/gtest/internal/gtest/gtest-message.h -gtest/internal/gtest-filepath.h -../googletest/include/gtest/internal/gtest/internal/gtest-filepath.h -gtest/internal/gtest-string.h -../googletest/include/gtest/internal/gtest/internal/gtest-string.h -gtest/internal/gtest-type-util.h -../googletest/include/gtest/internal/gtest/internal/gtest-type-util.h - -../googletest/include/gtest/internal/gtest-param-util.h -ctype.h -- -cassert -- -iterator -- -memory -- -set -- -tuple -- -type_traits -- -utility -- -vector -- -gtest/internal/gtest-internal.h -../googletest/include/gtest/internal/gtest/internal/gtest-internal.h -gtest/internal/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/gtest-port.h -gtest/gtest-printers.h -../googletest/include/gtest/internal/gtest/gtest-printers.h -gtest/gtest-test-part.h -../googletest/include/gtest/internal/gtest/gtest-test-part.h - -../googletest/include/gtest/internal/gtest-port-arch.h -winapifamily.h -- -TargetConditionals.h -- - -../googletest/include/gtest/internal/gtest-port.h -ctype.h -- -stddef.h -- -stdio.h -- -stdlib.h -- -string.h -- -cerrno -- -cstdint -- -limits -- -type_traits -- -sys/types.h -- -sys/stat.h -- -AvailabilityMacros.h -- -TargetConditionals.h -- -iostream -- -locale -- -memory -- -string -- -tuple -- -vector -- -gtest/internal/custom/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/custom/gtest-port.h -gtest/internal/gtest-port-arch.h -../googletest/include/gtest/internal/gtest/internal/gtest-port-arch.h -direct.h -- -io.h -- -unistd.h -- -strings.h -- -android/api-level.h -- -regex.h -- -typeinfo -- -pthread.h -- -time.h -- -absl/types/any.h -../googletest/include/gtest/internal/absl/types/any.h -any -- -absl/types/optional.h -../googletest/include/gtest/internal/absl/types/optional.h -optional -- -absl/strings/string_view.h -../googletest/include/gtest/internal/absl/strings/string_view.h -string_view -- -absl/types/variant.h -../googletest/include/gtest/internal/absl/types/variant.h -variant -- - -../googletest/include/gtest/internal/gtest-string.h -mem.h -- -string.h -- -cstdint -- -string -- -gtest/internal/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/gtest-port.h - -../googletest/include/gtest/internal/gtest-type-util.h -gtest/internal/gtest-port.h -../googletest/include/gtest/internal/gtest/internal/gtest-port.h -cxxabi.h -- -acxx_demangle.h -- - -/cygdrive/c/Users/Eyal/documents/googletest/googletest/src/gtest_main.cc -cstdio -- -gtest/gtest.h -/cygdrive/c/Users/Eyal/documents/googletest/googletest/src/gtest/gtest.h - diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake deleted file mode 100644 index 341144f..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# The set of languages for which implicit dependencies are needed: -set(CMAKE_DEPENDS_LANGUAGES - "CXX" - ) -# The set of files for implicit dependencies of each language: -set(CMAKE_DEPENDS_CHECK_CXX - "/cygdrive/c/Users/Eyal/documents/googletest/googletest/src/gtest_main.cc" "/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o" - ) -set(CMAKE_CXX_COMPILER_ID "GNU") - -# The include file search paths: -set(CMAKE_CXX_TARGET_INCLUDE_PATH - "../googletest/include" - "../googletest" - ) - -# Targets to which this target links. -set(CMAKE_TARGET_LINKED_INFO_FILES - "/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/gtest.dir/DependInfo.cmake" - ) - -# Fortran module output directory. -set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/build.make b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/build.make deleted file mode 100644 index c0b2edf..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/build.make +++ /dev/null @@ -1,119 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# Delete rule output on recipe failure. -.DELETE_ON_ERROR: - - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -# Suppress display of executed commands. -$(VERBOSE).SILENT: - - -# A target that is always out of date. -cmake_force: - -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/bin/cmake.exe - -# The command to remove a file. -RM = /usr/bin/cmake.exe -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /cygdrive/c/Users/Eyal/documents/googletest - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /cygdrive/c/Users/Eyal/documents/googletest/build - -# Include any dependencies generated for this target. -include googletest/CMakeFiles/gtest_main.dir/depend.make - -# Include the progress variables for this target. -include googletest/CMakeFiles/gtest_main.dir/progress.make - -# Include the compile flags for this target's objects. -include googletest/CMakeFiles/gtest_main.dir/flags.make - -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: googletest/CMakeFiles/gtest_main.dir/flags.make -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/src/gtest_main.cc - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o" - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googletest && /usr/bin/c++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/gtest_main.dir/src/gtest_main.cc.o -c /cygdrive/c/Users/Eyal/documents/googletest/googletest/src/gtest_main.cc - -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.i: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/gtest_main.dir/src/gtest_main.cc.i" - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googletest && /usr/bin/c++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /cygdrive/c/Users/Eyal/documents/googletest/googletest/src/gtest_main.cc > CMakeFiles/gtest_main.dir/src/gtest_main.cc.i - -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.s: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/gtest_main.dir/src/gtest_main.cc.s" - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googletest && /usr/bin/c++.exe $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /cygdrive/c/Users/Eyal/documents/googletest/googletest/src/gtest_main.cc -o CMakeFiles/gtest_main.dir/src/gtest_main.cc.s - -# Object files for target gtest_main -gtest_main_OBJECTS = \ -"CMakeFiles/gtest_main.dir/src/gtest_main.cc.o" - -# External object files for target gtest_main -gtest_main_EXTERNAL_OBJECTS = - -lib/libgtest_main.a: googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o -lib/libgtest_main.a: googletest/CMakeFiles/gtest_main.dir/build.make -lib/libgtest_main.a: googletest/CMakeFiles/gtest_main.dir/link.txt - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX static library ../lib/libgtest_main.a" - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googletest && $(CMAKE_COMMAND) -P CMakeFiles/gtest_main.dir/cmake_clean_target.cmake - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googletest && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/gtest_main.dir/link.txt --verbose=$(VERBOSE) - -# Rule to build all files generated by this target. -googletest/CMakeFiles/gtest_main.dir/build: lib/libgtest_main.a - -.PHONY : googletest/CMakeFiles/gtest_main.dir/build - -googletest/CMakeFiles/gtest_main.dir/clean: - cd /cygdrive/c/Users/Eyal/documents/googletest/build/googletest && $(CMAKE_COMMAND) -P CMakeFiles/gtest_main.dir/cmake_clean.cmake -.PHONY : googletest/CMakeFiles/gtest_main.dir/clean - -googletest/CMakeFiles/gtest_main.dir/depend: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /cygdrive/c/Users/Eyal/documents/googletest /cygdrive/c/Users/Eyal/documents/googletest/googletest /cygdrive/c/Users/Eyal/documents/googletest/build /cygdrive/c/Users/Eyal/documents/googletest/build/googletest /cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake --color=$(COLOR) -.PHONY : googletest/CMakeFiles/gtest_main.dir/depend - diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/cmake_clean.cmake b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/cmake_clean.cmake deleted file mode 100644 index 6dd4ab6..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/cmake_clean.cmake +++ /dev/null @@ -1,10 +0,0 @@ -file(REMOVE_RECURSE - "../bin/libgtest_main.pdb" - "../lib/libgtest_main.a" - "CMakeFiles/gtest_main.dir/src/gtest_main.cc.o" -) - -# Per-language clean rules from dependency scanning. -foreach(lang CXX) - include(CMakeFiles/gtest_main.dir/cmake_clean_${lang}.cmake OPTIONAL) -endforeach() diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/cmake_clean_target.cmake b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/cmake_clean_target.cmake deleted file mode 100644 index 6b8e1f4..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/cmake_clean_target.cmake +++ /dev/null @@ -1,3 +0,0 @@ -file(REMOVE_RECURSE - "../lib/libgtest_main.a" -) diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/depend.internal b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/depend.internal deleted file mode 100644 index 72cccde..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/depend.internal +++ /dev/null @@ -1,25 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o - ../googletest/include/gtest/gtest-death-test.h - ../googletest/include/gtest/gtest-matchers.h - ../googletest/include/gtest/gtest-message.h - ../googletest/include/gtest/gtest-param-test.h - ../googletest/include/gtest/gtest-printers.h - ../googletest/include/gtest/gtest-test-part.h - ../googletest/include/gtest/gtest-typed-test.h - ../googletest/include/gtest/gtest.h - ../googletest/include/gtest/gtest_pred_impl.h - ../googletest/include/gtest/gtest_prod.h - ../googletest/include/gtest/internal/custom/gtest-port.h - ../googletest/include/gtest/internal/custom/gtest-printers.h - ../googletest/include/gtest/internal/gtest-death-test-internal.h - ../googletest/include/gtest/internal/gtest-filepath.h - ../googletest/include/gtest/internal/gtest-internal.h - ../googletest/include/gtest/internal/gtest-param-util.h - ../googletest/include/gtest/internal/gtest-port-arch.h - ../googletest/include/gtest/internal/gtest-port.h - ../googletest/include/gtest/internal/gtest-string.h - ../googletest/include/gtest/internal/gtest-type-util.h - /cygdrive/c/Users/Eyal/documents/googletest/googletest/src/gtest_main.cc diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/depend.make b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/depend.make deleted file mode 100644 index f653f92..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/depend.make +++ /dev/null @@ -1,25 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/gtest-death-test.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/gtest-matchers.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/gtest-message.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/gtest-param-test.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/gtest-printers.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/gtest-test-part.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/gtest-typed-test.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/gtest.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/gtest_pred_impl.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/gtest_prod.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/internal/custom/gtest-port.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/internal/custom/gtest-printers.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/internal/gtest-death-test-internal.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/internal/gtest-filepath.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/internal/gtest-internal.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/internal/gtest-param-util.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/internal/gtest-port-arch.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/internal/gtest-port.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/internal/gtest-string.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/include/gtest/internal/gtest-type-util.h -googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: ../googletest/src/gtest_main.cc - diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/flags.make b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/flags.make deleted file mode 100644 index 462dfac..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/flags.make +++ /dev/null @@ -1,10 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# compile CXX with /usr/bin/c++.exe -CXX_FLAGS = -Wall -Wshadow -Werror -Wno-error=dangling-else -DGTEST_HAS_PTHREAD=1 -fexceptions -Wextra -Wno-unused-parameter -Wno-missing-field-initializers - -CXX_DEFINES = - -CXX_INCLUDES = -isystem /cygdrive/c/Users/Eyal/documents/googletest/googletest/include -isystem /cygdrive/c/Users/Eyal/documents/googletest/googletest - diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/link.txt b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/link.txt deleted file mode 100644 index 5fd0850..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/link.txt +++ /dev/null @@ -1,2 +0,0 @@ -/usr/bin/ar.exe qc ../lib/libgtest_main.a CMakeFiles/gtest_main.dir/src/gtest_main.cc.o -/usr/bin/ranlib.exe ../lib/libgtest_main.a diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/progress.make b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/progress.make deleted file mode 100644 index 72bb7dd..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/progress.make +++ /dev/null @@ -1,3 +0,0 @@ -CMAKE_PROGRESS_1 = 7 -CMAKE_PROGRESS_2 = 8 - diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o deleted file mode 100644 index a4611aa5c8aeb15c30f2bd1379da42d0bfc76757..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3529 zcmb7GU1%It6u#5lYP7a&i@|^u2aF{}-N|m!Ch60*%{E)v#-+)Egv#w?b}|{Voe49u z?IyJN6A?oUtxx(O)Ccj!C!q-Tsnx#uDn46KDCo1GsPTOF&hI8GdSUK8_dDO5d+#~t z{uF!!<;TN@293 zoj4J7MGM{t@!kpTk!c2Av74RWFyZ69_89S2ck^B+-lw6xCtwdeBXGTxX9ftrPP{)t z9xb1Em3!J`iKL{cB)+?AT=L6QIU$h*KYvENJjE78*eejPG?p<4-W}o{>ftqOn?Kh! zepNRw6l$Bzp+~SGs@hhia2LJW=6wll4_-%i`{4UAXM6Bt2|bLVt?E#1^PAfCg+gNM zR&C>f`o_1Zv1q7`8wI7Ky?tY7XNR%QF|tcG0(hq|=L7C~pEsX_CTypsyd;TN6RHPtq0~Q^+o^5@Ndmnvs#{g)zl2F>6@OfRoC>k)^d%`71IfP z&2n9oIQI=9hsSJ9#>1F#d2{J;QuJd z-&g3%GvoyR&a-1wBgykZ^PG@yY)A>`0`^Lt_E&_>#8RCksl7zf7=3xBQ+-HCA5aZX z_V!D&d(N=_6@?r040w$-~$) zLV{LG(7qrrcvNEWfs~$(weYdTj>eK2Ye^7V>=4FI(kG<}Ar+VGIN|@Mjbtg=)WSa~ zST71@CufU;0lfryNIlFsL4Knie32kIIk>PP?HnNlt4cUigs2(BB&3o-ZW3}igWM;i zn?Zge1O*34PC>MiQy`N5ia9FV7s~i2D%etytT5t;PJx;>NkHT(DxpCfQ#l1*NQ^~e zT?z$6vma-JIM_SVa{7jby_|wQg`7%C`gX0F31;Xu5w2+?*SuVxV63>G^}(a`v7)uS6E zgFxHN`~~FNF68Dez0(eO+cj4Bs@t}WwQ6W# zOm7pa)4Pl7o+ZJPw&l29IL0LBwrkUrV0QwyDP5qG(M?`2jjvqLyJu|6BF%XxfZe@l zQ!CSWJj@eo4o`=3ZQbg}ok+NJ+n=LXL?34P#0m{5o)mPm#{=xLO^(7W=K|eWnfG+V zoHkd3u?GQ`B=Ii{ZZTg*WmRAwom-|O#QVp zr|UFoXOW+myGkAid*;`F%e*k<(zz5TSigCsBHE;tBZ#Haj7jk(e>jFoxtfl8#2KTY zK*cRH@JxEBrCBAB=QHBr27}dx-DntK^zMbT*bAJJS?BaF?8;2+C5a6~nV#&Be*n8b BX6OI_ diff --git a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/progress.marks b/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/progress.marks deleted file mode 100644 index b8626c4..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CMakeFiles/progress.marks +++ /dev/null @@ -1 +0,0 @@ -4 diff --git a/UnitTests_App/GoogleTest/build/googletest/CTestTestfile.cmake b/UnitTests_App/GoogleTest/build/googletest/CTestTestfile.cmake deleted file mode 100644 index f022337..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/CTestTestfile.cmake +++ /dev/null @@ -1,6 +0,0 @@ -# CMake generated Testfile for -# Source directory: /cygdrive/c/Users/Eyal/documents/googletest/googletest -# Build directory: /cygdrive/c/Users/Eyal/documents/googletest/build/googletest -# -# This file includes the relevant testing commands required for -# testing this directory and lists subdirectories to be tested as well. diff --git a/UnitTests_App/GoogleTest/build/googletest/Makefile b/UnitTests_App/GoogleTest/build/googletest/Makefile deleted file mode 100644 index 756311c..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/Makefile +++ /dev/null @@ -1,308 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.17 - -# Default target executed when no arguments are given to make. -default_target: all - -.PHONY : default_target - -# Allow only one "make -f Makefile2" at a time, but pass parallelism. -.NOTPARALLEL: - - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -# Suppress display of executed commands. -$(VERBOSE).SILENT: - - -# A target that is always out of date. -cmake_force: - -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/bin/cmake.exe - -# The command to remove a file. -RM = /usr/bin/cmake.exe -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /cygdrive/c/Users/Eyal/documents/googletest - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /cygdrive/c/Users/Eyal/documents/googletest/build - -#============================================================================= -# Targets provided globally by CMake. - -# Special rule for the target install/strip -install/strip: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." - /usr/bin/cmake.exe -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake -.PHONY : install/strip - -# Special rule for the target install/strip -install/strip/fast: preinstall/fast - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." - /usr/bin/cmake.exe -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake -.PHONY : install/strip/fast - -# Special rule for the target install/local -install/local: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." - /usr/bin/cmake.exe -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake -.PHONY : install/local - -# Special rule for the target install/local -install/local/fast: preinstall/fast - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." - /usr/bin/cmake.exe -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake -.PHONY : install/local/fast - -# Special rule for the target install -install: preinstall - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." - /usr/bin/cmake.exe -P cmake_install.cmake -.PHONY : install - -# Special rule for the target install -install/fast: preinstall/fast - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." - /usr/bin/cmake.exe -P cmake_install.cmake -.PHONY : install/fast - -# Special rule for the target list_install_components -list_install_components: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" -.PHONY : list_install_components - -# Special rule for the target list_install_components -list_install_components/fast: list_install_components - -.PHONY : list_install_components/fast - -# Special rule for the target rebuild_cache -rebuild_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." - /usr/bin/cmake.exe --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : rebuild_cache - -# Special rule for the target rebuild_cache -rebuild_cache/fast: rebuild_cache - -.PHONY : rebuild_cache/fast - -# Special rule for the target edit_cache -edit_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." - /usr/bin/ccmake.exe -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : edit_cache - -# Special rule for the target edit_cache -edit_cache/fast: edit_cache - -.PHONY : edit_cache/fast - -# Special rule for the target test -test: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." - /usr/bin/ctest.exe --force-new-ctest-process $(ARGS) -.PHONY : test - -# Special rule for the target test -test/fast: test - -.PHONY : test/fast - -# The main all target -all: cmake_check_build_system - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(CMAKE_COMMAND) -E cmake_progress_start /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles /cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/progress.marks - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 googletest/all - $(CMAKE_COMMAND) -E cmake_progress_start /cygdrive/c/Users/Eyal/documents/googletest/build/CMakeFiles 0 -.PHONY : all - -# The main clean target -clean: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 googletest/clean -.PHONY : clean - -# The main clean target -clean/fast: clean - -.PHONY : clean/fast - -# Prepare targets for installation. -preinstall: all - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 googletest/preinstall -.PHONY : preinstall - -# Prepare targets for installation. -preinstall/fast: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 googletest/preinstall -.PHONY : preinstall/fast - -# clear depends -depend: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 -.PHONY : depend - -# Convenience name for target. -googletest/CMakeFiles/gtest_main.dir/rule: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 googletest/CMakeFiles/gtest_main.dir/rule -.PHONY : googletest/CMakeFiles/gtest_main.dir/rule - -# Convenience name for target. -gtest_main: googletest/CMakeFiles/gtest_main.dir/rule - -.PHONY : gtest_main - -# fast build rule for target. -gtest_main/fast: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f googletest/CMakeFiles/gtest_main.dir/build.make googletest/CMakeFiles/gtest_main.dir/build -.PHONY : gtest_main/fast - -# Convenience name for target. -googletest/CMakeFiles/gtest.dir/rule: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 googletest/CMakeFiles/gtest.dir/rule -.PHONY : googletest/CMakeFiles/gtest.dir/rule - -# Convenience name for target. -gtest: googletest/CMakeFiles/gtest.dir/rule - -.PHONY : gtest - -# fast build rule for target. -gtest/fast: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f googletest/CMakeFiles/gtest.dir/build.make googletest/CMakeFiles/gtest.dir/build -.PHONY : gtest/fast - -src/gtest-all.o: src/gtest-all.cc.o - -.PHONY : src/gtest-all.o - -# target to build an object file -src/gtest-all.cc.o: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f googletest/CMakeFiles/gtest.dir/build.make googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o -.PHONY : src/gtest-all.cc.o - -src/gtest-all.i: src/gtest-all.cc.i - -.PHONY : src/gtest-all.i - -# target to preprocess a source file -src/gtest-all.cc.i: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f googletest/CMakeFiles/gtest.dir/build.make googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.i -.PHONY : src/gtest-all.cc.i - -src/gtest-all.s: src/gtest-all.cc.s - -.PHONY : src/gtest-all.s - -# target to generate assembly for a file -src/gtest-all.cc.s: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f googletest/CMakeFiles/gtest.dir/build.make googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.s -.PHONY : src/gtest-all.cc.s - -src/gtest_main.o: src/gtest_main.cc.o - -.PHONY : src/gtest_main.o - -# target to build an object file -src/gtest_main.cc.o: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f googletest/CMakeFiles/gtest_main.dir/build.make googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o -.PHONY : src/gtest_main.cc.o - -src/gtest_main.i: src/gtest_main.cc.i - -.PHONY : src/gtest_main.i - -# target to preprocess a source file -src/gtest_main.cc.i: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f googletest/CMakeFiles/gtest_main.dir/build.make googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.i -.PHONY : src/gtest_main.cc.i - -src/gtest_main.s: src/gtest_main.cc.s - -.PHONY : src/gtest_main.s - -# target to generate assembly for a file -src/gtest_main.cc.s: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(MAKE) $(MAKESILENT) -f googletest/CMakeFiles/gtest_main.dir/build.make googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.s -.PHONY : src/gtest_main.cc.s - -# Help Target -help: - @echo "The following are some of the valid targets for this Makefile:" - @echo "... all (the default if no target is provided)" - @echo "... clean" - @echo "... depend" - @echo "... edit_cache" - @echo "... install" - @echo "... install/local" - @echo "... install/strip" - @echo "... list_install_components" - @echo "... rebuild_cache" - @echo "... test" - @echo "... gtest" - @echo "... gtest_main" - @echo "... src/gtest-all.o" - @echo "... src/gtest-all.i" - @echo "... src/gtest-all.s" - @echo "... src/gtest_main.o" - @echo "... src/gtest_main.i" - @echo "... src/gtest_main.s" -.PHONY : help - - - -#============================================================================= -# Special targets to cleanup operation of make. - -# Special rule to run CMake to check the build system integrity. -# No rule that depends on this can have commands that come from listfiles -# because they might be regenerated. -cmake_check_build_system: - cd /cygdrive/c/Users/Eyal/documents/googletest/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 -.PHONY : cmake_check_build_system - diff --git a/UnitTests_App/GoogleTest/build/googletest/cmake_install.cmake b/UnitTests_App/GoogleTest/build/googletest/cmake_install.cmake deleted file mode 100644 index 68b0f5f..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/cmake_install.cmake +++ /dev/null @@ -1,80 +0,0 @@ -# Install script for directory: /cygdrive/c/Users/Eyal/documents/googletest/googletest - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "FALSE") -endif() - -if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) - if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/GTest/GTestTargets.cmake") - file(DIFFERENT EXPORT_FILE_CHANGED FILES - "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/GTest/GTestTargets.cmake" - "/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/Export/lib/cmake/GTest/GTestTargets.cmake") - if(EXPORT_FILE_CHANGED) - file(GLOB OLD_CONFIG_FILES "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/GTest/GTestTargets-*.cmake") - if(OLD_CONFIG_FILES) - message(STATUS "Old export file \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/cmake/GTest/GTestTargets.cmake\" will be replaced. Removing files [${OLD_CONFIG_FILES}].") - file(REMOVE ${OLD_CONFIG_FILES}) - endif() - endif() - endif() - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/GTest" TYPE FILE FILES "/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/Export/lib/cmake/GTest/GTestTargets.cmake") - if("${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^()$") - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/GTest" TYPE FILE FILES "/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/CMakeFiles/Export/lib/cmake/GTest/GTestTargets-noconfig.cmake") - endif() -endif() - -if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/GTest" TYPE FILE FILES - "/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/generated/GTestConfigVersion.cmake" - "/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/generated/GTestConfig.cmake" - ) -endif() - -if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include" TYPE DIRECTORY FILES "/cygdrive/c/Users/Eyal/documents/googletest/googletest/include/") -endif() - -if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/cygdrive/c/Users/Eyal/documents/googletest/build/lib/libgtest.a") -endif() - -if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/cygdrive/c/Users/Eyal/documents/googletest/build/lib/libgtest_main.a") -endif() - -if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" TYPE FILE FILES "/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/generated/gtest.pc") -endif() - -if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) - file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" TYPE FILE FILES "/cygdrive/c/Users/Eyal/documents/googletest/build/googletest/generated/gtest_main.pc") -endif() - diff --git a/UnitTests_App/GoogleTest/build/googletest/generated/GTestConfig.cmake b/UnitTests_App/GoogleTest/build/googletest/generated/GTestConfig.cmake deleted file mode 100644 index 771cb7e..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/generated/GTestConfig.cmake +++ /dev/null @@ -1,33 +0,0 @@ - -####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() ####### -####### Any changes to this file will be overwritten by the next CMake run #### -####### The input file was Config.cmake.in ######## - -get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE) - -macro(set_and_check _var _file) - set(${_var} "${_file}") - if(NOT EXISTS "${_file}") - message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !") - endif() -endmacro() - -macro(check_required_components _NAME) - foreach(comp ${${_NAME}_FIND_COMPONENTS}) - if(NOT ${_NAME}_${comp}_FOUND) - if(${_NAME}_FIND_REQUIRED_${comp}) - set(${_NAME}_FOUND FALSE) - endif() - endif() - endforeach() -endmacro() - -#################################################################################### -include(CMakeFindDependencyMacro) -if (ON) - set(THREADS_PREFER_PTHREAD_FLAG ) - find_dependency(Threads) -endif() - -include("${CMAKE_CURRENT_LIST_DIR}/GTestTargets.cmake") -check_required_components("") diff --git a/UnitTests_App/GoogleTest/build/googletest/generated/GTestConfigVersion.cmake b/UnitTests_App/GoogleTest/build/googletest/generated/GTestConfigVersion.cmake deleted file mode 100644 index fb8e2b9..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/generated/GTestConfigVersion.cmake +++ /dev/null @@ -1,37 +0,0 @@ -# This is a basic version file for the Config-mode of find_package(). -# It is used by write_basic_package_version_file() as input file for configure_file() -# to create a version-file which can be installed along a config.cmake file. -# -# The created file sets PACKAGE_VERSION_EXACT if the current version string and -# the requested version string are exactly the same and it sets -# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version. -# The variable CVF_VERSION must be set before calling configure_file(). - -set(PACKAGE_VERSION "1.10.0") - -if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) - set(PACKAGE_VERSION_COMPATIBLE FALSE) -else() - set(PACKAGE_VERSION_COMPATIBLE TRUE) - if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) - set(PACKAGE_VERSION_EXACT TRUE) - endif() -endif() - - -# if the installed project requested no architecture check, don't perform the check -if("FALSE") - return() -endif() - -# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: -if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "") - return() -endif() - -# check that the installed version has the same 32/64bit-ness as the one which is currently searching: -if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8") - math(EXPR installedBits "8 * 8") - set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") - set(PACKAGE_VERSION_UNSUITABLE TRUE) -endif() diff --git a/UnitTests_App/GoogleTest/build/googletest/generated/gmock.pc b/UnitTests_App/GoogleTest/build/googletest/generated/gmock.pc deleted file mode 100644 index a6d1835..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/generated/gmock.pc +++ /dev/null @@ -1,10 +0,0 @@ -libdir=/usr/local/lib -includedir=/usr/local/include - -Name: gmock -Description: GoogleMock (without main() function) -Version: 1.10.0 -URL: https://github.com/google/googletest -Requires: gtest = 1.10.0 -Libs: -L${libdir} -lgmock -Cflags: -I${includedir} -DGTEST_HAS_PTHREAD=1 diff --git a/UnitTests_App/GoogleTest/build/googletest/generated/gmock_main.pc b/UnitTests_App/GoogleTest/build/googletest/generated/gmock_main.pc deleted file mode 100644 index 563e68a..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/generated/gmock_main.pc +++ /dev/null @@ -1,10 +0,0 @@ -libdir=/usr/local/lib -includedir=/usr/local/include - -Name: gmock_main -Description: GoogleMock (with main() function) -Version: 1.10.0 -URL: https://github.com/google/googletest -Requires: gmock = 1.10.0 -Libs: -L${libdir} -lgmock_main -Cflags: -I${includedir} -DGTEST_HAS_PTHREAD=1 diff --git a/UnitTests_App/GoogleTest/build/googletest/generated/gtest.pc b/UnitTests_App/GoogleTest/build/googletest/generated/gtest.pc deleted file mode 100644 index 30c25ce..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/generated/gtest.pc +++ /dev/null @@ -1,9 +0,0 @@ -libdir=/usr/local/lib -includedir=/usr/local/include - -Name: gtest -Description: GoogleTest (without main() function) -Version: 1.10.0 -URL: https://github.com/google/googletest -Libs: -L${libdir} -lgtest -Cflags: -I${includedir} -DGTEST_HAS_PTHREAD=1 diff --git a/UnitTests_App/GoogleTest/build/googletest/generated/gtest_main.pc b/UnitTests_App/GoogleTest/build/googletest/generated/gtest_main.pc deleted file mode 100644 index df3a97e..0000000 --- a/UnitTests_App/GoogleTest/build/googletest/generated/gtest_main.pc +++ /dev/null @@ -1,10 +0,0 @@ -libdir=/usr/local/lib -includedir=/usr/local/include - -Name: gtest_main -Description: GoogleTest (with main() function) -Version: 1.10.0 -URL: https://github.com/google/googletest -Requires: gtest = 1.10.0 -Libs: -L${libdir} -lgtest_main -Cflags: -I${includedir} -DGTEST_HAS_PTHREAD=1 diff --git a/UnitTests_App/GoogleTest/build/lib/libgmock.a b/UnitTests_App/GoogleTest/build/lib/libgmock.a deleted file mode 100644 index 623883c8d45e8c31edcf317c8c4373cba17789a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1108232 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

}=--o@@F3V6EH9H_9&HQeb;m&D> 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

e&z5%>&nM!7+(uG18BFOs=cq6!* zP;d(JQd?2`#sUASS04f1W*l&`ne9gH^Tao;6F7NQHZ?ff%jG)uMlw{@;bnKr-!#x-T9?@@mFPM zE?M1K8oP;$S9c$H9h=K{V^2VrD`VB2ud2IqN#5txmFmSC$_rnIRDgzy=aaE+`qlGe zdwYa*4^?*qCH2dEaZrzX!|Ho9eTH*CMHk+DcW-Y`j$XlnGciU0#`4Olp|N$!43|-t zor4qCQ$pii*Pv^*(~dAqiy4lkb*R&|Xh0^bz%s2h+asUV9Luy?#Bdzj0dS#fVPCyKV@Z!#wqUC<$?-Lt|?;pt~;<1L{KO`Cw#)rvBotAuTcj3YK z$M!>b#-t1lnVp_Kq8y%`Uz$+VOe&koAb1M};|Y&)f*gSQF)lp{H3nyb_b0iOgSx~e ztnqu5AUf0sxwH;7hG~MJqwxeJ2z(Uf=y{NEeuBIP^${-N`NI>RAooIDogsTLc-=T*mB0v&Az+Qkn0SLZxfGhxl zZyX>m1A^QiuVJ$e z2&#y^A)1c?2hStg6OY`^Xhl4R=M-ZwDB+tKjfe;4`lRr!j7G#`{iN`X%)QFj@>Tf4 zf_#hHxSpsjo_{)$bGy%x0Q8X)zFpD7@z^-j(GtE{@e~UVNk6^NkP4RK>Oo9N}rsz!9Fvjc;#nL-LBb(0GvQ4$fhF zY0><*M}?OyW8Pd>%bTX58)r?pnRVN8nbXx7;X@@#P1}StS#;H$*6G-~21ysyoR$EK zX3Mf213L3%N?TT!>RVg&tV-b`U(>oBMqx^uZrUAFKUYE8Bqj=QZI`@jzpm!nbK2Gk zv({sH-fzd)aEa1>hE zWSZVybTr+VF*ezHW%$Mqh=pNqUxOs)S;JYeU6T!U(q#KNk^lTBv(T#iF}I;-TNM7LU{ghaU_WD;eTx1y?goc0ovoibal8(zc2{Uk z9RFKBH2=$wVR*Ziz!w;Jsyb^xjDm+O-GHCRL7W@}5+7=^j$3QO9DQALD04KExi!5~ zSpX~tKcV1b8~kZ#8#R5AR+bsqf(xz^u& diff --git a/UnitTests_App/GoogleTest/build/lib/libgtest.a b/UnitTests_App/GoogleTest/build/lib/libgtest.a deleted file mode 100644 index 6c8463978a1f5ab2c9a8a71add68ca48c00c3413..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2896288 zcmeFa>v9`M@-O(0*bjT+#6HBFCpc_?1j&evji4oH3`>@{1nrqUUwT2HDPoM<0H7}O z^!v-K`?ae9Q1(X9;qgf5s;pa9R^Ib}{GXHU^y&Zl@Bi~}?myMw?0Rr@-ao(m+uzRk zll|Yn{jJx#==J!g|M$QD*MI#V|NDRaZ=3)2`oGsbc*TKN9C*cnR~&f7fma-O#er8G zc*TKN9C*cnR~&f7fma-O#er8Gc*TKN9C*cnR~&f7fma-O#er8Gc*TKN9C*cnR~&f7 zfma-O#er8Gc*TKN9C*cnR~&f7fma-O#er8Gc*TKN9C*cnR~&f7f&c&FK>fcyj`!91 z>Ur60=hJ#IU(WZt(QJ4%Up>xO^ZobXm;b8&7n)qw^=|&3rrxjX`D)*MZnjH&SbbgI zQiIvz_RF}&9|&4CeVT0R{dPj2ro+qWdbycwo8j&I>9|)@w@9nOqFH_3KT#tz81E-5 zKb{{k+*U+bJf432V^&ssGe`^M3qzxo>v+`RX&y zao=oLlf~8F@A1or_2=uqH~aB^+f0^XJweN=LaTdh<*eCmQ*CR(C^al4&*wh(-PZqyV7SGMk>jid@mjAYwm~^&NYAM-HXBg>ivuO5>Kb`3EE=Rk! z^Uw4BkS<-gdVC&lCetSI`D(QLXRf>X{xuH%e*GI^bpm{K4LqH1?mC z)fp!I1_%CTxnXM8XOb8om7FUYzkTM08JHJzLfhfp`?kRc1xvYj_i59t3a0k%EjOGC zY8)bl+U+-s^$vu+Xt&Sra6N|e+b{phE%zVW`MyD`_xWaG;M}oYVS9($?RuL%+ySWJ zaP>t#JE?_U+&rwed%naV<2}&x&9<4&ck}g%rZC$?g7tV)6`E`akG6R zuYcszRsCzdZP3{z5SPC;yWQk-11fd*Uc3N$YKz_QZoIyG|8ZQaW^vMWMR(zLvVTg_ zOuGffsp8n`wTfRq-DonVDYt>@kFjLk?tO4WG`PVIBw!_9m`uBiX^oa*7cPND=phxoEWC|wZdzNwsE!80hOR0Kq*0YA5g+0(koaio&xD~z4AJ_Z0&Ew>G zvH!IF_`FyQZ{L0SG6drky)`cM zoqXTDn=C*8hy@IHb8t6V&DKjSIez2i_rV=5Kr>4;y1d2t@9)=yExX(CIyzFX`fWA; z(rkB=#XbJpaGz#70{I$V@Lz`Ge(m+Hu792Er%xCid;MX)+czt|t0m3+7rl4Eu$t}L zW;fl=A22rYU5|J>Ra1?XnYPuH>i@C%%=m(Zd-KuA+B<*yyj*^dEy80RF6HD#w1-2S z$1PEhYM_2rQyl@zh7K{&J@fq-uG3M^^7?H95=7TZZA5rO2D**Bda5ZATRh|tCz@Hk z*>6YhHI_wYFJ|%KBVMD=tLJ+9?HhU%vsZ7{i~02Xus0mOAY{4enDbe;84r`!wyNY2 z5iOFZ*BgEspF6}rACfxWPeAtgJvnEzgg9{byfT{(;Y!h^d7Lu!k{#9DHG1olPxm>0 z#LJYT)tPSK0uShRF<;G^Z{3Hx`bw-w{Wx>UTXjyzd^_3h1?9lbksxt?|9!(E?p$uZ z-VndT`JP%b$xODnrX8wRlVw}Os-jJ)A-{v>v;e)_fnH3uLZttg9Q$%9n2%Oycv3c? z+xeALm#g*aak8H*7T@bfaPsXv&O0?9*g%XqsX*gpf70)@~YnwuFx z9zO%6Nops8!duWU--2U?2sh^_Xx_H9F8Qwcj0b-E-QVxxjtVb=$1AnTYQ(B9{?u$~ z|99?j>)~BCP7vb+58Y=<6F*rsX#b3;QM?VEzNA_1sQi8#s&H|$+cjI_Sp}V&etGb( zy5A&4IsA6j1>M=_ZBsj>M(wQnhu7V7DTHKL(0q95Gs|MI|&f<7V+#M<84P0Q3V6fv9>kvD@t$YLh*o zGrjpzI521DH0uA+1SH>SaPfuIRk?AlFca2k@o>ain6b`iLIOnww-ew@@FG|(s$R30 zY|y6O&%?LPZg>G*%XZJr@F(a~+-*tjxsM~;hgZXN@ZI;byU&njtA+Bi8=pt4Z40%UnIriM^hUXDpK!2>xh^44E zMD4{sMMkRll=F?EjG3D2d5ry1AFJ#64u*kxvRdz-nl1C}J|bB2-94?J7qfc%yh_fu z4}e>K{w5D0x2VP)Y*~DBu|p5kek6+K=q}a8n*~S!!52sk`HNNX2Ia5mBfq4vQ!!sN z$6_~1?uBU-zgX7ycQMAwe9vAxt6BWgX=JimUQK58(|Rf{M(hl%wgJ#(Nt>`Oa& zgJM9V4b=(R0Qtfj6ne1lx@p%t(?`jt<(+2)@Fm0|khVZ%mK`xW33Tr@PT1(}f4 zk%e!KZ;sS#^gbXsBhZw7( z-c^^IkeWhug6q(`bg@M}EQg~X&e}$11<-6%r)#FJtG;FtI7OFCp|ZU95is`U(%0mi zR5L!Os8(Qo)P&cU6q6Lc>IpIT=Vk$ksv6jTdkd`@u{^a3rZAs_gMR!oP=Jv3dntl`>mug?6shB`lca zDC9nl=0&Yw(h_!{F^oL#Fr9Z$Hz#be)g>9gnr~K*R7>HPL9oUXSblI$&g-lvARRw+ z!!#!Fd#)tw_s#dwPKwvGRhnHjfW!9Fg?LL{A>AQGx;w7?4%d772izN`4VGAiYgj-j&$OL8(w_8roPxOgPIjP1`ktfl(>S2TFX%JjG zld9H*6XsGM*4{YOEj0?6Z{cA?JTwnf-1C~`A~HWp{b1|dTE#CtMQuq>BffiZ)y<4m z#r%p2+cQk3P^`tDc|B0&fazVbHbUv1m7FNFu&Jx+KnSW^Z`P~*cD>+hQMA~eK7P`3*(yQuCM{dUm8D38GXc4! zh>opiTW#6-qGs2Ml0zMc4u#+caA%o5)r}IV%kEgaFuu2mNxr}j-wY?*W; zx%xX1&XAMVkD^6h;RHzcr;}YPNS&C-0I_yNr5WPz6){om0Aq5EkJ9v6-CUf{90b>r@ zqc+RzkleF?kb?aDfZ>ih@m}xEQ#1YJ-5Tz07K%y&5cnv-QVFMvU9r!FZm;Aa<62=p zr362`2m71t=PxO0)H_FmH-euVeru+JZ~v%WZi3^jF4SZ6iM7Z(exN=*?>EnT?7$LE z;)!?G@7NQeNQAc*;70N&`W9xdu@)r$MQ@f6nW*}KUfth_g`vvP)^hl8G7 z=DN-2o9%Y;-FdSLKyetzX+RN2fky<-4EB;N4ZlK{a>|*$BzWd}UHom|JzwEa(8If} z1wA~oOM8#rnLrf6NP`_xGvhIQ4!Ri5lUN+;PF^$!hKpb8-q{$Q>5E2MmzWX?2V(ZF zjbdk#TcoQOCyi8#rlCBC)!tAmgg)oob5%;wFq;tz5N#ZK{P++^uLZRoQ z^p21VnaXdaREY+6n z@YD*T|Hv*Vhj#Dn*KiR&w0D0Gk|OkR6rfD%7R$cUI`_(7euvK0)lN8Rh`D#^d1-H1 zhmQTTt@ewmXVPb*`|#HXckNZy1bFK^%)S~}N8P0#Gl-GnRg9y4o!l$hyOP(?wt)y& zko)x}WnLoP(>+`iN2_1w3uxyPw|5}8?yCPrvfuxHMnDva=pGwvCRdF&i}_wQr)Ph9 z8xd=4UO?$%d`?;a?lD#Bcbnt$d3rCWFZf&$x7>Nc>^| z>3sKfvO!Fv=VceP3w$r7u@(+JV?n;$LsDure3vX*>-W%sIFMmOvA^m!vpHNoVZxcL zrp?t5extG3Bb$Af>w%XR5E_ch=(Nv z{N->s7FO|K^W^8kkPF#5T%`ISCr)N;8F35kf~7NAQqqO98vfOY$EbFDj&H;F1)e(6 zLy$ItBHoZ^LPhM7qrnK%|L{;DSnN~-C}Zn*-(OBP7#bc=&Mb^t3A;xsAQm|ao2zN6 zYk157YQ2g%!ZYC+@GwCLn%dkcD4fA>*@E^?&4o9fJqptO%)!F7m`+FTf&<*_MW&G) zmG*1C0s@k21Ws1^#kcKCb@>LF8}LvDþDLiz*YPc!_#8BnkO_RRsL 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

i92wTF$5BG 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

jjpnBh?2s@`f+4~ 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 R! z>7a@EJ|?Dp)vmu|lt%QfULoOr(ELw*4WDaqx$`yq{iuA+_xw-c&Rol#e9iNIEUjZ2 z=pa^)VlP^N>s0geo(@g-;Th7V*ON9#x*8XzB~bAd5G|1A821Q`LB#oYFBp6*ePL1t zo5(dJ-&Hvzxu369yPiO(A$(ttRDIvCRP~?vl`EWvAt2KvDVV>{Yi>vsT>+ z%h{+mu0{A-wpu)%@aF1CYfIV_%99v8wmg&6g7>9VUkk!k8#UV|c0;0QJZd-f8%qo( z!(#}!T!h7ofsb*o@RL}U!n;ytTH5^g@#}Rl5$U z26@ED0Z2`y3o~E>64L6kg*2)nH05YeQb*3f<_fEJ$%#O`^OGTRtshJyItA(xGCe$5!8@*(+s}fU<*{{Gj?f}OQVt0p2n{SyS00T~Lk1XO+ zTd}MgN}YJD3ko2bq0N-9>GDMZb=$=0p9Rla~2g(9KsplBgb@S&+VPc;>Rq zn^{rdyaZjnA(ZrdQ`jpjG4J+jBSVKNfk5hlxf|ikA#To*8mf}?jhr~5O{W|Hw@#2y zrvgo9hxZt46jki3$xH>yq>I?yS@@F77!boN{F&N=825QqMljq1DuJ;bpFB{H08yo2 zqcxMCJb*EBJUHhjQLF*$4C zC75nhMZRX2PYIh0Jg~#7>O%Uzq|~36l-gjZgF2vbKtG{n3*)F|aH0J`0x{_Iv2qQ) zKa|ey#PcvHp4ZjIIPUfQ9GS?JTqT859~|e+N!^j=HZ&7y?l1p z_>Os47W(-1$l{Dr-K5c*jw#pqRl@;B=01uLVyzxErf_*@zYg9F?R@^w_DVsdIHA6u z-F~HH#pRN)Qs?)-Q8FtnE&7#5C9Xmn#K0wjAigV=K4l99H!>n!(cD*i2iIhnzQsWQ@J{{hUd|J2Wc%D|I z9v1B0`;fx(=T-0fQ-|m2#Ix!>AC?fmBz0V5QsJ_FHe73?bvX^`Y#+tC%yo5{F2VT^ zq%J=%4KH7p(~HNkibLt!SM4eOlpkOx-7vE%d$v#Z9o2<1kX+4DT>vC)@CV8-4B-?O zd#4XYnl$=gE&hml0s6~)8l@i5nrLC;N^PzlSC%9Uot$|$7Xqv44oszBy^%WR<0@SB z#@i{uL+lDM>1WM*y6)K3N*T3ob*X2(PXdPms#5^YyFHxI==Xgd#RO*gD(=p`9A?Fz znM&!!9W8&x%vOa>N>!$C4{hQBlTt5aUHt%r6@!FmFRe0|<*7CgtoH`Lw8$b>o60R> zwP?lGiA;k1OYh(!R&kd2HAfE*JCIkKX|9om?u(L<$E`2Qs;pHfRl*>rylA&}spHzq z4;6TW4-eksG!%&|0LQ_LC;d+#MB+)`&zEZSkWcW1p7h7hqY$}nF<lC$TcIeg(4-CM#r3BY*oH9)viMsSBFWDA8wed3S~w9 zpA8uKiCOVh1=41y2OA7m(xVH7`G9%|u(gtgUxpeG9ZrASxFa( z{V7_m+E-zW1*1n|HV+WCT!B`YOB$h;TxhLImC?aEyq|-O5!I`5(8Iz<+?P-eB(kxW zdyE>I8UQeHje4TGV(R+>Qdy|whgG(1XhHupDgjl3aS|qxs&+|7f>s3toV;;FrTsE2 z4y|r9+RXT^#guu?yVsUj#MB?DL8MJ=hKe?a3a}{ptmLvl?cTr~&VA2Sqw8>5GEZlG zGP{?(%c|_iIDS@S^G6w&Puye?%CEjDncK@)1lN0Wt2v#vr5+L3gmcto;qb_whI!p} z;)n=cG^UPBb^VfZa@yeG0M-|j_udH>iF8}hpQ3~rzAv~#V2#`SZjUyo)c}g)QGOTX zM)rbBDTlix{b;U*<51QQOJ+xg7?j&9Kc2e~16SqNy+*Lf*Bpn1OJ2f^c|zF;uulll37P9(O7qzB~PFXjJ|FHzhts!H>`}j>G7sF6(_%q4<3a zkku%DbV)Uil76b*Kr|Y`HYyX~+OSg!N}E{pOwzG9uyGUMa+nYG^QLaZ~FQA2U@G7uesqe;S+JdqGe~%Cf+fA}9 zOW_1*fa5BO67D3zUprfsphfdV0?2O~KM*31Fl=S^DJ;ramHlpE3FIr+vH>}pnDZII z?T8ohX@PaP@cZ&h#<xLhhl2q-T|o$Nv0Rl92u6XAKDk3E9j^+nk0I{&-BDK9a<6nhuP4|}L zTU)c^TLp--SJA}s?VX7KAHGE#8j5e9d;5P9-(-daVtuG^9wq=vTiQcdsCuH7_Bi7I zhht?p_R`wlfMd~qHMeQpE=arj(=Q)CxDO527|+Ih(yQ1*@qAEI!Ie`*T{`>(EU$CG z;p1OrT5q1_KP73salNRSslD)GrNP|mobg?GG?&ueG^7kyDx#7#Yffqcz9?QO7_(w1PvYY%r%&?KjSp4-N@JQ z9Zu)tlfyF`(^nU#nSxzTzGk}^1ZwzDH1)p^m@((Ry{T$ zwbjAGlj6q=4D`dp1@y`w16T-Rane^2L>(_cw7%sPgIJIq*_lI)kIIFxWD_sle!QIg zS*Kz4LMIW4z}7!5U4#@n!B7HkCei4~OTS6+4qN=#4rGo2yVG7Tq1>T~*s^K^!_K zL!lwk;;b=LK-nQ!Cw!|x+$BXjcDG&r>Lc#u9%ZyiJe@v9kT==C8;LxRp)(P*?qt#1CD2iF<`-sk&b}hHv{K_{v@*E5{7 z>UycK){OZ%lo35qkn{}eNzRbiW@z6OMWBJlY!F;Hy0zNK{ZP+i0UfAVaSJU??x69J z-)au+echbz%iM#mAD6xV7Fs1%Z5##v)eZI_*sT-dRdLtU;10~CAho6?s@T5Qy5-VqZ+_u6_X z$gj|8zj~SLwE6x&opz+te)zwv(?-drDgFkXwv&r3=ozYi1;O}RPcZoYKZ4;2#`#r` z$&xyF0aTk5ja~dhD%G;w`j0Z@D37>`Q(Jpwi#mxl7oU&RoQw0@tMwSM%@TSFkbnsxv-kyccVT!~)(zMZ&a6rK3U#rVKv_7D&j ztXJif4Un&4P%;OvnVIJP=(#WBco}dP>38Ek*TPj_J$`)m9NGj2nF_%lV(wXM~3x^S$owLYGE%&@WB*F9>o74*lqh|MN)$tq%Fy+caP)0 zo^dF6{a10uX>-mvy@Ik9%=aKstD3(h?K`%1^mpBzTGGCxWgyi*uq3ggt$RsFZ+m82 zswX|LWNUBl*6vg~HIVjSyL#HYGaacVTP32aC!Ol=K{okZ+}GQmuImi?(w+UOwvN_q znRIHfwY#_duG&l0`@&#LTUU3gBi!DV?hI4?{k{EREP19Unjs3TtEVe%fGrApGTq&M z>3-^=7?cj6-QT;zBt;7Jbo{$FSktmF+s0q@MYD;&vvR17F=^foELnrg= z#b*Xmty_Bg?=n&HYe>=BpXq6Ji392|{Cs%=|qe`+Apjq-Y9(E((ncYB%oZs~5@ikb*^pL%aa@N3HH zK!3XyO2e4NT|M0p&gH#59bKegcx8C~4I%3pUV5qe#rIvS+XmMO3Dz@4iECXLtn9hF zt-GruROC^~gK%-UEi;e~H>bj`p74$<7lpy5I$cp$&PBcbU0b`*N?Nx=Xu5i~wsv&& zx7Mv3NNnp%@2Fkq3SripRRc-)hFeqVFx{C7+cW+BXpy1L9U^zCJ>A>C!xSYYu2{Lg z@vW;8D_SpKcKH(bp|J^q%U4jqn;{U(-0PCdgUf@#ZQV#ElHZX^qj<@4OLJmPhvtrBh)Ww9>ZCseVcXxu>$+QNJjx zUr2_FYyF9#D{#-i8KL zpDxcLfJRrM#CA(>cX#i0h#!GvvIfab4r;L~~-@%HP2k*$9Px9b^DF zq}zJZUEoGXq;?ek^{m_V!HvN!(!DY0R@8k<7xXJ=9RxlKcXzdgA}~#hLejM-b+<6q z!LJL~^rCX$5P2<>Xm1-x4WNVT?herv)P)Ijb;#Az8+zy~Ib7eevN_S(#3K9pd++Y* zK(&RcfJn{(v=@^a?1N&WbVJ}eLD;&=%9ZG8y1REQ(r7B;iFz9d2ReH*-2g~Pg1D$D z>ApKc2v1)dI0ei%LpPyoAamQm0d(oA6m)Z})wa5@ws8P0s;_r|64JXUBL%tFPxds&+;{k_}5_TCQC38ZW5-rlx@ z0u1Ftx_eQYy#tz0bs^O}=>}?apndhS+Pzyq`Vh^w3tg0wNAd?O?hsIm!c^VXI`Sm! zMu%^Bt`xzx-n)U3YW>hUY{y%nm%3A1*grvBI#hSj(sNf&?{?^>9epW^K)J?`OSmpG z`lR^;>8K>)?PXo!mX+(#DqEXxZ_@3uRm=Hoji{8xC0S42&OBavB{%(_+#>#uQoT{V zOR1Sn_tphhqN7W{zP+~x zmJ3w>R(AN6!9Zp+4A9nqQr;R|uB_03)}Wyw3>F8Af-txu2pbx(SjChRqAP`kmxk6A zWe(*Bix0i)vY;{q4k7+->+EXpguoN0m0NpY*P%S>`=IhR4rn^Mwrqh-b1U-!43qho z*9MiQG(M<4W+Xq^UCh%&A@&d5dCh91)&Cz z+19odV=oN-9AHrqivTynXj-;-N7BTGro{5*)-{R7bzysF3f3NI+l3m?iUs~UKJoUJ z##MD8459(_eCP`X2th}#Sla??wl(o~=?tI&>x3Gt630NP4j~UnRcSf6j3c`6q8s?L zC~UI=b2pMMq^-~B>*fC&)yIwea7iIKArdb@vf3`6y^%Di^}TqGV^=kY@yCx}7}T24 z0UCjH2lazNEeEFygN^k8$SecCKsYrJ(8z<-4+OM)0yUse<1N|`1A&aq_#e2ljm{JK zdlx)u{2SK4@7KQ{*1z<$@$WPG_b>GCL;82%uCBg5jOk|kI~n}h;0DzSVmrE|0jUwt zPG?XJHa!u`KpK*Mm$4l!!WbfVYB;7ozpKAZJ>IFm@6o@z^>1GPswN%->V5vE@F#US zhMvMJ8k49g*~V9S6Mf*U{4E&x`-Xi>4@PgjXiGG=G4yIpb*JcXu@)dy1FU&b0z`jZ z3KliH_PbI$&_wV88*3dv^mjD%W0=#=AtdsM@dF~L#G7}7+QJQ+ft?;z5?&+hQbCw- zXi5w~3YB%F?0y;1YTM6?+|o6ehSWl1sz2fPB3drnx(3;B#ZbOkv=?7z1K%}J8NfD9 zZEfqW3&WMb0r;6AhrCBj3Z)b@Y*;t8eBbVHi2(BU-VABE8EtL{Qg6plfJ&zw+7BZv z)>zO(kcJ9lmc|o@9|&xtaZPOrv?>EKQ`t>YUw}{cZl^KLp-u$#9VpfeU34|XT4(J@ zF@VqkZ2ibZ&=9aTRPiNS<885(p1v}217g;k&NUh1OQa8Xp0A>;8PMXtOad$1UX!! zY9derihj$lxI#3yc(0WI4^F!F{w@`;00TE=m_`x?C;@&Vn#5tSK9z3it6iu_LDFsR z?bs1Cr`q~gAPFM)*O*SH;8#IA=}!qil(UEEGmDaObf0KsWLX*`AM_!hFR+)9Ck8N* zQZcM8${(+WLVS`@(MOslQ0eYU_1BeQp&}I+7~?k?$?|9C{4hfIi}v1w^{UsZ z4Ay7b+u?u^MJ8&OzuGMovn3f>g7W#DVX_+xc22&cw2_5Wh!ER~SOS6zLL`h@hs z;tJG{3r=s#3>ANC6yLK8N|`%UKm_55Z(}8GJxMY{IC8h*NHQhnil4quw(#c3hF3L zJiMf1AqKkmS6LaX=}o7W0RTNny}a@35O*k#)fh3j#{+^=yk`JcdhdtPJ2g43LdK?Y;E0LB24o zReo5!A_;RLpB_(y7%&X9ZA}5(0#S!IELdo4%>zVbH(?M_v zo<==VN&O2+ybRd>YRKc>WU4LwNoM&m(v~kLPhbPvSX(=Sz5=#`8~j zzKQ2Mc%H?x63>tDOyPMR&(HAu63>fxj^jD~CqZx~o>$?i!gDSj+zuQJ1iur!4W>M~ zR7Ns{5{#@17A)g0O#9!f40Z<4bitan&HT}NEm*#Gb<-+%z*j&^G&QYDu&p!09TW{@ zf^dWjH2W1WI1VI`V>5=pQxb+dgH6FE6ro68S63G*-?)q%XxGUUFH{XAe;`D>aH#eT zicvS)`Ktbun9-Oh*oFZhT(PM^nAB7veVBQY3j5Q(dJ0I?WGk>=jX9!q81Zjd*{o)Y z6#TZ#AUvhwPKGdvA2h7>ItsCMVUfei7bT2on1O{dr}eu7^ylB!xDN9Mw=4@Y{=my< zxZZx?s(8TxKiaM;HGqR>b<^5)oNfp~_La*MnCx4zmha)pTh^>ymskc5jOjrk+*?5& zSce^wq8*K0`c^cGWy@B=^mfw?nDE=2f(IQFdq~BO6+CUl6oAW(+e1AbFQTq?GNza$DyqT0Rj>kYJ$43sXK)M3{6gsZW`A&Vj=^* z&C2HRww0?^g_uoQ*BmylmHtWh`^#n0fC_7SKdcLaw|APv?PMV>b++KJ+ZzhTGR9ZfT4JZ?dSu2vt*H z6ioJMAZI6LvJ@(4{qRsihqy^Rm@^nMVu%c_Mb!s7!RU?< zT?TteL2T>U5z?Uv6AG>eERz7N>%z+}zf6OQq!Vv75+lK~%V1N}Z3bLrz;DoqQe>9p zB#~;9C&u}xtDXjVHMbLksdh}i#ksB4e1Ozmp|P=W4pSjP6->b}Bb!>|iocTX63wn_`6tS=o+^l`M5!c8e{Q(a!d%NaVOja3YOak0jQ#wE@0JSPP;axY=uzV$PBz@K zL{cDvt41WuaaFI4APbb4*dKD(0(rv%G;z#<6 zL4nlsD|PTLV^rRT#WB!?z1vCEZKiBEQv2HmAgPcB)9XS)q}C9tzTQ4~AHrI&_BM*AF*f&yB> zW&&(0NtcFO)bg9B@#%I@9UCfn`gUYz4BJ&2=zi^!ihO87i7zxN?hFiyXm&V-RSzd=GeK zEv;Dg*a(NQ*B{c6Ec0{ZG))1F=PhFlGZlo3n z`h$+lwrx9tCFyN_OE9}fZ>B7OWy{9wBzi8h;FSX+Z9c;l+K-7?bn{|14`9L(ZZP<8 zAS0L<&TPYE9X;ABxNJ{hYx=Fb=!dY=yRe8+j;!YCYR`1T1HFR=B`Xb2wjhEcX!k)R zl;EVzzy%Xc=&idusM4X^VEqY)^a?gHbjUW?yebxe#3Qf5#BPPvmaTe1!0 zN%i}zga`~QY3sO~GtnJ&+dAGT3U9ISXE8e9#hRE>8tTQ4TZ9bjp}O1H#L!5Q4z7Ku zG;zZX^mdD71IHX%8wMw6Nw6Tc2wkM|9JoQkWf_h3n}{&MLNKE5+tK?GX2bhL&y+z>9lQYyT{$|3C8 zF03nq)}%*X_qvpfOb=Khi#CjqZ{C3sWUb_12aw8L=^-11#6C(Ee9#0RT()d^H|+FU zjZ5vqg#jn`H9CP#a~lV#wK7x%!fY6qss`5D-nl5eav{B-D-y6MV7uNzl;t$iS z=;N1ZQqZ*P=;A;%RQ%XBuodoH{`rY1k=s>|rk7*O(6%I>Zldgw&JbTu|%9(TnHQVb@ioc z`5%}j-c+#F=Fn_z7xwE!chqlM7(_#^v>|Q%TL%{3D6xbGNHF_q;XE^ItHJCPhC6rH zLdY?Sm$j#AC6UM*G2hbOlkPSs-ErlnMd8h@>l4j4uOPk}qkBC00r5D@QNoS<3oV`0 z`V>&gGH+Ykpe(qlRlS3my7C%=SauVFqZwOwHj|lvoRxaqXc4m48&YO6_?a4 z30hefZmQ#6k9T06W8uXCrk2*Fwz6v=N-#i#YYUh%@Vt=Pb;Kd|21pr~fua)qB{}O* z3#@4fx&~Us*(62&=Iiuj^9VJe`pf9)V4CM>#EEt5)~*XT;q7KP_*d~wd-fOxPub0D z5$2qcnA$@l3(+MjN0sU~*!-@8(ZQiL)W5Vw@h-K=?4ogYu_t#UhnqaGvaUP^w7snl z&71mK?RlsRWOzlx164t@VKi)QnuTzQVxY;jq9J>gx&V_9(AfMz3wO>++9D}vAA`D;86<2i`uF+AtvxdzW4 z;_1P|@OR+(5T5^q=X-d5i08+6{teGh@%#eM3wU0}bK3VRf>+?F#B(;DbMTyp=X^YG zz_S3)rFbsKQ-|j&JlEh^hUZ2+zY7@XLI#6Xm%+HlE&!-@vHRH!uorD1G%!hF_PJs3 zrTyvcA_$AZ&fab)hgSNTAQiu+-Fd=&d(YkpEgy6A1=0ovby6b%P>eZ`Pud2zEB4i0> z`Vqvmm~!RYqmLdj7>D4<0CDaJSoC2plJ(bL(@2EA3QyUi3rCE&tgxHCxZCfVD-JA# zw<-yrLw+Z7_Pmza+5AJoLsqie{=lJp4HQyks8|UO`YW`!)5t%W1kA-X1{<-(VCN!S zh;T8&UlA@xcn$Ar5l#l))q36r@DB*LB1}iP3t=Y0{Rj^s%tKg+uo&SlS~d3S`72=fsZAuK_tKv;oLiLeG?9m2~9RS0h)Y(UtEP>rw|p$1_qLLI_3gnESS z2y83LLkJ^eBJ`$b_&IWuHdUec9wY`Tt(>d}1983x4xF0!qI8J$=W}5eB*g(ta_R_s zaVGpM#4r--6-Cy6$H+g9MjhyPl?DH_LH;e@!mq-LH`{t&ZNYwTyW@?<{Q>mL_(DD( zZo$7;C-bhfUW@Dmdd5koj_9p~%;CLk7btb? z%oYwZ-I%L;_B@tG1MEp;!jp%&u+q3ZdS!IjC0AmTI9ftkitJ%(ik6&s?x{zOu>bve zXwishj~>TCHNr8;BSd^&Uj?GcM9vccJZ zs#ewgQ(|?$AG79+Ycp7#Qk$If>{it64}ZOW@Td~|y~;sBarc0I8Q0XQ`W*q;RwO%) zbv>7Jqkz0vKu^=!C(TqO(BtG-an!T+*}=)#fzU*=NZw7bV~5dxKhD?@e5%R%pRmJV z_Zfv>8tefR5Aid?0UjO_6gL^@xRuW+J)d)sw6hpuZn|+N4cx6KG{z&VogOk>+TPMn@m?KIW9W zO#U%v6()a;v$stC6lY(V{2|WP1^BWM+Z5pALu^uT@3|rNU69`vV*ladY_?AyXSOYb zJ)ED;F7c=NCXJQ_2NI3=2L?NfuQb@zd=bm>dXE3Vgt-N+hD`^%?2Asf3CCo zwS6QsIT8p@)O!zg$++~GSFi|@k=p0-$+>}aqYG116Jy|-!;ts+{F^kk$>5)c**6A% zE6hsGt`%Xn2z?x;noke2ttP(?{|9(^I@=!LKZe=*ARnK>HU;@t>FnEJ*Y)Y_KF(LB zvkJ}^rL%RM&rD}8hT5*lVBdxK>Dvg5mK{nCkiv(p?2HD+#-{Z-=pw4&txD21jhp-F%$82~oAL__}AySsK*W?z} z74%Fwe)Msr=z6pq7wg@`BT z9zi>c{+V46rw2cQjR4%)d!1(1xE_&h0K{DL9cyA@>{c5!r&9L*jEOBF^k=8@?}|UdgkEIve=TW z^Qrx!JRkbI>THeYcJA>Uxn>Mx^vxz;WwMV+UC`4Q9vR@8^R2s)4C*s&Zgr*C_*ad| zlilTajG@f2{Ka(kP@sZ8oX)OK=gZUCrgS`3{Wx3WpU!m#e>lL#oBa9!+iViP&Ezuz z?5O~yKpLygZQSJ?a425)pJ86dDb*(sQ-S^746=6ve07k`2b#Y61YX2u z8Q){YEHo;sA2(_BYV(r$v^hS^mhh*|JHu>Rm^3Cqiy_*$uy8B=L@j;ZV3ct#e;P#? ze7?cf6D#?|YkS%mFVXaR$a0f?ZR9>|vTCX1{SU+yG&q|-X^?z)5axvxG|0miCQA`d z@3&SX;|8v>PUwB6zt17vMvs$a6VE;Aw(*afykovab zb(m5dM=G0ah7$JHvhXg=}OO_t^HSOJnKZcI41?CVR%% z|4Ea5Y2-d=viBtqCecsvz9ujAII4YzyW5xD9qo$^xC4f0DNs|zBmKSK(UZk`fX04f z@}{-HvF9y?5zWe5)@`;n7PGq`&gkQ@BKX1;N2jS+J4B1u(fmLh`##0g%ik5;>YG(s zoetiwkg?17vjO%Gz97IB8~mOCn{M)N0_;7Le-vP!o4hK(t`DLbN^a=&jr6?@I`Jn) zSIGHysJDFhq%m=FIwS4131f!I9@WQ{Ue}H%9>Oq$51$-htBn!cXbHeSHrbszf6mt0 z)`sYPGM@<}D!(1Z)ArP4vxTS7K{9Ea_TtB}vpj1iS6OOKR8Xsv z&v@(H33+zsn++D@Z(xUmuQJ#*{4oQI78K(2<3ycS`AG9SJ{^W;j$7U4igNphZpv|x zDaIf_n~fp5v`*)($7Baujm#LGUYSCe74eb5(Sb^B z{oA7(D&3FI2(rKOM1V~)c)dwgstAxu1kw2*_$$D^H2JFm_GnPjE-CMCeDm(om;Yo! z0joCImHai6GJnQoE1+bUY=TLj9-)5l=s5HYx>*-m6Lw!^tPQYxOujS#K0n}r013m} z0&HU-xgJJdcyeAKb9T5WZDeRPuMAWfB^F<7()u`ZKpDziY8-Kc$!3yXthZ%%;0@5e zQwd*Y!jQsiOg6{hZVX&{Cs3t8(OEH!lxPRJU$7#nhnboYrOi5(KaOSj_2PR?2ngW7qU#3dHPt%qhuDb`^1{;N2N2KcH1$av*^fSOKh@-wCYx&>o^mX7I0R*!vEPqmMdR3V zdeO)QeiL!8n}4k`W^4SO(-z)8L;3mubl;E2-$ti{zUHvfuF}#Txj$5;GuuFYzuq9V z{zdBOPYgblv;P=HjIA{JBb@!q#Cf!P0(=c;PXr#JB3yjx+wM}d`x%47jQY0G)1EJV z%6?Xqy}&8^UqQRnn>#Ty&zb_$z(xL*KT;IOY}TPM^Wm zz~I+p+oL*36uyTX1FxbNe z2mXnbCRy+6)D^rl$GFLSB*>l)fKN|jQ-l1vH1=SS zjA2g;o7X!*4x87jp=ZVLaE(EqaaTzC&}GN339wg;lGy>a#5@xCHZyN=fc=Z6KGi4v z-8#wJ=GpwK4(tw0CHv4|eX=9NivG@yWP*ryWH$zQeMhSF#*XaG0Dq|?dp*dPcY;BV z-_wcB;CxCaRu1CefR&2R3)9&XKN7P6OGcO2h^ecL*3 zaUpxU4F~>48@{%X{kskSs*v59$KNYtPvjB)SpHE+dsAD!Y9IDMTmC>7wze&QY#%nE z9pBuAO>f7mkY~HR6hs?ZZAR;8XTt@%DsI=r9cVOzQYKZ7C~y zAK<3-blh*dQvv^ABMC$znT9{#X`U6QC!sE`I|{ zQ;=`UVy_12$@QG$+q-i)za^W!$LYy!A^v7Idm_YFXR{r!F6XcZ()i>Y_Iw)Omd$Pp zbHu3(^EEl_qcC5b!yZnjCmYgveGc1^&Nt_?78*_KDq zmbcNC)o?-<``qAlnNYq8@Z@ciKc28?2!OH`8dEo&cdDuUr(*zk7cuM z*cr)Y(>O29W*>8oIPnmFJDWWc;?HHXts#1HOB%mEhb>Oy-(|D1Fg;lk<`p^YtuTKm zhuxD-PZp>14LR)Vbbfz?&C1~8BW!I3-)OoE&heBGM>{IeuuO20DnBh76tgU5PK!SCx_US;4F%?o==hUhLl&}HHH-`q|4L&|8+=_FnWdggV;{go z1z~FNX%MC+pOnTPGWoY5_Ke9lfheXR8Pui_D-|Te>K7zK=YqJ;2l!8%y$>n^EBLK;8$y1047yxfrtY z^+}7-hP2O!w7}y5{#pR0Q7qipze$QabnN4%&yA4d^9!(C{r6rpyKdeK^vrv{fJS6l zdm>0}0b6DAcMI6F0scaJ_DO(0+MeAWA)tW z@kJeINK&yQJrZ7244HecL{jnAPc3v>8{&g`=s{zWIYI>JBb%)W{6 zr#iDoa`{7@S!rvEb4P3bO=tFX>!%I;@m3yxb}#m29=~%hHX)y1w-K`ol9>9|;FGdwm;T#K zvP$FalmLG|i#qQKybaKkyMnwni@gx!?`E;OAU(k>I5nF+&-o4rw-A3q2;n)|tTse% zZ%*UyX44km3)yUPn4ZiF^RgWFewcrs%^pmrC(F|F9>`&zrB65UM_Fdx(j4|~<{d(0 zrE156XvZpQ$D289bl&P5NDKZ&CJCL5nQS{$vK%(YXrQ#nJV{l(se@^C`%wEXrSbiG2nBGTx{S9&kAs@}wV%-+LNkJ@_DY4z<_cf2ikCi1SYl z5sZ0yd5BeE1BKHFe2}wGG0g_qjY0ltkSz>$d@abz(vTDK(%MLWd;JQ0>e8zC1_Pd< zUl^2ut6j1mW_$LJ2XsWehVU-~>|*|40Ddz!3&SPQHLxkbNNDhv1FRORM1WRyz^9uB z;Q5_UH`7YO*!EH&UK>01UVDq(DD1*%o^Sd(G8)15awd(2&c1t?p<68+fb@7?Y zW~b!8M+WHi)%#V^!1avAfNGl@|FbnZ<`3f^m{=FQVlsF&tT5TPa*NMR6HRV_Tr`fd z5AMp?SqC|LcY2u?kLdlCKLGvpH~yl@Zi7!Bb`lM;edFhoZk1NQz4wDf@6TPa*14bh zc_A!*q{@yI-imb6R!`q(d`wCkYPg6Ggzup(m-RNJ56Zg?RFZwRGudMIh3Z2O^pQO| zv`^IMK?A19Qqc>dJ?_36rO`(0(G{&SCYbDY8DHxspZvpn9Wjdio!Vyc_`z--KZN9P zpD6|mofs*lL2_rq;$pUWD4uLF+szANG#@@a$lkH`UVQqwO(F95BiZB6ckJ;(rr(m} z?~~mDamSiqgnO(ptjTM=FI9a#^6KCMB150&1Q|GNtCmnQ? z7=k!X@RY%UzhrQ11KdX)tJ?p2cYj?m0*dhEe0D1+bt{Y;Taiv)370|h5a3G#{2fTD z0O5BA`IqVJtzZ}6WxV*&3@qmR-I2lW4e`kt?Bh@`JfD-+Z+!;)B8@+j!4`x$p1d69 zpJuSH1wKBV|Cqs+w?bv`^Xd2W6Zn-_AX;O?;x8}F`karu0u8_`F;;K8?29pMm+P4SO%l?{CBE!~CW; zY+5@1Pire)>GRUX@z$=}OkKV|S@QHM`ILPOu(<<~<;uk(K zojuEQaY-ZRuV=6uL%cGBJrJTPZAFORizzL{6B+Dt7;4kW^Rzad{S?M_kltS&9_ZBr zJ7BP~+!!PSE~+podf z{~CN@KAQ&q$!GJxKlx;4`zeo1xEIhViQk>XcpU`t!`e|2EbwdT)tV6V5KOsn#%tugEGV|{vO?EgMu@VnATp}irEy=U+r;4+Ji z;t1(DGK4#H5DO~)U4YFJ-Y<~T)|}eDAT+rk5HZ3gd@4sv zj{@i@`NL5(%zqH6OJLVCNIFa2q_W2(m0frg$4>l7{0D)s@llbHy=Fpj#e+@!G zefU0r`q)1G2J1c;@vtovV4pym1<5SB4Q5e`E%pO2OraS#fg8d?-|(Vb2Yhfp#_n~53? z;lB&oT-@$fp}Pc5|8qKD%Gj$0--d$4z;NX$b?X7tMp5r%`H_7L$9}^f z`B(@YAyoCc`jpq6_BD#Ser2!=i24;qCpgPbB0=NObd^Ta9zziS{Ij8kZ$NiJB{y<` zzd}{5HqVA8`bK~>(anKe;FUp{k5vcJH$HVZSnBIoUtMz0<0fs<16?Jym9|0%o1jE4 zp1=#$sncw&PWeT2qG}w+tdE5q96~l5eMJ5Ba&=x#!h6cKn2Xlh*l5&qt#29?-p*<1i{zNr7ORY=F@JZpbZCNeaqPM+$B+Mg5Yv%Rd1I;=O z>;<>d`!MyH>`6?0CQX2gOzc`x{j@%@+8;iFpTaHxZIbiP^UMFBBazQQayA@7*`Cu5 z7)tw0l=ikL?Kx8#vh4C^Ykkq`>T>he0Gmr|300pay}!KNguml#kzSV>di@*3hiGF+ z$5V|h#qY#B3Rk?ZbSg>LiCQ}&Q>l~Z8U1kZ56d;XtqsOe^IcN?^?K@fPpvJ@#4VoC z>veL^Yw(=}qvQ4IaBu5)Upo6YHQ?3&e>t5k2y}c32U3DJVMblbJARr@`YOJ>5bB6S zcNJ+J@64bbHpU(c^CcPV?sPZ2SnzNpv=;Qavqflv*c;9tQ1TY(d# zy9n}7Cc$)6tT%9i-4V_MPOu7LG;o6FrlVZo=K*3N2;CE^2H+bA@T?N>@GN|10yx3> z2)$r9A-DlyC~$%svKbpmIN-q%v!&!dN zgWzCwpt1?1JxR04F#Fp$<5~r3j=|5&Q@t0-WGB1hU%^ym>#y$cOnBz;_X@ z1x|3y{tR{(3CU!CH*gd1JcPNx3EqdW1o&*g_Yo?Ae*m~oH}EZRg6AV_0Db{rIl^Y( zQvjbtr~_UB_z}W(;F|zj9SA-||7QZy2V?Vq6FeQE5cqJwTM)VfC-^c#Z{P$&ID38{2IVN<8BC88`)m~??jjaoZvCIZ!+Yr_PCwSf|$P+lh zH=*`-%8+p2P_zR$!6h)4&==$g?t40RYJd}D!@(oK32sE#2Atpze?&g5By4*o=mVVK z*$5+n6P$x^32=hnBU}ZX;0b4;uYeQ02Vp93f^`UY11EUw+2}{$1aC)J0-WGgBhZh) z36`IOxWK0X7K}oDGbJ1aycjsa-<`|YAm9Y&org98pAYyQ!YtqfuRR~nfD<$>z}NzA z0u~{x0ZwomLKSd=b1uZUb$}Cm8KE#s!bdLx?*J$G$e+QhzzI(O3+fAe2H=kfvw#!q zbFq}8M*}7hD)9V9z>g5t0N(`2FG0D$Lx4RHHUjSnc-&=>rN9Y3`d5sXYzg!JhV}v{ zc*+>?Cvbw_<6~KH#9;M+YsMk~CzyQ&<__Ql4@9U3eh}d02*DiC3-D!x2ylX*A#?&> z1K9RTlnb0-4}@O8djgI`CeJcNSI*NO$Yp2Atp( z2(y6GJv$Q+<^rDx_!z<>;Ew}VTm_y7PVjG6gCBs80X%UWcp)O;5&wW31AZjn6A19_ zV@m<)29a673AP!JJb>o`9)++5cyGWn5vqWn1$gH~&>uL#BTCWNxe~rJ32}iFTzMV( z8u%)}w%3DiffIbE415cG17Pq5j6dK64?(C0ekkDS2*K8%5#R)b2=Ix3^AI`#pAYyJ zLO0-V1MWcR1)PTR5 z69GR!fFWDJ!*52Nf%gK8-h%!IejMO)M~1fNDI08a2*gksVK{JtBOgPXfD?QZVKi`pvByzo-~?A7z^X1_(PGdBIKjseW&tNyv;=%X z&jF8r0&N9;0^o5=F+T$**!M~FNjuCXfaS|jAK+5}M=eKLzzL>3g*gH^!NU>O04MnR zv*>5w>jAH=#Jp1=;iy$;6L5m>zJWRbCwS;a(5HihH*5xNffM}ZGmxXBg!gU%Z92iO z3|ROD>IIx&pD$4d;70=<`4##LIKd;nhAsn~;1-1LohAI@-{33Y1V?@c{sd0&Z}o@| zd<@{&A0b2bk}x~NU}J$3Y}MLeckc~;0OTET^r;YY0pLBI4Yn`z(0c(d*&BDk0Vnto z!V=({0KY(h-#PmduwNnWa|2HBF9@4~6TA(f4miPY5w-*02FSbMKDT{P7T}c#5#R(r zMd$>aVA?(g>jpdwco;%2;6;GXBNPKCxCP-n;GY9#bv4*%;MssZ5UvH@6L1(p8Sv8p zuSU2H_%(p{Aj|@OFW^dq`M_5Jeu7W|{8Pa6eQ|dk@C?915UPM53U~^_M&LsLuRy2) zekI@?2-|?)3HUSu>xw-+z>g3zfo}rj`x&eNcnI)7gnfY@1UML>2>3~We?#a8d<@_; zgc$JK0aqdn1-=UK3xtutzXZ(PAN>TpHQ+G_R{{SW;5i7BfR6&4hcFfRe8BYwqThiN zJmDZ%Ux5=m^kCF;U$hZ$C_*pb1m_?W11Go*VGwYF1G^h+IBU+_-~`(o zg1!Kr2Y3#`9N?n>rywi>PLLmpy8?lS0LLP11WqucCwK-p!5a<-9rnXG0$hS{7I1c9zi3q)c6I_K*44mM;r=pL56TE*Y$^cHV z^DyuOaDwk3Oa)GG^l6|eaDp38H&`WbfE`~f`j3eXEU!F7KJ{ecs_bRz0}2ovzj>meHt1#bg(zX3D>PVhn) zSR#jkCjpn-4gM}dodG|(7jytl@LPm#JuqegBeNi9fD^pV02-gB9_y$55@HYX|=7QG1!+_5q z%mPmEz=zSNzz+gE_z}z_z`FyEM!;u<1w3FL~6ga_)5Q4oxPr&7iK`-D0yFUS0 z0h}OR2QeNv!3&>+9HaPvOAy`!PH=h!<^|vc>k&E~0o@F6?`7x<-~^9D=mnhMUlEFd z6P$rC2spvD2*ZIB{AfAK22OC_r$Afa1pkh38*qYMSAe#_37(Iz4miO%Por+Y33jYR z8;@iH-T{0NaDscULRr8G##W;qzzIHzum(86tJh#G04I3PbD$@1g0~{n04Mkp!ZzRp z_kW&bF~$PmV1!KI1jiy204I1i!oI)>?!OlOOYs4RBlH7K@CJk!aDv!TU_*fuyb@s~ zaDsIRmjEZ2{{qG;aDpejg#H3fa6Q5l-~>;78EphU6tLtK&#M~DF@SokjJ1DxQ7_ds9Z z1gE}_c?CGZ0UsiN-~_Kh*bbcF0|?=x;SL8_g^&lF;C~PbffF23jdFn#ym%92DR6?H zBMbyi@Y0V#Q{V*8-3<8;oZz26!59Nh@DhZvzzJTBa4m3xvp&VV0G#03&me<<6MPHd zW#9zEHQ;C91PechTm??B&sOvoaJr}W?+Eq4>8@V7k2lyC^9A6C2od1bfOP+EC*TB6 zN9YEe?&6(@&(sB42OIigulhqc) z%JIqP@@T>F@v2ySRjhn)q=sHhjg_t`JbSgik3o-%=|B8j`KmNBiMR~Zo35iwCeooQ zs7ZM=(luJp*gHh+G_9JH28DcIMP;ac8LCFMR+pGX8+oN^q@0xxD~PWY6aZl&aTBD8 zSncw*3DcSQ>9pA8e5^ZI%Zrmp<7z{$yKMBWAS%@sN#oJ&0z+F$Ks&y(*!Vn4f%<A3l9>^ZSSbZ-A;mxW-MNbm?^E)R(4 zD{Dx}ptmYXERlb)^$Gy5@~_wbjIS(@&bJs!B_rKLjXV@RAVO7mzBp{uc8tYW>#<_- z4XPZHQ@zjBs3IF`?TL=k_H(n_gW1pQG7}03-FzW`D=p~XeiRNyNv6X%Nr!71M~6F6 zhN^C3=}_CDX-)QPZx^)p+%C63IWPp1QB#*R*xu#zR#i3b?(~Nm*I1fWR1S@8tkut~ z3H|KX-o4P?kzJ;%>!U*8ByGfzQo4+?Wlb#pi73CRX_OwL^bNP@brHhbewW;} z^8q0zSB}kzl}BQwtHQDJ*68CM>-CJh`CwUWw>!SBEE>sKN};l}rl_<&J?HjH;FBwJ zrd4_*l1>MhvFtoZ|IqWX*ivNS?O1PJ_TN4E6vfwF5J#h)j7G|$JJ7xz7xalnu4qe` zUA?hs6~wT$TxgM!wMG3jo-W>b{k%;S!rR-Qr6md;-}<3l1b&2K{r-q#-sJ};jr!TNO`ngvazKpN#N~6m|ygKb@{wY zw4i1=U85?fF@;qtFKztvQb)CQI@X)cMN^VNvV79dUF$(_O}zQQyyv1v3+Cf3+E+Gs zc^u_8E1jGVEhf>(?rpD^Zc@cg9((#4lj;r<95 zom^v>I*I1~wNP*IqlK>cJ6-~4<0M}xP9eonGrC^?zVrgWVW*u+GkWP(lFS$p!@9-F zuP9tL8WV&d4{5UTe_80evG~^##p+K<;89r-JYyS|7 zKfj#vx8KHXDKGVACvJcq=w-Rr4n=4F$um_?P2s2Cj?TXCkGtAWp*vki(w(kxL+Mqk zBq{vXQSo6L(3ZJq+Xk&|SSXR?tgQ=Jt+BY)grsXkRyN4OHKm~SLA(b$&T7-CsxERw=xsuKw7HVTmLr~%^mSi-RZI{<@4;lzMA|5w z8|4ze>*H9LRl1B(WvF_3>F$|hWm~CTik?>c8cauh-qdwKbJA$~k1|5(JVvq(6JNX} z?B%v(*^ccA$#06La^jA}`bG=JhA1aXE%pc&o#x&(fSi9E+NoN2X$Ln5r)(*4Bg?Vw zg%DSh7ql8!c${hCN70ZR2ybkcYL0A?8CW<})(p;D^v* z5Tg|P1y6$FN#Bjl)YD9QZ)~w%T5Zo*d~H&!Sp2_;ND1v~#hjUBD$1$`aeANmrxA)i zsm{Tib0jvqK6C6WKT@mlQ|s*-+Wao9Gt^kJ)VZW_-&Q7*>A>d}Ymrr2TUEQqZ@XPh zqm2zT*_KnZ_oVnRRefEu*KI$fd9QR_6}uuInPLjePZx8Flv}k|gXqpAk{GrSf6t;` zEgx2;IvzMpowMw}-MF2+w!574?TEEv($@<}Jxj@!`OH`b$0c*I^)G(Ei2Xz@G!psQT9?R5W2ja};5Df+LjN7;6|hAj zKTnJ9<_xc#`lH@H#b2O`%fjdp{NAxaJ>$(+8E)0MN~JUGENgGRE}5?CtK_<-i|kUq z&6&5FlSb8_xUjS`tcH)f$0Xl->5y_>YN>oYdW*Mw&-^BJ3hIaC@kKSFo*~PfC)Z@Y zImVA4Te^Q0-H|Wp7z5*jyE&4;vQwc?q@F=ntukk@!-SAGYP2YIFuEDOH$Kgb5w%p5b9kE(;W)FjrOMNDtyv*QUi1 zT&#c+!xmVYhO-QHQi$wo#Hty4MA#%n;yP&gHRP#5g`teXqvNPmV<`m-0 zT=I<_RTQA@n950yO4Y`ywrnKk(wAqFALO}5eV?rDne@dDT-@*zKG$sUjc~#jRbz(@v-D|9W*obUYjtO6!egq%j+t z#%`mvte8}JMV7tB5WPp7;Mo7QEhulBU9!cSuOsr3=6bl1i(e8Sc|@DHJl{El`l>1E zc4^+VX!dJuo81RZq)F-4VkN_4w92HlqvHK|l*Ft4cQqDw2zYMA0oU}=|3)5lNQ1!q zw&C=swTp@ARYpYDV)qmxcwmg<*K(VicXqYjef7%d^%grrt!d}5bXB3+K-44GKIW>e zx1Kk+>*?q_)LdQfgaTe(0);0UX}XO<^|znCgAAW9j@auw?^tsAI9c)vW&}6!A+&V) zZ_mZaGS}ABsKYymKGh}#)xXaC>yoJ6y2boxXPZHsq~3I18@|KSZkw7noh?^z}!lH#iqN9=6qfS|8 z?FXLeUmCkp*tc`~{EpETG&WXRP6*Si=XOW$sEPQy@E^c@7Dfl zN}7~L(Ll)Vk`gs$^m1JChh(Zd&G1I0f!r=Hj(Mx*;$N2>R=Q?!EKx$nU`!)10zR4O zb@lCMB(pi*;uUYd?p8jd@?oX2>ma;kz$t1%ao$*(N3xpgt?!9?->dmjmIFSvgs!(7 z=S@qLv+L`K;%-gmhn%IweZ7hF{`VUbNYlF+X^ut@!Ig&GrHcFd3}tVYE?(}T_m9QP z;DMw8kh1RXK8@LZ+FV&Dc|+twcL?Y*P6P5DwEYinoBZVk($Pf#lPmv;Jp?Ng>N%PWz)e0gfj8e`KfWn1zR1gLDfve6T6yuv zCZ{Q_9NmmGNsj+Jts9I$O(`c{RR(Lm7>L6P%1U-V-{}2F7anNL?xlCiH9O`R()lx} z+!+4QbTdC5_uc=NNlWy6N}83A#Y$kIPAGZL(aOX?P%M?a#f&a{0MY8t9A^Q>j4NHl&$3Sx2^$-^a3X*&_Pq;vPSl%6{Em2qP%*Dy792c+RI3Ic9{39}9TovW?PnYJ5BP-|;x~XGQWzJ-> zNTVlk%#U~l$NVbHhL8D$14v+ZY5woEKXqT8ME+3i&2p-Smg++79hFY6=+qPjkZAJ! z3FGFAnsb~RtnDHXpEPhr&O11K#zyw(u&IqX0f)E$&U zH@M2O7RbN5dH(M0`FptfJ7;M=2u<6@m1S5W=Yt^fj}ila1?|5~iXkcjFI{@-E|0W{ zk=kRVy~s{mfWN4LqL7mIR!%Tb%fnmloM7?HAMMVGv=EuL$V%HAkqX_By4jJ6Q5-os z$t3;p7pXq-uL0%x(rqzX87~=Fo?m3WfmsUij(gqV$mzmvM_3=&u1~ z++qfpAP2^|#SCPRjB|?_DBhqlZZQL1mBhKl3{)!mmP#%5lsdAE$E;FiBzrtsRdxNX zGXTBU8G!!Q8G!z_8DOftQc2}ggDXtL&t;=`*?MJ7oSZDZ$73UR`B*0HL&VC@t^|eG zsj(1?tU*z?mTR|dgo!+`b*5iH203j?Idpf zMW6HYWf!>oRgea^k2ErkU0-Wu*Bl!bT~6FmHZ05MTd`51YzA5gWvqY24*aY=C#Vv1 zs`;wUq@~Re`by%4@rZ~KV~t|Xb)(2ytb28dGj-ZobU?Yt6XQZnLiJbt!e@EA-nE9#)9Y%dDQq`jfgdi%LJhNb;UJXC`ib+P!seG7$8{{}p& zuA%$ykV+y*ZiL&viAbckAzb#^%SQu==rr!*jilU*^7oC`QvCS25RTdXm^-uqfR@eYiZ2jrH#u*rOTk^ z^i?D3Y3nX(ufeUu+v7`@;jTRlyN<~_Ccmn-?Wrfek|>$d)#o-{cFxl+o9?&5FHNM2 zql4LYbvQBhS#>#`NGYfdlJKxbl|H6i{&QL$Foz41SN4Acr)Vm_uj*2z?iZxD@s)3UPL-n@RJ4l*)jF`X#pwuU=ORo_l4=Tsnm7XK6po0c|5i8kd-N+62P0IGaz z18nSQ>}udz-@V{gh+U0YX!>%ov5sn57gjqP5{dlbu!^f30A@@HBtT5Gpg+VI5aa(0~chAL&l%jYip(XT;YQe#6^7?Q_Z=U>!z zrDWWmdNMWkQps%9h2H-AZKwO~={rs82W{?FqD`e&N`SXN?KOPzJ`~-jSUPSU8`}fI zs8VGpg}UTQ`gTWp`|&P!`$vnpJ4x3nFYZ-ZzXQkQ9XAAPQtt#MWNmcgodB4= ztKc%c(dM*7bccfv+kyAuG9BDxhE=xn2A57GhSg!pFM;BxJ+8*%8a&>|9eZ6Y0mTc~ zRU998xHtg{CWfs;?1S8~EAY4yj}P%aMo-Xp+fbzGcaOMPEg9{}6PTi(5zA+$waB^^QH({^kHFefSBvZ>@XaTi>L0 z50#3wQa8IWOStH3mYuAXy3x8@j04SYT3;(E9k9H(ySEsZEya88*%Ae?@5M{Ht3qhJ zY2_4161ZqkUhLK0+-Vvrr>IHg^lEl{dNrw>q+`1-8Z^|N-i<6rr**%^q*3};l6+9y z?np|ne6-heBp-eKr?8Hy24^}WiX29xvsBg?$FuNS-9Cy7HRv;k?ilK`78tD&b-jj@ zfqR)_`5IYk9NoVt{RDn78?T+ipoI(l#GS>yb(g+hEn0uH739E25#lAqgqIIv@se00 zTO|jyPunt1;*$+_r_;EHWYg5ztx%0yB0GH(a4O1%$V&QZiMN0K=h0uWzLva}*JoV9 z*GA_Oalm+U6%#6d1Y5j&Jj)wgJBNF~A$qWNS&K)1D$?mLN|pC5*|USV!^v|72h+-a z7y!y)y`dpmY2S8 zolXkg0^IH)&m?L4X(@(VQhj>*(ZffN_U7kp7y0$m&$W*HHP(;#ak%DpTNj6H#B>1> zDZU4ym<^YF#Rt$1d>s_6u+5kihmE~-^kL_oGdi|>>=k3qKX1h4V=<&KIbd*Cj5+_D zOAj4Bd^nygS{tnZ=9*aI(U(idy}aX!bHTyu`Y#&+%M>)qk>~=O&n*MhI=j3?{wH{E z{|N(?n9FPf6@7=+erxHPmQAV-w^N4o=*y^sl!dR3w)tPSTI*o7Mbh3UYCsvO8z$Xk zaL<9m9e-PEu9&U)*>>oPjrPBHUu?2vM%URU``$PZ_{*lcZi@X;*F}|XAf^kA@OHn@ zG~zs`p{~|usm^5drFP@z^DP8nca3f+FAic|GWIAJg*J#iWqRk7?fGkManM>M;o57b zQdpLq0VfT+U&!JrEZjp#H9HCtGU0)d)aKXtm6>czJ-4N$CQ1mW#45C=PR=KAxyCiD8 z{L)D6zKHFqhcekav5=eA$=1AS_w6gHo%*~9`HmJAB6oOFMB&cgP+jD=m=F)+*B-J- z^U(>a9N)gxI+RKjLW&a5-EVzX;|pwd-+Ap5E}tQLy$kVNLWYlsw4OxVciI-Jx=@>) zG&);~fuOG`UF#_&%Y5cjU2ah(-ucwF$9d>2Dl2^aWe4_feodct>G^t@Vv-WA=(8&M6NIj{{yy%y z7iv7MXr%Q3wO;ts9tmhW*J({YgR3Brq-)c*= zSovg;cETE}g`@mf6>p!*C+7yzjl-FmIT(Z8Epva&8N~$`vTLom;}+E(O}>zD(d9|D z9>>e~Vuq7))hh?QeP)mUWO-5`XUbj3C)tjpDMQ|x`SVl{zjprC@>OzdIawAVJAFv% z?U$76rsTFaaKmQu{L$xsfu6}UXc@jzJ@aerCoy-Z`>|;rfoStg_g+52wuJckuD_cj zCwyhQlpgV6 zW!focuKCl6sI{3&OjTaYw>(QiHP8w#9e+0ZH;>#Y+kc90`yDcZ?y`q>551+HD4d5K z{SO7!>pCCxpP;v<_t|S*Id5C}px$Kj({xF1Ufz7{c_ziUwin7!CAIMl$Pgcim zC;hqF@oQQ4HD@i|+%)zY5weunWoP%6xz<)>*TDDTcb3NfMuy@mvDniFI&H$p#b1rh zu-Jpd;4k)A69gZQarWzv_2U=2P0qb);^PC_>dni~Fh`1?J`Ru#xzm@9D`50BDXa2* zq6OEIXelgbwQXpDJVRd}Kp;4SM#-z5PJLbTjEj~;|AN@c>Ojn>+KD`n?L&e_q)9P8 zl{_PZo5JB5Bc^Zrt{i=!lJLdPJ6@wcbhAmNk-|&w--i5XuKd)}?aq1A9`kBa)^s%Q zxY7JNTzkkZm`4-V=FYsN%uG$NF}cpXyJfcZVKeCAu&Zb`V(6#X7jknqJ+agT`6iXE zS8~41`?k&Zd_Uf|$0lT>XYRH0@!VzQ(P0X0yOSrqcMQ4aZXa1f%1NVbUL+?{&{DV0 z!;(o~p%r&|TADb0C>DPAc5B6lV>MdpAClF+VC(81+KVx&q#&)TA-bXnVfeQf6zVbc zs*`)|0J&RZf2&q~=G3W=wtFF@ot2UH*k#$5y=3ie*nJKARDP7>bwf!- zuwVAZ80&^w_qO{T-|#7q7CC>SakS_0wR_Y}rKi+V`HguagY%4@p+KO>9I4LK+j~YH zS|TMTyx-Wk(%T^F&uj|06a}lty<@zKUw;cl%^H1HCf;-|*`VyAp7LqA6*mP{?W%b5 zp(_aKr|U(sA6lXvI`dnD!n0oY)~99H*H-yjncni$2v2T*3cHA;u`RW<(e2+rtKU=E zCG2&1%5RJdZ#YM77Bii5H!^9_O5EUs(pJ5k&t&N_tL>O#C|AeIG03&_VsqBcPK@k& z{bofmDGUg!d&!)vHBsx?;C0?mA7~#HPw`Fhyq?$_DB+J9>|TSfHP|Ynkhl|DL=s3o z^_dHIs#nX4x`fuG?=NKO`KocG=6IX1)>c__bQoPe{LJ~5TF%Ra6N~Xpf_{*R<%`$+Q;NINtUrs)JwDRU904ytQVFTwoi$(#uk3us=YqWBxtzpJYoqF zQI58k;A=~?+u2C^+x8UZvB1E7pxIz@-EAuLZ|;5H`{cudvItcQ%qfQg6&fEzZ#=jXL-x^U&mSW-<|1v$0aCP zC4B{?@0aR!NXaVC5>1R)>O1L+t4_vfG9 zYt{N@ciOP+@_vTCaLK49l$Wv(9X~$dZM@E=Sds%D^(;oT++b;9clyZQ%tO$Jr}4Ad z7^@Hexu*}sLD?1`_bK~+&-iuQ#F{XknmZ1gn=WM^?is(L4;z|`NpYx{_lW$Fua{e` z)pc6eJz12evS-0}OsHm6F{6^Ud4w@;ot=@MhwBb6S01DgHFbZyCCfE;zArCqzq_E% zG^f4Z`IFQ}H4SNc4e5Gb+30UeM{?^TP~GRx6bdB0gQH!Qu1z*jprv5$)V8gUYnx{j z9g8E_#T0j|P{q)rREfa_UU$FpVmM`#h%15Vevex1W3%8rPo3R_@zUjL_gq>e)@Hw6 z-?W77zkySeWKeh13%5q-_1!qy-A;WC3KH+xXVWE#uBpN;02i<|=&gBheB zF>6@%hjp%$&TW?uw*P>W+%R&Kt572rR}>!RM9^L!0=k6!j$YL`U!0J^5exOZy){j3oZ3Z*IYyg zIxJpVrA}~s<;P2EU8WP#J@gtWlbWkr_{%ckzbwSaZkA=5C>H%Es$)qo6s;{6@W$#Y z4}DU}&RApVEok4&HM)0h(dyyk`Ris!7AK!di-)s((+%pVikt1!K&z6+)-b z##uDA9_Af$$LM`)w@Imgm{hH^D5kxNkag7CnB?bZ>y}Dp>_n%xzAK2?bl3V-<>Onv zb@H_yoKt60OI)krXX7o_>7w$b{{D5JckuL51A8HMUt=>&C7 zDZbl1`4;HYJFY84`-Q43n(rOgE?MiIlR-kIt^PLsX+Vcm?lehyuI-=l^Yv59(3i$V zlAkbS*IeqoJw7V>nBU{0VvlH{Wm}Hd7O#+?g|yq_Q?!c*Lzrau*by5qtWnv`>aOdNs5RAsp=j5-Ug4O3KNvUsIk zN&an4WHMDGr<-H5NJMA(r^a(nQqe{|>Ex+a#h0L^C{O&E$bT2t*r+@K@q&nF>ywH6 z|0YEsvT6~=;Dg3?4vGAyGqpcq$Vp6|Me!5URNEiDi2jsM(Q;++P2~UJDv46g6)EL4 zKvpvGNJ|E^Ty%R)28?A>RU*6Fta6lkZ&LxZM=heWoSMrXuoBk(MI7#uHBirBy|vrp zd8UX<*{XA3cHY(lR{`!ji>j!h6V?zn+jkbJyNWJ!-&NG@HUlSP-Zl1}&)GDy;4aQy zG5>l!XDGpNc=-as38M2brZ}7;3;W@>)ziSg58{kqc6d7FTlgx;9#zR_+-t zYFPf(hD)lkGL6Q{d&YhXIh$^_zn8Nr^RG8>_Hy8$?}Dr}n71j&)~d1cKKO@zF5eQz zo(M~jwl7I`FU#2AwKLfF{p?w<+5*8jYz3;hZXuMb*8k!4YNPMNqsb^iNBiWxcuJO9 z7uvPVWq4|w_}zbZOu>2VYHQxONe%@u7UZ|=mL}QpbF?_H%oIxd|1Rte>GmkK$JOM0 zKiY#yJ|7trhC+JxKeq2G?W-<3XiPYBlP89C0#rAOVz_zbRRi|Gmd}^uChhY$)zf-d z$^viwT>Dgt&y-!+cFSp!uTD462sX+8QC}T>9NBbo<}NS6z4Z1ypCITZwE~sio6g?X z^PTswD_4yfv|8C~Nq7kTTl@BcxCj)!A-2nuWwwj2hF%Zps6=8yJ8Bl+PW5UmFPye?c^ zNXSSQBL1&IqmZ4!lYeJ;b*zOp8Cyh6HSGU@Za~+wB=-? z93!eed-5gi=(i)=_Vn9thkr>1U8U*e;IcPj<$+lFsSw=JMUV*}N^6W5{l#kOj0oz0d1*_GGAjKsFm?d_pL5d;XcxeYv90jGIkw}L>*;|K74hf> zQROYU+6EHpTJ35G9@L-&1Y}hSsYimZ2AS+wPxVc}8?AhBq2>L3BEGjK9>rHJBgsCZT@lW z%zWd}gm;zPHnDW|P3mmGj=N4Vj_d|S{Y-q+KJ6g`cb$K2@H+$S5tBa?U{9I+(E$6} z@~d=tpaS-_@KFAKLO0OQYbyr5LGxW)Yb$xv zKt8{zx%js@Z=gS8{|!I_H7HLq+iJR3PQZuHS#t&|0Xe>lWKMtto<@g^PFH(v5}< zelD4-^3l?I)A^qdA~~JBPw;>0e3nKtS}S_#_H)qtXFJ=gu^B{=oTkb7^)g$>Lx-ah>~=HUM+orn1N=bD4va}Mc~a&9ayZpytOKkIxNXsn*z zJpH1mMfd)a5>I zg%?8aQ=SYEl0s10AG(pQFxG4L#xv>Uo^SM?uj--86-6gyEZog!H*sZT&NG$%2M)b- z>#OR!lX296ZpnXzswb9CyN90oc>Hb1Pa3Yxxs%L0SG3evb;)T=C1iST%3WuB?46b)#BSI+*<E77K!{2oqWEHOH~ zEP`k91t|~FZX|WoIVrj<`)lzM7tO_=UruqImvw3lCUhD3p(8TxS-AnN+IdUyAr1YqnneB#_Zc$x-sehO(XP}DE7?U)s&8>rhE;{A#ol|?h0RX8^9F6D zX0gTMf4hB!QXfzb(_+Sxt#edDK|yc7?pdEX{&Ga1o!Ursy>-ueIHGtLP>2?L3E5IM z>7CJAl=?q*N1H9Tea7?ubbBG6J#$g2@o4+%yZ9qHy;t6~c)GPh5Q|>%RNYtJ+TRID zwpadgzJ`k5)H=KYzYQ-vZQn_~9~zNQs(!We`?b)=rSJIaI$>~td;wi2m6Ah|oR_JU zoK*TvHuRgGd>}i+(r+$u&;S3s`pr)4E-ktz=^h7;eGSU1YpVC0N27u69Tz>_{Uh}= zIWAf*U)S0h3+KjtPh77H^x<9f_3}|Qy|l1pF7;(h^KGn#qhbxb8S8MDd_8JHHc@BG zg$_*VXRFGG)#3djHA5hN4gRih{*G1;5@`l6Lb{5<@s--PIBoCDvZHFnH0|&eeHXcO zP0Z!1H&NU3X>%YPW%}^B2KzgoZm_5AgIBLK$PW&GHSrEO_qZp+vUY{0TIVFMDlC50 z))hV6^|SKbU3WMBD(v7Bww9sM8arZO$WQc=lc^=q!C&AdkQGZEQmpkR)B8^4mtKzU_vqWu5!dpJ@WV#NSA~>0n52{vZ72Z|p z9~LE_;qqZccsz?-fyFxAYKT4}?8XUqVB2ZfB7+vQ_GG=d4X6%6%IZ|(9Y(pcS%9i| zGZ(akAOczCmqxKeQipsIoX?!$b&cAUb;hxFEONpc>dmCPM{?bFk3{}UBk~5b>(T(5 z95@jv@OxJ-sgTY~V*w+_Uf*EgkO7JOyw$_n zm&Jf+#9TW>cB6m)DaPK-drD}Vlo&K0dg|<*4;whI93VS1cm z44M~Y^Gu-6n-@J7WSay34=obE3*CO+g|4~M?(bbVlbbXKXpOKIltl5MQ*}A(6J3#$ z_<#5tM2*deCGwu5n&Djy9cI#06&D_l&V4@m6h#wM+ju&SkFn`^W^7q1)6d25C?PbF zFE43ZS@WL{MYQ}_B8%SC3^~JKB1x%;7oCN;6E$YSH%NwwViWms_v7DLkEggFA7DMc z$^DqrAyLnFhKUNeMmXx7_B_W~gdN8CaZj5wkS9#Hd{%^GKA?2Q{nX5n?u-ilyj>Emz|BLe5e!2O|o0 z18HV;0cl2`X0V1dv?TTuOlX}?(0MTX56Jt%ew6{XEP#yVZxi)De!_nxrYY^!d-#L+ zL7xHs&+|ubjX$s$8n&Tk2&N;N4j%yvfwim387}X*aVGth$eIcul()6f`9Q4*eWLTn zM#~{dbrG|{SHwW-IGMP|%Y37D5enQOb>FI*;8}(;7Gf246o$-RQkKth<{U(}_U>v8 z8a4WLV?K9zWVihzW8?T@gUvM5)opA8H3UC@f3IH;Jr4f4>EUOmZi#uTG5ONobBbkx zca4B^p5o^^E2Qk|KUaNIRo2JeiRo+i*VpoSBZoKL#|^ix?*6j1^(@A7%dgWC`Q&0C zv!>bKE`cO~{3e8#M{J)?o%hu8S-MrIznn~b`mTXJDd|J+$R@hPPux!gu}X`1>GtWl z-U>Hbbx1AL9D(K|%fh|*Aa;(>Ef~ABp?=l2e98Z{bX8D1}AyT+F40sk%)I*_-1-Td0E^3fXRO}FQqpl!D!E|B&Z&E}*?=cU_WZh99l^2-0#l(=6&XzGiT1s#B9n@AEaAz_;}Mg_)Jfa-2gq7_8m4xl${}7?Ek$O z9f^MkchnD+cfr-@CA@1%)^rQk_~}T1vRw z+4Oby+be4QnOLV%-=Ar=c^Xf5F5o`hJ9`lY(NFUF4w7aqPiL&J2g=PI8seP!WwvAY zEMYO!NA4^52eKD6pG&el(LU;%QOo-v+!Qo^Z8Wn8*`v(9oQ@U^^I|Kl>obq6pe}Oe zws{$31cTMixMd@Usm(W7-RZ6QDIs;V^9x)K+tAhXA4%2kN5-H#Yer_4&m*E)*HpW- zu|gJm1Grf#YNOPiEhsSfpx+bL+vQWP#47{o((m<3ttOif|D5ixw+DH2*aA9SeNtn~ z^>mX8y$(idKnwRz`A;&fqZ(U;Xf&{GZ&C&HFV7r>)GZ*3K{2w>`i)k)Am7eIP^k}< zo|vk2m8)}gWZl^5gk;3X`|N~!`^{JqlGfnZ1vq|VpAPs@$b(MMy3l;h>ZhpPiRVM| zc}p!@N9k7s#))okw%rqmn1XafX*hUfv>$`fh%%x1S=PI>%zLZQbi|lH3}|6cN4~zg zIoY;fJI=l+zLMIIx4-Y+poPJuA4&}$C3Y1sH$uN8;)9y^%+S{E? zC!l86+OFD5Dq071lp2ZPEc!CtmF7{F{RWbFEqp}CdmUT{R!eJ{_bxNt&5O0ksK%FU zhgp^R`Tp{QLW zqG1h8<3~cIYNwYkP> z{*rY4cuG*e1OC6$rK4Pu&mQ9^dAxjCZ7a!ls>l83BZ_f!9Kq97Tn2kU_Gzt!cKmO0 z(+=r132WMlgPM`ykJ6>EVgEKgKnSSBm#;?e?e-s}D`=nkukvq2_a8FJ>c1M3xB<~^_RXrcTO>%fU?b9LZ(4NQSw&rN~I#qYsWIYs@B^eZUk}myAI`s#ozcQsi;tR30iJifd>lVZ(XSE(O_3dt^69{jq>Y{aXrB@&5 zC{BhIzK(PC=~;h!{Tb;5Adr2yx@S%($~DhI^*@9&egdyHgnbYgh)IK3Q0Qo3F|w| zudm;3oyTsW5~hodO|j_;Z)-og^|V|J$Y6YZ!EQFaplWJZ$0Pl=p{$!7Q}pR&=inO} z-JJUsG2IEX6bdT5Db=bj>t=Vc0t7!l3cxGB=nJSd-XF02g!Z3#gJJt2X~_ByRgPDE z_C$qS1!0=+Y&r2QuZsf37{eXjD`eq!^TsJU2sXO=7id&0dxm@*?*;^A?XK}LJt zJqK_eS zChm8|($Z`Tdm?*`ICR$KTNIPNA&Ms?W*Ij(*(^F(4@u+YjZZ^}GDzGZOgfeF^D3q>yG$omnq znCb#P0e}kJ&vjW$by;L}q31re9z5T;9-xKSuJ$G!)6^R!z2$bXRO*mWheRGZd0jT$ zp&+yw#Wu>X*p43efT*GkD={jn1%e$s$>bCeYDn*ACefVEx6NIy%2BV*VSUa1p*)Z} zMq0{!^kj7zwa8)GDo*ia^XHj5f2e+=v(f)1CZAN!Dt~L3-!E0aw~)g4N|O4Xs^(Qb zfp5nA6$+HYN&ew}X<=U-O0CCFT>mS;#?;ft%-izrV;aw_xg*r&(^gDZE`$b{3Fr)` zC5HGrs0^atAq@-=5)c~5udJ$Q9b}gC6gcHZC_cL6AoqcanuhrsQ}tj^8q8O-ZsTLUJpXI*p)r--vIG)6VvzT8?=75^|GZX(eJX2bmDsrr2ovpfox==IOj;8Bv8 z*ahvcM5ARLgt@U4pDZP9LUV7z0>hQin7O}U{{3=M%A!##%6H6pQOY7s0&Q`TXOY97 z*D(!gmEom-znf)hvUMAxsDylUvu=2DrlIq@ZFnZ^b5^|nMkp*T=>hMgQ(w@H&i;k# zFxwv=A^o#^c&^M_)h}o=C~9nD%Q!5r@for}4V%Z~({Tq@;sEh@oS2N}(>g4#|B8~<1q;Bo zLswjHNQenX&CRuM(%-?yC<2r0iP?_(al2oLbn4$K|4QV+Xg%uK-d?8Fw|rRz zifXxjLYdE+O{9iAdXitR?ML+3Bw{+I=s@UK_A+E0$_=L}EFm4oY~=aqDII-7bTPx@ z`zdHwy(VWs((e7S#mkCWj{aK_31NvCh@ReEc$)V(Ae zoLr!3F+^nq^?lFWNX2N{*Gn5ZWoyGIW1T@H+cbgp3L;KQ))i0Z<~io++p+p+9-Uk} zb3Hnl#}-?E>zH&mziLNDffJBCR9+N#im69Ni+vEWrAS=4x$66Zl?{i_&uPvV<7|~# z2|75q;ULtY664sRy*A|8IP%IriM(H1)YU#Uo(2}yC$^^1u`OgRMB@}+D>TA~M%N2a z@cnC5*i{Cx5G+_W_`aS{-7rjpF{%&=!A=8mTZAU?`BJA_T&p~GR=hvmJogsYkN)HS#ly7&y?`ppB{6h$gBp)yP?VGqvq$Fj$(LveZrjE8l;%OtFM;5sdzRpWBqHk5k zLS5{3t+&v1wd%fT{#t83VctM=(mv3w(Orm-v;iu$I#_XYf6a+>PtyT|`6T&J3&c!9 zd6~ka{XR6x=a6{)D~+$)&=s-XP`X#1W_c+cu~Jt29;N2%>2{rMr>4(!*IDA8jHj|` z`j8)Vc{)$dxo*{>nMA|#LwVbwoP$hm_nRDg72hlqy*=(dfDV7?*77^(pu0sc_-*|z zIEGmbL$oU9t)Nr#?Q`>My7Hr`iS(IG++n-TMxV$}WNo&^>N zVk2S|E=reckEUaH*o#jCQJXCt)uJD*fMYyOWp6ItJl&@~Pxd&vsxUchbdEJ~rO^6Q z7RdrSM(ZI@8RwVNL*s0d?vQV9jr_NV|FK)1?JxK6zaIXVAnUg#{)cr<=X@+exzJVq z6JfsIW`#()(4-NGwy=L=Z|dRPo2qB=m2>vmc~4I+vE#4qS9pG1vALdXlWs1(1PZyH z2y~jcct$}nOu>?{8lwP+#WY!uo5tHWYGOcy8nj`L;Ez4SQnW=$*5yDf!+f#FLTU)2 zmdZ=_P!OU8{*#$C6wB)cY|>uFxm#(pyod@XpCMc<3;V!WI$#uKLRR#K%$kyR6Qc&> zQNdc+#lysH^V&_>UBz;v<-F{`cm*D#dP+m1R!YC4851jN4#f?mkG+kTZ=c7P=#KEK zrQ*?rkFkP-X#{y;XDn+Z5LL1MS{fbg@`m|qQu7Aj^Q3{(ui6r-OJlz@t0LoDQ3F3X z*LDF-A8)T9dyn9t^u8ZFEtUFbuhA_f>EHLp=45l}fQL#`KPrVO(%UIWrJm|V6y0*F~8rwxoHDj&D%qbn-jBW<6u9ZXigyy{0H)e9Le85JbUfH23#Tfn_=J96{`?^ zXqz46*TwHo5@v471}#)|awxk(6PWPs|pl^^tiK>*H`T=UVs1=3&&= z`SCA3BV7&aNF_MmAhf0mJ24|LObBz`)3^$Mj)?xGZR#rhb8O@5W-qUF{F*%UyxlKZs96K!IR)D*2dhfy8cgB?8wW6@3N|jHk>jAbGZ(Avuyw+m%A6hlA~fHmgE zd3}QMJ){M*PdfV)YTY^g7UN%tEMnU2DjnGI7~(I!tju-Sm$S>TEKKOCES?hh7lB%7 z@3{aQa6UFb89z{w(*w9~Mq^k|O`Qxxf)(qYhm(IioQXcx93jF?zqUtcGFQQ_O=nlU zeekJ1PjUT6J6n14=#Kh4n|IzN?@!+wdKG3#i~sZ2#rL^2fvf}WC|ku}`q666cC=o4JL z;-`?i`37kQ2_m;?G6blfKDsUe!EynUE1vqu#UVhif8K zhxwTQO)go0Z)1#;tLQPoa6DozTe?y7HR^Y!THU*#1kqK|)-@6Ly!d>TpIE9bs*vK|X&;%_FA zVF!v`@x^~rN44$6yn*Js&b*B!<+ry;?}mLl)$d!ct{5M#>l@u$R~+J^^A1s6YZ|=D zDpPd7!@5uN>mJfYz;l(hD624^cGo6dF&~oG_|5Q6Lhk3`m?wH+4YYdxn;Iq3)Ghn{ za9F7HT!HuT8Xal0(!V6g^_#O3nO_0jRn{M>{NcM#NY&vt{ahlya@@nLb(6Z1Pc07A zN_F3%>NgTU?~>}~s%zEmlTtHWUF)^3KL1kP#ABl2IQOhOa?6{ruM*cCK0kui*suIn zI&wVF(+fcd=EsP;#?{Fs8kDe{@kwLZ-Q`4l4lGr;>SJq5aLH$mJ1)cZ5%DY92{;t} z>0DQq|Kb_>sVRRLN(eM-KAbl+#@loco=wehXA{biv_#QXv1oF0mwvGg#9Ke<+sZK= z+T(wTI;jmy_CyKCB;1R!HA83aOL&j%>EJCk@(x|wi>{8P=fa3ZcKhbeAd~@atV@w# zX9!}Zdp389E|!;%#c%FlW9PBAde=Pa&AsOf*zKY1x!hxfxmdBj3GB)Glec|7hlQ%zxwLgJtP5;B1=<-TV&(yQ~gnW+pRp%6bO z5<5$0yxfxsw%?j)?+3?&H-|gSf~;FX5v%>qXc6Oed>@s|5t%w#Woi-r-BrqWQ7Gn? ztrb9yUAi>Lxi&c0mlfK_)W4qaMcwl6V}A`qZ7OyxkT_OgYi=|W?;rmn8Lz}YJKX1v z*#?RJxW7}V9x0_TfpJJX>$)gSY|X`V;Q5g49`8?+t5S%YMyBDgLQ?!0AFjA^vt*m- zX1Rwj$5@5;tIS~T`w~wl;vX_n(7l3r1WlBGlHU6IWldA>nx;vRb(uxbCl|9O)2?#TecOCZ6K;>XqDz{Z09P?#rW5Ii4W4;=w?2sbHiJFg*K%g+iNFnuRVRt=QeWf zrMmTPKiP^9LxV?-S$jUY?Ax4Amal3z+>7P!T|m~j`a`c!mE1R_XAgcjzj|!8UF3)V zGZGkJnceM&Pi%P$EcA;mmbJU$O|_4`4HI}F3;pOpXdMY&>0itGi0a0^AAUG+I+MD8 zsh_mYFWL_u!aAoPR1ST-EBxB%SV#+PKXu3b5LE9G-d#{IJZ$y)zWRNTE1bExRY2v8 zJjp^H9J^aq_v5lzca|*b(T$4Mjl|BfHP|(hdNzcMGN%K zo#!jM*d9G1eudapbe@k41vzz(uCkxx&|z}fe_^@ctGvj~CbBHDsmHhXn5}-a+Itdo z4!YP;_jbw5*qm7tbH#@3krojYLDog4RQNX?>7^o%iXahO_xRM#%bEn;h`omDGT5N8 zr2(u*OXU(T{O#0Nx|~vXTf)149@2JDzdIXsyJJ(#-b+6Dsvgs`M%DXExBOZ09@&EZ zyo4j_J+h^HWlI82?XGp4F~*41cVyd#?M%+E_1MzT0~L7KdkfxaAwF{Hmd)z^2(N=J zVN)x**iP~*b$@*DTk-?fkWAldk*aT~LP*Ki(1S&SP`{eK`q{n!h+5b&@1#b!CHDGy( zV)3XI=^b;vL}B_Ta##zylID=~62%g=PdT;Ky+pAn=7O0007bYfZg-B`-YNXdcY8k` zc07B)7t*P3(BW_S`L6rj{=LI{(&JC)N@(!pgMmpR&Kb_d9cHw!AFJETw-_JK>~TdE zqO+L({t%68hj$HR%Rg4{b;ky)2J%aQ#SlIU2gg)Im(^mbEHajLLA4zn{lIswd;fxpY*NcP6J(M7eQ;= zbw7v%kr4|Rb|^mv#m8RO11x~tfaf@0+-YCB95$`cPp%*8SMWPzN*CL^KU%h|F7D0a zxQu>p>0mys$KIQbCQdkK;&05pW@~7kcJ1g&VLqk$n`_L)QW6$vrx}(9BKRXidl- z5atcuc$_H3#LlhJDoFN6D)RHu7x@>hB0GB*OAeXcE&EV|Jlbgi?W{(Rws+p)wmi=} zc)CIN*gQMoC%r}c7roJnNzsDU{%RqwR-;#XH%NQGk(?~?6>i&IqaTp0)DsNmPj35* zXZf_O{U6N_$`3pdYF?nRhVt@=cJqn6jKXxWHqKJUZVYsn|F!8x0_pXAnjCULq!mLv7)hMGoyR}>6JnLh2Kdf&begTy*Y zbSWY6^@KZ`9*Or`k6(#DRy}?t8`5$iiN6g1($43e=pO&n0`7?hk0U#30eWBOb!LBU zg0dqe5njpQ*}45P2giAaTh3F&IA~?;RM=2kb05Z^)Vvv?JqiW^$-WI_&Dr2=~MK2_Ka*Lp{vy+KI1`8^=R9M)yzU zypM`JSsq*WD@d+F6w_ApY|N^ixX&Q>QSA}kM`d^0hk#bMfAnK!=^p6fb)qVq%S+q9IT<8ZU-7|i6k~ipkZa@xTZeH9}-yKt{S!J z`7BZn%gH3xS9SboB82H;x<{z{c&!W5_4qgE-cJnsDt0cZBmFLij@=dK0m#3zrMu1p z5Pe5BgsxrF&G6P*U~X=3Aa6s^rj+RFul#ApJ6Lb6)Un%myB`GE$!lzXihyJqgW=K2_0 z^KQo*-A;YmQqx>R(`dCGAklj_Y*@&*)upCZMXOGek+$xH4X5mc(vwr4z&#=KGedrL zV7sAvm^Nq;j7bf%3VU&)0(Gpb;AScQVVe=gJdeGnN^h<^y-}#r6B$A$bWixu9PhJs zR8}HAL2|CeT);n~E2ok%eNApf7|343XyLxt|Fco_v8}qT~4qh4O!Dt4x1gyA_H!5Uq&DQZ1Jq3>(G-v)| ztp-bMMh}^S;(Q=59&nO4hr$t$DIx>0D)ZMg>H(6GzsEMVj3Y)U*SFx)@%VJyft4_n zj>p|?HheI_HrM_YIjyr76yywW+o7v6Z_;oOYujiEnrq*rzk`oaas}q$Y~5ETdVC?G z$KU$2Z+EJYy=MY7BFa6uSA}J~r|$>%%~shuqS!lCd>-eCBb{Hl{8|$49QM+qD|k^A z>L{JwFO~YbcB|eA7T=uNWFzF6mD}yVXl`H}@?4Wr8fs?|Zw`LzV%fa$;prS z-X^-Es=l_SiP=!Znwn~rejWRf1GoF4w)lv6S&WaZXRazA=uEqXFyX2jUCL}n;2 zzo_+&(UOi$o@;_)#v)utDAAEj59C3x{t)`Ha|!YmO*o@HGGZA+{|o6USbqodikL?~ zCd<`ntbC)c$f{p3uO%O%vnRQ8ndH1BoaGg^GtoAz`~O1YoR_Er2K-DE_Hoiix(n;h8vHI%Vk~XV)Amw}aDeV<6yFz6M3T7ch z_7t9?G*i(mH({~8CKiqgpGWtNc=U08zNm{CZ`IDgg!#nw(zk~;XkTnT*%Hk?RS`C;ESuSqdit*8z_B+%Ey2H-qP+n;q)KH7 zkG-cG9IG^xEk8)n6vt9b$ZF&o^DQo4)`F(aotRGHrGRm5rJ`pwXO@gwaaKuAKjS4P zZ=3f#6LTl}Gs98NmzWFQf7A-99L^Qcub}w00m~^=cd4Vq(Gn*ngc9s(yN&ulD)s5o z73tKo(H`~7lq-I8y}?W&Um4sPS+=dwY-jik(b}1w-DCsoCL6&GL1&&;D^Hk$0qdG6 zvv^hJIa1e`5?#_$WlLr8KACtouzpC3C2R+_l5}#4&Gnh*uAcu~s(v^B%eGzozmV6` zwtFFc7h?h~(%d-JSbXPKWI3i8{zYHGGP4iDC?y`&VZ{Ru6_9_2Es9;oC%O1rA zHEl1e18Sbkv=DistQN{PC<{5$Y(LXEW~kf{Tg829N2v?#C~hp3N2tv4Wti!iMB|0( zUAiw^jg*xb>*)QvhWUe1^G<@iuN3|MT@z6!&zL7ZXqBiUyjgnekYK%@&E*%f7- zWkjAhcz7zdiHy$UedOSMyH{z{@DrY45FLOt4p%ucm_P$!69D>3LiNR|BHosY>v5`{ zEtC#$R*N%w5cnLp!GG(j_f2!!_o4O0zxk zW|4L9mXpk^##>2n9sZi>|e3|AVxME= zZMn~?Jm>4J`G;%1Bo}MEbr|F_$>x-H4y5yP9AsOb!s3RWH!vYBeYgI3WW-54DffiNxWT^>yvhHD>;K=OS>S$@{Mswte<@kH0R+V{fJLbWVX2N?}b;vrR3AXKEIB9*doZ90SgTAhAc1)t186MqWFvRa+ z%iaM23eCR7(|3yK@mKBfS0&y@On*jXBXRS5rP@d6O{=2sQ&oAR0zeqQIJ$!susncx z=Z$>&JApR@a~Qlp?wJ7}El3B8+4Ysj6k-#nc@7K6k^`?sr=b=tnCGie3+#ytBc&IU zqr(lp?|ny~&=C0kCnTuc`ptY$f;UB^A52g28WITckS7j8?diwaUaGi1m*Zu5`YDHG zf<;cX9~`oRZ4LiCdmls=v(HeDR&%bFZ`Y2K(oq3Acj9;_qL!Qn0N#GyU z!*{kSz7x!+#JVL7YnESC%&&%RW9{5ioTwv%$gM>-gth0~dIPH} zICu=kE6N*tC3Rm`|K;?{XZ^7+iw^a-LzUV}*{#Iqz9Q~J9(qRE}a``FS zr>~G^nN}I*i`xVF$M-+UxzC!|cSL)r!5TCzc@ZX0y0*eqoNE=W+Cp*+*JEe+b<_1^ z!uledWMLak-%YH4?y-lf_~YgI-c{h{EmZLHPXOABAYjCIb?s8`;6Md_Mnd%W&N`LVQ@kM2cRV;ZF$%n!yvr%b;6uizPaaq~w()fn9L_;Xj(S8cM@ha$pV2WST1mFkH;(TI zDG&Cbc0AgpnT&tYVMAfI3tGw-dK(UFv(?(8}Yh0G3 z`-WZ1>0%oOYKIcPO4~P>*qd@OdvF!YR^#nxW{;msX`ej(T+rz;SrY!;kt_)PPYRJ^ zY_ChUsfEQdC4~BIZ2hP*zB78VlV=^a!SuiCes25LQEFTUX8H1xqS#bjQD~Z+>ykh( zkp7GgS$1|$Tjmw&+`03MJ$E^Ia#VRBFHa$hE@Q4|ESm1mG6~3j4Y)uM3rzOR^p=^h zH#B6{kYW%CKw97UiAjuOb(-{`O3xc%rWDYL&3OaRk;@aD8uY8~fA*j&_r^QqU&+0PJ`x$Z)<3a3aUBoO$y-UM zukq}FYq9272QtBL)8&^3e`BhSM;I$iI5HB=SN|$eUX?75a-n4iRG~E%0-fqn>SYUP znhe^^EV94xZFDK9j+5v}*Q#&D*TZo_{}WyK>&tTg8|`1yqw-iId+R^-!SbCc{jxe* zR|hsUx}!$B*$ii3mva1#hT2(l!*#XYg_R&1#a>8GpJFrgMkpd4?azSjkB;}1(>Y0= zLp=IE48Xn*80##aPhe~f4jSaOSbO6_blTC_}XuW!^b1vvE!tejl3I*tP?f*N5VYGry;xJ5ir|eKjUtPGwxr z=Q)x}ZMdptWb3>=tsQh^EmuQwjO|JBa%61%_Q=*MDauNd@LnMc!Eu=lb8t}?(4m

lC#VYKowd*Ir3-iOy;FKvO1VcWg?njsIT(JI$M-uob%pc4 zyh-byub!+lhrZleb$tvO>*GGJGTT)S8(?NNJDs(-+kp5iJ^ZyAR(hHnzG2t17P(3W z2J9B_9sVjJBf3kdp{3G=gT95l+Kys>FOIa2+i;I1*+(cvR8Ax|Jf7&t{AQ<9n4cHM zv@hKk{fW|>(zrDG)2YR2ck56p^#dK-kHOFu_eN`tcEEh;_ay8V5Lz#<7=)y(&eHk8 z#Vc)I8%MuU_5vGn+ZyyMcdPw3yQY)X#Gt)MTv ze4kL~R}nmMato$nr0{|?oJl(1OCdePd<3D#(R}21s)n)j9y8aaWzgPW1Z8Hy zd1T)9D!+=BJ0(eCCQHtY*0B{i3Ej&1_HXU}D2e^D4f&cl8PYBvZ-=J0qdOg;oYJ1U ziL{vQCGbxuSf(}SCDU?!6_;tbzKYAVTwirwre)`xCDU?!;>omJpL9~D6|&aIM}PA9 z5ieduDNzGdF5Bf6zSB|o=eAN`<@L0;na>(A-*L-NKQ&piwc0$|<;^~Qs*b%C?$MIc z3-dvYr?zjmAsLEPt&y$?;-DqV$`xgiHkafr9Ijb1zHU({t+gZj)CSRGkMQg@1=u6P z^)jsl!m-93)OMmfwmY{I`BRV2L+K^3q&!Lsa@g*4Y03-_0V!BSVACVFtZJ;O zY0Vvd0}nX9PtO+H_+YtwOjo4aj>l4jEk)cK8lEWpG5m?`$vqYlQ{+$hpjOJ;TG!hzGTwo{*nty!ljWUZ0N>vP-f+2{6)d7Pv0G4zPtnR&ed6n4EVaLZHs;g>y{NYfgmw*p(KHYGa6>+pAzNHJGkbmJR4F0k8kG(EP zYb>?Q$L-qtbT&<#9~+;w4%LlHC}u_70p%NnToz%wyX0*#vbDD-UxP8{v4J}(^XovV~5&=q{A_c;%%1B>8A}J~$clo@j%k3s^V1{XAZW z{kgg7(hiLXPfF&ONi-8X!>RcuFxzmxwDbP6b`!HffBx*{&oL{@Gbk6yKXguSmHX#J z6Fq!hbnkq|cQf;OI$y(cCLdpc0`<`C$LaRy~RnBek7*(pS#TQdW ze!lyYD=#f0ahrpELT@)UMK^xH?-$2};;Q8Oe{sS{hjW=kmaJy-hVLMghmtdC^=d+{ z2ZQwQ#G1@Z&ICI<&Zb5;hIN$5fng@>WBi+U;bTm_Lq5)$9r+mJ-k6QO%WwKUm@@ep zmoK}4)Xe^Q?Kfl*C(P>7bzUaxf`*Xae@xA3J6l53Jjo-w!OLMo zhdI1Io&&W!5{Za|O8CUo?7a#)gZAC%&e%(Op*8q1eVr0ErLxm`_x9KxM=`vjzj8LxY=pndQshs36lYsEGVGT9Wsf&-dr;oO7QXBOC}kC>?>(|t0yu@|CNzOLUCIv%sYd(|ImO++d6TDPW*T^v?c3mjBmU`d5kM?Is z?8jb~jghlkdgPI1 zZ%?{|FsJULbFtc=i?F_pK+WIF?}yvkhbEO{ZA#3}NDw(dEnJZ}IND?no`>zI_S?}NH0OAv@Ty=T8tHe};^H@1 zA%^ye4W>_)pI1z-Il7}wMSm|5Yj*xI+ianG zY+n6jokyL4H!s%WwITY&SKN4p5Uf4k+wA2n%a^J*k*Epds?G2?+&yL*(>F6P+jNP2_UdKe~ zOwLDYmqim59Uu19AnmJm{EVR)(?%w(NLEzidlky-Y*cUoUhKx$Rr0wTGw+=D*v7Zw zOVPF=mWh;r$s(^uIZ^+(`;F4072cpv@TGc6Ncf$2zuuSkNtfgPzw|BX(mT?ruhT7n zPHc0lzprgimN_P8$gPgGNBZTd5iWG|)3sk;;Ym@gVxuh`6pndpK1V#EV4t#_w4ZC< zt=2Kj@y;&^benzA;D+;XRE}};_$=)z*uBZJn~|+8>6axN7Gjl*YePY)}m!=VS~bPW}cC_$xP-8wB}*^XJ|-bPTiG zNd^aavmQ)rzo{B_HhxQ9n^L~41&ma6ru1&3;2izw(iQ2{v(zi{^RoMGI)35026%w4YebA7od5f2S&8!$G}g*pq4I;+ zH_6JF?}X8lH)q3nYIjs;kMVo_t-;QnJEb*|_=kc?tCct zZo6w{<)pJTP#vC>QL;aHeglzy5Yx;_KLGP*Yq}}uj%9MWo}M1N zFE&4!BWsIz-MmV93k{m1UIoIkM<_pt=@qWMp3n;Ws_XoswQutr7pJqdJLawrYo6rB zVI(SQo~$mTKO818k)kYOww5C(6hB#Zoo>8Ok&ROz6?=M09`*EkK9aNH7zA$v8BMIp zY)T9Hk=@K*2{kGRX&`Bx*lzz8JEwZauD9I&ol4~zJL2y$eu?L7;*%Mq5sqa{f7Nkf zK7mP)+aA)dAbW`B>k(I>Jhg{LUlW~;#%3GiFWVH2qJOEr;D@v>(~E$LTbIRTB<7Q8 z$xc&>L>M#ekYC$5U&_bvLKaBAJ#H@D3)+ugzOHbKEZ-iN>+B~b8pX>Ke+ME`cEY-t zoy>2O>#Hu&FC|}*Nu(Khmy@HeF}o#oR>;R)1l+2=xoQyV36(n*Yj2n^M86GNN3`h?2e;OC(9#Wra**(f3+hpS*t;SH6W4^wC=2eLgv;UnF-nlV&bULKgTvc zfzPY;PkNJsQ|kf-Cdu(t&YXd#aK|_PaV$O5@rEXd86v4v``#r=G(=Xx5IO3To*`tP zU3VdFFcc?0zS~9zLi^_VkhwQ!}UD}jRe=S|QIGtJ+w?>MZYI>*48B$s?)UicH zFm1wd58quvCsbh1B0eE#u6gG;V!ji>JVScWrn7X?FO0bBQVlixXUJcwNs-1+Ev+-p z^zORcfI;4fK_*okW1vHXYxm-RFJ6^-jIe&b*C6^w2Bxcda7 z=Uq22rL=v@{}89isIrzliVJGmURLy!YzuWE%4(r(ZHXXdA?FR??`OtLae5c%ed?!E z=kHb1JQteC-`<-<6WaMo1s%|aaAL>fheqd)YN&PiiLJMo?o&D=$fm12Lv`Y436sTVZ7(Aqp5XIzw~l~t zp><(b*xpR$w4(;I7!3IuwuAU5CIhX05s&l*A^WqL<|WcK%=g%&d|9@_UmO}$e>5Co zo1MtS%6wG{VbdPj6=#?&-wu z^ZU-_+mt$p9utkF^7Uxmr$jm)$0*IFO;@D~OtY}%3VLp{qAB&}nzo${WSUowx3*@8T}5&9D?F^N#ZaWEd9D1Z4* zk!D|iw}mQd=)1gxx=L(s&hZqQXZ%(!kqc%WS(*H~U70keh+dVZ^mouXVVinrOZV9m zb%d>jw!CvgEl?5U?2udE#E2`Tt@eDbMPKb?yK~G1J=CO^a_CwN1X|p^+&Rjj_aFMf zYT_-M&27b>c45E3KZt)~`j`qLnr=Fg0>%)|pF!>B6HUG_T}-D{o@C`0n{FGccclMr z9(zG9UA8Osi->QdJvnU^e%anIDVc?gCZv}hKHY_Ux}&j5v$Et&7Ga zs}gkK;H~2meV*a!!n%mrS&53`I&^PQP2L8h|)p1i(R|GeU)_g z!gS^NU8y^`c1I?`GCC$Ycr{(%WR@oxK7YMwYhS-E&W6)tgDB7j(UJb)_i+y|*|NOE zlP9dBvC~Lb*ees)-N9}*V(77;{D|`g6`e3^+$ZaoadppH*fcj z`?~N}A-B6>Zc~46k2bvm>8PUEy`g|cwt640#C{>V+J^kMOgHd-$3-*r?FMGIrZMVB z@5tFNId$cxPTf^6_6zVu{D)@nWA7kB`iq6E>f0V)ius^))SjGr6sa_DK4&{4fx~kg(4$F%9bm31}Iwa>ybRkD@R`f%oqP;S94%b5^ zOg@eM+D6)JAwo)cc~8^3-)r>y>_xk~A7r$i)!6jqJ=41!TzYc)ywVF&SL_hGH05*t z9LZ;#LK;xxkMala97c>zE!}3KxlWf?Y(2en%$Oa85FP~Qx%{DS6m zf$26Et#tN`Ond9soboahmh5y)_k!}?ijGWp+%%LwWBqY0q`$gcMtQoP@eMiah!&}B zg&eC_k8OO(nkmb#IDZLc*jdH4u}~SJ^TPFwKM)=ZVr3Y zN^4S|1be5S3*=Y)JPNJJb-0V=4MBR<4#Ph0c;B^?_YC=ScWXTd?$H`(p`Z4BNUzj~ zVgDuWe-=7^;5o8F>PFjnXLyy2A?*o#bC#Wm9DS1-X=N>G0a+EE+TWHR-Q8>_K#{5%&T%%wLnLKLkX) zScw?F@#k9bVc}&B7p+Ot^?&`^UZBtX>;EVbow^WrF~|C{j=p0Q+>yYn`|Y5=?s`J$ z8R?mQ=BBQR-}=|=^SMG~td5^I8N)f4tiP)C&s#66Qu=-}^A6P(RQL|D1Cz6|yBktr zHXR=2w^ezIwgbsk(+t~@==%idUsFr_T}?*NCx=&j+qcAY$=VO7c%S zJBj{@j>+DnB}P82HY39MaCkf)o1df)cG(?S1&$Ljgra1Ejsvv zZal^J@;$HyAlgEkNe}n;DYD+*=-5snbQ;ZvO0e!yrn_ircv2+LXFa=IqCXe%?bP^o z#P1Sqq-2*ssjW7LqkDnrDov*BaQ7p=b`Sg%9L>1BvK_lrwmR9hNn9Y2? zP3`Sn?YGl2SL1tlB=5IIdzZ?gW?ef(&JW?-Oq6?$cjVZQHCtY!8D-mbh9t>h>Mxaz zx>z2JCCo;Cpweoq>leyDtZ#6qNsmlQ)#N^ly1mYmu$J$t+=-@d_LIO{j``4r4&j=2B$=M zYlS4fH%MtBF`tNIhP0Hp-)J)=&vb>%2WnDh{KQmt$(X{#Riu5;%cskHi(-8r4V?lc#=>C95@k)}9ydUle8E^Z6(9T`i+~{L9rq z?ep^3JqZQrR9e?O`xANRRle$2*st(qkYDFSd%C1E)fG?Z(hjjmeYbN)i=GMmGN#DI za4y8|7^l9-$^(~z)A=LH^~vg82!?azNM9%J=KiE=P#^hyWA{Z7Z533$$G_c>hW*p7 z?&xuvFkMXF&!bJ2F znou5+tnPDD!*(Y6(_4SSi|nzr=r;0$0}~NJ=B<{r_p)t+iM}+n9#v@=nL(pWfWrFO z8L&j!>#@HOsrYXobjTNNAHtV1abCKIPk#l@v7+>W+&)m=8PwHAI!ul@TRgsX6rIY7 zBHS%aq0iH)etT#>Ems?5m-j*O_Qk@^N_huoH`7@u?lJJO}p zuJ2@mthpcz4h1iNY$IIcVdZa_zcF>?0gw?mNn}sH!etshjNWYrK{TDqi9MAryx;Tb zIX|4Y9oJRX@vcT0r<`MyL|5(WTk*3(?LDFs*3ZtY`D<&F^;_j$T=DjU9$hetSH|pF z`SU9t18mhghETw|D4Snl9&~blsL(Yn>m=$I9`O{Ocb*?&OrPzDFXTM)3GTTLEO9O7 z(qjB>#SZ71`lCq;l~pgh=r6XeY^q(y2Zp>?P%^E9=p^W%Ht4Q&c2v)GQhoKu>8{iD zj*?3X;d?pjZuM@allL$$x=Q23+c5h>d{UzpME9RYpK$e8Q1$(TthLl3=oq0Q?GE=F z1sZk5-?q#?&$>^#{P5CQ>1)${KA%qA6+h9MN`1rc3#IX*Xh!|Qw*{K1AeyPzwrQrK zZHv=P$8$sH^npA(m1uFZSwz5@)-oE6vh1_mg-(HN+Ry(icV717e0Aj_=Fb)_zboc_ zc^A!lU)M@rAHf_Fu8;HzhaBr8i{7TzM^$WdSAFw{yWY&_khvrVs``fYh#n0R(aHgazUAc8cm!J13N;c?S(|N9!+TSaBZ?1)U&gSYfmG0zw&;3@oRj_;ZDT#+W`4XS8 zasQ6Mk6r50-TWbO&jyyZL7n#`@4c_Fr3rf3!%F>kYd67EW%`@whpSn1j6 zOG`hKYNWkL@_dw^JKXPrd~dqZCWoHvI-f{KLq*-Y=If0n%e>pjXpboCj>kxlhdN4@ zZ>ri0(s2s+eL-XUJ>FcSKJxd}sUqdeCLko#M;y4ZcExqVxjf;Y2hSNtWR zLb~?8`Aph?j||FDH1&X9-W2*TebT2jZ4b3YZPfYrt#+i}<+P7?#lDxbnisQf%ULgU zr0m6Y!JbyxRC*Rn(kuMH+shVn$!|1ZM;k47~XWba>QSvUXSCGZf1RW8%t~kGy z>4D$M9z#o0sR^auPN%+_E`2hcTA8ktPHYSMvMa`UA?1lCw?EFYuX@H=DTrvLJIA>l z8Ij|?(ayc0wESE0(<=|Tm{>Q=RN~L8qe-S+WirecQtGfkwxHcg7Vg%22YXj#luzr9 zUtzxitSQk3ZNfj~KSw0w6LGOT?JmT(RA=bfW9ZsF2ET8EN6Yin$NFt{pP^8Gk}x!} zLb_?fzHIn~CNRpC$q>@-nMw5PbZfue4I6MnyxmfsZCf4e=i}rs?nA6;o-l~Hzdn@a z_jzS{2})Ki;jnBCs9v?{h7<2DrbMT z<#FUCh&_1ck4dM-F<6T+v3Nek{C7hOmL%{qZdh3sl6BbsClo^;p2x7c!sSaJqfRHS z5}OrbScH>7Eoposw4$T{HfJ{JpW~YAHbIKvv-o2&;~OF9?L8SkMcd%;ZJGb`qv;(? z#~Y~1xb1t&s82>yXrEnoEZueDPQ7=iDxF#~yLXFtFQ-!QU*74o(sNVSMefU~JGJkq zIUVWJ`F>N(+)13=D}|_FU?^7Mm{Q_Nb+w z$A=^~^EdCj$vOTUErxbCZ$A}2jxBy(oLdGSL{_0oltOgodjo_cWUjxd-i0l4Ap08PuNwf>^Ju5(t zB=QB(gF4(3K~wRZeKoO*6j6w7;%mnx@QKs>d8lK%wd-xdZ~FOm>u^GZG-7uWxb+9| zs}AflvZghj*#){q;@Dyrsl^FsT3|)%t&xwH-`3)fV#woT=j`+0q4|8HH1J++_jbvD zR1b}KX*fS@KO>PwyLlb9J@)zb)TSQ35wp$3?D&QB&GtkSDkrvHT|xBxNRB1g?l-e- zEXN&O;I8l=^F4r`#MU7Ubn&f2Z{M(O-*B(c7DS@=@wGwo#sGJRw3U;3-A_+D3{-z%*NRTJ;Xo{}hsx=2@Qcn$T4?dw#&QC^XHqkMNPEUA+8 zV8kAT5S-bF@DvXFRg|^;iF%jyMpdaV0TUrBn=d67*C_+n-TAziw6Wx|wc`lrcTNpng%CfSco8 z+D0OSLf-kzXYP3PfH_}D{;<@3=V+S1NtMdn{$MUUs2dZ?D?TIRb24_;!qvB+HfsF~ zna938aC?-0GA}_Z_%AYZ#+IX@u5EUtL>}jK?N;NIku7%+CXrhz7HrEcbi50#TL->1 z;o3E3XD+mE-Wt9j`gP?Lw(j48b5!Ts_B3xgG1l#l8|CX{WViCbZHa~oox>gM>u(iv zSm%V3`CTSMHQ()Uu5~zX3e|PAuexgtwzYf{G`CRZn|{Sj<%0}?np1++I$1Hwfb&7 z^E4M7M`tFCUl_wna&h&ZhbW34=Bme*nNPNEi5@cwbyR>y9>H-PG>ds=LbWzI?Y9n$A^^%{Ir~c16*@V(*Y=y)!eoI;`E>-tHf-LfhNX_uqO>?%&$re(&2F-N)5YT8f`> zXZ-u_?cc7ar^9ZL`X4<{e*fxX`F-#Ou3h@ubw>BLZvsl`+WE5jvaP9o)m`2`H!P`q z$4|e{_jgD15a!cosPy*@!yNqtAMA0sgim+BgXpY3FFZiL|C9UOz4X`h^DC=C-4t-_ zKaw-F2g!MCYyG$UL21V>OXPRex83jW$?wJP@5`6U-*-MFzboDE ziihRz>)r3E-;uv-zAL|f<^E2&^sl+!-*x%_$bBbYci;cN`%TGvqx;=aNo5Ztf6>AC zZngT~#xF^GTECp!uD$M-@P1#B-`Bg}&${25s_Gs=r!3MC`TflO@xS%2t-ZevY?hiX zalf_Rxqg4@GKsm={m%7WuJHTxK#KdId;6yXrF5-+)N327f8_w_=+C>~%iQl=AW&Yd#5e$LnlA3f!m z`ntLGGcP`W$kF4c)t@t?Zq8W5&N*+|Idx+vest2@OlI6EBd1I`|KfR5&bj>ZAw#E( zn|00wQ)bV)aOOEzWQJxkQHdRuZzYYGNhMr7?ZP2LPMX>nbG+hHoh^S-{n3}!ol`$+ z&e&5XRZSUr`W)(li_e>tnKW(eq+wGs?G(+OP(=AhojB{F+0*9CoIC5{(bMMENx_** zbRekrC(WhW3?Fsz6`4yinWM&DH2Xpx7mADeo=_3x$NInH_75F?Qr&seFf85(oIH)X z>R=S)v%gcp=|{?Ys%mbtv{oRjLN)z6@59nhTf+F%iX2P7h`uZ#KDgI@KPL{?(JYju<;Yi@W!&H8Zxp3C>X&1JaIWj9e{~;qzoja+1+Bp}n z>>h)zZ;xQY{ImOe=rP&(MVd(1-Y~x~-tr$dbkaGqX4jp2^0W);I_LvGk1&7BZ-i1s zd{T$s`*{(z^h1YcE}C6`h0V2bGw0UVUEE&RaaLjemfw(Q+WJ|A-{-8)kP)Ni&aInM zKXcZ_naj_qo6R7b9<02PRP#ymX4comIv_01zCVgvS_FL!J*sBf+*9fZ70>uJ!j6$>Hcyo z%*6XUXMRIQCe|qD_tE$brd~XI@k{rEbogS#yF9@<@NQzy6<2E6#iu_b4mO ze^UL(I%Us6Rrt@Cy@}5sRaew3Y^g7&gS2%2dsAOH1Z{djJ!nGzpCetSv3wflSETB9 zN;Y(p12}%deC+NpJ(mMN!R3^9;F##2Wq)5%*+}P(=JKOr=FQZ+=We^g`0hJ5`J1PF z2`im|=fv9DnJz$&BJ(k-doflxOU>$vRK5q7qTA zJ0G`K%WwmJUU!<=9iiFz5}8`QbXyu%-5!;pOZKB8!t;)?H)@+pZ^at~OeH>TV66Fv z=`tT5+vd`HI?PA?+X5d}BdS8~k%;-;$sH0rFTA%m_VL@GWvg$UN21|edVgZN=*|yK z8m2p-o6^<9+6r&u3cVc9VP;wmlgS->WcbFTX05TzNBw_T|7l6}$5?T0I`PB0AeL?n zfFtyTGFMEPZ*@|>Iu3s3K{dmC2DO)umo`k7b3B{mox++XIBmAp3|=i4POq$4{-AsK zsiyp4%qe1obcsfIzXi8C`)YFS-kbNKb4Z>KE8ei+7EDiU2X&#|?npOUqeOQVI+Yx; zpxmYADz7H7Ja?B`zWwHSfO|)r>-VJG(C9D|Ax}h~j~wBbjXZRw`rqta=r=l-Lt3;R zj2acv!r^{dnvc@rqtu3Eu^Z;2{>U-8on0Sq4sthj=ugqUKX7Hi_2W@-ZKhw)uZBz+ zKd-*-@+pO?Mx4u*c^~#;}iH-k~$0jKNuul zk|O@Kq>|7~pqufpB(>1Oz6$hV4*R-=eH&=g82WAn&;guFi^Z&9mcurh%zOYN+7BIAr^KdkktNY z3;VEzU1ni714-IDEbJcp?i&{NkcIsa=y0yVN{fBkVxPCLmn@8WLQ?$QV*l4-5ASXL zVyGVIuRBt|d=BVUMn4Do8>7DfJ;!KlNh<55$;IJcrWQ?W&jX*gisks*Wb)e61ii2>oSS6FH*;GACvk`(U%Ng4Z=X^RE|{gc}^5oiFXm|zUBVPQ`INg00wIexFggW@T3V7i4@i2g$40XdsY$_Yt6hJPH$m-e4N41Cp99 z0Fn{>qM=1Vl6D1a`!p8!c2PXkFVuK-D(z78aPPzGa(@aKIEjRumOrvpja zOAIvt9l*7}!@?FDT4Cr3AnDUzTG&QIyWj#!$$4)e`R-_-Z!m?O0CY5$aX!#bn2Rm| z8p&a|0zJWDUjurY(ZfKZwfqoBr0yCETW{!Xi`{uoO|ch{)Zlm^sljL<>6ecI4XPo! zzZ^(r)NMcmIqW_Qdj{x84toViDEse*dhexSdl?!4B;}q8B;}qCB<0QqI)wAP8c52$ z1xQBbE+DDFw}7hnyJbMqrz?S^2EPQ7+W!Mca{e!n=^zJYq`R)vh zt+Uu$fPTS!e=m^G)k8os3M&l#3`lDAJdo7t6^mVOvHxqaJ7BFZA4tAC!eURb*a;Rp&0^bL)N}NxK3_ zX2nxLgSoU{8~QVlq*wRVyN?6OcT<7n zyF2W=`|P_P0*QWgWtYHUW*|T`vA~M9J|!QmIFzOmw?7_>{^Rm2lNpRtN4J{r5}*wG8||; z$9@cG0;AbL*Yu+PyB+A1G@(a;q#Zv6n#A8d3v>pfUt8=eKp*F@S1s%{AW89mK%eB; zJr2||4gwO&ISS}3F6{)Mp*2+Qxj<6xg+P+aXMm*KYc2K$peda5mn?RX#V!V#&an?$ z*dsua-zp%f)gOSQia!_&SW&&!p^d=D}n0D=({CAGZ_5_=mJLR!HNz965GRg z3;V>O%Hgg9YUaA!3^c5U^1C1CV$S9JK$kFj0;rzRPKT)#=QyC*y(z_cKu2-fn}CKh zx(DboPVpd+^u`Mo`zMS2hsBm3o=Sb1Q|t#MI^1DElJ%kBhda_ zgWG_P+L7wF2B^;XqQxsX$W3CxB!o&jb?Mtp}3)z5yg@Uo_Nrh;pezfh5I; z42=Pjvn|l=uSq9fWFA+5uke+t+KFJftGUE2B7;Hy#w@BMrA`&sc$pd186m) zN+7b@l%$RXlAKQlTFGIx7B&~?c@Db@=x2?NpUgI8{DUN1CbrCB=sQB|1w$z^nZ*V2l^GG=YYP)=+8hxiT?%?N=%JV zO57Q!R}JO2FObmHp+G`c#{dak)mZH5KvKq3ASvSlAj##cK<{$74*{iNAuLI)1S(|(UIpsIXd}?Bj4DT_QorPWsRnwH(QKfn8GY8!-9TcUegx@XmS{S?qX{N1I7?lg42p@)H_Mg5NhALkkzZs>SJPXZmq`Mn5q45Pl-#FwxEKoWMA zh0V0E9{?T8DV_p4p3zG{)r|gbVgCg>k;8U99-29$1AvaS}uV*hBd>n%2Yf|jupkd*O$Aj$6o7JI10jTg zG?&9(x9{Epx|GAp#;A_;J|M|?KOo8FgFuqYu|Sf`So`iYAjxGakgU9DeJHtH0dxhI zu@LAG?!P+?{Q*e$+Uth;;u}f3FA(j=l%&Q2NzS!E(pS@fq+c#FbRCea#_jc6K$7+bi@gQtE1dRTi(PE7OMw<~>{CEO zVgF;Xe+QDDdJHTQG14&Pg0FqjrV6kI>zQ*OA0VHWBTWlSW z^mDz%e#T-OfTX>*07=eYve`#Ft?Xy6V_SY8s3eY#WR<8j`+J9N> z{{czbKBs8f-GP==60Pk6Bvz84K+=;Z8af3?=zg+=&9Ja#Ko4-aC8r`kMpJmK%D?(94GY2S`dgae~(Gqd?!~{LTWBwoS9xnLyI=%PsaQi@gp=(k=p$T0IOT z>%3+5-A{mI%ztCw{l&i91SGZJ`7}j)14&;EvapecK4P)8K+>Y`0ZEVl5J+nEG?29D zd5e7sNLsYcV*hEeZvsi$iiz5y1AwGO2LnkNM*vBS#@Kgf*mtvlq(z@GbRCei=uQiJ zz|f->`!gVE(FZ1JX@>$yt&Rnf7LBslu|P84&a~Jm7JELBq`ewQ#^@#>Y0>TW-B*F6 zMUU8btL(c!07;A547~{?Eh;-*WA`!iK_H184kRtQ6-fH;%Ro}AZvjb*zGJZ~fMkqT zTkLZd`x_uhy8%dAv>BO_Nre^_3O=kj0O=nx|!}bryT0 z#oi9IoNM}Zi(O)|-v^Skk6Y~17W)E_)U*vqYWj|$9Y3Kp9S^VjENd^Lm z<$V~Cly;J#Q-P$%&$jPoTG)4iPT>5W020gW8BI2lOR zTW49=1r~NGkd*r!AgS|DfrOi_1{%oa{u)SX|E{5(rfb?sK-K)+QlOvkNVgdJ50KQQ z*Ex#bXXrpfM*>M*?f{Y++yf+3_Yja!-487G$3Q|k&sgj)E%vuSlJ*}!Qmg+03HK>E zSIgK1NVw1bK=R$;K=R$mKvMgOhRy~ON}Oe3R~!0*#oi4hE&40a0@mt}t;0Hn`|1os zcL0s%ux}cA3`o|~zc4iUJRSY>fga<2z5?h(PTL6dFqd&F&`BKjHJ}uuWk9k5e;i0C z;#Y?L03b-=W-m-F&uWHg-rrFoMX=ek}~E3Nf`?a-2^0M{2NH9 z_+21rN5u?nM}Ht`$00z{jv+u&mytkHmlJ`cE+4h9PXb9@W&ufEJ_{suX*P5xkksWl z`|i&`(&PUE8eKzkf5(}+x4l2m$s9HsNT~CpKw~&;I#3OxOM!%578ttO(3gRv+}{Do z3VZ|5ft>bT3+wwS4f_C)ly)eP?9q<~DlMb>oeCtSeZtU%hUOc(9!Sbv0t9s#X@3MX zD^2Jbpy4Hi`d$D(ik%1z1iE2ILPr2Wc>}r_XfdM(pjQ5FrG@V z(mvP?NVwGgK$3PSP#dTC2+%(mO$K_M(S<-#m&<`3;kw)iBz5@;(4!po0FduUNFYgjERc-MIY3J)DZdMV{>}CKw1r&@^d^Vh zVqtgLcMn+DckH{zEbJ-!ZjFVlweL!1X}SG@KFlpT(83M_+BAl0HO#_}v#^f<9l+yu zEs$90z6vBQdKySt^a7By=#Lh*9!OgBmW8Ef>vt7ElC~d^d^gC#s_eTHENl$W+uTDJ zSl9v}X;G7f-3lZvy34}uv#{>~NsHD4NsCG^(H5NyBsQ`ch8lsSre6ROJJMGy_7RKy zDbRnpeotH23qU9FO#UAr*-O{}B=)s8?Ym9(-NAFz%5;pO(LmDUbSSoW9~!Nz4BZHn z;;^p(?ZD_eKszyN1(MpY0osMbUImgGv{~%GfTV4E&ehoW14-Hgfyz1Up%yj_NNi-s zTG(hHY3~FJn{McKAem+N0g2VG)x!R0VXpy6dk?PH`8yOycu5V=K&Hv_fF!>;Kr-{L z1QKiG7cBNZi+#vqR{%*FzXK9(_8L%MZsh^&<-4%zD#S{A4t+3 z1#}>PHw8$(`vZ`8*0cc$*W2-Om3jSvq}N6QNv~xLodzWRHyKDq=3=vNIIqXXob}vvBhb;wqfpdNwNbJB* z+jlPj$((t~!u|*}jMHuak`!-R>?WY2Id+H7Xsvbwk`(=cB*lRidl=A2PBF~FjsyA- zhmE$dj{r$7XIj{&41E=`HJ2LBvd!l!j8AFYk;JcjX)W$)tx}n%6lyKn?TZz?_1c9fND6! zlNR(7`}b(-}YqGmn@HMEf?73qUfvKL<3CIn7rs z>;WK2`wEcEt^KajwjBcWQLbsDg?-V&eqmuRS=d`Zl1u-q6^$~q5J)uNFBw_^Bs}67 zAmM+11RBV-{}<3{T!WHplt&y0Bq@#ok`&{BB*oc4l42H+aFqriIiIo?Xa~;uEsNdx zS`9l8NK%XhdNoD;cM8zyT!XU>T?{0BdX=FYfTSn?0VHYP1(LM8H7MF2NYZ}L&{;sz zqDz3J9oJacofftPNZRozkhHwl0xfMfAjx@OAZf?J7BG*rhXYz+%4- zm4(bwr%o&mIx$MQuWslo4oCUc8UxIUG7kW-uuB(diK$?X0#&?=6-9q1`W zj{`}5sYWeh4-~A6ZtAWL`dDu`dCAhU>Q;XcnWlfP~ZR)T|V?2ax143`p8>8qigo z;u0Xq6b-7U*K||0g~Fc0o}%7AHEfPq>RP`Nx8K^ zy~?Q0GYriGlK#8K&@G0(X6PXx8KW10B)?Y-?Q)xjz0c4@L!U5ouAz$zeFf-rZrg)E zr!o2kkgW55W#9b{=p?Rv8<2R;mwr*X?H)kl-+qXNod_gtI~7Pc*HjC;#KJxcByIaK zknqW$0ez%~`s!(*k1~1@=)XM6{sbgB|I5(3K$6Q5w`*@4W2oBDWFVoE=|EE2B^G|l#M!eUPVk}^&Ln!qVe1(Gqk2xtw{+NXj3pQrnQuX6nVIKK6F6oyF{O%}tj7>3Fa z4eO6A!uk~r#V~{+gkceeVls-7VG@SPFhs*>SPaAZLqjorC&S|RKG%Eq>-+G1Jf4sD z=f3{j*L|J)ob8;mz6p9j^3E=oJjQcm)#x>eX(Mytd)B9v!N?xJg$$C5z&FWCeGdKrLqk4(tIbSRJv2Yu@ zQ|i9@k{>fqQLRDmO1>WJB(FvX`b+X-@L$ROZCerbcbw!FIp|DuiL@nL)tQpdV>Z=$ zB+q`n^jA1;sdQS{CADPlOCIB6^qJ(gUrL_UI>~4Go8;Aqdo)r%$!9rKa(|;F|Kxv$ zPGS#=KZj}7o(;>YP&h0%cR6Rg)HXNNU zc~<91p4BCiXLYUQp35cgoJz7~Qe7Brg)~1r_cTgg`>!RB_Pylw`$h6v{VDl;yCk1) z!h-00cawZvs^pbCQSuBfmfZ6d=w|eg)H^)?J}Y@vuS%ZP`;vFbYO)_B_xH2pnQoCh zgMTE?ukXTWemhIu^FxQDY{_#zSL&WAx<>LIpDDTLQps2PWsdt=@|@R`{UmvQe@LFe z(8r^{JW?TT2-o9z$=7YQ4}D{~^%G3XpLMRJSFCC_E1 zE9veMs_7TqL=_ z=Op*?qU2uQl-x_b|}Go#VPBuf~w4qy8pH9^*!I7u7P!qg6;Atr9&i`8+Ev z_xF?JIsYoTm%kXQ?zo*_LKs-@Dhpl79*f|{jQf_{-+3;Iv04ch)WeXl5J zisZI8N!@M9{v;c>G&=4w$;Z``Z6M2jK00o)vc4}x#}!CE?pCtz$l|M`bjT1Aq7 z`*FK8I9!?gCI2qt32DEOy)IRSM|_hsA}-d;H)QK1|2{14<*4nxlK0x7(h*_Y;ga{- z{gOX7@{#06z_-%)Fxp1RZU2!5gskr?(PuyQkX%hCJ5qAbcS!EJPIAwmN$z=#79_}Nbd#xAJq$}-bD3&>A%}+ z>MoL3Xg|s0j+MH98$k7PvYC=s=qbs6KjJ0HYxS0NQdqT*q|<}Gk@A9mlj_5{{U^o# zmRGO1{>!8DNS2%(B*ng?(kt#L>7#JmD9JM&FL?&DC13r=B%k>!(ix%c2a-QY^o8W> zy8&&M+{-?%>v!CtMY-h1#}di?y(kS1)wd)+Qm(3vetT3R`M5b!kA&Eq7fFNr#`Gf9 zVH(Xe{#5Lt(!{X;j-qhqXUU@tB0G@mP-#g@Y;{kPJlX`Q``s$Zqg_LFw&c<7 zqxz=gbNf*8XkU=6CHr0SJ7T@wkM8n`lE)n^x#t5Uk9(%%o~KIg`7*MrCAYXm@{V{! za(~ZA{w>7I9QP*rQt}u-N^bEl)jlhu>M+SOI92MtZe-KRiY51Qhvadelsvzs=vCAx zc?RE0Zu=+I|EL~bAI)H-~{E zU508=qvX%wC43yUO_JPpAIU3}DS3q^NM50fq^fW~xI*$wOC`_rA;~j+OsWdUJtMj2 zTFKYEUh;XYmwbKymb`xbKZ(|FXQ?XmvWMhe4v;*?Q7A|9jyO~Ddu@f1+s=?Y(>o>4 z^kK=pye@ezUy-#+Zo5(PxSdpct%}+vqKT4Q6i9Ay6WLv4m1Naq?@69Zi{$gzAoa+J z?Yb>g`!+_^oh7$OCCef^nJka&e6nlF?j(DV>?yL>$r{L-$$lc+O1Ax{(foFoJinpn zM5=jY)5vZjdw}c-vRBAHCR;<+PS*FcXxu#{ujBz_$Ds*S3&@Je?j>7RZ+~194w@FLFo#92vpC))ya(}BN_xGjb{(5{7^|!s`{&puDCb^d!$-SH{xtH@K z_j0e~Sv?}Tm#4@+klf2^$-Qil+{>LpEbFPUW7lG~1#-1cm#dtIm&Q=LWi zImz>TO>)ogk$p9+F4Pk=);zlKY!Vc7>GCBX*a1Kyok7N}lse zl6(0{axa~dd+GaClns#lzRL*7J8?ACJjwk{k-TFUNk4~Y>`x@`({_&Q;<$caNB!+2 zxtHA~_p-0#Ssg8TRwqh5!hJW7>iJYJC%c90L9(aFULt!ReMxm4*`Fxkn`j0}l4q5M zj-q-Z*;(i!s#lZUK~_#yMOH)BfLf{kM%J?>noANIBzc7VGErarB+!G1?`M(J6V1A>T&x8!CCU;bfB~_j0l1UT%=w%WaZ- zc~SC;zbUzw56L!4?xj<5FWY_>^|F)XUXGRA%c+ukIg@Ov0+s>x?2-QVY z8zuMLBDv=_vJSGnzK_PpkUU0~*0}CAa;RicA0qhF~0N!D*&)N``rp3}&Nq0v;&BD;v}MzVX!9wB=k)lqFAYegMYV;^+(`6i(> zG)(eLPbHg7Rz!Bab@S5uk@#q`)j7UM)H+uBm12!?uY1V?IC@-ZS2|V zK&dI{Sn124vC_9eS4&?9l}g^vb0yDeiR4)=l{~9v$!oA)^8DJ#x+J&V{>P~80Lg6! zORgS9^%$yCCHH)ptBpYQjQ&$q{h=zRN0?j=cb zFZ)Q|?FUdjl3$%R;I*P@PToFnWgSD`YFln#tBl?s;rmG}AMskqNP@ zdVy3OAJetc@V+t4l6*#`l8?KW>>;uxlCQ#x(yO7Dda3*RO8(h&gXDK~ewEzw7Rf#L z_$gYA?a}U%*Cku>dpoC5Jr7;UaU~pgujKQ6OY;0al|1fOlIQn>Po6#NS^ar$ycUR@>~*riPm&i$-V3) z`P}xEJgY+`@30Z*6v^jtn&cK|OKve;^0-$?zLs}M9`_N+*YX+3wSb7AvF? zaWQ>F_POL0YM0!0z^~B^21|a=`XI@3xkd7Oi?2)m?aarL-&t;vylTHlerNel$?r1u z`z@*_OV0L_-19Wa@0Q*n`JLsrq^dCckI*K`@5pwc{_W9mNs_;NlS-COHjHc}SsqzF z*>tkY$!;gRNAf$`FG;@Vyd`z-Ny+p3OY&W1+ux(=9+ILpZXQZ1o6pK2x5WmH#E{fg=us=rEJ@xM{;jwss^?TPkB zhoj@rXml1jA6<@aK(o<2^f-E1^6J(}z801P(|%i`os%Y=752;FlF#TQbeiNAizUCST8-Y7{I2S1$?vNEB>7#{{(nZh zX^7-|Q#x6u*`3HBuSj0W_t9#}E4e}PO8z5xCHML(8tq8QD>;Jf zB*`-vO*Vn7K=MjnO!Z2tw@{r;^**Z4QLUz0OZ6kFpHcmq>L$teoGy+__&Zv^T_msH zUXo{jfaLYd<+w>?(kZqCto^@hZG}<7^S*GOCvZ;=j zJlfe*ACf%UBFUpIC0kDRf#mnB*GWFN&14B%qtTKiSND}X+QC!{C687td9)I;GO~xH zCE@w}S;_q^m;9b}qvUgIq57-j(Y8>{{5KjcTk>eRWE06Ql>DCcRgy=$LvnxjN*?V4 z$+KTAxxW^UYm>YW`u!K}lAR>?vb*H!zLI-6R`O_LB)^}0mgE-ap<>B1xI=P_1yrA+ z`itbA|CT(zK5_Bg*)Ec^RLQ*@CVAY`B#(PGnu=yhp21y`+b*K|EY;1DXAmDBjg}}m z8$@=ny(CNSB~@}S7fbHtI?27v zCM%abgBr;#R+4=$xxWom5AGTDH(YXmxn$>%-6Q#q`6$&c$?t9V>lO99tK_|LtmGCa zQ5{2d0@)<80m|ScJ4f>Szt2g2SM?pqXY`@ucU9L(J;H0a-o2x9OG5iep4GvU z+a4i#&L>jMrJ6@|D%FdqUP1L{s-;xRs4k$ogz8eN%Ozjc_t9F8`<3IiN}heMKGE#^ zOP>ACWP`|ZB)1q#^-QW4NFMhZG#5Q9c}Kh=^$5=&?@|2<{mgM&$olq;+U_BFjC8Ui z$#Tf@$u1$gmh4Wl$H<;1d!4L-td;C{vfc^NT#`|Sfe$_>(MW&W=rlRSMsai4*%rZ3jzkdw}G&1(MqqNp5?$`<>*rKTB@Ag{=4X@!jvG zrbzDPP|3Xm^_FRg!!8Qt~xlC%Km`9JiI@dhZY&mn6BD zJtX(C57l#}pTo1?6;yAeS}A!CeMt2Ssy|5Xc_Y;hs=Fpe)x9K-yRYQgA1ZnFBhV@6 z|0J)=bg4(U{}of6gC6C$r^%L+eM0s<+5gCT?HG+QQ1V>%CmT*ShU`4DE6HvmD?^V{ zeU9u+v&Do$t|Wx zZgHXH`$nnc(dJ8T`-J4SEt1=|Np8E-E>VkA$t}_)x41}hi>oEKxP`1r@@Q{LZu`FE zw!H>KZ4)K8O(x5e{HQoba@(nrugql}cfI5>?&i38lE-+Q>Pu8#r}~%V+4tTxn!%2e zvpvZ&B+unY$#XeY@?6GHoj`RG)fdR#AnPED8yNMngXA#=NFHM^szb;QB0Ea*Oix5- zNnXhUsYiIkUrDuuYB|}{WN(mtLbir%Gg+VAqH%YXJlcU|!^m>T^3f$!uO+(^J%Xw@ zu7>ObvaiX0L0crB?|!>SJK`wGD|wvc9Wh$+oX@9vspM-pTk?B+4@-WJ?>Wiu@x3AW zJ-+WHzo)rL^8Wiz@@Rech(b zSp!+KSxRB|i&|M&l*_6`2dku0+L>|4z(J z(v72HJ>O3CekniP;T|S?20btNFTpIAJku|w8+*ih`3DW!C(2Gh7oxk+^XPN*C)y)5 z>g8B872ScJMXS*N(5^$GUIs}Yg_#~hc7pUt$R?9rD192TTgmQ{nnLyr*{jl*A^U=C zo%D6c{v+$VZ+zUkknJm7A9R@XZO~YjhDhFP2T9$JEwW*f|Ni6&WT#3$hPLNO?r*B({_Z53C;b$TTP%5u zD#>GfBYA#nss2oLE7fh%qQ}u7Y2UEdG9|nXG_;^6FbZ4l6$^Qa*M^%so`gaE%~q3og_^Rt2@)$GF z&C=x1cAn(6OC+~_RdU;RBtKI69uOb*Lg;U>^iX*G9)?CpKJHw}=W&5_d>G?a$?H-o zJsIZrkW>(QStxm5JtMhowKOQ~jSr}PFS(Zu(#CKtdmb1ccVXyd0NPvfTuzZ1!)RAa z-gUQ2|Av)(Q1bb{PxT9`KT;i#9<|+9^55w_LUP-DX+W6ijnc-@^TX1taE+EpW5W!V zOa7aC>!dzmUH*~AhiadLqB-v)x$PN}t2aw-@uKAOct`SX|5W-dtj4#JXZ0)kOY&-@ z9UQgIlH4|1+8o;EN^Uy|O_SVqwscE4qbljmFy{`*=azIxeB2+QmsIJsa6K}mcY;om z{I>%qO0&Wqx=8voRA)-x`U+;~krH}7NjkV+?9p?MLyvcqw|NJj_t7#bfpH0XG#HT0Y(H3eND-5O?EEcq`GmP(1CMY+@~ zs8Z?-Xa0udtM!>wJ}5TsT4`a>X6eVUH?~S%)7=h@*7Qheb>CQvG17^l=bI$Y`98^W zUL<+WUrCHjkmPJM*#xrNCEt-ALQhCumwM^Duo~Y;zN&j39`!s#^55(~ zRC0B+d8E4gi-BjUUNUCTWrXPMH7 zuw#!QJ3;bm>hY3a`JP4fT&mYf9^)>_tGj^g1+w?ZHlWRt*DB-4__*!D-DkYCBqg?o zCQClILdj=zjr3)BEW9lFbzOrrI9#_D>DRFD|0kUq_TRQy@o_mpY0{ZNnNmkME?e^K zb0xnLoGQ8PmD1Uv#jVn$pm~z#@`>ab{2+M-?NawT9~JeyljNQ!NK-;D)1;|EGo=fH z?w6(qJu4Lk)l2@Xm|si&o1U8`&%Wo;(HKdR#~37eO%IWLJ&qVbK6Jqxs8|H;%v!hbS~L+$#W?pE0%ml zcSt^?d#FAr`HUVVds6bcRFPFnKBIRfpV2DGXY`BYGx|gF{Q8{`ol&CXGfI|xM*B+L zXC!r>kyH{^?Od|ylIK!HRxJ69ZX&xw@|oX5_Mmiic+LMP*^^TDxsg>%BNJkenRg|x z(1%n%le+(P2C_AhM{6T%m)y&Ll6&bhGCH^ICHJzY|FC$mq`Sizjg{Q<*^*aiI@xuS z+un}uy;|8iFXg0@{bKLWiXZoh(t57ew=Z_`#+#-Dwdfr5} z1O3Hu3Axd6gCzHSjO4XHQSzhlG|7*~nUY5hfR z+hOQ<$ya)e^&1M<*Ny>Qrj2-S9qb0xUdrX=X9#PLqz8)`0{+-d6(z&7fhjd=h zl+&aAa)sm;*Gb+lv&rt0dL+cgtwhz5SGNu|NZw7&((z%8Hp%JfUmVgmD%9t6gspPx-+o(Zu+n*($+rMb1Goox?G#s6V9+1+)464Xh zNPd*9l}--V<5$UN`7g)qcxH5#drCf|QIh9UP4zvhjgsg5i{#h9n|L@i$-X1oO!gPqcKVUX>zpKc&S_+akWH6-eT&G7CI1XDm+U#ozagk5 ztCjp4f_Ej4_L1b@6@12VUvpfKbF|09tNQIF|LcE8Oa3?iCP+txN8=>Pzlpw_>{`h) zy+`tBPfGp-_6w39wI55~Yb{haQSGFfk{=&8KRn(>Nsk6yDlH6}CoKwkQS$n|fxhCn ze@^N`A$C7S(g5oKU@%>XTHTll*?bhtk90Rlzst zN69lCKP4LNY-veY$#co3Oa8YIi^z&4zbA4N*&Wizup=HJTO|2kWLrj7Bb^eCTPZyq zM*D>77gX1f{S;F;uAQt?dOl?Tk@Y<{zWZM@N|k)RhofxC=X;*yXRC{(#PHjSn4~MorrpCv;7}jqm z$z$Y5?yo@d9pqlg_lU7lJ7Z#3!+~3m)v5g zd9U3?RwfMz^Ls@)C)|BLlzdg2C107|7wVmrP(2ytqs!0@l6#pic@18Yd@Yxgy(9T* zeL(gp*;?tKFsq-a{!TSHS`|(6n!gsU4A0_Rq{28za)A#NR&L< z-sn(t0?I?@qpQ&!l1F=h>@mq#;Z4c!l6@y-`q3zPoi|IPLbmIrdRISaKk0&?!z9md zGS$ndUQhKARE3tK_ax7yOFB91h%+vWX7GQK|GmIVq?1DRc4>Iu*rV}oj+-a>b;RS+ zgmBysR5wXA;eOgd)+M>;{feT`JsctVj82xk2B%3UhF41y$)-qddza+TOw5z>>l6x+friHf8 zNFL(_j(bh=TGf%&OK$r=$t`+Z5zT5xw5K#Z^qe7iE?LrtVSdMwjgs8o8PZrk&L#Ie zi{nZq&*fgSha|UsM{Rx(*C*)fvu zqNh+DPxV}~>14%Zv&hONui9d?4Ar7~)P!2mM#=ZJPO`1irtnO%%Qbq{99A-2@@T`+ z7&I9bp_|eDXp!X6o+n!_`6~1*j@B<(@@tjjB)={hEqMm#OBaU~e@OC`StR+&ye#?3 zydn9@G>|n(zB22`ej)2|ZFFUJl-$d1l3S#aWsv1ao>d;2f(lVFDnVtESEGXLamj1{ zisUn@mpqq7$!F9idE5@kz5FYk6s}v(>-4^OSfOJjuh6NI`;bZ8B=6nVsJ>0Lk*t}lUGhx3P{Q?5mV{DJI?9rKZX?M~mb^k2N`+x}-YD%B&i8)F zkJ@I*XTCx5ng1vG%=^xa&OBLimMZzok0Lvc?EfU6`6X1ZqFO>WhwKruMP#o_UX7LL zbM!s>6>UZRZ;0CNA$eU6AUj0zx||{vgmoD!oe*|Jp5&j8@+E)P;3COC?c5}J{T`6K zeqTvmzc$J17k6W{Rtb`K&YomLB(LAmWXF@8Cwcv@p?VY5xnvb&FOa=P_NChg>$><=- zGdPNDq~xAYCoAB%%c$N+^=wHdJ zv297z-wu-Z^WoB^;oQ!WeC8KRzUy5n`ONQ>e7+A;eVpvo*m2?Kg;kR0{0-WG{)hgP zx@UD;)Z!rNvM`silIL=+C12GlvTDiK_g%7& z$ks}}g1=M!i)zB`sOLnt7d4?D&=%D9 z&Zy^|CC_g!$t!u1)cu?+`FG)0NWH>uFH5CO;dhp0QbW*7QclntlAq&0m;7qD_g&Fd z*irIT*hlhJI8gFcIGXHu$?G?cY$DmElCQ!IRBxj?m#l)UTJl-ep$7CNT8Dl^|46n%eIsA;UYjQQEU%M%mbXYg%lpV4mVB0#WXs4_N32N3CU-P_SS$2?h zk!^oZ)OLX6N>qqE#!@>vd* ze3mDXjgdV2sbm+E%_1u$dmOz&^-Z$xBwzjiQT>PN9%WHAL-MS$B+p<1)dI;YbS1h4 z-G>&U=h2(!W7L9vL4QkL$!+e7MjMFsLx)NCgx9RcOSc3~kp2w6TPl$JPH>U5Z+JxA zB+U)S-9}kpS?`_Fz@PXtjvqAEiZ;?E|xcj4@LwArK3O(;H`4!o4$*;(6ja9?% z1n-wT#xs(~cv12gE6G+#Uij(&gMOC08h?@fD{TrtjU~^GesVon^3NK_Oa58obm_jZYLg|;IK>=erz2i4GBLH3?myU^+<^Q=JQ<1ch;+^-bl4V@_9UqUPbSsRp>j^AsriL z+H-#NnT`R{@gdt!@_9^>JktWnzv-AR`BNa*O8(7psdPkW`=I3Sth^@O5FUdKl7ENX zEV;k$CHJ>pa(^9?`|J5g)ZdPh``cH#CiHida`FiXldE89NV;m>>`koid!XCO*^8Mfz$t@m`Jk!NwuSj0; z4<)x)E%|zEmHrwPdmN2k5FdAWIPBBYx;oXb$MD^5uROYB#*mN^0?oS{YLh; z*?`d>%VJ5zQr4@(d1_JgXBWk9!W; zrDWGip38E{@AZBxd5krZXYd!=X;FOKAz?0qrHr71C69Krsbu{wBHSKczu^W4mel#nH9gOY*D^kUYi_=v2vf{xc=_ zcfREQE|J_{iR8Qd15_W8dL+a~dl9`Od9+U?kM=eC5p72QqV1oIR^w2~-%uSPxtH;1 zDw=_ALl2^-B==H7_O9fW?2tYW>zA-3+9mr-UV|(&TG|@!FH@x6;e3lEU$+}1&u=!G zCwbf@WUr!ns-H`q%U_c3e+f_N`%z(5!zJ&vv1I2-cZTYG>G-gRswB52xxY5_59;$w)ZZ?Wk4quTmfZ7b z>B=zLBFSUCCHbz>Bzc{Gl>A8EB6-F8JsW9&RJ)i$YrXxl065R~v-d|YjKMUf==89POKC1mN6S7SKY7_!OIIbpPmB(Kn1 z$uoFF@(h+rzQesI4GwczEqN|KNS@0dlIIe?G@8qHlIOCUL{ucsTN3{ z-(`~LH($Ci%=vL?bXcJp$tzSZc~;HRE@6e*r1!&WbV$p?r~cxek7m_h@~rkGJDBWP zsW6OoisTv0kUWFyCC}g<$t(1v0rT4OEg$78j z?kBmLMRla)`Hhu4zdNO?!Zn(Yo|Y~N*?-d2L1(=X>2~Rka2I%3IyY3GlZt~@O1|H( zlCBNePttWkyS*4ykCdEElI~B4?cM28nKryW)5~#XlE1mJK=NmgmQYr9qrhB@ENarblFB92=sc_mvUU)6TWYtXYg zy1qL|-o-;CR}Yf>j5tE_Gv{ck6Q~wSe!je(>a9|buxe$J&!YlWqH6S>QGYw3JtemoBl#@PlYAamNrSyslE)~Q{3v@y^0~bxxy9R(&%9akx&0vdJbp)8 z(e|%IJ?|!YE@_fm9EDCn6F6>xLh_z` zS@L80eX>s_pIf`MBqeqi=t2pv>!PhHy$v=Zlk-RP!Q@vC2zvA$a)HD3f z@+oPraKCz4@;ZMi?H#foq>M1ypOX9QR~uymB+oQc@?4ISJcBWkTTGyOkK`49P+OO@=Er8E1Kz!l4m+lay3QrO!p%@MDllUMo6CNiBv~R z2ZVE*E_tR`QZ1G|(-O%uoh^B$^CZu7iR77nz;R!b{UG_ubWrVG7qv)~Ts=kd48}|T zru>zX&+U3CJzTdrlIQZij>Ke(t+$_26 z?UK*@e#xUfCb{h*$!qYuhU3<7 z+^^Ex;jeCVN+*Q2y;tfRY2mmXq>&-pUGn#0Dkb;4Omfe!OJn=SuH}bPNoesY$9=_d zYo&8Tb+7uUmwhGoGE{Oe*^+x1#c^XfZlZK-=;bx(wxGoyMg3Jt?ym;DMRg_FCdvQO z+F#P`p_k-_==o!R$<@OpSFe zksTzR9mdEaJ67^5vQd&>k)0v=ad{ECO7gi?NMD6rw@&h`+9coCHc6FX|NSQ&6ZZIC ztMv0sc%D99x;}iS<7BCHRBYExlKigB73hBHiZIhhC6D`>FCbiltLR+cN2lpvBTzL9a^rK_8KQBb^Y&{Y5${=x@pAu|rcdgIy(m19@M`#|@P{ zmn@FUmi*U$a;3>(wCkweB3&8w?mWrQDRrn`^7HRklFxjNbVs;?nIejEgDkgL5UfxI*$ixIyx6nnU$bv{Z7>%O&^xq2!)d zOK#ia3;lhSFvd2L&uEe4*XTb<-luV2M*DPtf%4@~rMh^QF@hV)uhesWj}D=c&FbofWEYlD#jv#cIhd)}voI?tjvG zq3z#fJ-&(B?j(6Gd!Pd)_jf4S(Ng*LvH6`$bsW`+lIJ&>>_W-&yIOL8x1l*4H&=4o z=Oq8m=uPy25Q&$*Xp$ z}In2$Q~wpTG|?Z-&800C!3$81H&D&Q}UU|t&L{7t>m8}c9Q%vM6%?c7gEU% zmEv+@_l*hC!J)q|CHMEe|+M)y(uO1i>pKsD}%XpFv+$Jl}FWU|x9u9TLf#Ma;0&1iu!(84$A4;C-YUznk z{T^+gnz|vH)o{tbKOISyD|x1;lbu6$A-a_6)nvCyo@uS*nf@s~7Is)pTQqJSx)fb4 zdEDE{?jd`OYzf&bWN(svLiPpOk7U1+{Y%#8r)b;(lCRcYWCxQSL3R?^7_$G9{0O~D z@*{MC#wm`4PHO@+0(9$&b*l$Tmn`(`|o_9--$-?(Y(G2fA1C7z@ar zB72qWEwWW)Uy^Mg`;F{BvcA7WW9%ws;nEqNusmAsN0B(LOeWN{m#mE1@2z3ybm{S``n1^STWXO|bKHc|bL>Ta8& zwi!}N*yGufUyEKNxtC>{ zD9PiVF8OLrmOO(CB+uXy$t`9`p24+}XKm&o2E`;crk*&4EqWSwL^ z+oQScAbH%~$@Z1J&IeJ=M5l1vSjlI8j^y(_PxARr=eQ!t=X;gp^SxQ}xN|tJT=KXJ zs4hXZ9QU@=eWj)DD=l?jX^vYfbzf=8UI-DKrtPm#Sy_BL4qnO<7Owdf8KAD1BA6qG3aPUh8(9j6a0#P!tuF;c8W zWlAio+rj@5b$nbsYDCSb6}6#u)QM6wh1j_9acL+6Wua`8gT|qWXd$XZ%TNufL-nW; zHKVv4qxmJEL^Kekpfr?$vQRe4L4~`=#XX@l=oMFlW}sp;6U{;;s1(gXWoRxcM-^xx zT8t`D6Q4Oj^b!Y{uM-8YEHKAtIg4&X!721f}Q3vWoT_|qPsBJHlfcm3El!OMN zWR!wZQ5s4|87LEFprorph}uyH>O@^A_OjBCie4xI^+$;)2@OQaCab z8i(@GM3j%FpaL`v6`~?E0~MpBqoY+Dh>}qXN=0cX9c7?Ql!b<&Y%~((pjpMl;bYRDw#;98`wpqH=sPs2bIvT2zNtpnBAR8c`E! zMlGlntw(KWBWgz-s1tRexMQN-)C(n`{wNV8p@AqFrJz)lhSE_6%0yXc7|KQ?Q4Y#Q z<50ci*Bg!9S$teGYDMiF*GU#P%&VbSP-vj!{!+-&PzK6E*(gU^svnj0-|)D&zx_H) za({`^TOq5VT1T~>YKnfb^iMc0O>)~J$^8|R&61XeVgGl#r*?LLp7KNxB zHK5oD__!1_1683$G*d5g-J%9Hp)QowJ34MIihbJLZQD_j7SvfLDnN5l1KNmkwUln# zfVxno-VJj#_DM8rE^0zuC{35o$K|0}s0uZsIDMDIEz(fz-{W%DfMVYvaF&54qFJaF zC1|s_#V|Alm7orksrRDXVj`M}7NSNpLqAuzMeL^&s|&?`!f-YX%|Y!bSFg-{Tq$Zr zg*!#n3Y5BYlog`6r~!4N3_VmlMj@Ju8d3jUqT>osDQZG121LhoptN11Y$7T}Rj3t} z42)XTqV(OPtP|Dk5oP_8Bjut>)Qn=UxP88{SH4#4^{KTHCF~VtBT)&e(zhqvVn#}& z%)KL(pgJ^ea8#|@CsHR$PK~lTs2;VU{zIbU^3V*l7$xo-9an@ZQSyFKH5bi61!+;W z0yUss`$yFos0=Mb?I`7dsKq!`gsM?1N;xoUQGqt1l=P@tg&I-nK~XjR;7Cm<<&Y>V z$%xc}vWG@l5voQ_s0-yD8nviG>rwJyQ8fn@p>kA*+EH?5)HV;zLA9tAb)urfqqfUX zD@xQ)Hr@LkEk@NxM%5;ioE2qRs0dY{grhhPO+%Ha9<`y^D__ql_Da=?y>7DfgdKhc z^DBiX^qA`zetWb$NVoRxs&1X#N|Ib1NT!=WcQu8o9$MX*ws^O+nY!C*YjkH?+-~V~ zyQ{;1@m~1ARMYV*i6wRSpMm86fQ>`Fd zh!#_=B&$Nps8*BJpjxVRWGhfT)dsRg)I_zJtOd1FT~F4AHd1XT>p-1UyU1cMjlJu7 zN#0ipWc^Vh)g-ckD4A;Pb*KAFMQK#i$udwT)hx1MD4Xg?ve+wHkC97t99bTkNHw2q z3M!yFjjRwAQJq0njAE~(y;ifxN>C})Ib>yMF4c0f3bc^wVzNq9MRgfjHL9UnOIC+g zP^~9xK#f$J$eK|L)mF0gsEz7IvUb!#wUew1#eNa)mFy*T-~Uj5s)=N=e_7AR4Wyb( zmV#2Lrjezi462!AS!fv5*iS_sZ6wN}noBkgN& zQ9IQRvQE@RHTKi2uW#(H@mUFy_hf&vM3h8zAXzes{Y>n(sbpy=ooWVICd#5Zj4T_C zq?$vPi^fsSBb$iwsZJp)K+~uek`vKG`zbv;=d+DNsXtOIpY?IMf41^7ft_+60X zbxt7bj}oaSkqt!2R8z=OQ5w~BvJ8|-HH&N*%BDJ!EC=OM9Y>ajCQ{8On}Q0cP9rNs zMO0^y6{DF{XOWelQmS*v%FtY@IWb08I)s1BBsDo-JSr>}y9qqbal6PVP>Q6P1EC~&ynoO30QmLkqrK1e0nPjow z|9J+(sAiLmL^)J*$;P2PsuRib(G;o$WYbU~)grPPsF>9@Mw z_dk>%bwB@-C88v%1Idz6?B5FPe*Ps(L+MmA$TCqD)nR1WXe8Afve@5o^z6q`%_EEb z+hDHdQ=LK<`>VdLPNP~#R)l6yEhd|ZW>GC6D@AjtmXXaxN zHK>+q9oY(0Pql%p5j9b5CTl^hRM(TWp^a4A$vRLc)h@Ew+ce$#PwIaDCF_q8sm9)Y zaEpN`nQ97IDvJHZA@`h4mVsjLVYr$_HVnnSwdU$bvK*94bsSk9nn*RDYzm6KW8$8t zkrkpMsx!!n(M+nd$VyNt)j4EkXfD-qvI?}2>SD4=R7G_eSv9JmT1!@kR#2@cYe0=u zo5-3`3)NP#^{9>NMzVI)LA8^t3&nof=c~|5^1ezy{i!CBC82>-lgUz0D%CWybQJrW z6&^Q}EDH^znoTwmLwQsulI5c*R13(ap+c%fWHV4P)tO|oPzlvivN@=X z>RhsNR6%ti*g5_$!4NiR7=Q8(HyE}WOGqD)e5qOXff4FvMRKUYBgC6 zs-;>-wgS~tZ6IqzO;nr7T2L$1^<-^mBh_}Y4%A7ti!Am*2(NQ5$-6FrEcS0AyP8Nf zi7fW5dsmaGrjVtg*n9NuIh`!_ZELs9q?$!G3}sUtNf!Ippxri?>Nv94=Kx%tNHw2q z3M!yFjjRwAQJq0njAl}uMOK1Jsm>uQLvyK?lU1OFR2P#~qAIG($f{8d)mpMTw1R3q zSp#aM+C?tw(KCHQ6P1EC~&ynoO30QmMv1 z=i#2yQ3lmavMe-=YBt$O6#KM@=bTG64&_muNS2SLP%R*vh6yLks&mQ8Q3ch7WQ$QH)he=OsG4dGSuLugx`M18HBfCNYeLObTgY0`da7+?8&Nye z4zfubaD_7G{I@Q=`id>ETr5-Db z>M*iw6#L5@o>dN6E{gp{3s>{VVxLxW&#}LY;p!B!0yK?kAz2ZcLA97{CYnXHgsc?J zp;|^Z7nM`3AX|tQQ>`ScLd&RDlhvSFs&!;5P(9TKvPRTIwVA91wNhPA)`m7xZ71tM zom9KX;`CWCU!z`EDrAS*^Qsm>xRL8VmZkd>jiRLjXK&_b$<$tqD5 z)n#PWsD^4SSshwIwVtd2HBxONYep?pTgld=HmV!R+EEA9PO>f(r%x7o*Y%QoWfD+- zs)=MtXdu;OvJ{j`HH|DCWl)WM2GZkZp5u9yL&H zBx^#=R9nbe(R!+FWE)XC)ef>w)I~K;pI!Az_Cg7g_hf&vM3h8zAXzd>p_)pThSI5K zkY%DQs>8^#(MYN}WVvV@)jYC^D4*&SvH~=XY9Uz>ihbhOt5Hlg6V0MpLRO0AP%R^y zi^{21kS#=usaBFzp=DI7$!bt7)jF~jsGe#AStDwq+Dz7hTB)ulYeO5Uwv%ajCQ{8O zn}Q0c#y%_V$6z5UqB?`D7|ow5dQk_FqhUQW&C#ygUsV*j~L{(ImkyWD_s!by-)W3!5hYO_NS2IJ zsHT#op>(PlWSJ<7>M*iwG?Ho#SuPq!HIHl}%BMPotN=};8vEvpSEC5cpju2e6V0Mp zLRO0AP%R^yi^{21kS#=usaBFzp=DI7$!bt7)jF~jsGe#AStDwq+Dz7hTB)ulYeO5U zwv%I|}CG?VHqvJzBEbq-k>noG5utO6~hx|pmIRZ(3= zR*hY8qKOihVn-`}vnF3k{>1O*RtcP|YP9hw`XSB+Exrs1}e-L$Pn_c~(Va zGf*+rnPjt23Dr`vIjD?k>^p#7=WTg>ZqgK9C^Of-vX30WzcL$!=-E-I&5 zLADSrrdml>g_cpRCaXcURO`rApn9qeWR0kaYBO02YNfiKtPO3X+D_JiI;nP%#p%1W zz6!mh?&n{!{wR@Z64^kMOf`ip6{S&4C(A&YRI|v2p=_!n$#PIG)p2BbXd=~ovMH#5 z>NK)KR77d*?R^<)jG zk!llJGissQO12)gQQb(^jykAzl69dteKXs;u9wvP{EPZiO(aV~1F0sHrJz)*v2TgH z=l^H#ec-p6@Bja!E+K>v3wcYDR0tt03H4q`#X_Sc(+D9XnGiA|7D9-{LedDKkqM0u zLI|M|GMQ$vHtqZP)BADl-S?{BX1~9;-^XpWd#}gi@qE3`>zwnt&NL!Yn($#ea0==XmiyyoeS4y;&1}sHvDy#WvhtuKYF+ zK!Ny5pNYPiRczyb_?7#Ws)_2Xsu~r)HosCeQJozXuu?Tqodc{}Yz4xv(ytup_8^bc zMBm)18sFCOHIL6k-#qyM#ZLI+DkiG)tJuc>TH%jX6V(M(Y}*mE1O9l{b^+OEqHkdp z+c>tS_){u4&n-lq@wdl!1gKo4E&k;yCRSNg#WtK;#cufH-dM>#6Mc)T*v6`R;E#QK zgX}ZWx1@?~c&ohVl6~GGJ`;UQ?_K_7Z@rTn<{RnpGyH?O{+I zwc)MVfBD^T3}xj=O&sZpDz~dAdmD) zfUDdZx*Jq!eBIFQnKW^Hb+%)hj(&{~zY4#yw=N)8?gjGrj*fa9$m2UPZKtR0e2~Y- z`E!*Cq5D9U#&;;%Jw6l1S5M>H479e!*9PR-*car=oNbSJo2oXs5XuI^Qb1O z&82dC*GV4(<1^9MGQM@=J2gHNeQo69JePeuwmd2meQi^3z0~75VxNh=cJgfrsxMy) z(E1{tjV;#Uyl_wLEaGb6Zwx*TbPE2Iic9hL21?uv+E4^2hTxBTGp&n%w^whR`v&oy z8=r~3j`D2;+9mwgm`OV|| zReUD;`pU-{Zxr8k@tNrBFJCjz7V+H>pNYN!@ogF3xcE%;4U~_2@CWg674~+R=o=JY zlF2cw#(j*`kf?QhiC5!9rb^>`(+ht9W-p!OoZ&Uh_84&-kr zC%S-qO!f!)NaSm(+pY!qy9VzB`RIHo#Qp8I_d=h7eB{(V z-`MW4m^hX>8Vgr0AAf-2bNsQ-MBiNbs4j_WqB<|?S5Zw==S$^TQSRgG_)PRIkgplY z=OxcjUoo}^c{X~2JVVEUdTD(ruSn;j&9lK3$@`7h2X5m!T&qUwi_`0QDowaKEHPN?3zAZqWgKa^c10E%A>z+11u}-R( zSY@fI`~dV1{3#Vx`1|1WTR#aC6U&s~KKhyFbbHVtNoNoQD$*HFGqK|M4+zD5nt2zE)r#6%+{IJ>*4a_!mOBMB1|jg{cJP+r6KiqAw}6Zy6S z-G)DO1C?x{MvX}5+)`(re3e8CaRrNuUzHF@tNrBQo(mrd?xz3 zrMI6%HBs#zwQp1t)m~ALi)y0UTk0mDy1dg@)~wod?xxv#&$dvc}>%@nlm&OSrf0u;AKHBp@q_4cSHsuQE$5!FO>Qq+l2O;o2uy(g-P>eQ%{qnfBrliD2Q zqlq(VIvC{H=nbm0qW?DaOsqFu^|%MiYwXncO!Uo=kH=Nn_i%hB`ew>k1uEZLJsO{h zzFG3|2=o5kE(9okmxPIl*-B8I5!FO>PSmHOnyAi=`b<<4)p=3>5YO!ftXP2Ln=<93~eT(F)J-e^PXQFR$d=KbM;WZaOyP{O^I4JKKd~NZ{K1|Fm z`8Tup3gDGl6SGT`E%(9CbM$tY=vyWqpm;y3iR$vG3!|E-u84}Sj$B#UM70hs7VF~w zi-MmN>3&UA>qY%Ms)=fSshr)Hp?YP-7pASOVxq4>d=si_eE8z1l|B=F4dW}%#@F$g z=xY?;n)lW>$(opLtSq2d9@Rv(iBz6Fb?VfN^t<>>^firdLKS^nf!9}pD~Q_wC{weQ zCT5!}OR;WL6V;Yc>qRwDZ4-69s3xjyqizt@M73SijiQ>UwvXB{s)=exspVA#O~vN% znds}BDqBW1QSB0StEeWb-O|S=m~qeP7b4E-6Cyy-Bv}))-Pf3%P*t-pw@cQOVA zeY~djozhWh`x%ILP^IGJsJu_{^T}ap8OE2UJjcB~8ub~F$MRL^ zAD~M6_r7eAiCeTpTg2CW-(|H4aU0ymC#j~sAs$z5I~z2yilgTinXU;<3{3&~n*WKk zJ)5={(>6c!=g_zDt%KJm_puSk^%|wERcMc>`=*W0shmAB^s~?zp$kG+h9-n2f!yx{ zY2y{W@2%bo@ipIVyxuZxh&^E1Ce#8{X>Z++b|0rE?yaTTTbpNI@XwW7v|H$a5Dux8 zBkhy6pQi29v~gwdyj&7>Oxo@Y@ksQRKa#fRLvy0Oo3_Ov?m_plHfF=rFjN(49ojE+ zAjtjl*`KrhL7vIMp%I}mA?`Q(riN;-IS*!@O`PXtnrA*eDnFB%7N3c}wkU5+){AD8cKE6T8;<9*@sNU!7*$`?Y;f#b=_go_xH6oB_3@p9wrEm7ht% z#6*210LAlBO;j61eKD$uYD1}9ZTSi6CHz0`nc_3i*C@UTRrGOv`J)oG?Vv+w;xp0Lv_j>%sr*h7CMKFI!Fmg#ny9vn z`e9TP)izSOXMFqtijU$m(brbKmY~=0r&M&o-<~zTgFjns$Kmfq$d-yTK=us>*>^3- zuM4-QZ8C@}c&T_0e_Q<>$ge^()5iL4n+I~eg`l@|Jo7bWu4rTYZFSqwt{{(!YpmC> zZc%@nw%X_0Cz%5i=b&9?a&c4>)%H=ph-#wRG3uYAny7Y;`j@CCs$HTki)y0UO=@G% z7Epcv@kWl9za?Q}qI>H7BdUpNuc-fwYNFaZYMr_@E5C_qpQvj`HBs#=l_TZniI(vH zMX_#tCi?oz$FtG$s1A<0 zMN|{jAyFGgHBlWFb(^Rrs>7wO2bxgD8R8mtp7tuBs7k`b#0Vv}q*`4wr|sf1(Kk{) zzE+ffzV49tO!SSCkL$rl_*254qBtTx6Mdsoul$_9Pkbi&#>m$cRDRNX41A@6SEU~F z>Ynr-n|dbJ8>@QU-rlN$fBwss_e;XW#5g55ldbX368;~rYVn!q8!sQXyk&eR$7iB% zLVTxc1ZXM-#b=^#qI`U9EWbx}ZhR*CCdtR~@v~A(_SUEtHQ{zKm+3x+p5YW5Z)MQC%E$vr>&} zqPisNmQhVqmqy(xs)_0{shqVxWc01$GtswPKAvU#6jm7U->&hQ=vxtATd4N!9-oQ6 zI{4A6y88W>^7_{?J`;WQc2|(sSgva( z-iMag-E)#PG22jC&fiJ(Yqs~|_)PRQl8^H@Aik0DndoaAAHM?x|HFTm$7iCiN%}oI z_4r*OK5|U-HBG(2@m(FCiN5CX{R%4nhyTXJXQHpAd|VyNPc)~-XQHo7>OG`-{F&Kv zy4F;FI0+LIZI$5FgRdvI2OU;jlbD`_iHUYf0E#D~ny9vq`unIRsvV;~9o0m&bJST; zO;o!`<-RO$+t6&=8%da$=%&Q#wrzeACMLRP1n)&PQSBA=gQzB|y`%mys)=f!sEeYS zsP>KeSyU6%{!#foEk4#vR0l-;GOCH{z^F^3ny3zn`q!u?s)M8Q8(>zhjv}f_a!>Y3;p9$#Iku2+iBMBj+`%E!UEIu6=Ht(WXN$(ooQ zsVtz_AgYP#sHhu7HBlWMwRuz%)iF}Jl`Wup^gG38qHnBxyuzDMRpV^Q*z8BLz2@?~Ol;BwW z6uTYBD@`@1DgN^B#Q7<9KeYMh$OgwZ48&)TrQ(LP-2&>P?A;*$rp03*S9u2HJ6GOS z`}Jr++G^jq_RpA2>%uohW9Hm@EIWhzuJ7)kpQztMLEer&An(foppN)cDo%~cC#k*{ zzXar;=f5H<@A9qQ4k}cccloaOD9EF)J?0ZKW)sIeRbwu{5;sd0P+XsciHT`S@HM6U zv!?gNXQFSqe4LGYq55gmML7~DCt+e@h7vqVR^*I-AU+d)Gv#CDzsL7bd?xy4#WxMA z&#gz|GtoC&KK5H5n`Phh_)PT8k&peZ6WXkKc>rmC!`rJo(sfqttsk zJ`;WOL_Tisw(0kc_)PRIm5YA~9nXHM~ddhO!e1-ywrSX~Qt1n;e zE9t++XQHoxd^~^s4h*2!s$R`pndoa6U%B5V@tNprBwzV;W+${=qO-OK=wZ#@PeARo zy?~-as+d@%v8wPj#o5*%uT6)6ZqQlFDqh=buXXSOBr zr%;>V&#J#cyMJcQ#93>iSpyUYMm14w8ntUw6V>KXyG1ooZ5j2@s3xjyqV|YtqS`j< z;ZaRg+ePgi)kL*@)T5)CsCJBcOjHxq&QX6F)kL*R)c#RTRJ%nT7}Z3zyHp;Xm+Hvo z(S87YUO@&YVPc|}68LN78L%hFXTZTAA5BMsywCfBMym3Vv|R-9wMFgMkqn2z42$u*GqJZm>WwSX%CiE*Z+Y`-Yof2O zd|bWx-36Yji{mrV*FW`Mif?3mCi(`%$M27Gz02b>(Kk@O#-J7 zUGJ&*O!SSGkM*90>U#V>KabBu-x&E=@BC`|_67NMa42ZF+W79ZUrBBQ`53KyCc(EdNe5-^X^MGsv$bhk_~{ zvGcQ)rghQBSZ(E&AYX4(fqXZyD`@2_7^wWaOYfzMiB-m_N(+!j+5zN|b_02&CxG0? zDIm|W%9#ip4x zzJ7YHT7ta2d#0`Sddlx>^ig8smXFt#1B$;#HBp@)6@RUK?}T@n{+)pXLGF#~Zl%4o z%{n!`nOJY4>hav)x0>6rTZr|3skYvsOF);a?Ml!Ws8=d(1o=7UB+w|SJWj37hzcmG zG6K`OXq%)Fv;bY9ERParxzEc_NViYc#OxGhw*sA@GoG(PCP2|V2@?}jm7uy)R1?){ zQCmedQJpT8=lO~14N&Y7pNYO1@$Ck6)oZD?Ntl?JsRUm&PF7{!fe#XO2Av`50Xi%F z?wKkkR+*(Le9b!_|19DEi(>EiO!Uo`uNkPl#?Jt}R0V&Bv=vECfj z;~9UU#@7mTzNi!E;*7atvLXNnhChBzvyZaJ;ot2=gG2nSD4$y!gUV}IxAb9R9}BZ>hekC~ zT_lx9(|J(6w|c~9qHl40{JtLh4v)`7-xB$Fo#@|M#XpOyljxml(NG@~-Ry z1^#8rPe{VVM7;`$@|F)w!o)=VH6~6?!o)-aCAj6ML0xsrPfxwAjC;s^_XWpgBnwV{)EUzs2ty6wg z`<>{AXuAxFRafO-rizJG+Nuh-ZHBVkwx>jZ;)*0pOteda-)H4{9vz>FzV`C92mL|5 zE}(NNY}>DrH8I;!S#H~GWp@L;B;vMRi^Qtic3rBNSf#V7aLwj-Yk8zM#Al+fi+ntC z%D!>&nds{#A76=IQ$4;Cn*hbFNtl@Et_0QFqnfDpih4&>6V={QIS2DH`ib$G=<6dN z_n?0}6Hwd}pNYP{^6|KTTlIJi!fzGxyi88Q#6*83ID+@%`)zzC`Uc3y5j+6Z^`^#W zqHmylyaHILdb|SoSi~y;kBV0S{5CUJc{o)}tTISd0L7zGO;iU*{asWO)ge)5L^V+z z7WJv9CaS}waw|XA__hNr5%D$otBm=XWKGPDP?ks7Rn;}y_J{aP^o^9S35eg|St>e! z`0Z_;joC?8u5pm-^&iR$R6uS7Lb9V3;;Grw`ORN$Y*t0F$%_$K|nmaK`{vC48b zmd7_QJ`;W8Z*OJ{~S#>R0m?|b#nWQR!;^U|$s#BtV8r4K~YSho8ny5~b%2mo&sx3giLjx2` zk}xqbT?t+Rd;!(>*c)k!co)+!v+-53CT3?S%Oi2~_`Z(MMBhyLxEHpJ@0<8c^v#kF zP%MvXqB>hD_dcJLlnUO-jjkr~)nKcP`D(TGN1LDE^5;fO!$7`ky9(4rzB@tJh#ms@ zZtPi*6Z1kJf_xqO1<3b}-=+^oc& zvvZU6_*R##o2-f1dCGGCHrEVsec4`gC}<}Upjbay6SMP`<^F9IUxWBe^evE&`*)Z4 zHi^$f-$MBS#b!}WR2NC*y-V9v*&;p@eT&oEp7Aw~&qUvn)caL6j}rd3O?)Q$md01^ zw<hZWA zSeM&Y`}o@}SrfDMlx+s8R+g`q2Z{Ku)+g(*N>9+iYC9IRD`KVMB#_s-3qWg}f%dm$uq>fqS42AMGamv#8&KZTxSqs3xinq++BGc6+E(b}KnUM=JB~~rCic;; zLLZ0z7k%_eA13zEzCs^8bzXkIxjHs|nAk_h3Vn=N@B7bHzw}{ZADz_)*VrR8dO&e} zd?xz3$hSG@$oK}tXQHp0e0&A-wJ6U}U!U@N?MH8E@hqM8TQOTN^9i}Wt zdRj($ReUD;hRfF)bY6Vd#Al*!gnWSF+NdU~Bc*cwhNsHd_)PSTitnQMZi>%D-{=ay zTjDd(H%7jeAbtn6?;A&n4nZ5gdAd~a`rsmgiIvByGLM{VmEDbPA|8pZ zSNr&zkSZot8K)|omz$IY6u*hjMBn)M_{(Kk^(o;|mzUMJ9R zM10bAujoV&zhAploC&HlFH=(4#LAOYne#G5SBJ)t;9JQpLn7Q&ffX!te0* z_C6G!iN2{7e2>IuqHkJ!kEGu8_)PRoui$$kJ`;U2v2{5_p2CRUlHDxAOPl?4>D;xo}V zJH8j=dpQkkSb3f*b6yrG z%X#@w#CdVO+Ve6uRZOfhUsV9b8&OSE7esw4s)_2tsP9BIQC$>uK~xjf#ZfPJycRF_8mB&vz(GO66t)9_C}gXj0p`4k5B3T zrg}W;{*lUmOTxrNgH&F-LCp;PBR&&-4dvspwr+g?jL$@0Bl!SDo%L$YWE0iKQuz#E z{Zv^yJ`;USnlojG>0^HpgyN+N+gp_?CRXXJDu819 zs3xjir1I*zt134Gb<3!lCt+fun-bjeLo=#t>(p%TPDz-U=$=H6RBjcYiN0R(9iGYy zw3QHxU6L>{(OU@~?ZY(p+?TzT?F2eHy|qo&#B3jB`PAST`S?2B3BFRnJDZ;-yJxZ{ zX8S73Ri%G?d&g&@ufKeNV&AAHssp5Q?#op=#%H2$V5;mN)kJkr)B~fMs1BCO_2q<& zv}=4O`i98I_4Gvf+Ja6_qFWLsCWa{iC=QKkqB=ZkkEkZ9BcyW62c?h0<1^7WQa+BQ z?CTw$iM~e#6LqnfCWle)Uz zPDsMU#P~HPPE5kY!~`WcljZk6%1`}HPQt{*#5E=cC1GM>k`kQVuc3NfJ0m_5eN*IH z-B`{_!o3VmFppJx7kb2TP?nApes3Voal-}jxX>(hsceJrTZ$A$mJT-}&H zOzdM}g+4C+FZ#GSeVEwCq6&RX{x9~&`1E07AB!vWao&H?$FI|eiG3`o(8tXG;vBp) zeVEwCQuWatG@*(|(@CI_+8=z+%XB^Ha<$zJvhQ(FlWHbrfhOZmsdxu}w^Q2^&=}Ej zkbNb*=VD(YkbOIW?AsgU%KUB!-(hqIO~sf?`WAs-ihdsTG|)t~@l)%q{xa${p#JMJ zdqdi810Ak5ege09n+@u%wpZihCq9o>!3jZn<{H-$k_^E{U@pH0VnV&`Iec2P_ zeaY{J@ZK62mA_TyeR)aLE28q#_q{Lqsr9bMPrUQK}cKF`?7ryCifY$ccO6dm{84sM5ZilznO9zFe+-Sp^!S zy#*-li_b*g3i)bZZ(IQ1_kCTsKYf_kM;%-o*VU)nd9K=^?HB(=9}lJv6Z@!Fp^xje z<=^i$bXxi_v5)%dV@HsW_Ku(*>$<5YXrF4%T3?X&^l71Cpi2Ag@$_M09}Uz8pm;K> ziE2Zsykovi+s0=F6S9A2CShWtQ4+t2@7efF^fi``b9J|Td=9b;F3?wfg7I9kCT5!` z%jY2XD$9H4DIz`xnT^D%RbEIH6RR{;72X>>plmD9z8f&h|K=oNVxoBx4<+%4h>2H| zFfq|m3EoFdkMH&PO!T#puLI}_`F;ZWy=V~V`DEWr*2HXEWqI%NVtn)CGtt*Bqc8j3 zi_b(~`}mqw*UZKT@tNrBC?EGiC+#;t@yGZ~^mUf6IcOnN|18+c8tI{EdqZ?A=wqoT zfn4wWw2e;NO&}lH*irxTQ(TMEuZjJ3QNNt~x6}vzxsm|IXGxft=%xhs!aGWEFTAf& z4FY|nHbC*GWKGO=SC;CRQB72PN#(J2RdvmrE{)GbUvK%iIyTXf*a`HB`sG~h3X9Kp z(@AKnG#h_SWfLp+`9G!dx2bGm<-V%Cx_jrpCt+fue-eu`rz_$!(KkRo&RW^GR{fgm z2orq+czp#ipreV!aWnN3~H@ z6V;JXe-PC~b(B<&W!?0#b$llJM#t9#>ZI~XM#P zOTSH1#l$LORRvJ&5Y9pt#Lh{Wn3%A}M4Kc`OiWy3Vz(qrOiWs1 zVvi(DOiWp0Vy`4jOiW#4qJ0u3CZ?@1@xvrcOiW*6qEiwkCT6TLaX=C#CT6ZN(Ip8J z6SI`yS=O{Jk6m7GY%Mwlw1tkp*Fe`+Q+*e7o#?Z)Ed^b#w&iKtIoJ0cLi{WXU)A%s zl3k?_$d!55;VasULsx^GxDMpR_|QEdze4a1(!QBddH-RRcO6z2Mg1yj`L*^ajQ-9l zZY8(e)Gq`mew6t$asFm&{d?xzl#Md3_s%ykyNtl?Js|44GZB&_SM3snZ z#P%Yt5zW(YuT(Ly$~;wB-74_oBuq@qUt{8^Buq>!P-1n*&`uiP0{FbAKLL4Pex0`O zKt6`}S?%`mvnYH-bPXL2^1eI@9FnPVl?SOpkzkl+23nm8kDT zT^#l6sQ--mpBzI!$^4l(e+xB#Jce3nt~issi1?bar5y+x;j_7nk%zNu$oy+x`= z^|+`es*9!azGq)m*#^`x^?sIwiHRji>>uCH<1^8>R6gGK94H^}doHbT-!m{-6SK>d zR)EuCQ%Gk~J|~Pg!o;(aLh$juCO&h9a@*ww;?QCRVAhD!hX7vB7(1A1``m zG^0O1SrfAjlm!$QMm14wD76EqzpC)w-~`bi(4bVlI9U_3jZ%4JR1?+4Qn~t^p(@Ql zXQkfdNtl>uqQvUfl5>>(pVuQCc=+$i%%6$#*EBQk-?roZ!nN!32;+ZOCt+fuxe`>z zL^V-uDV29^UW?m+xOd_4DW7V+G_GueBS zH8I;wSwJx*s)=g%s1HOnQSBv_E5lvsImC#?lgPCMISjVPayC5>%g$YN9$g>WfiLREK1Ik7dhWj?YBjF!^}ZQufV_ z&qUvF`8eZ`XY?jC6>lVAVq!$b_f}LB)sa!(iE5%cN-B@%C)FE|=b0iN&o5+)79?w8 zc62I#7}Z2|jMUX#Nq>}tiHWhP_eoR})p1f+_ewWMBmJMNW}g*{Gk+$|-+0X*_w=jT z)30Ywzn4AzMY1MlCn&os=!5wF9G{84iSlg<`lEcUK-*OFT)8wer2TAA|g=dmMHJCHv(McZqQd6efchiwq+TqXo2TQ@!veY51_wrwOIx9#x?+qQnP zCT3?V%WZ3@EUynX7jfG*L}Jx#Ymh1?R+*zJ+_o*1<+fG&sn|`DH8DFk*{zgCQ?Xfm zCi>>Zw_W;ZBH{}7Y=!OJB2`SRGCx(CrAnodHcr;W?1E%>%t*J1&qUwC_*$ormKo`r z6-HW>DkfH0q$=DqyDD4z2-`jh6BCP**a527wdV1e=vxwBi}-em&qUu+`M6r_9AB&W zO!O_2uQ6zMjg-%k+KKoa$)8}+1GJCY0L3n;Vq%r$s=`e0Dp z5+)|@slJ>Ote*k`|X@m?i-(p zzIO8Qj;icCEisM}6MY@!YYOt-=jWlEuf#DRA48{uE>zpqpo>KhfJTa* z1zj$B733-(fsRLSrQ)BUE2XZFC$3{e{M63tMf|C?8%6xA&Z|Y8K(5SB&35H}AXh#U zBZvn3(9Z#>6j@Ffq}0jfo4AFfq}8jfoLSn3x!#1lOVRnR01-Ci(`-$JN$n z3Rjx)IrGaTOiTMy0qPrwtGOnOSnJkqfvRTT75C<>rp=dc`W>?L=(Tg)BWBKiTy!dBYLEb-%4NU)!Ir&podMAJ<%+4D!)*Zd9%t=b%8T7zOhFxENDCMKpT!6zLvpsxDay-y}#Vq%&SO+Xu{@}8h4bygghDo2L;gDM@_ zGgH~b%F|VuR}V8)4^TWCpNYO1@~!R&doBqR6Em}w&#E$?=RB7_UP!{k#H=Js=215o+S=GA0P%+67EGtjHb?gn~Y#Aj8nA+c(e*HgvBDsxqZ zv+<^~ytbV$0u*m1VPaxl67R(~KRy$E^X23IDEr=v&qUt>`FJ(=f$H&U&IBkvNW#R# zLM5pFF{+8`qNt0any4<8%A>A4s?Xvx(YHiC&P#bLe~QmU-%|Owm7YJ|=lwDB@?{bx zCYEJ2*!N99t%Ymm=H zcYv0N9s_+P;+18$4d~;4e?^<0(V94x6&efo%#PLcwFY$%@rXSMfAHH$_K^^g@RQxIG*PxZFGFA#_JBIk%HI-I|Z?heyby1}b z241&l0rK+=o*y@9dX}%tp6UUL6;Vx8>r3U?*dL`lyK8|w zyC(V?$j8||LB5tDKv7D<#6&|S_>AJS9AWFkXQHo>d^{%q6kq-LO!PIDkH@&5+;Ie7 zD#2$8n`nKm2KmX|;ULctEdMe?8>X^}m7AzCUq9}E>LcgtjAi2_OiVOg<5(K~n`7BD zl})VNJe4b5^EXPu#6(La_^S3z#{7f$O!T#>;M+Pr6Mb#vl^bMDfch=*oYgV{p<1^7WBE9vCYN9$a>hV!c zR7XkW{B5DJYzI0SKCh<(k}xqbS_#fUe*3ER3}6o8r4K~qEsHIJ86784w{R2wbV+~4Rj&0{=Kn_MSSwPi&S2H`m?jH ziw{tom)=b5ZIXK9+0#~8`i946qHjvZd{I;r)u~dsxAshxOX4%pH%&fn(cbZ07N3c} z=^53&@r{blMBfbgxX(MrcU62Q`evry{_$NCpNYO%^5Igl=+?F7Si3ep6MeJO@AXjq z-OE=bF*XSk6LXZ{9ld?LBI9Qf_;|iK2@?}@m8b%F&7K?r6yuXHF)>dGs=tnEqB>tH zuYI~|4!Ejx%WT}4go%j-YfRjggo%lTN}yMChj_>jKO!TctZ%;-wQLTgF`W10z zR1?*DQn^J(r;lgjGtpN+Ri2A#qS`=e73i2$c_BU%eGOA(PE-@sMp0jlYNFa$D$lo{ zrjOU-Gtt*1Ro;whqS{pI=Aea8OZui~QwOy5S7ly{ekv7E%uf{)t2ED8PRLl^i_b(~ z%lJ-=?}PYE^tFl4BS2H}$M{V2wUuvskguC|1^K=VP%KKq#6&wKsD2jJM76zC46Qgh zl5Ea@s;8;(bqR)UMH%FYJaI!pi5GvetahS2E;c? zKHgzmCOQmsmFTCS?U5}Nmx8WQ+wGuhMbkiIMK7fdP;8jqOzdr-dgDFkO-k$rx=q9@ znOj7FV&h~@%nnkPS3$p#kJk(nlD%8Rs~}%p_XYWynpZ*hO1%tJz6!DrO~t0^&BWdY zt2bT+O;MJIkWvwN<|_1{WB`L+Y2$ z<)@2I1wA6V5%h$J?`i&C#3zeSi}-|Zmgvt>mxKKKgY|Lt*tZeLzmK>D$iFMtbT#MJ zjv2j)qaUf!bH6>W-nifVbCKNVFRG3EZ5L#H_4=~fxZmcAYVSAuAQmmtn~A-RQg7UE z-ZuJL$7iB%w0yiieM5cFw`+VR`o>hKw|jgh`o_w~DtkpWQ5_exeN+?G@lk&m)kJlI zRQy%Em63Le&qUuu`MBlp#CJe^Ci*6&w=PjlRHsPgv9>@}xE_2c;<4s$w&?|`w6gvv z^-QccRrPiTeUwoh5}%2_Y4UM@RC*G4SP~{CrYnJ>#V4uUD?Sr_Gb;Fg9G{84ney!f zx~vY5!~;V8K%>+KD2__j#O$o};p~slwm75uNfIU|W-GBf$Sdoipf8l*vwF9k2Rab1 zB!1s{S?cvoJrnEAQ9aII2dE`IQU99~d!x-%9Rd``rHYAF=Bf&hp?{>epT%dQZ=QU7 zE&FGDKabBu-~5bfutv2V+I(FHC`F=^ev9>Y^WZ=koZjWEs>8;>4wI4ZhR*CmdXbxei79~by?I4qME2K zm)aE6KwF7_7VC=k2aSiNR2%}DTt(^$x}~~i%p+3I#Cj`K54)_mSy@1FX?!O7>g>Yn z60QQ9s5hOg$6p)l)sbGqr`PbV-%k*(;JYF$OxpUfb@XD!j^YmD>AlVzMS?+bF9mDD}G!+S;lLptvUq6BBKfpgK9KiE2BkRiHgn z<+t&f=xd)UQ=^)wc8vOPR1?+CQn}yiG~iruzwNEwxZj?HW%c{*(bO}sUKiEl{@7Pl zxIa3IxIg@D1-(F(&ZFO@o{9CksUFXTr=j}yd-hj7G!-+FFfq|R+xt{h6V+Z)t3U^) z$}{nq=!#15UEw5V^Zb)_)PQ-OO=IDO;m?V<^K3-s(c)uiM|o? zarFJ=YYRFdiBFR-F)>n!^+A7z>etZE<1^7WD&t!c)kJl)R6b{zT*WH9iab&M9tQd= zET!Uj(8+2$2Q)}@HOM1<2((xucnb7|=v9!&S| zdt}tpLFXuYX;gkjkF)nh<C5&hwb;g|DNUsE&>LO;i)raZ-6~oUf6#0$nKT z0J>PjchX0Sjs{&WIw3wlu{@PctUNxIuT+A*@8UDjH=%;B!0PR-G|@LvKHi63t$I6x z{H+zd4;`a6-iP|TQuzG9-$gPQbiLHeK;`ELcwZGZ;E_e z(Ql4#z4%P@O_dK&Y!KB%by|8GpDG*0XQFRPNEOuen*GtoC&J|07N$ya+lZIXnEi8)FDitVDBsLqwz6m-Ap@rv<2 zQ76zOQ7_PgqW+-AM0`>?O*9eoxad*PlcMK9-k0-0K0_Bp{T$?T@Gl^rgDXHj2R82MX9oT zR1?+3Qma7ErAoW_O!O_0Pp{MQ?GvAgzNP7{LsS#hWm0*UHAhwU0=+8YE3x+spx7^2 z6SK=xxpPz#)fG_>ifW=-XIHKuygz?ky&VdAQ*>I|cz-@$ZKFVc6ak9r)HAVOJ=NoE zEQ;^o_)PTGmk&^Mk7}aYKq^<(&s2ra8U7?X3iPGuM9|Xo(KA&{tkN)j91+z-wUJbw zjsBh*o;|~GO8PuMG6@qCjZ?2rR1?)EsrOfnss-A<6>&Rmt!8D;?%y-!V^hV%DoxWz zzo;gv&82b`U6Crs$7iCiWvUE_YNFakY7@{}n{rhAiKvoje^96O*wzEoUc{&3^`)Kx zT1RvdXhYGJAaBvFppDfAC{9YhCidGlqdFz3iE6v3r$seUZ7-F3Yt!^GI6f179V__G zj?YA2XZbjjm7c>5O~S-PmsJw@=gQAp2NdTeVPc}&Dv1_o^ZPwa3{S$uME5l&E=t10 zL@y;+?~H+#eX7aLRP0aR5hRQsm#)~Re_s$@;f z_E(nsvT1zR#Al*!fPAalN7p7{Vq%~YJhJ`XSR2p~9mRYm^Phh=^w{)aVjqK6>4WQr zd*k($``~)zPsif*mFXlSC$EA>Foqk1*q9{imMfBnnV&7;Yhm>s7q zkL)&@jkcgYGB3YN!ot9`aKNvLlN&ZJBfIwd4T9@khkaw&=VTLY|zu9`5@2LXP_S`Q3rQ?T||60&1!Ry zRsII3Rempp)qYXW1s$R+f1lIptxQs*QL2o~!D23arGl%}Pt?Zy zRexUnsiC2uO56Kd`Y^GN8QI=>QB725W~6=98_$ZLi2%jhNtl?Jr38=m4>eNy-i^;h z-|Y1JepD0HIZ|sM?LSw)Jlfw~k8{AIeW2QSw4W;C(e9Bx2zo~&_&sQW=oQetqW3{> ziM|D$uIz?5{;X~dvdT{>u*%LiFJ$4kpg?T+MS! zQ2BQY&Q-rX(Dn<_aiBH-Zo$W?Y+~hksthPTjcTGgUnOH5mUm?Cu*2L`MjQP@x;G6hN^evH(XLs4R zJU$bBOXcI!o?ogS_ksyfe3yiYiDgPqEjFszmnN#qqt=aTqPjvVXZ#BFwjF4F`22cQ zF9{P9b#Qs)@5dgU?OiWE6MgmK`&E1!#Al+fzI=dUqo^jT4Ww=ldKkxVslagm%f8m}ndoaLACJ!4 zRgXuf2~g~sgo%mv8Q<njGK3@tNrBo8G!dHBs#!wP#cl z)d5nuMZZlSN5p5MZ(yn%8P!B}kkl&B)KuvcpNYP~@%b~(TcgdNao!nJ{*3culQl6r zL|Gnn533JeM?9L|`XymvVptNti|_dOO!N(xkJlR~L-lGlAU+d)Bjf`VCq*?;9VxZ; z^~MbKdl=NGM7-X3M#SrlKZvddd5icyPJdJ`6;FXq6uk=SD*6EQk`jC$XSRs%<5=bU zI9B;Sj#a*oW0mjYSmpaTuPDp+ajf!v9IJdE$11P0Jp#UuV;|qg@h7zNeVhX|s@m`4 zyr#;0AIAy4kK+X2$8q96c^~H#^x^9b6X$tU_QGjVO;krq-5oSfW8tgw+oIFb#wVKZ zs%;eLV-cVjoO&kK8G!<&O!SRU zzr&-Ns7{D_QB)JviBfq^f1W-riO)peq*S>qs)_0psa2pQsWK`)6Ma+V;~aby-&OIM z=$j@V&)>4|n)pogO;5jHs~*>g<)Y4@Z_>xL$(op*kv_hYk84DMmt&vPW0Np3F*Av~ zpxSp+d?xy4$;UO~*YVvFpNYQN@&St5qME4Aky?9=sH^cE2GyTM%{8K)+PFrnC%PKs zEqVxaBPx517%zGiZI_Ea08J8cjo3h0t`SzbMp)$VYH5hF#l*NBFy%r(LZt`Safjd0>WStBN(53dm>&hy;th2KOq zQJoj{?x-fJ^QG24p6`v%MBf7Wcy+V6wuo0ZCO|PI2@?|wleihGuTTA{;|D_BQdN3_ ztn$5Mt2_?2l6o7+^9Lv%NFOHlu}FPTeJHAl>f)%6L^V-e5_Ni16V;_sdHy!hSa@!2 zCjt~tBw=D=SrX0S`+a;S`j*SbbL%;%J_nzU&qUvfjBi#{6V*BxP~D>TxwWJEJq+qy z8?!Rct(I!zoVFHS4e}N}1bPyceQrG~dKGPjvL66;SAyr(t|FdWR(Wn&<+){*=ayBT zTUL2)wNsYomQ|ixR(Wn&<+fh3D3H8ei>mYadnSx#a}UEhl(xIq{#I zThF5ppIau*b3M&7pm;H=iE4eRJW4ufEIdj&ivY#TNtl>ukicJu&CEZ0lN_vW}26>Af2fd2QrQ&(eo1(Wt zedPNTbfk!%TXck|5y-1F1k_L2 zCfMi4i%tOfsnE5c4>aaqgFLE7Ku*j7Iq@3EPletA`Kiz%P^G6r@1UNK5)g7{4IHISCjU_zb99bxH?V{^#FCmpHguo{I@nt;#{4de!ol=6RWgSl}$hw#bFr%R69%Mwdlp^|eG}vZ6bD2#QJomIOH>opNmBpcwxa(iBQlvSkzG?9t4t3QP{fHz?OiWjTEBZ64%oY6) zBChDOMLj?-rQah{#l$KzRE0;*EAjP-&qUwMjIZoFHa-)5v*fD+y{3A+7k^vCQO!#q z{gO2?J6l;maeP!0)j1jIyQ;Dy+P+zvbH%mkeYG6`Du2%VfK)ND%G_*6Ph1%K{5UB- z6MggKYYtkd%KRz$li@2BT|nKH?HxJ`^s#&wfsT+mCUh&P(lx^=>DR=5=VvQFRXzR$ zj%gpz=V}8KrzLA*c7d`~2S+tgT^RN3s3xk5q7IE}qPkcrkM_s$T3af3=Q<2N&)<1T zn3!0y#>DU>OiV0Qf@jJSZ6*F$e3k9JCrcJ!1X`|shl0GfE(d+5w(CI!mfTWtC*Yc#3u9B+#L5j-8J1!^ zRB!oB@tNprl=0mX)kL+i)Y|t^bv1&+p!#$7j|bIL+c}{1L|22n7ajt6?w9bsyEi@)eQo69^`w1Vy|+waN)jd}+A0Cd%I^i` zk$r~FbN+0e2~a$ctclrn%GUn5zOB^T51~$|;!)fU^zVKnUhzDLrBiG6fbA6$2vWUi*iXQHpOd{v;CP<@6z5ub^^F7k10+Aj5eAD@Z7Zt*pX z@9FqV^mUgHP|S*IqS`C!^HEJydrReA(T?fk#rRD0^+}bNqnfDpm0AUAnJRPRGtt*S zRo;kdqB=k-{wi9l3isQtqSMmG=K}tWTD}LgPkMVR^-QccFulDK)kJkr)CEyZR0m7t znbJXha8&z=js|rWoeDZgbUx@!R4ElVfIQ~M()KLqU9IhJgQ}JI6m+m?S$zEIJNx+L z$v!@L@>U)UdQW{IP<)s%n>gkn*`kl4ny3zw%Gbf}>X+A2Jw<@xlO#+`3|E4y&k^x0 zj?YBj2>E!P->9G5df^L<145-p|*cYj6V&##l%ysfejezUbJ*vX1 z%|2>70K{*x_xZLoRZOfhN>u>GU!$6+j?Py4GbQNzHa-)5V^ZbsQB73GO6BT!tVYGv zalH*WD*n7)KeZhJI$m^9)bXJ1@&Sq!scd59ap|`%mJB~RF;N{KwO&*c)d^A8i)x}e zQEC-vfJVh5;xhP31+N9lpRRL~)JxHJis*LGwen2^Rr++D4bq#5y-iYYJesyw7Eo*y zpNYOH6?_fjGtoCyKECFircu@YDXz_vFflPLiNQ*ssn{|;6MfU;J3GFu;xo}VLp}(_ zNF9?^p!1Swl7xwgnMweP?V_5f&WhSBs)_3Cs5?eAQJo`oH&7K+e?G`I4M=^_c9BMP zI_MJ7NKpCn6I-U9iS_2H9)y+k07dKgO!UpmsCJENqB=iSF3Y^^9-oQ61@iIi9u;4^ z_)PRIl#i>juO0x!KJl68TO=RXx~@>YGIWT~MBifhb_QLge)k1klM(Efgo%kIN&t$^ zQB72rMm;F1iR!Yb)lp4Umq$G~s)_0fshpu3GrsQendqyt2iFLmWjDvyGd>f2_2dH- zM?^JItuK|mjZc*$<1^9MAie!MzCQ7p=xZq7W}rLcJ2pNOeU0L~E53g5ndoaA-=z4C zkIzJ3llbn7Z$Nw|`kKlIp?G2)9xtsxqi`?aBj={}+u@+eRaEYogalzP|a{^|c^B&%OsV z7L`lI??BHg!Fhg8v>5b)=v&Yn(Ym-2xmStCAXny3lH1oCG*mtWic2$Q6UW>|W2XAc zs3xl2qFxczM76tAUW0fmJAgbEzMlIN^o|92RKEaiuPcu$K(A_4_k(^@&Fy_1a9^tR0l-8 zJ*tW7z^HdbHBlWTbvKZYmjgiM*VQ+*y*!5Ii}<=a1y#ImOiVo!>kU>t2rKIWihJTS z(KjTcnjFUw z$Y;s}Aa5I>_+2WSSb4N6b8mgA5!60YW+Y)^VoVZCmEh~qUo-lrk}xqbRtZ4yOjHxq zaZ&#e)kJl?)ZIYd%G$@c_a*nQ_a%?<^7hV7JrnCqNN+DiHBp@?6~fBi0L3fundqAo z-?!QF*WxqLH$}c3L4S{LUVJ9{rpm{?aE`8v0ma+#ndqAq-&yjtK-)e#Vwre12@@03 zlknXgeecI-qHl(LyxLrmkuHqSMBhyLwgHtt!FH`iJl}Xs))VyvttYww^nb@E*t*~U z<4>^tI9p`m7R}NY0g6wfnyAjs{CP#<`LThvjfu~bFflPliSy=BD4T zqME4AlgfFXT*WHfGaIR2zFv0RfNjTv8mjFakoWJ^AdmDR&=(rPQ=mVKUIqEi{{zsv zYWo{#b5-H9aI1V4ZnYiADxZa0<+E_Bd=|c?vV0b9mCwSh@>#gmX&{e)&%*8Fv+xac z?DAQ7XHo5E;ajOPpM^WYXW>rpS-2Db$+PgUvAtf4O`PZX*$dx9HBnt4mFHy>jRjCF zkIzKkLisiWZ5Q8n@tNpbBwrIIv+kOJ?GE~?Zp{%}F9{P9OO@bkv`gjn;xo~=tb%WY_)PRI zk8gdb{^ZSlQhB2!OiZjuqCHLBoi7N3c}#_??r)pOcCm3K_S z#6*)MddAl>J`;US<>Q0O!PIEkL%Tu@$DL)iN2QUw@-Y#$7iCijeMNbW96$o zr|pt3G0`@a|EX1_1=>Cm0g8Q+Ffq|C34ab6eI4R6(brzSDp0?SdB6Bf^mRn$ITm%;HJ5ub^^KJxK+IXk{1<1^9MH~kKcuTOj?`ufYqYp(O+J2pNOeFNkJ z6#b%_s1B6c6y(pt!#@iw*_a{zcYG2iCI%_NeK}nHa*GaIkBNgp{&d+R($+6@7U&`+ z_*}(_u^?CZO$bm7NWUibJ6Qd01@h8=BU)itKNVykG5Q>{J`v1k;*??I!zwdrcGs+YpR6@p- zq?AggH)VvR^kPyHr8gldLI_Dnq8DKhiV%&2B!no05G5fbA%qY@$a(JPUf+Aop4sjH zajtV+=j`j!@AG@^`+mOP^<6J}?KRWxT4hPdPS;$nmr8;)U6uNg#lD@#Ilk!CPcDhcXhS8-fD)DfL=W+&e= zH%kc;5=)hssX0F=9|^u?8uwwTB&f@!J|dL_b%oS# zs8biKl{lSi^q^+?g!+-tZ;kiEdHJyW@KZsqGpu8fU~Vw;R3Sd5j{B1l6S;QB%yIEA znRDD@jFKm*3$*qmto>SFdz?ov`Dl4YFFP4TPb)z}Vx9ID_tBA7`X+llqQS64dQdS4ky7tx$l^5LlPhrt%5>D$VqLB}hnARN{U4 zK9r9HUuE}IFa(~gn&LgA!zAy!4raJPN`1_e(=tCLcj!`5HNu!1Wf#wCj_5sok>{d z>IFCs@cL3J32H4@@mnB2`CQ=pT0Rndwbf;lR1(yDS8=TUqAowkM}n`O`|^#px-a#8 z>n9~hNHp+-LG+7M64b`7;;!XS@7LJqd-L%(L;m(!PpkdrwZTT;I*l@_Py;^Pv+m?{ zyV1X%Fo?ElG!jN@RuES5PpKrR1+Lz=hceKQPJ?J?`AG0}(wwVEB|+^f zwW?GS)FP>SNF_n-WU1a8cL9m=%+Dic;XPN z)zTQXlprB7P-E=xKKv}2WDxDI1PO^Dp1`|C?T*+p?Tqp~dy-Kruk|x(?KDC(+K4|{ zwjckLx`)ft7$l4_)WPRI)9j+PF(YDo-j|AUH_u*WvC*L9Rk>DGp(GHbLf;!q& z`y>7xw9`en)8g-?-C)FT;h74#|y62=(gV_^R_HZ>>08Nko59gLcKt(Vbm z_8us>N1g z7km;X8AL5LE(zmK^l@=5ZsFSoUmN*I@J)6f&RTwVAU>;+45D^QkdT<>i8@AyYM&o1 z9|^u<_cb#*Oul2~Bf&S_eFo9-Qb|x}xQaXTX5Iz;NLark)VY(gBxGlK7Ds1G`MStQ zf^W8F&|NACYKg0OpW*ij;wsAT6Eui=C_zGEp8EBYN`gAy)jXr2rt&wy+W7o%&)Uuj zpEX#!N;TZ8u!g-)-&3l+soGaY?2LbNjS2iqYfLm#?KstXs&=+&)+9PrvnOHp3$<;h zOC>>Fq_yH%i_cLc>@A+Zy^PYGwP&aw3H=s(Kb*Dv#=z9Gc7U%R`ei%YiZ?Xkcb#IU$$80If2pbGCDme6*#&!sWDuRHaY-0=nU9O}jo(0s^NnN>ovj23 ziRGTa`F5<1;&bIA!MDPFI6sb;Z@7FU_*S_OXH+NmAwj~HcTx5NWl6}c@hr}$?($tE z9|^v-?lXukkxGKPPBZA?UH;4O;P%qEqt%&&&KorDl~PGiH@ccoOzw> z?I0(@na3K=Jl1gLv4;K28qPe{-c$`|9y{aAqlz<+37mPX;ml(VXC7-f^H{Sc(OAu% zgxPP>wp}BY1a-62@lr`px462O(HXwIsrSk^C_zGEs}cjX;y1}hf^VCAXUaE4J`#M} z2t)=c@B<@{!=HDBp1T?vRfJUuE|hM0ZIgL9HrvhEx*NYEti$ zN`hM5Rot&#Py@#hUJuAeg0GhQaQ0jz-$U||;H&LEgQ!F*32MHp80`{uc~m|UeD&Oi z(MHSnxO^n|8o19OdQvJ0YGYUN?)Q|bIg#zgQqTSuDnUY`nfg5|l?1iGRa|$ktbu;G z?hdL9O1G3RK3t#Qb|0?K zB!g(F5+o$rdji+zvA#v{y(%9Gz7Fog)%F_sUYCyqUnln&L~lwZLG9`)uHNIl3;L0; zemAJ|3S~*i7I_v*+8l#c{oFZUTltEG~l_EDELrt(?P6!rT+2@(?hl$a*pTKP!u z4Rl`>qYd8KAo^535`0742X(zv64artralY0&ByI#>K#sljP7!}#At>SuJYWX1x6qF z43-#u=7eWKr`l~sPPE?W0Z-sr(0xvL7DN@#f~ewI5LG-2qKaohRPik6ArM|~~^(YNxE;2Y&W9FvdB_q}{1_(r?WAo@`%3F;VEan|x1!f@7- z45BSckdPRse!od2K^-sk52+-m6Q%wol>~LNtNBL%m|FIVxm^ho64N|^YvPkNkia$Z z@if;&*7{3Ly(Ut{HIZF#O(YpaS@uTCCp#pJTkPXv)%eYGST&MCl%oU*iRqrewQix$ z6uwIGk>H!*K3togm9MgVB=}~z4_CA2-G>ATSF;zD-BnoylBWJ06yURy{uf%-@ z(VkLCQ0KY2qcy0m1PO`xp1}Tn)yKtiLQs~X6_EDCE>_X2%-A^hB>LPXK_ob!2 z*B+n*35mt(moJqBb*Za3uHLK>j;j?;Sl#3^4r~3bM!Lu-dG^2>jw^P-aYZtS4$`1LghYKMNJuRA1dgkfK0o*x%1454h5K-ntd_5_d?ff*xz8YKDwPCv zjjK57KJYH+N5ZP$lCO`6{^Qb|xZyNV-ceT{JBe39mg z#9DvzkuEYyjvUr-xcWKFY)tw+83BIlF!x46hsXW3+R*Ftk zf`r62Pv8jq!nX*%Zt{`f+wMLb5gX+zl8*#m1=|(b_P_QoN=PL^tthp(R1(z6uHyLn z*2lnTBpiR=YuwY6B_UhYvw228%GXam5`5L%hilUo`3A^Gg0H&!Y8vHL#7g2dSUwVb zwcJ<5=;q^t?=1O9@YPP^8zvtKzI=`Qo6qk+tMR+m45ATAkdUb72@|3}v_&K3Bf-}| zzQ5$VSUwVbjooJuT`H9XwVBk*rIMf)NF5`U1huuRxcAwv8C)$N3BGpj!?h%*PL+R!P1|@{!={>OO;Ls#FrxBB{4XB|+^awOA?% zY9Fb0N+m(c3MTjiQq$wQ5Hbux%%DM3PFs3-8VqTS_tP(BiT z!`){PJuH<3b)>5%M0={sBl3~p8zo~K>tGJ_R zSQGv1V2Hn;>lCBLUOQK{D~y_Y?IzXkmhW-ZmdJr&*l3~wTfAxUv(q;@b6Y} z+}5h$J2W`%nMR!Hbg3mqOyK)j+2tK0Ch+N)wIAinwokpR?O{aUfvPn%V!z{5>mlDD z)oe4OFSMp4tm$H3Q>YuIlAtbi6-N`l6$wWZ$sqbx2@(>^)bD$#B&f?>%{SU?YT3`1 zKPo{&Vuku`kxGKP%2ixDo7Y4?ynd691m7C@_)S>2YiXgxA4-srSnCPQw6*(iH$o~j zYOCyD%94;>=UIbjyHpa?4X)z;w9vaWG}=@Nv+rz_e6nG!ztoG2lKWGtxIbkV+@F#R zqAdHhfcO)$6UN=>1+t5BH8I zxDN>uw){k8cU6{z>{id3CF`5SrW3_JZli`DU}3uyVUAZNl+_T`|JqU z9R4c~hZ)Vy!`^CP#J@*>oYdZ`8ASW29|`>`dcVVs_;;c3o1Xl;P^s^$`zcF8wz6mO zzTZ>Zdw_f-_^P_kAj+3Yf?Ca0+~M_BmxJUZ!B^dVIJZudufBXF_-bjihEhpTYpY8m zQ~AWTpZYacf`mlAC#o0~c)}oRDjx~HdK$O6R1(w%uBJXo9pK}3GnLz)3z+ECBpNh(!5Nu`P>sZ{YKl`5X3QpJBD=)YM%j~q^@vEeUf^_eg+7`=)LK3ge9hd4tIsI+;hltJ5Vci;ghYWSaQr2m3*{rh*E(b8 zW0W8v(asaN`Xt|V)j>WIeC^%m&suzS3$4Z@;!-2-Bm8d9WxhqX8S%(@z~~!0fcbuO zf;yAXxr28$h)$GBg4)SdZ21*h({A#S;Oi=1@+786J`#LI8m*^P64YMmGR{Y9ZnaK! zk>TunD?vh{k0-D%|M7Lfd*gMQ>1j%kkm%=$d?Wt7Xe1_h;%K8LX32?8G~$)@BqP2L z8btlnkA!{$y&vA0Zq&E~~LTtJwQ5n##WyoqW>;zs;(z zsr;StD~$LZRyP_=_E|k{lDRH}e=gUWe zZ?t^V<-1Tm5`1IahokNu`9{e{f^VGr45G`VlAw;4dWBRH)QM8Bl1hR)S?V~cB&gG* zUMH0Vwb)hse$#;+vA5bA-Rs+dt9%`=4Kpfn!oAcZPUDR3ci%%sJpSf_Tz%eXwyPf+ zJ?gb@jF|n)Xr9-q*tPgEry537O^haJrlg&%Hr;26b)Ms$;k!{j5_~hXy_2Pqpw4m? z?~=FJ#~_}oH_JzYZ?^lI8ddBVe8uvS;45(-?n>wStZ;wunC5q<5+o$%d7{2i()n)r zNbt>fpFuQJDhcXBS8?3W*J!ikBf+;wzNh4SP(BiTi{*PpzK7)_!M9Yt=j3}tJ`#M( z+_x7x%QsIx5`4?mZ;5SpO}?k)Bf+=Eeb{fy-G}}5wi1h! zAR)2V69&->Qb|zPY20_cOP`X+QkVC9 zT)aCc*P%C*AR)2Y6ZViYdc0#evfq-A1m70-;qwB&Poas?8m-VfN|2D)s+q2mN`ksg z>ibejP`69{P$~&(1^aa|eq;1UJ_G!I`zM;q$4ZcpsOSk?*YNouC$jeOx9fB?O1@pE z*{)D=tz&0g;Xd=uV~qIkyG%Cv&Bn-yZZYD&;BuD{{{@%XM(KV6vre-jVOEuWR@mno ze2mn+^|=xxB&vEMb#Hws9|^u{?z5)RS6Y{^%3E6s@)mEt_s101LZtrJv+8HW-_5(wh{wS-M%UUUHz%54#N%M95sw2L z5$S%%^>59Egt;{Hx!~No)!&71oX+Zq&iHgZD-VQs;{Q9}P{%QFcm3bLq3&PJo`l&K zXn*8X56??TP+Pl-cc!0pL{yTG1YbM%;og>KV}TLRRovU|>Z@T8RaTaSYiw&a z(a`AYN?5hdM#-}v*7{4u*_}KKqFQVT?rBr zojif_{CBO!p7N34>*_w-HE(kt5+rQVKgw2DmV|7PXK_`D_Q4uB$hVIZe7)QUbw8;j zsC`_;e#=&u1LPyY*Ux=+SVSNB*;8NCPGk_}D@#Ilpk{E8R1(x7>U^-N{P_Y2=Lg9k zs;?{w*`boMDhcXnsV$_EppJ31j?pd} zqqTe__{O;p_a(c@*H%6feB<4hXH-qTLitGWP1LN8kxGI(*;VZQz15|Id?fg$smlpc zNl=TWo+yn|vhrX1EVqzOQ^m@{!=1kJW<~$c|X5QJ`#Lu+=ovXM|nS7|5{cH*S{;2AR)2V69&;$Qb|zPxr+Cr z_L|=~`AG0>a38ME$H{k{d?ffby3a1$QAhbE$VY;2ll!oeo#nexJ`#MJ-DeO@mP&%U zMe5B`Nl>>+y;Uj+>NZz#MK3lrC&IfB$%L2;qT7`vA-i3jr%NS4tzb7<*@#B>NF_n7 z=qk>#uD<2Cvph*_aIX?1Br1CX@4CEGC@|u8K;UNy{0@kdjrbi9gN&+F#TJb);uzN% zo$O=ai8b%*W*YHt{No;p_jPlPcwhIl5%248tR;7<_iKJ6%&)4?Z(pP2I|pXVM}n`K z`wXHvQb|y&Yb%paa&zS)!B@+DIAZy&AUG!Z?FgqC@jDUDH{z2vY&pO21fOE~Jr4NW zl$_~vMyL3?ykoSNui7S~K3@C7XpzkzC)(Mb)9`y2Qos9?zFwwYY6lYUK_1hbNtknO zpR++UUn&V|zN^A=}!sI2)Njc917<%qPd+Ys!+4 zZRgqgM#;5vxqKw}+H3Z2OC>?=;3|$QeosPy5zjY+=v^g9NOV%a_oR}bc6Al+0YiK{ zaIL$|gtB+*to4_gdbdusSY2?p&VB~b8jVZBxJ5oL_T~Gg@|gTcJ`#Mr+_$gM*Y3lL zlMJFylprC|#}jxrJxBZUGxZJN;$iY_kdFl4K=&C$Ur8lF9pWmk$|JlB`jI*t zja27vlqDfM)U!CFE|%{*`AF~$cOS0Bm&&(UJ`#K*HPfG^lAw-q74PwvtIMzQk>DHc zKC?t)`tchbkhoTzBfE_7r~f1* zCVIjk%9cukI$3H(sU)b=q~=N`K`oZLi&PTS=~8!-N`g8=YBi}OsI#Q*EtLdyw$z$Z zNl;6q?kkl9b)Ku(AJ=QuYRgB0Z@&9*93UaB2VO_e)M}lvQ`}Q@uY)|;`Oz>%SK1m4@5?eKcMe?029|^u~>imn}LE)W* zWDuRA1PO`lo;b*e&m!@Z{RNHDM+p)V6^_JJ3Rmiv+=ridzN|!FB}hnARAQNY{pBOU zS6RL{qvqr?y;NJvyuVwHU7$VY;&x_s};H%vYfe6`$H-zd4hjF686 zUv2jpL?fk=pysFPay8@P(|=wqMrenuZ^_LnO`LZY!Ja3-&lZ;X5- z_?o#7=h5f#T`eC8z5@5*Jo-|;Yvm)s*V=tJkG_`gdihB3wR4|AG*K!EYI|2Pd;ZNy z+|ed?hm({bA<;qorb;D2?c^%n12*}rFuw_vab9*dN}lDi)?aGs-67RtQ`rS~ha`jO z7L7~7xLti*tlBhFdEG6Rj|5+l`*5{*zRdKjnK^J`#LG-B;fz zIo}?Uj|AUv_ZdX`YHbQNdHzdjnq{afQcp#%wuQJ%oDR-sndM+@X5!8h7{*z%p^ zds;pcd}G{)eZI4Ni{vB0H_m-H606Aff_xO`q8OC>>_>?%GZR`oIP zeoks7I^JjxS9=-lrMWCqKN9*)^L|*}TJGD=sD=`6C_zG^So3>JDhcXzSF!f{tIIp` zk>H!*KCFG7e5>Rm!8gl&So=Eiy)PdLzS-`>+SilsL-|PXmAKC!`dBIn>O5Dm8i#t9 z{frJ#zjaEGkeKfYZ0}+6eJ&pfzJ>0?_BNC6OZiCfEpi{W_XzpEmX8GAV)tQtTgtad zJ`#LO-M61n8~J{aj|AT`_u)>uoqRvZM}lv;`>;YsyD#nsbI?hndC#fW;8(qcO z*v03Jt9&OXyuWqVcI>Py3E54a#S1+=H&DJ>@{!=H&=xC>qv=fdrEdBDN|2DK zsKnXooF^X%zRL2QD_kygBo`jODDvG>D1AML*Vj4n~4of0G@ znrVx!l<#QyNbnW757*eS@*OK53BK0uGa!xD!nGcig)xK|-RF`t^`Xg4)&9`bNq1ua|rz_=?o!RH-DWyE zB>H#)cicDlYG7S%a_Vf9+;OwkU+P6hS69dJe7$PLM(lz+ZjwQChQ=jf+0B95BJKqxeo~vw)_rd&sCO$ z>~PQG7{5!t;qsB-8|glS=mM!EsH3D_B$Whpw5!;cGkgp@nIIJ!-KTLcQI>@47k zl>~L1)GMWuppJJHSI4VN<-dYKYNwh(G*(#>vJ*Xvbvf1Eop}|#Mm`dJlii1-?g8J9 z!;O-EZ)dy`BqXMJ0;}lCONLpB}&|+1PO`hp1}L+qw-CWj|ATg z_ZdXfq>`Y{auwIV$JOOF`AG21)@V=4cZYl=_)0X|T~bL<=SiI*l>~LZ)cd58pe}S3 zXWl}e0gkI@HJ1mJAR)2H6S#}qza#c4-XWg%L?0xO4}0MiZPDZMk>Fddey_>*q{F{o_sILM}lvi`mK>~seB~(Hpuspe6Pw!f^Vby z45HVilAvzVtoTiy@VzM?3BJwlGa>p!qpgsS1m6~owo)ny>Q+~A9s10>;GE`f2evWV zpw6q6B_X>_oj;IDg1X&RTuZ)Em$mYd;HzL4ylnps2>x4~M_7$B=xX$hvY#qTLbjr3 z4Wji@Nl+`hisSh^b@@U*5`0zNhwJHP`8LW&g0GtUaEAUY-?#FS;H&PwJR@Emn;Y>i zvb_=i22_#JZuVbJ)Ytyx`D-_>rGDD{y*iW7xt4dvnfI$^@S}Vr_-f17aaW9iZJS^| zzE^Bff`mlAC-Cn4yE^|S9|^vC?lU3UCf^_Ok>G3KKHTU0Bi~>0k>G2re#z0kT|N?g z&D@7AkL;q#?a10EeC8ybDC|CV%SVE*$bEQsPUg3dd?fgK zxv#0wfu`m}g+|r9a~~tV_Y5^Uq8e1Z_wZfl5+l9~jWbI3F0`LUBVn{YKAJ&vfK(FH zey(C4Jz)Qrdpch}5_|*Y+godJkbETghPV%RzBT2mFCPiMq3XAanBrL^h8JWYh}c{8-u7&SrW1nJ&VuZ2@A=%qW zOt^L)thGNzT}bFM*}LE>)j+-u@{!=1=004d8p(Hpd?fga-DeP;D3t_ty5`(OUAoCf zf^UX={0%y68-IhY(1^c5*UzXxU5eC&gf6qZ3$EzNZ@l%Cj|AUr`C55DT-)!lCE;G} ztpo{)5>H_7AE_CfCLamDdFtF=zJBtN;G6G0yk8zC-vIeY@GW#7uI-)Ohi&Vq#9$>z zNG$RMj*_nOoh2U$zQyjtmY*cwQ29vkEp;D`my_i?Pd*ZS%iM?KFe7KCD3>&E*RDNbs%IXje%kL0zXV{QaENCtl-} zAR)2A6WB+6HSTrtk>J~?aVJP6LEYpkj|`ZKNNmx# zH%lc!-Ri0d(ID@aT$_%uT5@f=Rap|U+dPXEAL3b@za(6nNVqngqjkAmT}bG%-Mipe z8z$d$`AG0pI0|<+IMznUcaMA|_$s>3Ai7s732J3mv3?`HOX~XFuLKE+s_HjeDhX;e zS51g6_I}CwwX#~Wesh#1AzR(ESieg>i}fR6{YY59%eB38)rEvEwY&?~Z;X78$wz{( zw)?PtSIakFJ`#NS?lXvt#Jj5FnW&0w*7B>0+XJC;Z#K`n3<*Vu{b@``*U_*!eUN%FlW z9|^v8@=cX*xqKw}+G|#COC>?=pjq9bF7L`mg0GWCE0*s)`AG0}b>9I-ce*e2XkViQ z35g<47(^dQB|+`wstM8E-fu@o`zOkhknQ7H9PKkbi=&-{qn(7KeU`T9Gj$=MOF!>| zqy0hoHpoYUZ=m~dv_CB0SMrhI8{$432lL#A>-Zx|e4_*jiJ{t#C*=E1J`#Mx-G}$u z1@di{j|AUH_hE~kmhWfzNbrqvAGT1Me59{}qe7W+G;45|?t}n^AQtu)k3BKv>!+ps+>bIMGB=}~y4^Nb; znwk?GX7p_3aD}U;1PO^*o;bj0m3L0vM|&$lLSnWj45FG+Nl;5%#Xfr9`|W5S?W-&a z*?FGDKKjtJ*heJnBNFz}$6ABh>Ow-7`Q8QlXq|iq%1454q5H6pK9{eqd?ff5x$gj@ zFWr~ALI*2BLSnHe459{7Nl=%%iWU0W`z0&X-fGFacq3&=$S(6NR%nxFu|g!Q5D6>v zgSM!Nx{%Oixp%<|{UqPv@{!OLH&e=5;R2@(=(JdyhO z{7Cso@U3+p&X2#n-~LAbs`F7wkdRoXLkZ&jXj+2iB-$wTtL>;A) zpl)&%E4j0}be4|<-)8sWdS6ApuJV!K+u}Z~Usd@|l8*%6R`=nZWDogHmX8GAHuquu z_LA=u`AG0>cb`GjM=A+wg+g3UFtf&9|^u{^3{{?9QjD_Rd=63G)yW9YAsi>7YGmIkf`SggXmJJB&ZEs#dYH_@0VORT3Ic*Zd|S`3E9S;#dTx2sW}m@ z8zfveNVsk^)Ao*07ZSQOE5sJzXg@-}tK}oXSKvNeH(JVft$ZZ-TDuR&RXg|DA5j}6 zu2+JDL_1FyL=&Zwptdi>{IHcrtIH($Nbq%VUo)d)<(n!W3BFG5!}cC8-!1Zy;Opu> zY;Py|isd80SL8l}=uW95sJ*1#EtLedkE^wfy7(CQZ59&tKIwR)?ymMS>Y=&JR6i2> z^((|$;au${-z@n^@C|eyj=EFbx1*!(L1jtE4)JX2&$swfnKq`Lu5lk$mW1q3&l*IJ zNF_lXE_I$%64a5dV%yHp7*EJYf^U@j459^6Nl-^ieOf9B>KIpXY%DP~$ItWIYzO36 z#qJrDAR#fX5G!8ADETg~7v&?tH{N{)(Nd`-s1seqwhh#_y(%9GzRB)0h+daUf;vs= zn^H+oi(SQed8Wo#As-38>F&c^&X#Ybd?fg0xX&P3EtLdyRw32}uMeb>pw2D~$LYBm zW37B7_)6sKWNJ=?GiA6EpDIB@VxA}J80}*J@m`rf`?QBd@$W_Ar~mBN+vo!ITd#g3 z^qXIZnc_^j$bCCHQ@&7^gzQ4k;>yJtG&SN+WRElA{CXIT)(keP3kh8o6^51kRw@bV zVpnm*4z%Uwar(V{B>0xP5AS}-GteL9Bf+=KeK<<4)U3A1M}lv;`><_e-G^->;k}21 z_nvFiO3Ra4jCMet*eFf^Uuc45IB)Nl@2H&9b}A z_&buFpssTjdpg_iMR&BPbCe|^yTP-#E4abuhneQue>u^y_UBESb0uX-$ZjmeT=1$a zl>~KDAymwYKfg?7)!u5!{lTuvl91i(**v2uK7-~)JnE30<~8i2%s(~XU7bnjyrnSA zc~7Y%s9RmdYTTA)HSW-AR9BXS>^9FDMEgi3LEY{uR)arL+|g?6rz{EC3ig#u*-@U+ zT|R@<)tKS6|9LeIP-hZ4SM<&XQNC0X)XJ{nnlry+I71JTj|5*;b*V3v1hty0IDhZc z`Zbh~1YdRcVTB%W-;P$Ov9cs&YkAgU(L)-eseB~(YP+w#5r4vlmE=#|jxjpi5;+mB zYy6qqU?U!NR~eOf=P5=!>ZTi|`(2IZ8kdA|^L<={sD)G#)Ou1|OC>>V;ObsR$!|rp zm5&5pWB1{Tbd;$%_P_R1RryHpHFIARqvU#ejC>^c3fzZt;Zfi6)XxhYlprC|+7kxR z2~tT=+qsJU`?&W@_HQezCD(%!l_eqD-m|!7Kj~Rqvq`vSlW+zsbk!j0rYEK*GFyXn<4_)P7P2OC>=a=qi5KYOXB~ulyw3x4*7&&r+6z>=1PxDwPCvsH^yW z$2Yx88>5v@xTL{tBq>`YHb`>i*(GGO3Bnd0IR^wi#ED6~$>U@P%64Y_7VkJNIE^Umy zaKcJ*46Nk0Uc*YRcS>E!hI{_kmAp!GAz?1#eJ;3mF8AZ5(CB*~t&dUi8$$fH#t~Ng z-~A1taT<+;(I#qLu9HfFI$7!jsU)b=T*W^B(dTCn-6$UkzG8KmER_Uxy40JclAzAe z7+W;Pt@4rJn~LEt9Xal?)`RjJ$+1B60*xYi+6}D zdwjRPEwq>`Ynb2W9Jzak$Az76W~np6_hjjm#!@2;6HmyZPBCi(W1 z?``==@NISUUlty0%WB|+WhYU-AMBp(UB?dtN0R1(w*_K_kx z!j|u&nSLf83BHQ%!xrr)-v;?e@Ktu7LG+bW64a_vzmZCUTFq6we{40C?;j+*e;lB3 zzf+ckY;|?sER_VcmaBOG$oDR7jOsgK{Wu2RKN@=t?;i&_rM`ds=zqs#f~mZsPc_Q? z{kuPFE+ovQwr2XPR1(yDSFz4{6|n|*{VpE~zIyUC^_jxAO+FHQ4K&(6Qb|x7yNbK( z=IRpJ)hGUWtrL9BG+GP!vgISeS0G<&`6|jsg0HpvaHUD^>T~5I!Pm}xO^uSf^2GMR(Nl-gTttOQOwUgAnrIMg_brt)gt+uG9d?fgadHrgZ=m~dcAp^M!Sa#d8=`(E%GW?X5`075XAm`#N`gAv z)zm9e6ZuH+jZ~MzrIMhIausv#rnwZzM}lv(`|$o-i#Ap9FVo7a9c>nFKEo!eWBy^eRU2s;MCf{-Lk>H!`KD__- zldq$EB>1Me&mih7l?1ieRjl&>b?GV}3BKv-a*|XM)ETbg{NPU{45E|eBf&RIT~3io zf;!vP)Th7v*~E^X{tosz540@rxJMf8>i6ULO?+OT@!W#f=ZQw?o>uhHTu7KpiDueY zDhcX5sr{vrpw4#{t8tdrbdY=`_!g?m5UC`ni=>_-l>~LMtNBJlHO4UcNboInp9%3( z>}E#iDKSC`5)#Wa?ntR5sLR!_tDab2EFTHJ74E}t{UuM&`Hkv$dd}zQ-Hk4>EZ^TQ zRTmPvtnx0n5}vO)UoIaBzBQWj7^x(vYhA@11wX4DE5aSch3b5@vLs~Jc^3B!qukfV z=n5xX;n)xN3|Dy#_Y9XgrQS3A_wVe#R&ya?E*rF!*GnZq-RLTw;f?bd7(^50Bf+;x zT_#B-LEY?XU84!!1=rK-oQ^WuXqKGlB%_J`_o(_B&G6beMz?qk=i6jYOg6gFX{OQ5 zPR|%I@v;%m##Kg>Jo~9?yBj6nG&)r?C1Ivpv>mrdB|+V))wtEiwNg|p9|^u~>T;)4 z64dQljidZo23F&C?}ydsmK#>%1+B)57R!mS8ZT=#PIDhtqo)&AW4cy@iPY8j(Yx$u zHSX3-NtkH`+wuH4`#s(nM=Yt(=w7cGL^G8oAzRV2P-jUcL9MLL_j{KHR^wF}XVlE< z;rxA2SrW2UJzK|Uwr23Kd?fg)xer&&Ir2Rs9|^wd?lXwyNhLw8CG`oZB&fArO}#H! zARh_7e06zRDhX;mSMh#1S2JBC9|^t&>hgkA64b`7nh-svE-%SPg0GqTur7n_zMa>} zm*peDSD=3Ly&tafPdVY8lg}8t7Km;h8ywc zJy)tW!H8FHygMgX>P;G#gmH&z4StYHf;wF4Pf|%xN4koAez*4dFY=M#8|A)yqqlwA zaQ!0{8olc^gJ`R=BxFZxjQ8aGQ$7-WV>HvhrIMhIllrez64ddore1w2*l6*0L^;7X zQC)VDN`gAsRa|}6Xr?>MM}lvf`><*+Y1OL8M}n`|eOR@RydPGLRA}^x#;B?+3EAnM z?O>GrWONVtNbt?jT;A7Q_L7eT-z?4LGanaoAr%^J@R~tXLs=5Cvo*%o8l#qcB=}0) zXS*l*%KPCu`Hd5<415BFE5mv_+<6}DuP!8XnWrw_dDco%o_r+u=DQDS9jPR!3#HbR zN`kt`)k34>dT@w*B={D)57&durt)9uO|AzGy=G!`sInwvmud!wNhLvDCbgMV64d3c z;t2a$V;mtL3BDET(o!l3>ME&iq>`Ynk=jlw3F=y@M@uC^UFRz1_p7Pgm&eLSf^UQS zPBBW3;^XBb!M9QU4zt6D{W{4SrW3FHO4>kb(fC> z-xl|wOAo0es9Rl4z0&lOj|AT~bvack3F>xNaizhpZE<@~myZNrg=29IgD+dYGvp(| zSJ8bq^LX!wGq0i&1C<~lQP~rCcgdCSO!-LgRdpYp*zDrILyY*ht8EiX{Y?FAWl6|Z z^DOojKcyBJ@$A7nVshr4t1JoG>Yl|BwwvZRTs{(fwcLj-|Dh6A5?lU*#d4x{M*IYc zYtFv9lfFP*Na#{qU8-rci{vB0m+wA<=n|RCZ@ElF16N@YpN zHufxzgS|DsvGS4NYvw+zMosyyk&gslfo3{hDhX<9SMiK&Uv;@bJ`#NGG+N@jNj?&M z?cIlGX|>gFihLyaI=By8d7ymL6~J@O9O=2g`Sdd?fga+=pYWf%|Z@ zH&Ws*B}hp0@`PF9?+9olY9%_}sEK#MbCAQ;Z-)Aj(65j8!`WCM-+l6t;Opl;Jojnk zK3xBJ#{0M(!?olAWl6{m)K)&OYwSbvk>DHRKAg2jY7A1L)sE8qN|YrbJJho{{@Tm; zsC*>&hP%%odR!_A>PU5Y&QzY$$En|wN|2BkNHnz zJfGyF;dnk-^LtYX5)#FpFiZS5MR7dO^m{!VS0o(Ir+60}&wbQyh5C`uZ@Ol%UB}u= z`AG21a37AfzTOYVGpW$1zs6XtED70J8e@?Au$4oU_&^B~60^0HFZ;G(D@oW&61H*= z`~BFQ2wQoM`mI$z68e>B2E#Oi5lVcj1PO_Gn!$&f0SPl8VFn|;3ubV!`mI+#68g>e zeg@GOQb|x3x{9-Lv#C5zFIB&dN|2CPF>RtXXki#3DqrIMg7mHMMp z64YfY!RO%3@}RfvzQ!pCZY2N?`#lNl1hTQQEFwWB&eHQ z#rxJoQ*-Qp?Y>Sv5`3H8hvRCJ`*2*545HnYAR)0uxNabGgk)ExU?`^^jaNbps#AF5=#dVo|C)QYZRE)}YVF8T72;H&IDjCPAg zJ4ikfd{s4CeW@g<)uc9*N`hM5)q{M!1+tU`8&(I;AnqP{o1M@3H=&- zzXOo%81_t|d?fgqxew7pJlFup0Q`2LVB_UhjS%av9R1(zI>dZTZ)XvHC#1oVy zA=^%!Pn1f6+FoimsU)Z!q!vjfLG9!!j*^E><#FFrJ`#Lg)up#o64WABv40=&F4({G z)bBJUNJ#YZgbDF)%VGa!`IQy>mxTTMgm=OIU7&vb)Q^OIeKfxTQb|zzNgXVe1a+X) zv!s%s4v{)kDhcXPspm;0K^^WYR`+RBxw_}eM}lvpx?Cug1a*|FI41etoqFUn)cesW zWl6}6R_Dv4lAw-}dWBRH)N!t2_KQsA?5~oK1mAe~Veh}-KJ5J&dN&=X1PO_Wo-iT) ztqtt`E;_qO*!wSeKkWS;t{OzwsUHdbCTlw;NF_m?CiOaA6D&t?ZMmSBf&S@eFo8VsU)Z+Qty#Uf;vxgdCOGp z!F%N+!8c!B?w3k}x=>x-QJ2~Bk>FdTE_0-kpe~j=S1JkWQjM`nV>~7w3BG0OGG8hQ z>T-2?UtOM(j|ATe`975I8Tm-?t-+S_r;Mcb`G@iBuBQ3btU`kqOaO?}BU7 zFHU%8BH`Nfr`K?8`rFAM`pk%T>m>B6=>4E>kV=ADS)M8p-@{!=Hmd5v;d?fg)r}1r;j|5*W_u*=`lh4#3`dK~_e6`&N z^;fARsQIqqTD-Hm{4O5}zIy7iO)3d$1I^_E-G%=n9|^w38m)>(!(V0R9wfonOrvE> zB|$Avm#XSgQ9crUt>xQ8zFhf8@U?TF{ZVQU?jj!vzV>N+yU9m_uY>zQ#daWNMfiQ6 z>gLPxzfZi6Q=Zk1w?DF?`bM3cnizF)!skf-?S5RtZrMA$lkBC@NEoA&kA~v_WAK{+ zlHVn+p#%wuuA1Min%`}CVSaZw!8b+fT~cRAy;Ewwjlpd@$jK~GclTl2dN^U*dO2a+ zCR>)@o5$ad#?KAzv73IrU*>7fB+R8qTZz%iZe<-MNJ#Y3R!-MU8~FV2Y`u|Fp3$lH zN0xtbpX9T`iZ8YgSe#3Jbta*6AI$~*%Fd;s5+o%0X)bs9Tx`f_K}U=W^={3txz7so zYvBan>GlWbca!EfT=Q$D(MaewQ1e5-vhzDa2@(=RG{1Y&%x^}ST7668W?@#?tI2lE z)OO6ugNp4S+5e3RquncCC*Ml=x;Q0193@wqFUP-MrH+lp{n1ggC!ya^Z7=$j-QLbh zkdPRz?Y&QPDe@U$EO3XH*}OI@DJe+4G$8)Fs&t?EP~r!6WwN3SsY` zt#u(`+;Lh-bS}G+=PE%$V!T%JVa;l!&jqu(*eTDbtBuR|l#`sWLMJ=5G&;qp(5R17 zN29(@-HrM?^)?#h)Zb``)7eJnIGt}a%;{325l&-`MmkL};_6N{y3}h}mn(c->KP^1 z`+}Xq3Z1X*C1HCfYK5?sWmo7zB}hn2)(Xwh3XS%4!3tgJlxOt+=L%h(afL3`_L8u@ z)3id^%CakTxe_EKinT%|TA{LM1y+c)`XU@dtl=0U6^c5Fa12q!F+}PwI$MNeh$@aD z(pb?15so3MI~zTsIbZAh5_|P}r#z$2?CpWa{RSt@`70;P`5UJ~qxODGV$R=r4RhY? zw4*t9^aSSov->dTU!BGp{qB@H=WSlYaet}r)qJD2*2T*98mB!&!nRGp^9}O{m<({AJ&C5*63C5 zoVqTrdkyPyNt$(;sI4SnD`#n4ux(}6Ws(vkBxY+}9@V;VR#+DjeDhq*Q?0%TE5vsf ztk68a&q3lb^}EAY7ya&X$}?hTY}-ZJwvoDPDb`F$=vSg`L%*`ycBc{~pR=~@an0pk zp8@7_zf+!3GM5X}%w>i;lhAp-=7N4@=W?GCBqSDUE>CDKW!E{Gi;v+x)RH>@64WQv zrIo!e@ZRxACnWygU$ZavtH4y73*Xf+=LI|5qSRxETUls{TvwM;Dj@vi>bT| z8deE}*E2eXNa(UiM;*G9J?frQf`r6k9d*xY1|w_?9xo%EytC9-d{&s>YfhNoiKcRX zr&)sYTdL7W=(1GvLzlAidsPV%63aBd=QM+UHU{T6zzM$Rr7o@#)Fn<(UvM?gi2Jg> z5kGH1U92osY+JI=Uo4YF;wmMM@M8#x)=qgwPj$o$;F~I6fBS!&^B^avFO}(B-)hI& zV~5h80<9Ena~~2*)Q{Ozb*WU2o2tH?QGG=!KbxjzUzN&F+fe`V8fLZ3DK+t$68!v| zns_};;teIZw^I8pm&(sQsp^{<)wiVbb5CmaZK*tKQ`Hqxc|A>4-^r-HE0x!^)a=TP z>Z&wqvf}T#n%Zx*61+;Ks_$o1*GQeO&dF#WsFoawA1aZImLxt(lUS=nvKmR^<1~p+ zmEie?ElLvWlt^lysg}%iy}G2E>E~$@8Q=(a5%{z08LOHI1`s9KWvNr|7+s9U7|A~osv zt7^yPg=g0!Twj*^djPJnc+$&vmyYt0;9KE7gQ&Aq64X_C?>WQNoXGx&{cOQN)=t}uU$VY;&f{n)SR=+^Lk@At?t0>>O?z112MR)j2dl_BiHG}A4 zBkm&-vXwoHy~?be2GQ-FHHa?F3kebuRXu^Nyus9*$bLK@-Q;8tU2eoNNJvyuVv4C; zmof5@;H&Pw&PId$nK^#fZ@Bq#{CAB0aMeoD)mGyeBxGy3iZ$)y*``MQo!S~*lUKgW zwN_&n61vpZOs9FmO40R3^pW7p*IXt_B|)txb&^yP)CN+gN+m&U?CNet+za_er`dm8 zwOjJSTu4YX^91(CZKjsJ^DS0_ghYYH;89Y~YU4eNpY0^0-Dx#$ISJX;8Vx^ZDm&WU zN|2Cf=Lv&S@36mHEeoai^DhWb8(Di=^o;0P(IU}vPK}40Gwe(>u-Eo~?Yl0r&bsK# z3omLkVA!z6gK$e6zxp=Fb;3$!XW@wFXed^|ANIOlp1i0+B2$e2d?fZ%vj3m$wPkT- zXH>GP#y=M|r(U6jHl1?|B7$qRkY z=red&_fb90K((q;`^Kp(t8mWEt%8+Ew&FCaU<;DU`BuSbN#)A8kNt&Z8@=4pSG%6H+(El>

z?c>TMd+W>2!Z}kubz1DfyH9o&&Yx|uOM3&&OY)i_I@FxJetQsk-pw5b*Hgw*eG zrKhLTuY9v+oMBJR@T|DiNm=XvVDw5cEE38|__aL(s@YL5MhGn}um z8b`|$Qp4lQg=WmoO8*`=OP-K=H?H7aen-c~-|~c1egS8AnWxgPe33jMbwymcB17tN zc|vMkT)8U4c2#b{`CO&F+$64y^OXH^S*cf8!!zUwV@-%F*Lmu2{Ha_>&6g*n*2I+w zo=U$OIW0NE37X-dapgu&rGMW!Rh}@`*tjy;Q|b5e0(nAeLtMGpQ+QX+vj6xB+qG*e z&hTc(Z@`Ti?xH3IMYP&okRktRkJCC;N}DklO!9uEu<=M%%dZlo_+L&bB`*#+gWKc&0pItn1^-GoCuw{w%)-pOh!0 zK8h>Pd8&u~nPdO)6=s;zmNR@#Gdv`&EH)$G2g{GuQ=Tx^<#A<+r_#@Gjyxf?GOoPh zDIA%}E6ng;c|z*ocAWETX3oySwXXaOPnIX7E{`kAGo(u7390wu%G;hwe|Bdd#reFg zHEa}DUiG__`j!n_V>7n@hgaX&^RDrZ-iap36Xx@DTzSt^N7$d`xBVM=LTb-K&Tx&V z(%)~KC{IXT6<0p;6h5hyA8W2WA@yEd`NUJWCrq|I(BJZe)B#6xhM#$AoBdh-ezk`@ zA$4_J+2ARB+ATlBN8|~qcjC%do~mJgCa*BV-{c9Yz1wq!-mnJMOZYAZ!2e73h}OgX1JS>s0%*{FUt^c|zxXj^lj( z@l-SWGwkhzisT8Y>*C7N4C}Kv_F%!Yvv5|H@4Q`}(79y?&d0wyFe}eeVfzv~J@#a0 z=zNzvq4VmvGC#wdx0)xnM-`N!u*g(;O2t*N`Zcap^Hln4<`JFPxms38ogY{B_7t9Agn1?OpgbY9I<73qu$L=# z=2$hobNVB*kvySu*SNB;r@GjD4B}Uq*(7;FYFS*V?WvaL58j0Sl_#W{oyZv;=&AJg z03+lHso8O*uBY%EDS3razmO-SYIWgQ2WLq2mM5g9#+3#cQY+;Nsa?8qtVW)yV}B;w z7G~I9o{$VLaKIm&hRKt;r%^%g|Rxz6H+7NO8X3{5_v-EleltR zhSVM>aX!aog;Zf&>FBBS$NVsPLTXxE>Fg;xebcPr=kkP9gCdUJ)l=!OE$7M;QnTaA zNf}b>prWb8R5!?y2tGDkl}>wHyQ>62kA*2)v+ zb68LI>6;;SjXWW>GOqN`klMW$JNMTNPlzjnJcVZn`q?~LIH z-}MxZHAG|eh%4uKD*dN`Yvl=JJr-Anc`E%+PwMvOSi>~dEmpbI63KnS!q_vy`=q~a zd?rsAy~3&NjNkjs&gy7eTK=A`i98|IJFZ;psq{}grpOagFU1wiJ3A}=nX*ovklGqo zF89=nHp43RA75c#wCKaFxI8PQM#hyfp28|6uaLS+o{(A`SFX;G+9Xd%?S2|Zzcxdv zjXWXMKdxM#AvHmskSd8Q6Ft>9*(js1UGK^hQa{C&NuJs*ZECmExfPSLLaKgTnd+&5 zmMVX26v-1(qvFafo=X25;2wEGYH?gC_Ef%&We~r@c6}{RNLB93Ip682hG|nR-=)N?dt3Lu#u$A(ejyXZVPx(qA`v$`exK;tKw*L3UPtGCiX(!^QH1)UR>n2~VXz zHtO`}e4fY(sT1SM0*z%5zrt7}y#W>TLe-nI@UxLU}@JZCqKDA+^&0&Tvsy zNHvHnFJzcu7kNTzXk2;8Q|VWJk~|?*5?5aKRQluaQ+YzF@<7gcS%y?|c|xjpTzSJ& zO~a!5|Av*nPM(mO8&}@SFxEa`dFxDZ1xE1eYh1BVBWtFGWe~O$W zPe?rzSKiMs)+h3W)V8?tp{LRxQ3nm?3_sKiJH?fcJ(YfcT`W%+YkFK+=c)8(%1iQu z)cUycxu*(k^~xXf70=`hKi3TF#g#8J%&><%VXV<{REY0YC~N4#Z&38y}O^q8UCUfwu~!VJ(d2m!w7l8Sog-2 zKRwmJ_E+)>$NWlpLhA3h@^^+*le0O)zq3NBUtIauQ-wBA`D3G4o{)Myu2it;@Hd^x zr?SrBSQRRSRP(s9Q-;(qc|vMNT-n)EEo_E1)%X=wV}m>)l{b{5SMgN(^Q(_MAvHO! zRP|K)JJ{v&gj94c$J!%9s*OA$b$(pg%TtYPiww$a*CXTrpOagpTw1;Go5 z>>pQpWEg9%JYlRYaiy21(qE1Dx|Cz}(pXL6%BdMrJ>&^vogY_D_f#D_R?EL%+%8W@ zJrh^X@Kmv-%0Jtwei>(YhGsZCt_<{4`g`>!X*Hd{)0K!-sut(%-k#zML~0t{EO1S1#}r zeh(yhg|SA-6ULflm9e&ql4n+{t#WTlCAuOvdMTyS$SNySD&4Jud+?;s1yXtg;}ba;sJFy2z^8S>23mBjcBq{Pns#VP9;GE0=hx zl0}kZI;84d#m<*#zju!-qdkRfJ~$pBImWJ%Cye!QT)EOy_>7!aF7<&tAr+0~=wm&F zamsJk5%Pr8;J9*)r_w+9FOestHpP|ko=Sg5RPSoeXS`P9^tdwDpR1?;nfM*C=Y|ZO zSIZOTQ+XW6y2(@N?-<+46H-It3jPhxZ2uX3a%Brwkb7d!6z{yZ_5;95{#q+f=)A`@ zoX@ljsm}6*)KziiHczGh3_D+*koqjH+~KK0n^Bm1GQ(=uaz1xxUmO)z?()=WmNJN6 zfi9CLjP+<-nc=BA<}ZJYZImaZ_PLIu-i4+v zP=-{C@tn^?T8#_hN{Oe^KWV>Ho-o#Paph4@4X~w1ezq58xbyWK>rsu>Ev`JCVTQNM z6UO=|t~{9`b?^j^^`yoc5my#wNIfr47%Te*_IcJ*I1ZDSmHc(GJRvnRt~{S1wOO8! zYB7;xz38d*XYS?lgw(TfWvQpqpOt^g6H1*Y%Mnq$b6c6`rbVD_#EldQ+Z|%AUlrR(dM^Z$}i#6H<4@mDL%>`bwUVI%G1( z`XEE2H-LDV3|N(mkaz(<voU;Em@-x^yPdv3IkOgs9UW&7T4e=Bq6(p%Bf zDuyeee4MSETa$;yro7s{UgY?4YD` zk2}j&=2+#u*u#DClT{Aiwe)rsPS1_zrc@?c1+O1{KIz}ze~>54r_){bxhbX3qo~*~ zKw*X)J?m~;Lwm57%z1!S@Y>>I6&RJ@_SfYJeGa*Ysoy*`&{B4|$1jd#-v=j8NbNd< zsXsh*nE8V@p)vA=)VEf7DP_(bXO^uzWR;&%Jh}Ilt(BKsJWtj1!i;Psc!C;g}6 zU*!q&se2z&+dY+j@0=)4NDYrGS$0_N=(i)L$P-c}R+(xu#Ield`3ooJFN1!y#*wdkFB!Y79pwBygxT8uyZu2oN5)ka(pY& zf0CLiPuPkjR^hi^g~~1uu#f*+<2!izeXMy>Q&X(cGOzS}HkYe(c`!Gcm*N>`mAnH> zrxui}Y_!TvDW00MbEAbRl?$!%c}nF@tNa>QxObw5a-(Snl^$zIxyoBsS)1bdt6ZhQ z!?x}A;3Zl4%dLXf1ODl+zEN_<#bZY=mP_qE$DV=MhwG%zB~}@nQhC!Vc-@nsbG4GP zsUcRGmD1;3tE@|@RDUEl%D1T|qhD>6At{xWR=Fvq(qV3H^h`?S2CHmHsl0BLT@EST zx#FX_QR9@#aaQS_QW&x3b8a)wp7x|vMp`6;Ec*AuzXwM|O*X>OGTDV3A0 z@?}cpYOCN?$*(Qxug0It6Rsp}<}+2^s--* zNY>{$tBkY9P^j=M%w53L?iseCtvsRgxp8IB4D-2Jo{)MXu2j#EdRLy1`ZliYlVOJ4 zpW;^Rqiug8uI!g#tY{%q`zduoTsa^^YK%N#hL6UT{0ylL@`ThLPun%2Rq1`vyIf_a zRSr$@Y%Eu4^h|ElIri9FyuGfr3SI|gSg{x73G?|quGG)46^A^_&h@ooJ>yEl45_j5 zgs~osD~&Ux-jye$ezVHb)}>dh>7ufg^Q_XbO=-`3tBgLfbmcdz47Fc?PtJl?&*etb zQz~Pu($0R^k$7IS3SLcp&UVo&_2RnQzhWs*nDd`jIs2&6eVRXCwlcyhkHj8!ddVvH zA6q*0w^i_+`^mZ7;Dy|1zY|JV###lh=03ypzm0jfJYk0Otm+wDvxB@RxdpKDWvf`YeqrZ9UbwR3_5rrAjYz z^tRa{)xj#4o>6)=Mq1^j0i`SVTczf}(v^>_GBBl5B<#W!K={Ma6h9g|Nrgk;MWCCU0e=UIOD-1q)F=ks}|`+n#5{Xft7pZ_`c z+&eSZ*f6q%$hk0bjY#57eyh-4+4olh_M#Oswilz7)MSfp{vGqY4H>g;5-A#1y~sX# zMIUw!wjdIh#(yr4Br+$Ad_lzf!DbSwOAXL=kx12dWWR(wxt~@`7eA>-Bz;#u8A{~U zZho?h$ldNjWWA(3Kv(P@e)24lRPXt%)B$bm5H9FfamnN$bqy4uq} za!n#dmB`3_iL?qMONa~#BPWO~2qV{tc-u@mCFJ-0=#4_%WWMNgU=IDim6b@UUjBVA z8bMwrQa&uxoXA^Yy01gpm_O28EF)exT=_F!B=ZNJ&Z)1Ocph2vOiOiNbD3p8A+s; z5_vB8oX8SA0@6?NpXptiFw%iYxoQ4!RudVK$^Yzmg2=Qm5`BuUW1sk~szki40~PwO zPYmdSjIEyuO5S3N-k8F5DD>zMGG--59e*DCr(xT}H;Nif3e;o&nZEWXwu%R;)e&R&!*` zT217x9xvICWWUl+#Ae756w;1J#+iPyiAd&8{Uqr*S{q@c4Ut1(WEGLZv;9`|Z^@!+ z&+(I1L?(ribwozY^Jh|?r&qP}{iHRK0}K3Q6A^Fg$Ft#HKev&w*~ouEtT6%Wr>$l_ z;E~`#PPKVdN7cNk8*v{vhIQbGQ~QSjQ`= ziZ?7{wZzh+%P#;m-z=+(qB|IF8qARiD(vD}|oMx;a- z`HM*FFjD4Ex*o3ZTO)`p2_q+o#I5vaa{oooxnZOWku+ZQ`JN&c~n9i4hgzF@0336byH%tFSj^GY_dRoH12y(_gg#+dcKk}uhEKc_4~ z#;n6iRs^i)N1E9hFml0vrJt?nr-71f0oEX7te>SycCr;u`);!vdUOIAv!d?N5nSg# zg3lB2wxI$0^-hE}pGfsD{NwyXr0RM*@`XK90<%p)>-lb`%ar1fS$$@3stRFW@+ z(5}(ekVr8lvX5hl9QoRB{Y<3aH-1v^A&tDkDc|BjD$Eo=LdtYp2S4GCw^ZQEnv9-f# ztwF}D^F(fhRZp7e|4Bh2W#arj*Nq@Oh`be+Sx01282OvX?JyFTm}V@8f8=gNdWMl5 zL@tJrM?{k5^jj|`iH-V(_Sjnm-v8)dxFK>`|DTXgh!hU9z9QmnBeQz1ZE7DieUnG!~Z64@R`mJ+!UMvf6lo5x>0L5kR@a$zJFk=9|P8Ik2-WC;;( z%g!qyGd+?u<1u^mn`RCYh>3oVzGLTN=uwiCGS0ymJHMVGawNaM!+J!j(?`06j#pbCBgnr*T8CxQrjCso9Y$UylDLq6oL)q{?J&>tlk_O^tXzVO&GS(u zN7-`U$s|uBBOk@lDXXLf?|VL~mC!5Ao6W*|nmNWJQ_#`Rc4VxdWKT$~pV)H0DyfEy zSsyAn6<}>b#;mJK&IEM$d|K(}4EDW`l5+vIzCZ@Glw1g~;?ha23#e5`$>o3!Q=}K` zGOQg+t_IZVm_e+ou##jHawEW+gpBRiQ<=oN6<{qv#;oTui*-A|>V}M2tCai`VEu`V zSo;}#A!D^>D~SoP_8?={RU$pY zt^nDel78L`xFXf0Ot>|WNNiF6m1J=QIYeY6eOP7as`WRKbz!9J)3H%2i~BP}h};Mx zUlECV!JqlZBeW&veb4K>O2lWijO}}4CCS)&jVwA$x+T#6PDRG7@0FwonCIwhQY%G5 zvkE9l9nfJ5WXu{xWPI43?kCctlc%H)Qm7vnaFk}vL8K(JXhX7V=IVk3M0pf zbgbgfB#euV%3jq^iV-OnM*0(({ffVzB}B4S_gfc4Q2$$FvBM(_y4`1bLfC#{&L2{Fum1>eQQcnfaYW9)*o_ok*D$ z{#q&X{y%w^NQ1CUZ6YJX$U6~aERlI(nN>v2DUp7DAo6!hfA#2mu~GS336V?@B30@3 zDYP=15_vg{3?Wi2j4UVeN*Fmsq|O`uk(1<)jY`?tU;PCllaxsH_Cy}E^=CecAj^rY zYv<40BGRJ0pJb1Zjp`jnS`qO!?=SRXqUnc0zB@g;(#}K1*2ZZiJ@}cZ8d-_GL3opn z>EG-qAR|A;BY#8-HS|8Lja&*D8@aWTY;3vT@BIWBv-T;;5nw$=#;igGrNi88g}U>0 z!#eDMj9Jr_RXO3DP(I)aQ@ zi3`U@%?w-f)rdsB?LRO25y=xqb`Y80Su(Ps|0ePS{o!cndYH3_?8Qp~{j@^H`k6*# zRuBI;$2HSE;A~1-^#84wiIjNHKhAqZysaYlLzf+_;?Sc-$XGw$E2+ZP7_z);oNTr- zGZd4Nt6;U%SJDYRd+!s;W>i^e!QFDZGAt=^Q6oac_nSglb?UT3R6S&6I^R?;?P%(|td6ahji$E=kXNGySA1k>85=pQ)!2 zIUh#$5czeMzt$}xx0T4e#=RIDm1d5Ay#zsbQo{1ZhHK zU07x?kyP|?(4n=uhDgUSa+JtwI^5pXORfobiELi$xAIh=)%%5?bRg1py`RjFAZLhl z+~ChdSNwmHi-@t=tgzC?0==_i|s^a>;Y63Mm2 zpUG1-HmaQx*{|9}7JTK;3?}l_H-55;$R}as6p`%P{h3rR(<{3jeo~Ie3MEpjKaoB= zB_m`LkvG2eTi1wq+Wm%r8lBDKQE z4I(|lNSasZS{Fu&5y`XLKTbO$O~S}jA|u1dmqeoW_^mTUdMc5g^HrxSNf>ECB*R{@ zBr}mn?frgojK~osGD8V!(E9)f{I!Y_se8~*UL!K_ke_@)WJwq~OeB^*ay)eX`Ikt( zFjBCl9E;ca&eQ#Kkam;_x26$U8aB@U2=a)?&9F?7TJ(&6*x%0>BAu1U{H!H1JB<8F zq&Iy?VrVal)|Q?>)_0tyJ;}TOFthJ@~&`>FSI139N2PX0qkI zcM;j)31n=)N;Z&jX0z3vtVC7{v(XwEvxX^|$Cmru_zTFGRj#4bTF6#T)bSqJ98O2Z zteZ-_Pfd!6&OzD8{d%R5jJyQ1F;mGhw(9#TglcU;#%di?vXZR{WQE?vvJPV!ORbft z6|dxTwnD#wLOS-VB{EiPtdezXxmVOKWX!s&WJ7>eu8DNG0UZudvY9Qqc|%{JN2`&s zTBnqJ6=0=mDz&~stx`(939vdLW3{F!*}+!4v%`JJm~}_VF1B8DT9sdu4tJr$(Mt9P zbhrf>t94PyCcg5=QLWIG%^qcJCbbR(j9e8N8~I%&-vwB6kTGkYk|S)nXY3v_X60@! z9sbCcd&asVW7b9`C)g@P`yP1?{)3EJgEz< zci$ViqV6GMR?Rk2>j7KwPHP@AX8oz;F!Dz?f{ zE!&&Wqf^M3mA0c)eI$e49PNglQ;QKiW1#+ptt zavsdau+BpAvqe9Cb*!ju$XKmAN(!>&U88JoLXXP7BO@0?tszRDV=IoV&}RN-WUST| zB}D_Q>|LZ*QPirfRZGbOsKSfydL zRZ@;E_qn_m8S5}#HyNiwfHf2uvrZ|g%$EB(gxF{`H*edWX#&5q!wH5d*kRH(oZeSVR0pO*(%}dE7alZ$XKm`O6s%K&bc;LBV*P{C5_l} zKNH2iCml8lb*Q8%TkfOW3K^?4Oi6RLayn;z12SfvQ__;HB=ppf8m1ku>^-H!mgumN zlGbchbk4>EWUSU6CG7&NguSFzJJc#g6MrigRLC2H<8cyeLoPZ2dqa*dIfYiZlGAbU}gDG$op&+bk>@O zjLk;wL1Og}=x_xxW)&Vxzw>|Ge@u@P`6g^7^cnL1nYf{J-07e3@ZPhM_46H(fnlW8 zFzII?_v609pMs3_vrEZfw%m94Cy_DhvXWr|)&peBiXAQ;e#Dmh{<$bJW;IYUnyssJ zbW+m)WV03C2N|=bDH+FBoC*A2vo;}P)(=W1u;tZ>Ty@Dt$X-mq`YEX-KmX2u$nc8U zvu_X0Oy-f@SL`{+SUARc?<2K9#;i$776({+kumG8lBEGw{3z*XDUN9)B`X4~k;quB zjY?JrSPzgftJG+zzBa(>f{a&8!l>8RZVYaDa{RV4-l8bDWq*{?{{sA(!U#+IeIKQ)%3rE;{ zU~7IbGG@(Da*Zwbv+!DE%=$*j9|6`;WXw9NFJ#P$`b75YZ?<~S-p~WxY`=0N zV^&2aciD2k{(1u$v))&7KcK@;kuhttl1Bm7FUXj6Pf0XA0mVeSXFlt6+4tzgW|dNs zkgX4#v+)ixX3bQRge~`M>_Wz@D@tMmI?OvmI*dh!EtI4Tux21*wT>uB6JVvDDYep| zR#heG0<6KvSgp-Uynjn0CfdECVn3By8Bwc&k|)`6&*5xjtk!uYPX}~ZY?jn|8nyZ< z$sSiQQ7Pug$j_j|_Db@x<(`c#$XKlub7hd?xUP(rF1w59hO%zG@w>DWUSUKB_r6XtEAQl)S9Pc z6kAoC)(K>+R?^in&RDj*=dZ}K@&#nfYNh03w%k9-T7isNx0Os{E042Qj?bl^N!YJy zN~W^qzS?|S zkdc?;c&%5mimiC3m2kaSt6yFW7RwQ?U*iv$AazYa?56 zR4cSu)iKDJbw|mU0Uf@#Nk;w>`*lOfR<)os-9W~y^j}Gb zM+2<#$e7h$$*}d=N#5yIVBeYtS-n{t?5cG2Uv%YG3$Yns{vM#Z=}Pk=&+TN8v)j2WUSUs zCAR{sd&rm-zfG#&4zOAwW7c>j{{&dyB4gHVCHDfXeA}g;dzg(zN*=Q1{oAtfwhVFI zS%i$$x~atbv1?4U_ixKaTIF|0t*9hsjZ_lDmixE+P9S4e+)f$C`xiZ9qTOdoLuAYv zq9j>>wFw!sE-Oh9U}gPQ`bmNPs!1g7r2nUibBLVy*-vg08UKr)yu3@sNzJv!(X7)U z(9Ny@J&>^uXDCU_R%#RYzh><~#;glUGO*>ogDtvS`pJO(>Z2qxTkbp9`N&wU-AbNf z%l$ef@gAx56l%SsBpX}q*D1Y_v09%g$-$QUS?>ZeW<9l6s^<={8X{xXM@sUtm4{|L z@{VXXGG;wi63>?V-GeIoq@Q@q#!w~C2GrVyjMe%_Nny6)ogEh0FSQDzRy!rd*vjj) zW*}p=_A4pDmiuoovmTIIB~a^4B`>nIfNCYB|H)>n_g`eJ*5HFOP8qh`cX~IFF{}O| zv0h@!J@ZqMG3!Sq71?s%9~SveMy`nc8m^=YTkhY2+m4LY`bSAMw!FWUrnlU6v)L$p zSZY;6tv*U>1Xx>7PymAuB5du{xPjMd6@RK|IoE%$8HLB_22l(Y)4<|1R( zZY6Ela?fGR57JK??AMD*+OyS;IB zE6xP|uUXxYF>9`pzHGVI#zADv`b)`x04w`X($4_wR~02623TE@v077=3<lY>C1FU2}ONZmp;d4qR23XCIv05K0 znG#^FK*p@2NtB zVrkkU=Ws4ER_lqgGS260xv!!fkuhtNl67pkuZOpgF)P=vQfmWS?tAP`$e6WC$!50P z_t-xoW7gkFzGBOLk6rkj^z#+wu$_``*mB=ve}atF+O1?qz<%9F#;p9mN%dU;`&9-R zvtCiMH(pRTqOeIIyio==h zJ+QO;FfvyCk&++Ta^IbnyCAiGM6KRRPO#-(nKO{FS{s%8%$ED79%qp;E5Svnewr=! zRjUIsX6;h)D_ib&w$ogak$=U0HBfS%E%zLDN5*Q6R&t50_h`Nody~$a&HT5>m~~gl zl>n>AW$Ew=I&7=tI$Q3udjm37E8*`l&P}%5XLoUA%xamc%j3AufNT#)$Pd_Zujk3gnDvvA$85RR^HbMk zQj&|Ucxo?lZLC7ZtY4MnVaq)m)&G)y@?bVrD9O)OTxcrjk$=@>0b8NZK${NU+^^uaIY`I@W?nB0`M0cdt^K7}-VPRyt(jqk`ehg8uO7c>z0!0Y~>@%Duf=DyC)-8$7~E$Qj0D3bJHqhtkzK_ zb=h)1H>JHVwd$f)4JGy2szx2gM9juuWUST~N*b}1&$(ZZkuj^%1F7DWE%$!Cg^XFF zlr(3{y(#cBuZ zjFOIQxqrK6i2klqM_9R{lk@R;JD|h9$k=QgRPs(hhqsY2D?-_+0B{F6eOC(l*w&H0%Bd;4XkTL6_l7Vb>AS?2f zc+12x@<1G~FO>{tE3dOwg(PAPhP6$}umCG}Qn7}?`cTP70UiE~jP2KR$z+_-Y;~j# zBd>=8kTGkwl5uRguZJ09W#n<_uqBa&VfVBj6FD44cBwUiM|R)kW=}37Pr%6CluTyJ z`!vYNEA4V*Y%k6#nHFGWP9e3Xp;mPzGuU$f#?)41tX9F4GR`cv+$*6KGG>icGM6p) z*>oBiv+|{qS_{}ZNV6eVA9{d!*^7)>ZBvW2n63PjjXW=YLB_1QX~bH}RuNx?P_1pq zm{srzu~x9iUC)Rql=!eKr8L6IZ zwzh5~V^)LoVr^o}eJ3*+8M6*6*}|54^`^`qBX7YvtgPhg0P6!}tkyau+u5o|I~4hh zUm>H^+KyU#lzhvU`yTQ(GFB@~CK+c>fK?S4vpOl+A7D*G#;mPM4h2}hBV$&o%+lfa z0ahtw%xb0N2e#bLAXAYsYmbuSY`I^R6n;|rIgXj1pyVW5ak>J-*WndptX7#UGR`k- zxnGq`M#ikmO3t#?ftIS-DIB9C*9 z&bZ8099OM+$k;gJmHZxH{eX;FX|qbLYiymMIw>M*)kMauflB@eur?!O)(s_pvgMwi zEZL-=KQXK2mHf@ti`1Q6bwZCiB4f2iD!Cg_YXdT7omO%`z>3W-9o|QWg_S%CuwF;T zY7J2moy>cW$o+SbN0Bk>={TvLkS+HdRzt?Dca$Uvu%;tp);CIG+47z*B4_?zWXvj< zLpn^!mUrGnTJ4ZAYnqZYY;`6p@|~rl$e5Khr_@Tvmiv|O%gC5DP)SC%+;g}b8MBTk zd6KPs&izW3OZs^-nOUWjJk6H-HBoJ3%xbPAJ6rD8dP9*hYl)JaY*nKUBcIXsA!F7> zCC{+se(yb9ZrQJALi?p8A6xGGmR87Et$|7ku;qTfSb&UK+m#ez%l&+j=^5#;5IStH zqzGGaG#jDKR^&2dtkxAJ#o2N{Ulh(GwTh$GyGmYQs}dE8yklICjMciMq!e53`>|1Z zrB*4_%92k=S+>ehE!&&Wqt3`!t<6fxvlSPb3ZH)p8ME#xsl?VX%1Uidx2iAa7gh-! zj#pBZE&9i&qSAN*Z)WXB#%e{y%Q&yF<-NBY`MR<+GG@K2q-MZ=%|*tn14`98JK?sfPkGG;AM(vU6pQBGb^MsA2X?4+a#TmNyUAY-+TDQU)58``hP zt7y4rrB*Z4nxmuzTkaKg9vQ2ZvyhDQMnJ6*$e49mNn5tu*WUEc$;fTdVJRgY*!qvF zC^A;7xsta6tap(yYk-o@Y`K5u?I<#4tCpK%{q zs~0j>YdMj(=>|CTX-JoeTnQt&izSch{F^`1nMj-SezKm3w+-Uzp?i6c*`D4)#;WHj zF4j=C+|O|}kTL5mB_r5!pYIQlF>A#0Qfm}CjJzT(L&mHs75jpWGl{Lx(eqTZ>L6p*SS3^0a(_Pd*T|T4MaguwyifnI3ZX|& zm6U#_W522@`IN0}WJS*5Tx6`)9VK(va=(l9=8IBm4r(1!GC!c!bEU+Z4{MN;MQpi0 zf9xbO)?vZYGR|iK9ln8#S>u%~XUqNi;#*|Qx~*gtTg99+|3(?Y(P4EZ+X6Zqj*QjXs$?fy3#m*}D}~ixyn@u)iCPPk>}Jb-pOCSlSi4~jQnHV& zoT%eHu>CrXjCEMNl8kc@R^<6L3K_FbDLKqm5vmYr#a5P)52M4PN{+JSewX-dWUSUK zCCAuuze{`u8MCrfk?KDM)M|r_S&NjMV(UrgejP`~tOQl1))}_EX9t__(4)f0nAJo{ zbGr43iS~XT7rHmL*LcG;b1q=yb;#Jrr<7cfeWybc*-ze=rRNJcI-QhUX3KqTIfjhY zDpgI!xyn`(=e~c6j9K@T+z7B;Vfetq-xy6?Ij`1QgRx3qy8Rs@z-rs+PHk+4L z$e6WK$vGapw|Mt+Fdct?r%2Q*X3IT?XOS_hT5TC88C&xB|L1TaGG;wcl7cPw z9CoZDqoqKHhm@pd%RPr>>WY;b)&eDI*(%_i!>CuqN(-xzk_>FQ?=HSa#`ddfJsBr+ zK!@9qF{?ySMN~*BsUWc`t%g9w?&04Rd8e8r& zCD-d>Rf9EBNsR#O4`i%X?G`dl?STFI2pO}sDtVQy0(7tVu3~ z>y@+$uqgq@Ddmn&Er!ew>NE(`2Z;xfKUuly(s!v#EIgvRR{o|xNG=x?g+n10Y+tT$mb?;xZTTkfNiq@!i5 z!{ti4uodq-I`!Was|#w~R?>~FoK9=tTVi#CmH2HT?*-Iag^YDruT%1<-Ix5w;v^Ao z>&@f1?>91Zwv3HaT}j^nYbY{iZB{aXEg6%G(-%7y7mzV4_8m!n$d>yqr6MwB^-wZ| zt$3;sc?I|q8M7WJ8P1k_WtQwB{S1#a>m4N{*=j+xBA?A?AY;~cC1con-r3;`?@FyP zsI^GRc(&Z{03SidYTZ>bkuCRgW&N&FYa(hbQ8FdKO3+QLDXxz1QBQ*TDbYTZ$?gsmJ@D{>vS?#;g`fcCgioYDBKXiO86>UCA!C+^-PtAY)eUzS7}dw%k{nI>?yS zL&*WQUZoCg4nmKnBV*QPCEu}C*=gNC#;m9NNry++a$iLoB4gGFB|oxNfNDjaDXWk% z>#&j&Y)M^Gd9yu??JxX9tXbuh{2XBQM#ik=N=~!YifTk2g@Vxn79hc*YHM@^71YorqIkG^7}YdWp{$e5LQ zpw#mIIO@NC1Lsv_%$lOa`$MDudN1WWWXwwNq15vJv?eB69#fmV*&a4R#;gTOygw%S zFY7KcW>p;|<9mN}5fj~tYD6C8#mJbIV6a%;9}N80@oI{USxc38zr-IC?LNO^hsel} zW6f%-BmsTnzh-_fGG^r)D&r(#s{rj+j}2pSJ7$6n3eD&vC^~UKEFC6W7c6Mnb>OW zn}aCKM)8p{awg2i1SMJ6a-Uz1k+E9sN69!@*>Yb+e?i8q+M~saW2*pl7ywJ6`mm0^K7}_S(=B8S*a$9 zRgx`vY{jg@9mtr~ZIUEQv(=4+$iKEoJ=rp5EmBgBE%zPlC1lLXIYq{)5MZ@I#;jRN zDzmkaI*fcTJ1A~I&3R#KgoBxgt?9^Et$j)wv6YXM$k|9TU1~K#t#V45 zvX#SWbw$Q%%~H~wE%(fCMaHZXN?NkzUQr2VNQW)aVIC!|*>ayLeUPzQyOgwJE0(4r zbWOB5oIO)&wL`6Lp9<;7miyUZC^A-Sf|9q{a$gVkBV*PhCEl9||8>8SZb2tSVv$iYg z&lY|0ZFanp&k^1qvr$`#cMB+YUy<(~Y(~av#m$v*yxXamX!p6?6B)C1De-PZ{%Z~& zA!AnIc~Z-}6^My;zvs{n8M7uS@t%7B>s7!GWX!sz#Cu}yewk|7u?;=yjf~ZrrNld>|EtzH zWXy_NDAm1X9TV;S1Uz!TdLm=iE+yW9jET6HwOS}y%GOf)9{qS)H?vkEW3}!oS;3b3D*E;kskH*N zPAFN;mb=3mpNX{^)Yd!zeC14Jga1Vfb|bDW+nBefwoO-x!>U|j*MBaDcQnS zIr44hLXQR^W7YyCUkB7WjEq@#lxz>MaxJ58(zYFQSY64tYPv+^yM>iYv~HABX%5lRlR^@g+7K4i>F>@7grzGo|*9z~uhRgf`jfRZ2B zav$ZT$e49l$#J&2Qmx4Q-b5>yVP)*>YbK z;y#y=f5)tLQgV&00#r5fxGzV>YF$+F2V1qsioAwDw?=CHfm+>^{25?vLdI&{Q}Q=k zaa1d`*&G)0E@`y=jau!M+-1vq_Oxv1(Hdl|)?Fp{*>b-p3 zeK9L~gIGym^-~hdmixKsXJo8a@r^Q0O18Y;mxx>&Gm$atk&-lQxu2UFcuyv@r9p=a zl%!*8FnurbN>XRDSm|KhR+5n|_nA`vOR+M-TCU_tw%ltYrT4@|+mo<5DtVeM_fcMj zjLpVPCE3}MF?nG6V#lk|SHiQS)_Ns5+1lki%Fk~VD<`a#N}gfM{kI-xk+BX_cu%&p zn}g77tVYJHJln)7!j}6ezk`fftCbXI ztF5!vJ!H%(=iNlm_CmmZ^+(36^-4;y<-TtGg^XG8JET@ww%qqf(~vPMYNuG`*^1+C z?Tf9b7RZ>jUP&dkLchV}nPz41ZiQ&8gcbFUlB#UEf9`n*8LO3VmyGiYTiIyD$gAi` zWX!s#q-KEi%5E9CCOTZCqz+r|wGr*ztkG5nRwE_#*eXNcvpEPonvINgcuq+}w!Hh6 z&}M#>y;7?oYRyy9ge~_Ro8AtcaJ!PX*m7TO?jvKh3LTVjIdhO*^ehZm7C ztI!dtHG-`I)Li7%<}GB*nxkYCTkbhri;P*{C>hI^dk+6a#;k%zrNfWelE?o)hmDXi z>wP7Y*mBR|DrC$$tz;@&?m5ily~v|&Dvok>CDYk*&tX?&tkwi2pR(oMA4a|wPW+?P z`V_T#D4D~S`|j&|WUN-cV=~Tsw%q4(3uMe1t7H*d?t8ZHkufWk_i~oD&)Aa34Csrk z`FD{q>wuEwY`K3*_3{ZBZ8>IRi;`7rxsTUvWUN-6pJbdhY`Nd_Y=(?kBb9u?mizhZ zPh`w$;Jr+zZ6jOWI~q%YA;;{aO0iiaDI8WE)%Z zU2fUe>+i@|t@u-t+==~)ylxCc#;n6icC+O^UirK?Bxu`>4&PU@kF5gqy~tYMAY-+n zPRlq4*>XSYRYJzBfl3auB}Sck=bm2pn7Q=O3tt)BXB$P#ny50bHdM{!|6)SvE@FOvwLp^ z(RL2jEF~A%a=(&_IWN`)Sgn;@X3M>zb|Yi^mFI$tbCoUk+IR~Yvz92i!B$1z9E4`$ zS?|p%+HRo3+rmif7o)*VTH?5>mSsb zrsQ5gt-q16S~a~l*l2smmV5QCK*p@3SH$u@DmEtCeSTF$#;l%7V%T!8-mj1`>yeVg zY-wHYISMo1_Nws2Db3ocBpF-o)mzDXn~=6-u(l{k!It~ZJpXmEQotIoBsE*^IlP06 zb=c^JjFXlv_Z&_}#;ik1GO*>I!z_Qu$QjUKDw3l;l%v{YlF_ z&LmjtkTI+1EwQq(<$mw$BV^1vsU!zmYp4!A(9O=T5`W6bIj~=&mE>ltJmoFxd-RuB zxnaGdqyar8$3%O-!w`B;&+gt%YbI~NUd+5LBj?4)4gMAqA7K4~jP3i7J7PV{R)?^D zY=1KTV;QsNDJjgB`|jcZGG^UWQj9J4-9^Q_QmYvDYpjwIY{_@2P2Q}-?~t)tvHwc) zMYh~`@2??a)&eDE*m6G?+(E{yiua_}OKcUO&LZzF1|ehC79|zga?jy!$e5MzzSOG1 zmU|BCBV*P~CDquH5p)W%YEL3#R@w)WtihIh4qGB))*>af*>ca}-^iF%?xECrm8}BK zIqZv!S!ErDfhzji8V6|i4dkufVpjEvJJV85y(W7Z%g?F07fG%{ut z_kL_b+nWLV)fXAFwkYYumUs2DIS4(L!zM1_W4NAY)c~ z??+FxeaM#ktn7-6S$mWWVaxqFC+U*Q$V0GSO_U60%l&-13K^>vl|sfD$=0*ZnSToz zvkob#Nhkk*J)f5Jet<^X7#`VuS8x*<8+l$TvBn2jFQm4NS-X@>WXt`0TF?8@9BmU* znsq|S6t>*2CNexB))ZJZm3+dM`z~%cGFEGgl9_C|UuhOkE45~#)*>ad*>eBZQ08=E z&4x8Z$vo5w-R;z|YaTLY-B$8BTkh9Zbu-JzpQFP?O4hOEK64Xz zKT4%-9jqowHn3HZzGr=f9^FL7IvkWm#@Wo4`@Q%3$e8ucQ(}F^mislx0c6a|?foE^ zwr|*Sulbh9m^Desj)472lT}9Ek3`>ts=GG;wc@-tiR*TTJX%E&*X!y8IYv*o_pw8;{K}Sl zMWxCu)~~QCD>=_reww++yZ3L9vHdFXjEr-Mt(;ElGi1!lm`AKDY!&exr6?S)k;s^J zSIKp@YLOLrjhdcUM!t^yDv?jfO}5@6D{^hTi;UG;pyV&Myx(Dnv`!;qR@(eh>keD) znSTKpvl=P+m#r#PD{|)7A!AmGc&YV(E%*7=4;iyADtXM7`<22yWXwuhKx!qR6EY^+ zy8?tZJHIL;W7hjh60zkzQx+m));=Xk*>bwWX!s&x}qd2Td&bnq~>wGFE)o&pOacyQER4>IJVqBJN^|Js})yR#>vH2MPG$b zt=7nxHA_hzw%m6_hmbMru9Ez0b);I6e?Qoyi1d>m`?W?%6~3b`Nml3zVAq{AMa3$} zBfm@eXog(S>2R8A5iNdGG+}bF11Rs<-KwV z?Ypgnhsc=K?fDc@NiX|9MPxIPxGR2=poENEnn!l8=U0%ikw+>i#}<9@ZPw5C$e5M( z1*uhmt(-n53hTKNGG@J_q%vFXPy6{D8M9iHlv*#d<$ewFJu+sMdr_?F0oE#H%*s+q ztXgcjKbc_|GG<*zVRmwS+ZENo%$y(~63`l2oZ6 zR%=){m9%5a{Y>4rqFC)<(XYSpitWgjdp5ctV>5q3$=d<7UZ^Z1zl~bsmAu22cRv>S zJa_~dtCgyXjMJ4Z_nNPRj9DX<^kA!yv(^=4%&J^fYV~5PDp`>$YB@4yrFvPc_fdsv*ms+_zfAe;$D$j!`LcH zwIYvK4`j^RuH+-O+|Qo>B4bv3b*VKvpu^$Fm~~poxPT68){v3MVI8hhG9jSDL^Z{l z0IRN&$!xi=Z0nJ+4l~x0ai#@W&5$u`x{?_IR)X3x@(gs?R>`aYYY#G3D^DF6XD(Z% ze5)@CtA8glW;L%X)&jOpl9d{3(bjzQtClfqj*^3Xx09I+yT=JVdZ3vc^t2rl?fvT$ zHeM+6LOmIIF;{nAjXy!gs{gHIDO>I<U8@>0xdvIas{u;o7P?;~TiE+|swg8lLuj#KgrTkf;+Dl%59LQ5IvEL;DvqL49b zhmzmea^Fj2XeA^6h7R9Qa*?g}bc`ckf0cYgtc$RcwHER_Tki8~FEZBQ;5K4iLx;AG zqHrCo+}1K?Jy!AuTid9^$X8P5+KKfCI{do5kU!aSpDE2dSjKAorQ~n6UZ7f$9d7O@ z*59br_e~*p*>WGRC*QJ+)%sk?eYV`Ix7pib-AAp*N*=N0UWdPR66+DHZJmWgr}mzA za{A8X&>q%$$1>L8Q6&l4a_?loV$n~arEv!*>YcP79(TU86|bt`j0t8#;gqerNeq`xsO+E zWX$?dNyC6zOOP>ZuaYJK)=gy0dSZZd*o-ar@oI*QS+kY2VCxN9hmlv&%gC5j-~*}k z23zjq)dLx`HYjP!miyY9VxWxN7H4HMB^}suAFq#)v09%id5bOg@k;)o)OriGS}N(x zmU|9&AY-+143cr)Wy`(hhah9tuS&YJ4#y`kdtrv&LIDOc1 z&&Did%zCJ#UqG$8LuKTC=*f?$z7rBN=%VX5*5Qv23}ISA~&cjfFK?$;WKD@4oIKV;wdf zCF4wDD;1r~q0OFMzDCBZ?4!k+%2p*(EE{?>9vQRlE1AyLda@!v$*0j68F@PPYnhTy z*{bNQRc5SMpTgR$WDZ-!$%?#2jfe?N{mXGR`8l+;g}B8MB`J zSgg<3YDBd{?={(Mjzh+*$4Zv7orEktc6N;vNf41MgFX$*e5dbPVCp0N_Mm5e$|#|x>&nm zjZ(6YE%$5KqsUl?8D_{h2Lo!=N5-sCN)EGCjrJ?@cwI)ute0j=t)pzYUpq`e#;i+9 zjWtLPw6JU)+#;os^ zoC~lr&X$qSVZRzGxxiLm=ZcD%Bi032%amMZs~#P!T-Y~T^QGpBbs5$UC0E({k~1+1!CQTHCV}Qw%jXf1u~dbIm~~J|YPQ_( zRNP0#tX!W-hiTbzuZ?$+F>8a83~agIsmQccM$Uja?5ZSlK&=hPSgn7QJjGT{n(xTF zl=x**>nYS~tRx#-?&CEJ8LM?hNe;H$tGC2*sg(n@hAYX<*0atIk0WEXa;%VX@&~&St=_T7nDwoa!fd&pVH2*Bkqcus$|@-a zD^$#Cbw~a+%P6 zDS3%4_Z;>`#%irqQZc}~iHuo!*GTm$0ahbq%=$n{HMUCAY}kB<9<4{ltV>F2u=TRj zsI!YBgrd zePyeRj9DKjd5taiv)=c}n3Z+C)OwvQ_jRKlGG=|Kq!nB4Yt%7h%z9>n)M~@l7tYzJ zgN#|-m9%H83t5r(*hi5u>)DM`>rJ-YKd&5%j9I@c>BN@%HEgj>GIA%Zs9s9Cu$6~8 zj69dWK*nlaSJI8G`ea3}`OcfARyWkTq~txe+^>9#eJR#^u=*(J&6fL>?|x*g!%SOb zoW5+ik8*Eh%sQ%M09)=?z9qkskq4l|sY*U%%e@Y-B4f2)+$!S?3FvSNGG<*@GMp{% z-JZyqukf{uJRBX4Q!hI;dm}TRmxE&;#A9>XdC_je*s4yO8m0xo3Vk zGPYm;Dw)VuYpN3YOq64Xj64ywDk+)5mizpgiwtTh`GhU^nNne=)cORq1}mA#Rz>R2 z<{ zw%n_?@jj`w4z;c-*}#_j+FNVCSQ}t{rerf)?lqtMfLNPhbx`sZTkhWz-i3_qSN4N4 z&Npnie;T+D8MB@_B-V}qYcw)uU01Rzpu>XS$;i8~U+t9a4XCvr8LL&`u#9sc!0LvK zS!H#mJboU&*fl9VYxi`uP=e_=1x20Ub6(#%gs|a)~YX%x^)) ztVBOb^($;uab9~{B4gHCCD++j4WaR7EuQp0TkhkP z?02zVhV`bB>TJ2!;Ynny!zx!~oLX$vp!F2_ldR3in3eykSakzB?1zk5dzI8@%e|uV zUXzjQW4}I7(ughhS$P^6tM$Tl8K)^*?sfP9GG=X4(wr^#I(+GdjNBX@Zcx&aE%!Q% z{zI&mu&O9&&6ax|PDaK$Jfox?Tkf?{?xxgghgwsWbY#oDdha1)wHn`&ao%Rjy?Q@G z#;m`Uyc5u2tv_YtchKQ%C0*I_)?ws(Lb=4mGq8`JP;iYRWg_@_d5Im z8LO4`9~oyDTkdt(4H>hxDfx&k_d0y$u8jNYj`|0Uh>HGMO#+Z#o@9#%g7~FXK#O%lp}Kae{76Z&r@i~$@ZX-bYxgb9%nBH}=|dTL7DoP3$y~PFzfsokkyvwK{jOvITkiJ? zhCUW+0j#I=b0rrCSR0YC8LJabA6Y@$QnuWy?mRMPbx$DH3bvl(5$ucIHQhl5miO_f zw5?{#eQ&%D8MFRSvX(9P{c44TGV)r?#uz2**>YcLwY!vx zK!@v*v09Ind>znX5$~g6Y5N+rURSa`pu-2qSgpxPWSno=O3P!~7du{!lUl~CblykI z(zYkS`T-fU#>I-YKcK^d$e5KVxmbq+YPCkjtW8S353n+LA9+jL_n5=CmHfb#`!_=l zAY--irj&7xvqhH*#}#P|GG<*@a+0l#+=+d$nXiyaMm~uS$0_-RE%y~5yZ52IwEY6> zGbLx)a=$Yfn?|g&u-Ym4EuhwQWNg2>JR##;46sfhV^(SJBY|oAoh|qEc@{Ee-B(gS z;QHJmos4`fVB~Gc*vQ$^i}eRv?(6d!WXvk>eMB*Be+KOPF=WhYpHZy81FVP0m^C(& zSa;cSU!SvjAAU^RT^!RzO764ezCP!AQmp&1rYm{GmisR59x~QpgDf(R_Yc9wM7v)l zeS?fydAyHarY#{`as1f6*m*Gs8M96(Nx~Mj>D$bD{%ILGNm{c;D~V;xJ%^W&F{?~g z87C!M?w{F>MaHa?O46|9evTXGeSkD=Y0zQ0>_XD9)s=Q7^eca}Wn`?wqPb+8>}JstaD0ovPEBf zo6Sa{+%j@bbl5}5Gi9-m0&ID&t?WKAWIaO0 ztde=8Rw1_Bb2tncvkoaK!j}70QabO$ylE?f*{G+aI9nCzdy)Hf5E-jgF`ta{0$c9a zJ0Brq);=Yr*mA$#$&_D4E`<(TC@IU9`!&c`WUN-^cp0ZWTa{?PB4>UQGG@gV5UUbf zab$%yo0oRTn6+6+RkqycSH^-ea#ieCCnc}2)t(9^LNTi~85yg!QAtgYVmixEPMj>O?Jtg(na$lpKDI_D;!+up)(vYp9)M4Z+vSG+rtu0ELu;o50 ze@4cv+e(_TciFsvJ%t(WV3T-GBRe}P|}Yr z_wj1~yo}rrvvESn2W+`lZ>bVueE@5Ul0gC16=bZ#k}t?OL)mh#`EAIURk@^CBiMS0 zrorYQ^k^wEX2rfJ)+n~z_ckMtF)ON+SYz30MYSTYY%d^VR!1ctv*mtHnSqR1dz4IK zi@x|a+rul!n3cG+bU2kQ_Z(J2#;o_1OlRvnRf_yQ;S6PDfuIG?da zUwoVG*Fa><+NWeWTke@pSV2Z!jt)yISrt%gCo)#6dPNy$O@MVA8M9hc66=eA4!0s> zR_4lLZDcDqO<-u>Y&KdTW7aGsU$W)CZp2lQk-x-j%v7?Kt<=7GkHT5qrm9$5VdZ{V z$Tqgzuc_N1V;#;>vWH(&d!NG@`prGNqdKFRojkJpzOHaJslF5a^i{H(E%&u$FEZB8 z6R*fP``9W*{Y0+Se#n^htCE9kxo7N^>N4^{bhu2(VYdF`9IPSMVOZ^y91XDcB4Zuq zttsOi3$Q*y#;glUehRQE)sm5aLWeVyoMOxUu2Fn#u};BStK>{jtvX_zfpt*Hxd5wa zU9rx=I-}%5fYs(zu`a;+Rmo+x+$$PxK~sMS}=Em)DO_iJRV)-z6Mh3Hfq&U@()|p$g;f&Jz9v2)%r)t zJ+=yx71?37hEnSuYQ3c7AzSXhlK2c6tCg~mj1!g4dq*gAz4Ug_dToh}S<95futf!Z zn^{R4%g8b5%xbA5ae(y|GG=9HBI6`u%l+K_Eiz_xX)0CUQw~Se%lw@ElCv_Nklry&wD+A_mwvx!5NZC3IkTkiL@t|DVr#BN@%{huW7Nk5%1 z8^x7$Vaq)mZz5y0rYY&hmV4$;A!AmSo>Kk2fLcwEF>Ab%-fX#N{%2&&it8n{`m*Jo z`8LRyHAl$+w%jv+6&bS%_m)~8vgJL;MINu7$e6WW$q=^O_r~{;F{@M`sWqG}_sma2 z#;lu4MzZBz8@1k-kw;=}EKo9rE%(}p=_}S4Sk0A;59sg!GS*>Ebx$glA4H4^eSWA_x!+u4cl{torwGP$**0}F zcAd8xZ5>V-Ew#Qwt%_rW9AV4-*$5+$v08hS{K!^XuLL%$m20ew{3B}hR&s)^@?=D= z!_CN8tvgD7X3PDV%&o>rt)EeAr;^hF9cCLZ)@fMXl>Ew;`*rSmWURy6O3t(8K9}=+ zEVa&~Ry`$`0<0m(SgqAcuCSHUIfs{!F)Q-~seYZUv^ZAY13O;TkTI*9lACN*plsxs zauFG`8cdX0f3f9$ox2kmvkFZT>keDRs8;0KXp4+lla&0+miub67a6neDtW+``!_mX zoGkr3!13y#TTg9C-{{b>)Eme|=E%!6g8Dz{#HBD+g!It}qT@M+v#w$tB zmismANo35*_KDQW#FqOtY-4218mS};TkgBcJ;<09HC<|DWy`$|8z5uWJSA~#6?M-1 zzsQ(XeTLM^#a1q-H5?hUwkpZPRw<{IY^IEyC$tWg#&l7u_i`Q>j%DwI(QejxFz<|IlXsab&Dk##u5>QMTMGsu40~jaTwKTXaJEHmh|G8M6w_ zmRcp*%HVTC`_&m4vlb~S9bjER#;j~}q*gh$yyxZ6W*xqXj9Dv{RA9?Jhu4uYE6-f1 zRXMYb+n=X`EO;Ky7lIG|z z@~n(sBvx}+BbBsd>v=j#k=7k#ti$GuWt`S*xvw@WkTL77l6Gu)@0i(&2t69VL`H6h z4s(7cq$68#WQ8{K`y*qujwpGXE%)(CyHrMg8?|aGd510c@tTT^)jFl5D_id4Rb!dd z>WW(Hl=MJ{ku#rpxmZ15^;FV}t>6? zW#sS5Ys4BCWFcc#$+col2AY$S!}uQh+@~v$g|L4O(k;!Y7IihYOPVSAfVPI zWX#IAL8>oi%YEIbhm2Vxlq_Y-eckvD8MD%Clv*p;a$h(4B4gHBC9Bb4pb9fF55V6Bzy0Sj=i#1vWe`Gkw`Wn znTZftAtg#wvPVUUhEbv-nOP-7WRsoDc>m|Re)sS6cHQph^LcsR%lG%auKWIv=XuUK zr%6NDF1u`x*7nLoN@}C=f$+*=0-)OJxlJdXrtw+YC z#-XxPQvOd;yU4gyrnTB@kEHzX*&35^sgbDcm6ZR!v6qZXFR* zR8C8(toMvcvR+fCnd*nipOW(L;YKoUU70qh=YpjCXVj}?TJTQe~q>*>htk8J9YYN@7X*k8<%XYEGQd zr3Rsrj1#(@i^un2Ysk3NZB$Z9%D;yVwra1G?DaM(X(Z*}!(`hum4>N7sHEqFb~lcY zaT7keT|Jp3Ro1(QpOJB?>_2HLtEBvQww7dEY62?RCFTD#dW4KimD-`b9+Z^-Z?J<3e1<(*DJUub9lH}5*J}wXMI_}v53iGP zsVYBfuVR5-6UeyK4pd48dS(4Z%_X_6r%)*)sp`?Wk&rhIclNI%<9g-XtDf?bDjOvn z8~5xbGA{KiDvwAi?q};_8@hbeU)B5wC!CE+Wl8xzaTMOCsme@!f=V?>`9IyH*{`W; zOg)QA%|Ng7WZb%X98gc~Kvg`{HN_u4b+^&@I-!3hihp_NvW@_&ZiO~&;a zcvMquB$YerW$%Y4$hcIKW14zeQvR!Q1{s(71C-85Z-6Yj9T9c(CZQ0XBl|2v0`WL&R1sPvMQ|Mjc(N$u5(y~d%^M^gUR zufNE+Uae25r#~mO$LlLHE|uxDrUpu?toJAnBjZwsP#G*K|M$&XoKf>&uImR>hDxeR z)XUwO;+~Z}tEr((y^YH7K(8BQ+=MOvRL@9B`Cn5ek#VW-P#GgB|Ji$;j7t?fr@h8W z%76AgN5-W-LFH9R`9D`4CgV~m&TFsNB~`<_hXcsC)Gw$^mQ)$XA#@Yqq5P z_l?nHT-Y~_F5vT zW>FVA;W;ucwd5~NEtQo2vqSx>j&Z4Ds4SOMwWya{P295#e`{(v&!{S>d?6|S{jfh7 z*J~~+D<$QB{YrIBd#z-z0jPW>sqE2&_I`MfjO$hHx_Z8mRHi5u_i!tmM#iO1q4KSy z{O=r|zM8E*7X`0 zx2~C}Y?D+vZ)!Ukm%5J14oUgHs$c!KPPl^;jz(p-q{c?Q?q@$Y;TbZnSG|AK^NXbX zyD^50ORYv_pQQZf#(6R>mHm$P`b|>)quiN{OD#m@cS-q=a{Rk${++wg5|uv!y=Ief zy^f)BJdi4azlC|6y`Dwol%#S+yKb)(_ji#_G4&SycGB6vx*kZNN8~J1@1k-(Fkz~M znmW(aP*g4jQm4qc-Dq^5dj67>|J>+H#-(0I<(j1Y=f+25TxuOEHzk$ZyN7?0ajA5P zbgF*>6LuuyQcF;Y7u}u`#;+UoviJE1?#FsFxztEh5=zRy8ho#K*puYq|{V8N%`Mz z93$gWucy*fMoIa<0#hZmV_fPKDp@4eGujRNi6ea)O=aO8K8#8>N%`+K+sL?HPo-5) zPD%Mcr;H)vQXim_OH%%KdUwgVRFibtD=&N5`^NiZT|5ujT^WjnSwS zmQ)^Z>T5Et*LhTmO3J^7T{38|qU`kxDkUW4|5{4AjG8LJR2@`GOUi#9zDUMRxDb_c zlJZ|)`^mUel1$pYf~5SPZmN)Rspn9sB&l-VJzPu1rIKaVUR5RKUsnS%E;SC78j|v_ zYbzO-N|r@?)sj?2?}U$&ajCaZsUxY^qEzDOfBJCm9IldasU}&qSA9w8^Z%wsl5wd| zP-!G7|Et43GA?xom8O#N?_ui)bcUupqdrBYxunWO!`bVrNH$G1XKFSoPXv0U%C4y= zm>P&mYf1T!*9kIiT}^VRr>&&?$7?+qmnxN0Q|%??KVECexK!;2HPuN{`uxAgYd#s5 zx{XR#N%@agvlz8?%A2KvOR>)d!W)lJfu5{dO{L z!u$o*^NOVW*K!v!E;SRC36k=^-?&c3r5Y5{Uav{Y|9)d38JD_=${UjMzX!-wSj}&6 zH)^2rrlkDGYakidYd$J(OUnPw;W`j8Itm!y#*dp^9-)5 zA1bpX<^P)A2V`8YUs0JWDRut$oX=cT>vP$w2`URDIYPoNy>lr{zJy4ij~k_p9d!FM#iPy zMP-Gg{CDiFWL)YxDyt<`&AYDZC3T+F+{4kRtO-oGkBsY8u#|e%NvdJg%iiaoC*x9I zqw>9^{P+3frPcgBCv1+&50diV=ckZyy*8t=NmBQ?Qp#wrP3-j&DqAJx|Em6eGOkyN zvg-LsQvRKPfs9M7L}izx)DUf?Jlq+Xyqwl|al%%p{46Q|E9^WnuGcA4ewCDe=gXGY zUca)}P*e^`%D?j~$+%wUQ8^?j|IXKaSbH5}ubHSEk(B@M>m{q8sUuAFLFHJW*L*T= z!dO7*oPO{fZRL)4se^q9vsHrnd^+4sEq@rK`^>9b|b24ti>!@6m zl>bv(hf3P(B73bz<%*>IugldcYw8M9U!wB2r2Ol;OvX)Eu!?$aNGkf}Uk|sg$H})i{^84#XY-5#-++s(_V=rrO(~c zTz(W8m)eR-5=r^5%JkLMmL#)FHAf}6r2JRq`(#||Fe<4e<-aPk)X-k3*sC5YX(i>q zD(8@Ky)L7YK~nzrQCVwhuMF(<2r8K+<$pDQj*ROy1C<9P<$oV_k&H`Kc~raS;Dq*l z)Oa#3wH=ihN%?oQhfW6(v@8N$P8=ilqGCyBS5srLLn=T~hv| zT(yCkt8-l=POMQw;JxTeG@;_u;>d{8ptD&U) zM|lJpm--TwCX(_W<+P2}+=RQ)6_sX^^6%ktGOpKkR9Z^PzlTklXuTzS%|+!&Ni~Qz zJ)zrpzD`^w<9bzUs-CAL<=?~C$+*;hRN6_(zlYf#S93c~*bmLalMi}spJci${hvleWNrPmuiK|i<0txLR?73 zrOu-=Oj7>O%avQ}Jj1xIv8arYl>dHsgN*CdwT*g4Ny`6DZ#@~8%Knt5#!4!a+dlc- z?cpowqM^-PkK|2$06&M_|aHY!sBz3R2s z)D%v59hIqp)bb9Rn#xqyj#`;6DShrX((U04GH$}HsJtgB|La$_PHKCPy*i^ZQ&Q<% zoBumrv>!dr+ApscI4J=8AikrL*>$!(J^>nIBl!LNcz`MN}3^%K!THa2M^hh`nA! zgmw9WpNUEGl10 zDv$SgO(Ek_%TZY+DgS%ylVn^f(=$5Z*OKzT$L>wWrM^RDE!So5hiSU2c`c7uD^$Ld zlz$JGka4|kqOw6!{`c6WduXo>?9~;OA0?%K>Ne7y$K%PkUJFs#BB_p1z)kWz{46f@ z5-Rse%D?l=$+*;ER1!GP-qrvJ)DJlQGX&gmD-Z>??&!%nySsz zL{#cZ%D)>|$hZlck5^9vN$GQUTDdc7HW`;Xfl6aZb&CS_4ls6t+8T4hm{+y(c%auP zGOpKQR9Z;N|GBB#L^ZcyuT!YBl9YcBE54?wR!ogUrH!QgpZY%}<0f2>%F~kiAli*2 zZVP#(Jn_2rdYZkCq0&K8`ll}DcE0K)t#@GREmS%OQhUg_2~)kHo^F!z|NX&2WL&BW zDm^6Szt2x4<5DM3=_RR(-gBe!WSyrM*Y!FoeI!*aO1V9Vd-gRM*XtN6{Uzn!!<H7dg;<$q0?Nyepq zLuF)OT@Ssb^Ni$f3`Av&r2OanXJlNjGpLM{l>dEH`Kj7#9DBWl%Bzy{zkY2a<9cO! zTRpE!N}vDtN@+^QrN*K%SyFwYfPMYiOU9*gPgDO}fnEd1xYRmSrb%jH)XV-CAIeQv z^EB?pLR8+Blz$H|k#W7sy`!G@CFS44QDj_dGb*zK>q_{pnrCyua;VIclz$J$ka4}X zqp~p2E9ZOKYax3*gUW}J^6%kqWL&R$Gt{$0Qm;ijpV*xmyn{?5<5GuESt=?2XX=XY zt9dCWoPx^oz`Bl;alJ~-RL>WZ@*m}CWL)ZRR8|HiEImujD>-2gRK5yK_&yoeYcnd} z1SU*9TYG)OUX4)sHjtW1#`XFImGzSHpS=&x(O&D>t0O8K1M8Yb#`XFEmCcg!ze{O6 zS9@({uU)8Y3-ro4PgC2N>Ws<`N%`NU>>=YOtTJCcyCqdEI&Mc}$2~4=1 zj7ue0puP4<%KxfYj*LrnM&&n2`Cs*>lX0mZQ2AX_{#U)TWLzrQLY?prN%>#(8j*3S ziKrZxl>hoVNXDfKF4A77B;`L3hmdipA5l3gDK)s;jXQFQKhXMFo*UIrIWH;ydAOU5 z>(%~4^;`<{`jU)G-T#rM{*sjcJRCvBrT#+YS|C+(v6`=OT@z8cDJlQX?QhwWWxe-Tdrp&asq7zXuY{8F@BD{kT&lz;nz}#GYXljW+Kft4N%?oa z%2G8a&FWH1P)Q*v{~q2Z<5IOhRZnV3`S)--8J9YSO1i+haxYVJI!@Rcm5h?|zX$k) zjO%q9l`Mf?O_yu0EbKKKm28sozX!1`w9dgcFGJyip}hLCZo&8XCnlz-<-u2FLhPB;aXT9Wdghq=GeR4t~K zpi)Ot{xhoZT20kqYA!1ECFMV(s;<*ieWrdvrBPsAW53l@Bc@7xrkjVol_girsVo=%dg7PWEjGUA?1BI8o4QRy0(@ERGHDz;I3b(fU?{b46E zE;R*}XC>u-f4GT^OWj1Jx1{{<4`Y7Rd3tjXtD(|QQvUacW5~E(>rr`LQtJHg@j6My zrS99LRNN-xQa!e4uU91H-@}7sT&mtyB_{+@lgPN#c2r)Ilz%ryZ&UMYJU7a0 z*UB4#Uh~PgUa5Z4)SH1+O)@Uk50$qi<^O4o)nr`iHY)E(%Kx3~mOFHwcet*PP?;eq z|50wSQ&TgTx{1mxNtKI^vifcx=VV;!1S+3M%KxtN(O-0iPdMQWRF+A~ z|IXnO8P}`YUiEw~srKHTA4kTeHlwmaQvTh@^sClaaKfihSuLrvQLmJ43;8-RoQ&%= z1C=#_b!FS9z1FbTTd1rHtSiZWO|4^UAS&Mn)^(nYo3Q->_52W6*HSVrbsd#WlByr= zg#CK&6Thi>6DRx>m93KUUtft1YHBM}%~APDQq{e^Mv!q6E<|OQq>4o;dsW^g<5G_w z((XS?%6~r`OU9)>N9EVRy3UYssRw@7UI!$l&)q5I-g#6a<5I0qIV36n`>3sCTOT_b)t`(@Ekxy*r2MbT36H4x7>`$LR8C6Df0UPyalNjiaz;`GyvM7+AKL2-do@Aj zoTU86>pe2A*I`sHN~%@V%ieoS9o1eJ+3O`#u1L!NU!D7&jO&%)n0o$}RE#^o^1D0A zRmiy1090;BDy=uQjEqa2Lgluk{6F(n__)qsfnm0l9YcBe!@<$*vd*%?hez*Id{a!4v$)W+ULCy{XzZbv0XQvO$mOlP%M412XgB~PH&L^7_| zYE<$|%73@HNXDgN{?zV;B&E;)yN5N%xYX0AJR~Xqy>}NGm#TJ7{lx>l29t5AC8(5= zl>gqF^t_r&aSz+0QdUy_vbKKhb84dUiB_$uZP*|ZB!~ss+0HJNPSUL6`2}| zN|nHbTgbQxQ(aO|^}vL!$+*;PR2~iVI#0%>%3ao8k4egZXM2^5OYKLco}~PDw%k|L zT#via8I^{TigBl){O+#hd1PF#-%x2HDgT`<`(N6t3466frJ1B+kFvd%N0M>9K0u|V zr2Kcbb7WlVp{v^cNl7L5uIqa;F4g>RO+6(keeR-eH;#~Tsb{V!*-lc~yz5GQ-7zjT z8uJ(E{(5np@ zmzsdeFiH7e9lj;wQkPK~Au0cTzI#0V8x|wDhx<_(B`KZuzh`fT_?jBUR2@{tO3Htq zUr5GHcn6j7fz%@jwAXm{>VwKeN%_AjvXzYMl{=w&CP~WwHHUR%T&mT5nwlc1hS5gY zPl&V0xYQr0Obw(eBvSKKu4@7+(rnYjQu)0{`4}0ON{~#u ze;JrCFBzArhRP~Q`M>)8DH)e~Ai4JXT2lT!>_Nt*K1XG3V8VPU)V!8^_y#K91tu(& zQd8eCwH=iWlFAe9p*#EHp4CsKsSQkhhsuwV>KLW$->t}zT2ntV)en^|lJeg-=96)| zu>+Oul4=_DviFUeX|&gN_WBf+os!DtJvaU!<9ek^tDZfQ^1l+*B;!*3P}wUf|5qxO zka4NQsO*=N|C}$GPUqRrbqz)3prrhF?1N-nuZPpC=dh$IdXMrjGA{KsDn|norp}<| zqnz+5R89m^i^;fNf1z?Zu&!nqwbyC(T7t@-fpuLV<9a=mNj(<=6AmNeQa_?{Igq+P zvzjk+!YZg-m6ZSbnoq{{x-W}*u1m^)ebpi3Qe#oMC8=!QbABZmmpX>Z9ZC7m`K(!W zo;zGu9aQ2+Z4$=!uWKb4*DLn}>bXx+{&n>s<5DY8NgU{vJDZvlXLG5ss3Z&Y+D^u$ z(qvapN=f;z%Fbk5YB?%tB;~&mGqLT=)EexCgXbDK_ydQ!sa=(S0?tF zk4n}+>d^-^m6fSOsALbM2E}M9J5wogY2`sl`Ol61WZb&;ppsis{&OR1ZZ+p-uU4q! zlT`GJ=QHf9WL&S6s1%fx|C~Qh#-(!R(e6bg<^N1Hfs9LCM5UOddPfu5*UGwi)m)70 znt@75N%_yiy!kX$lBtELl#!JG)6GRPZo)G8)l*(l{@3MS$+*t?>sUt zwHcMllByl0;vNa`v}8dwSLV8=pi)gz{&$tf$hcl53aO{2q;kYHik`V%&y#Vf&rzu@ zDgQgY%!Soln-dN|rLLq(czY!+qN%z}O-H3cU|ks=(o_ScCZN(dFkz0Onrh6{N2ok5 zDgS4OTV&jB)Gnr;7LxLxhf~P7)UT+tl9c~5Y?1155^Qa6A^m?eQ_8Q1u zolzMaNX;bUdhJ4GsHFU7Z{l*=Ybbk_LuI(6{AceFGOpKZR7Oh5fA;=G#-$3D*Y0B^ zS>lz%rm zl5wfosJs=J@DLf7%Jhi#niiO_F&UQ{iORc@@*m|bWLzp$MeX%|U|kK!xYTG=W=qO{ zRURkfQq?MHuX&R4AFoklTxuOE3j?WJWL&C5W$pE$r2M-vkc>-xiOLd5`On^DRn)wM z*Ha<@w5s-6&R$zl`9f0uJ^YJ|>y@dRdR9uxzZ+A?xKxtr zn))h``kahQwXUJ5Zvv?=$+%RCnwt7nQqeD-_q{F1xYTr1)=SF28*9n9)L~RMO3J_U z2_DsXHge~4qOw_1{yl6$#`PMC$~H;)?;G>TxYT-7b_9AQt)&z0;DmKh*)1vmZuBPO zdcA?lFOu@_#&R+)wH=jxfeGW))(Q7p^n}J?6$hg#VsQeS? zb%cydHEO86;zfT!B4K?0ZhS+=r3yCER61G z|C%z1j7$BAN{T?Q-c8h;B0E#4qz?2N-c(bmnM(1vR?dG>nT$&v*%_E;Dwu}C`1koP z8E5X)Ud>Gc^K2vIQYAZRYPY1){NK@WJN_1!p93@B*HJw!0y7UF(Bv=ujr+(flr|Jo0D!=-qb=&ZTZ${#!}WHFdl}|HmwgDl7lb^H{gk z@#g*?bJ$b{Ka)D%;s0aOb=Otw3+!PvFo|+R=XmTt*XKFs2ZKo(V3vVt7dRHD$+%;Y zt%pw7F>oxJk#VUps2m8a>oYK21M?gqO9>8^OPs!QtePV7?@`gm|lT-){=4N z)2Q?b%#-z5ow-kTm#T@%?}2#+fH@Li=7KpVjQ=|Q3CxWEa~{lWD^4||XC*x8_P&pcyC);y6&v0R)i}7FAg}XnuAmhyAQ5hMS=X)|Pbq$r{ zfq6>w)_KMT=IKtxnP;FfJ}}SEWLzpqAMJHAFwY}kP6wFh!MrYv|CoMC#&tiA%H+Vz zF@1Hy$vo#l&Dufpt~sudA5J9UG3yoWQz%Ami4Rcz}8?1?H&_WBBn3MtLMKGy_@xKR{0p>HA*?%p6L&hD`{iu8?DgXWXHW`=7 zGDz2zHZXG?FzEv`KMUroz|3!uaos;b<(t6FyU4iIMN~2dX3jlW*OfUia~m*O1D=Us zvIUqGU~&YQlVI`%=E?t}&b(Q6;|V$c-7oIF`ZzFKg=y*jSblfRX)xP`Y3gNa4bfgZ zgo*v{MaDgxXC9bc!nBJ6qGygtIaED+glXkv`hfXGnAm^+Iqu;+hr#?ROxrjhdghoq z!&1j1VPbzCGVb9#jlrA|rbHYN zJ#)+iFnub=f8o}c}eAti$u>{D*wwm;YDF8d6`~dE(=q^%Pa%) zmoTyaGI`v?^*RRTZ(;nah#9H#To)$x-W&IDo>pLP3iJOz+vAuQz}yxlPn;xr=9mRw z?g$h6Rlc}~W4432D~$j3;yRdka&L+KS8d}S&XaqTt}B5s8RLNHnPX~zxlfqb*W9>= zW7>kbUl{*c_coX$!o>c&5OELZ*#;(=F#df`G+Jj)A&md}DhDQ&F#bJk2PTa$(Lb*L zuZNrGWiaW4@n7%Dz+@06`YXBrdN|L|U@{5gzv2>)(RF1J#=nQvz&s#~f9-w2WEUpp zU(>`L(-~lL3gchbRxmNb`0oIT$Lh>^gz=w;dBNlkc-n!=;u7bj(^m_6|%*g+HciIA}@sf)Do5A+)>kS1nF2GC$Q&^bd z|JU7p@=Z8SCoG)9z5nTnN>NGW@pj)w#-*x{S5FB^rT6w)N5-WpOwd$mNj({*?q||X zIG>D5C4E&>!6Hn4q4W>$>QcF_)??g-{<96dLDs=+A^1PwF>abS} zRO(AA_EUhJZ~__EYZWSuBo%vSv#GzxxKyFZ+P$fyvU^iQ$hg!-RGLf5|8KA-pQ7gG zTvuIGo(QDIl5xG(pwe1W9ij={JtiK{lB{oPuh#6<8s9(K^|Y5% z>^l&f8bijVcB0ZrQvN-RH&xA@IAI}Fx=N~}w^uJRuGeBzx=X4~l(M^Vii}G=__lU` zHZWl$GA{K3D!nE3|F3awU$&ERsRyTNuYQtB9!(hcaH%e2TxtO-&j(Ux$+%RJ>Dp_M zq+;KJxDIj8CX#Wflc)@ll>bw9op;ncgvVJjtnW%o6iVgtGi8UQZ#x=$GY@7OlZhWd=Du8spuaBxk<)7`3at+Q6XV`f3FK*k_lsb#kx|@&|Q^3y@w|!nAq0^-^{U| zqF`ce_nN0NnAmqdK2NbhacfU2%%>IO#rrXO7WXLDCyt4Imz6O7lIV@^+1M@rzehv# ziv1L$z2g4Z9g7#i#C~e<%@dng1Sa;~^}RelfsuEQo?{y8xd!F|@%WEdmiP5oL_aul z&v`0iT%`YuXPOp6BF>f3no{;TpKE}r6!7#16MdoPo}QUtq8sWx=h+0NI+^GR z9$Xig8d3dT>&i7p*Y&6{xuaj>UNW4g5tv#5&k!(=1w0>tsT1(*15+>HxeG>q?(rV? zv3zrNT@A$(dv~?#st=}7V4l8UnvjW};NkY?Q!q`V`n~q~0+`sZ^d^k&pXb4OI&<@Y zr!kn=uRP!DJbV>Q>{qbwHP1#cv7adKv|Q;Gi014 zZe7d4bSGoiwGT{BGS(Asp|0y$GS*W7%yVR{ry-c$WUQw@n7(AJXAziwWUS`^m;q$0 zC(R;V*YjkorxutO$XHK5FoVcg&nz%6lChp0V1|&fp7E^ce_dP!GdkeO_o1$9EScyD9`3qm0_K&dey{6d2$=C?oF(qM_z27d zGIm}2z)U1#J&8ZknO`GgJ!Qd6B4a&0z`Q}mdS-!{LdJTwfO(UQ^;`opm5lY|TdeDP zn~e1|12dhB^$Y{^4jJoN1m-<5*0Tr93^LXee~HdKlZ^Eg12c<^^|S#qhm7@%0W+73 z^(+N5Ul{*&u^G&Qfaf@vMFGz>FdqawNk7*8`G`#P1P^z86#=t2s^9DSY6#|IVf^bF z2jDMdifjJrQbOLia;F$#GOu+LM zm_NxxPw;T-Itk`nRKM4{(tn}rx*$yc=vTYXt-xFic-{wdSs4HRYyop6;JE?jYQU54 zOP%@efTt;#>jBRwFgF68FTmU)6FtGh?elFgx1;*K_POQ?o%s$KXNkKmhJm?D#$FdI zz{HOZllHQn>tGU)v7QPmb)NgkSkGWEiO5*bDlmzK@gMi2V3GtpDOc${$pW6LV3G$s zeZiz8W7o9{Oe!*VU8Ps+JZZ>S&s$((zuR)J<9-!PdNS5i{wwX3fsCDJFqlkatY;~h z%w(+RIGC(ttS9ByI?n@StfwrP>}0Ixc`!N1SkD(=9uy`+B#EBj;jXU>U}6HELThy9 z+`{m1Uw7CB!uZeUH^Ed7c)kTwGvK)i=Fxzs^mn?h+5t~@ zFpmX1v%u6PWA|q(n0jRF{@ei5fQ*8SCi`=0!5rGYZU5VG2Z&=m{R~eai+g!vdbfTXp8)!ua>OB$yEa zPa7~J1D)NLTJT<|*MaEg;*3}ctR5Es5Z-SXd#(LI( znNG%fPJ(%tjP+#tN!Rrr8SAM9=6y2O^BkC&WUOZznAyVkuZxXf<^(*~z|0GH3h&T$ z%@26mf>{{wya{Gez_SU=hXK!RFdqdx#dqq=O9GxwU_K6brh!=+@azHeX~2_qm(H`C zj6Lqv!F)!>9{0Xrz93^gQ^9;m#(GwPSxLrvj)7T4#(Glk)^&YF#(FA(`I?ONbOZAZ z8S8l!%vv(mvlPs?!uYR?-C({8c&>q2AMg~}qif#~@U#Q7G2od1=Es2N3ox4lo}*y4 z1UzYf)|s~jJmtY`4|v*w*+Ir0uW4X*lCj5YCz#!2tS8|wI`bYf)>9VDFJ!EzHJH6* ztYF_`^itYhY9!Ux()_B#liee#?I3c%waNio?&4AAY(oA!5k%H zJzKyW7skJ?8(>ZZJOzH$wVw)jT7fwo@Qep@HsDzU=FfoV5}5M=Ps~1@`9i?c7|f-B zXE>P40nbt}e+4{;z+4S@QtsE8uaU9Gy%w13WbAPt2IeLi>sbos78&a~0_Gnw)|2Ug z&U}ZA_0$Iw`_0>XeVu2R!@0&B2rjcou;v7w}vKQ$FCSd0gkI5b(SK=8=HsAec%4Preh{ zt8&283ry93=UXt<0-lT~wO5URr!|bjmLV_$cwgJ~~Jjz|){S;8YK$zwK{4gt?yFr9?) zzkby`r}K0UcwPb1HQ?C>rdz<1{=D|;E{y;C-F3k92zZ8pc{VW58(?|`JoCWxCWFn5 zev3--*a4;w8GF3`0n<+y|2~(vplk0R@N@$6JQ)lT{T7wvF&)f6GIpMAU`0Z;LZI`a@=V!WPqV1@=flfb+rjQ_Z=1v5P0xd7&6GO{J|OH`6azDqjuNHTVR z+JG5N2I1&8=a~y;3>oV=4dxYL{Kq~2Wu0eSz|#rLgn(x@m{$XygJ51GW7n1Tiq7*o z8N04pVBQGKGYZV)fahBbX-ew&P4S5Gk0$k=tw0`m?T>)8$FT{6~_ z_^Qq`gN*gm0P{W>>lp@S78&bV0cJKC>$wDGE*a}7^|#JEkBs&72eUvJ|M~nOn1un) z?_fR%cw(;UJRb%;9l$ImW7jnS%n~woU7vyZM3|zH#NH3%U)On-20V?yEEC4RKhwc1 z4|tA%`8?n$aYN_%BH$SgW<|iW4a~}bC)-W!wL0MG1?H=OXDygD0Z-~%+UuKuryZDe zWbARD59V7k_PC!0^L=2R!nbvv^#M;$Fh2x5AA#8z@SFy-Dc~vekIu6>;OP!#Yrr!P z%(j5%Aef)X*nQ4^N9Wl=#_n?)FuTZD&tfpU$ym=VFh7&Ap4xYHo?pmV&tx#alChqh zVD^!*p0x4ONbrC#{_DLynBM}PF<=e_JS)Nc9`Kw6b0pv?9A9VtBjD){=2*b97|ij2 z=Ny=mWb8g?PoVRhB4hWtKA1CPtmjoQXUSO47BJ_?SkG-R=gC-4(S$nlMKabi8O$Xz z)^ioi6*AV-_CD?P7a8l>0OoIDVj_us{i>KqJ=X%BWngZQvGe4)Up+U;*mv7WwQQjxKqHDFScv7V&Kv{za( z)>8#cIx^PNA4~=^*7GiyjAX3mTQHf)SkDnKS;$yV{N%c>2gq1YcQDz=SkF!{ImlQ~ zt`yoUCmHMM3nqq)^(+FDi;VRg1e1r1^`uX!^W-ICJ$1q4Cu2S1z!V^3JsZIkB4a%_ z!4xKAJw;RL%ny;Vo+rT+C1X8fz!WEAJbRuIt zJHd1zV?CF^bR}awX*21%o)N}>->3+td%)8LOiwa)p1EM2B@;ct!`;Vz2lE^mN5tJX zie=WBdy}!AVPN_S<6qZ)F#Q6a@>#UkfPiN@nCAnY8(>}tc-m&wUV{RjZ^676@MM2L zJwpPX7r+c7WB2(pFfWmbp5Wn**99;m$T%YIcva4(^Sn&PdR_%HN*Mp~ItgZUz*953 z_8J@T%mwpGz!N`*dd3Gloxn^8cs78U81UrFsl8qcc*cO46!82G=8b@-!h_mtO2G3v zm^TBSqhO{6JQZWK*V_Tln_#8~JlDaz6Y#XnrM=z@c-DcL5%A>6t)7_y&oD5v0-n8K z=8&=1MUgz(Yc84S2_EkH8V+VY8ArrjUmL(IAY(nr^J=d}WUQwim=DNU&v-B&k+Ghy z!7L_YJr}@yER6qpFPl$i{v_ZT0_M|zXFZr@0Z+>O+Uv7`ryZEj1D<7Iz9eJ!=MI<^ zWTGc{xZ_^GfX=guj3eTX`@3LPld+!DV7?|}Jy{BBuQg<>=P@vA$ym=oFzd)z&jK*t zk+GgVV7@0~JqZix%p1s9Pbn}zkg=W)V15)PPb9HlubTm8Q^2zq%obt%-#1TFSZCfE z@YDsfos3=Ab6|cV6FtGhoj-4a*(r?w`q}_ySHN=(%pNkXQ`~u2qKK~RXEM=~|IE`J z%w95%i1Vxf^D7zaN%WBR+E2!MYJoXG#(KtpIY`EOz5#QHjP+atbC`_v)F`SmA0cBs zuYoyA#(Fk`IY!2M5*O26C&*Y&WiThnSWka2r^#4P$>Q4U3>oXW0On6J)-$z)dd`ut zo{A-vxj@ExHi5ZF#(JJ8rJl=VtminGD`c#ve`)nxC1X7+!2C_ddTxQaPR4qwmeF1} z$XL%PFt^B9&u?IEld+z%WwqBGGS)K?%w00pvjR-~``q^etmg=r1Z1oyc{!cuJ~Gx* z7EB^C*3%A5VlvkACYU5-tY;&bWMr%-NqL<)IT`Dz3nnEQ>v<7ODl*oy7)%;6*7G}< zv}CL&{lhwQdNS5i8B7K;*3%74CNkDD8BAs}*7FsZtYoa`4wwhXSWoo|x~}ZP_+OX% zfXNZ?%mVYEF#gxmy;+RM;7M6o=P4WT)C5yL;28$y z;eclam`4Jh^I$3lJo&2V%#{P4_F$?6Jnw<27Vzu`Q$66xT2<$%Nyc99^}#$!#$NBk zz|N-zjGS<@* zOcOHJGY`z;WUOZ!m}X?G=Ngz6WUS|b8ai`JGS*WWOew#X36k7&7*F4Fofmj6GhFhfJ?FuUCu2QD>gqhN zlChp%U?!5Wo~2-37skKON5D)9c+%I?c_s%uwZTjYcm{)ci;P`Y^7`6qDjB=3_rXjP z#(zGiXrP|y0nZRH?~<|e90Btl89UEo4Yk+%WUS{CFf++mPsT>-nN7xes)3n9#(H{! znMcNYwt$&W#(Ii0)_E2R<3E4Kfmsyr90&6u89PtaCfe&GGIpMKz$_tSJ*&ZdOvZW+ zfLSU`-biBat4W*cJf8+U<-sf$#=k$kz=9Do0*X8fQ zoDO&rwbpsg20Yck{2A~J0dt;=UDt6i7s%LkHEyHxTq0vVZ-co^#(EBd`AZo8{#1BM zdtD89rh>T^@SFj2J>aR@R(stfW7jnu%q=o@U6;W8L&kdQJgvR%kg=XwVB#gZ_t*Ig zv{O%fGS;&cOhRG&ugeA6tLMIeXBL?I1D-4$)RQ>inG7Z=8M{AQz$7DM*OjQF_DVs< zdMblSNyd7f2a}qN^(+UIhK%)G0F#c4^%Uu(Gp8qGJ>9@$Bx5~uz+@t0JqN&KA!9x1 zI_o@H$yiTaFxiChpFiJ%$sX`j=%T%H20R16JQ(mS1(Pe_`4dd;fTvJbohNU=^D3Bp z0na%w1<2Ta{;`|(DoDoe^So!2DNM$Ceg{*8jP+#euAZV~tfwoOVq~mm8JH5n_>cQ3 zFeL+?2Ycu|r30Q8V9EqMuYxH@#;)rRFy+bEbyeu8^Hd;XJ(IvZLdJTIgQ-NudKy2g zy(*Kjo>gF~lCho#d#R@y8S5DXrUn`7ISQsG8SAP3oc5|EjQ@4H6PVfo&loUugz=w0 zi^0?lcy@xRAMhmatur?Wcxr)Z6z~iO(>UN+1*Rz(&pv~BoQ&P)lznvO=47m=3YZpT ztfx1aC&*aOY%s0JSkF!{t;tx=9WZUkSWl6@x~{gu_>X&AFi!_OlfbkWrcgAD{kp_9 zFdYJ(PGs!5>VWA?#;$7&n66~3=Q}Xn$XL%^Fx`dG*__G!jM=*WTJI6?ygWde zXURBA+|PYwd|sJeWb8a2g6U1hdMXT5PaiVYvk6Q;Vf@Fv$P^~?t|l#KNh9ipC>$XL$`FvH1MPxYbdd6|s$ z3<5KfjP)!9Gn$O`tOqlOjP>jT^9mX3IS*zW8S6SkF>0bIDlGSupd+SWkfwx~>Jn z#6%K%{&WVjFyNU3=7WG|FPIMlo|G@^Jc|RKYG9TGJpI9Z67YNgW@*545X`cGC-+F5 zd3nIo4b0~O&--A$2zYjbSrPCg8Kv{A40tMoSxv^CKU2YcMaG^#=fJEXV?A|7>pb6( zv7UKg){(KE+hD#WV?8a#Xs_?dSkFx`>&aNptg-6(fsFOkeMOm#WUS{3m`%d?@2e%p zsb_P*(;LiIGIpN#z-%L9=h+D6Ct>`rI~Tz02zWA&*O_;bvGa@ovzv^a=QNm~$yiUW z3EJxyGS>4Xm|w|Q&uTFH$XHLdSGCsxGS<@?%x`3@=N&MIgz+EuU0{9>c#==ld5(~= z^Lzs44>ES1rmv~z7#Zu?3g$Q&>v`;T^_(PQJ-hrA6*AVd3Cv$)tmhz@zlDj3B=&VV!5g}V*8-jb zU~UNGzuq4Mb2H%S2Ie*yyRKKk{6ogBYblt!WUOa5n0WWQ?*&-TH82UtSWmXex<3iY zSWi_jiG+!XBzB(%fVn^5`4CJJVf_2N2Tam{=PsD!WbC>sPtkRyAY<1x1WYP2*0Tys zYBJVy4NO`x)>HOPohKa`>*)_B0~zaC1|}mJ>$w0XvoJA{#2&9|Z|OW)0-niW9uUTV zybglN7Vs3Bs=acMvFjQPCMOxYu1#QK$XHL-x3yO;GS<@_Odc}UvkFXJGS-uHn)b>s zOiU!P``iOefq-WVm_ow%_c`};?NvD784TtjVf?QbAAl(u@azRsJm5+2j?Pme;3*2G zRKU{^OzD897nrgE&w4QB0-kK|>dX%ZJl()l2zWjNQ!(J#3#L-Qa|=wBfG7KVI&;;4 zr!tu8WbFAo6HE;<_I$nz=22n%=i%csbe>uP&jK)yk+Jjq1EvlcJ5P)EwO2hd*0TUi zeKOW_6-+}i)>Ct)_G(1NdM1NuLdJSh&r(lQGS>4Nm}X?GXA_v_WUMFAZ0*&OjP+Co z^8^{|c^=G@!uanSOTe@ac#eX3ij18n^BkSIEg3sceK76FSkD+R?a5frS}+~SSkHAZ zoyb^E$+kYdN5-xz*L*7FLO7liTe&t5Qt0-gd3beskwD1R3kO1LkEi)>C<*u4@z->*)n%G#Tr8AIw-X*0Tf5 zD`c!E;Ub-9JQ?d54`u=x>q-5AdM1*wp4wnuBV#?oz)T`zJs*R4gN*eY1T#e#|M^qo zL!J4}fM+n6sbuUti@>~1#?JFInCXFeQh%iLyc6)$1@m6OGaSr}faeP^Gs)O>{Rw6k z8N04Li*@EXWUOZZn7L%EX9Jk|!uXF@#wFToLBP`m%%Xs2IhYRup1WW^B4gLpi z-zc;~*L5J^X$R(D!1E@ULjli5Foy%4+hC3aJSA7^%tr&Bu3(M@Jnw-y5%6pSb28w$ z3+8mdQ)ZRUd?w)O4(88*XBL=q0ng81E(AQuSL-|%1D@(&E(bh=z+4G+i4J&V8;BV#?s zz!WEAJ-OEFJSE9k&r@JZk+Gg>V9JoOp6y`DlChpd8+4xXWUQwZn1{(&&tfo-2$MgO z*!x(eAGBA+fM*++%4F<36*j7;3K=`k0x;FcSkD-if@GcwkbV~ft*f{gXl0Mn9;^>hQ%ij4Jq3+72O){||k&eMjB_4EPr6dCK; z0On~j)^iz5J2KYu;5MD70~zaS0Hz}u>lqBDGa2jo5=<8|)^i0+H!{}Kbi2;{3>oWL z3Z{oJ{_FHSn4SSo(Vw(euYjiqnCAkXMPT}nvFmzhhxY1A#;$7_nEt}}-zTKssh$A= z&+}jglCkq_2lE0MJ5PaK+H0^d{(Wu>=EZ>LO)x{r*m>508Ais=a}LaKGS>6JZk>4q z8S8lr%t$iUGXTseGS)K(%osA(vklBxGS+hg%s4XElYft{Ydjh2X$Iz1GS)K!%tSKQ z^D&s$$ym>RFq6nwPvW0-=E-ENrwo`WWUQwHn77DS&+A~OlChqzz)T}!J*U7-Cu2Ps zf6;ZlOU8O?fO(IM_4EewzA&95N%WW8@o=A0c7T}~@RZ!E^UNmWEODQA-Uc&=jGgBe zn0dnZ??07))n4-hp5b5?lCkrw1ha^Yo#zsm56M_h&V4%1M`Wz0KA0tBtY;9IkI7ii z0x(O3@gJ}3`*ogA1D-d*EGJ{&yrt^G7#(MgI`I?ONOat?cF#hv!H<+~nPwIm@&$j{3qhP)Zcm{)6PsXn66EGXd z*mWHRvyqJTTm$nX8S6=YNY}Ml82|p10<$IHc@oUFfM+n6?E%j_V0MtP>$(7DCmFl0 zTEFYMb_?S_pI-#CC*WBM<`*({o{M1ilCkrYJgoEV3(V63%>IC9Fqq%S*m>rHIY`FN zvjxoW!uan$C6DOLhXbBzVE!Ou=lKK7Q8IR(qJLOSz|$SfO)_>}o50*6W7k#ag!cM}jP(ovbBB!etOXMB(5n955NlSkGoKnaEhr z6);)ISWme>b>^&OtYdBrOwNEO{W+cI!GPy6FuBOY4dmt- z2_`ogyRJ20@{+Nhzro}qV?D*s>&yknSkF6P3X-v&gcsCPSeWRSe?8o~+JY$(@T>q+ zG~h{hQF|2&czS^;K_+e>H_vh~CCS)zT?11(Fi(X`I!~E^X9$>bWb8bPz?3Ir=h+RW zLSUY>mvx>;0-nZTDhcC%-?AD^<$x#O7421(j9pi6FxAM|b*%zZgN*gu0aKHV_0;@J z=cy%3-biBKx6A-jJK(trrj9WF*Y|o?wO8GMXBL?HWbC@mfoVX-uB+nT+N%*6>*)%n zF&XQb45q0t{&npH^LW6M_L|PqJm9GZrbWOr3d|E^?7FstX+_4aE9-Tgr!^VtsSc(M z8SCi|rmZmk{aFa+>44`bnDzlr)*Cu=hk&Osm`-Hux>DX$PiHcAU0c9(C1X9!Z>gsn z8S6O+rn@ly{TX#zJv{=RLjNf9EEzk`NHD#~*m(|s=}pFZ65i2XeaKi(5itFP@vrMy zF#Q9bkHI`2@MONL^9&4lUIsIWj9u4hFoVh1bv2EbR)RywSkFN)L&;cA_xS30iH!B^ z0yCV9^;Arto|nm3&rC2Q$yiVPgz6bh#(Ktq8AHZ;Qs1YZSA_8&_x@nU1w4DfOdw+A9R%}wz*F>o?e&H*{&fulGdbYd2IfsNc3lM$Yp=J+*mb=O z=4~?8^EH@hWUS{Jn0LrnPl+Tt&%0!-r#qM#!bHFP>*3xX9s=`zz|$^#%J zEGA<;NmHt42^s4d0_GDk*7F6JrDUw<0+?lFtfy`&oo6{2>zN1Ub28S`AhmkFAY(mO z!K@IbU?j1}>!~#ASsCzr4`wwPJ5Qpt>iLR{o#!zyYsgs77%<vS-SkEh9ekEf)7s2c! zV?9r1(s>RD6aDh9hr2&72lHFNlRUF}4h1}2!2BNYtOavK82^6Az8qB4DXDyg3Wb8iw3Fa>{cAv9m)0zJ!V?8y%Tq9#WJ;B@{V?FPHxk<))HiEfL z#(Mq&^A8#8$(3E#b(f6wGzJqd>AkPDWUOZun6$$9e}45U zm~;V8$p>}j3}oy)eZgcTW9L~0CNml9IRqvP8S6<{>iHlPb5at0)=kDGjDL8S5DjrUV)5`5jCtVf^=>e0g-9(g9CTFl7Ut-h{!6*AV7IKO(TlChpPV5$q_-{+UW z)ChRyfO(XRo#zsmT4d}z)eGp%j|r0}lGyh@!@$%DcvgX_Crpgja}`YefTv_Zou{EN z{{86$rcuB%6-*N{c7Ha4X-dZK&kZom$XHLsLOOGEGS)K;OiMD>a~#YQWUQxQVeR!K z8S5DfrZpMsSqtVVVf1k)+tISr-@ z89Ps=qS~t~89Pr+Fwc;&o>pMGld+y&V0x0Vo{?alC1X9)z&t06|9#6jFuenwn#FYO zeaYB)o&(d5jGgBlFayX~&ktapCu2QVz`Q`ldSZ&}%!9~SPeU*-3gbVY$AcLX@N57x zEZ~V>Lg#rY;HeB|M8Go`%*z4K7hpySp2N#5*h2MUs~sRgN*eo1v5n$|33c(=FNboLK*Ef zHQ*Tz=IwxI1DNS#?7FUjd54T$SD~^x&wFI7rwy1HWUS{kFf++m&uK8T$XHLUayri( zVf_2N3e4Pqr)YWg%qL^#c?HY@GIpLLU>1?Fo<|ebY>^`5No#1YJ!Gt>CYYbeSkEvpd&yYOS}?zov7Y!fb)NlXtfxMh17xgc zDwu=9_>b2{Foy!38(s;PsYykcw_CAfsCDJDVR)wd5Sbq zPv(GU5tyt2PoAdgc_84K1tvQgyRIW(a*(m>%JaDPdN450(_mr(o_E0HCS&J0045I^ zJ5P>gI!`__*3$t@elpgx08BwL)^h?(Au`rept;UdgpBoc2lEga>sbt@7#Zu?4W>95 z>$wG{q%i*Ly+;e3xm3Wj4@?;{cAgO})l-&?ou|MP%9IbxGX>1U0na~R9tn7Iw$fe| z1D>j2DwDD6`T|T9GIm`>p448|gz{_XiQB8^DKgg67|hdT ztmjQI?Z{ZqUN9ZVSWk`)I!{M3*3$`0XJP!ueHNH50nY(2-2$FxJL){o1U&zM=^;#s zXi@h2Xh%A!r)R*kp|di*$k_eq+eMk@$k_eK(N&o~WUOZcn7(AJr&l-i^e1CIH^B@b zV?D1tqn?3etfypmWnLg-JqN%H7RGivdqFFhc{LNnnNrJX^pF4|uMD84>X0 z>8Uf1BxCpIDKMkR*!`IbW(*nYIS6Jf8SBaStj;q|82>(Z1T#M1nFZ!mVf^2>+6HD~ zz;g@C>tyV@`u5V9Cy}x1ItgYn8SBaLoO-5^v7YK+-Xdc??}M32#(HjmnMTHXn)lXu zrjxOrrC{DAV?9OtsOLR0*0UJQ`(&)AUSIXhBx60N!OSLOJ-Pd-XAT+bX#-{+8S7aH zW6t0PVGejP*ryR^08tu%2SxcjxI6Z9EdK&G#4D$_*cKX148<_BqhjU>zI-P?so1M{NQv3!u&|1`z(MtN~8N6ggNHylemxV zeB9|&g8A9$d;oL8>1=>GNu%ew5A!RHo~!ixw)1Hk?F@xEL!+I2Fy{gj{yI$5*Jl0Z zbgIBy2u%3v@B^5OPG>#LB^o`~J($Zhdaly_Z0D250(S4Hjw^@JE z=swk8ZaVwSfVt&#Zo%AkI#mbQK7Tu%=`jD$=(*wyw9Z``Jy$cBdw~gm{j7(%?{rdp zV6z@c6#Mu2yTQbv(S44<#0^aN^Ime0&5GxAX2Lv1qxa_)OadC+r^;ZPmC)H|Da;d2 zC-o5PBz8LeV3IhUb1+G1^jx)v+N`H&^jsTZlGAACg<;l7L8F~HFew8Q{`yHe+&Zb8 zPA`~e0u%o6=NFhXPN&=mo0X16&$SFDJ&m3#(@5)N3{3dza1u-=r;~J)b+XXtKHXum z(&#=hFwZ*slo@TavOAr5Fga;-pG0G+o}jdsq$Fh!kC(vPiE-05tC zDdBYbjJM89Golepjw$DHs-RFIn4`_6s zi!g(oeO{SqvxYdGNif5l&HCU~&s7>`6pfy%JIojw?aYDskVZR4U_J^= z`16&1w(UI5=`@2GPow)xgZYF;_c;nP(b*^Y7q-tNr&AqfGL7!j8|E__-De)mRA-;d zFw>k)!8x|`bQ;}fILr(h-RC6CEN7p5b8Xgar_%>!4vp@!6lN}s?sE=izOzq>dA832 zr!y92VPNdvd-ianhyOhOuP}?8PQm#$>nmrUIWS9{PMQVQS>|-cz$|w^}SFn`c!=M>C!8tvp+ zVf);m(N0&Gn>5;45A#=G!k_nBFt?pfft9w;oxp^DUHLxDKTc;C%)c~xu6(O();$_M z*EpC5G}`$d=8?#M$~U%u&wrw?ZPueS+Nlc@mqz!Q4ii5x;rIFR)i&!fr_%-I@xX+C z-|q%YLZ{Pxjm=8r>~jPrvC}EC);dqp=>7Q|CMk{Hp9JfylZ-|?jbM_~XlE77(}Bqx ziRj1Yrt581N~e?L8#Ac`6aIX4fO*F0?1M>5qvtBH!DgkS(Q}Q1$v~r>V=x(Mw3Fpq zo0T~*;pZ9-lf~&=gUJ?{@Yi9djW+99uLF}KFyTL!$-2opIh{^jnB0L0KiB6l&pDm* zFnMY8K9|^R`{bk1`#c7w0F8E@*kYaMX|yv8=7qq7pX&fjA*YjOtIaABnDCF!&0$`2 zI!j=R(dfCZ!4#*_a~1f`_9;oDoenTB(P(EO%*!;|NxRKvm8Q|o2$(W~3BS)5V9Gk3 zO51H#d8acErh?N+u){i)X!KmIVJg$;xpu)+rO{5_oi?i)jdsSuRHxC-4Vc$xv{P@F z&8iug@cX<1rk2x5y4yN+Xmp?YFt5|-KC@xopwUi(JvOTzjdt3>)ThzTBAB;mv~vaK zZ5r)7zt{F@NTZ#uFpX)nvl^xejdt$Byc3x4=d0*G+oze+=?c?=M)#Qp(~?H_*#Xm< zMmuG`w|&~sXlFf4I~wiWf@x2qodWx9R!17`w1VkGqn+t6U1+rP_yL>sE{%4&z;p{t z`17?Jrn}S0cF<<^a5{ZqdODq>FuiH?T=!x6(CE3cAF_S=I{S2k>F0E|!VGXaaSq$8 zfljA1%pe*)*Jzl*GoECoo3+sCbcb0SnDDQ6uETugbUMV?tfkIAb77V_os%#tX!QQ1 z{Mlx$q|y6R4d!ba?W}}ZO{1L*Cv4VQ8tqhsSx2LtPB7olXlDk@1{&=ggxMIF@aO%x zUu@@1PG=Cz7N@fZW~go!^~K517j|dY`|6xk97&InG6!b&Wj914pK&m8l05ubfOhu6JW8XT1XpcVJR0rPfQe6|ok=hW0u%mx-G_PH>9n|J z`#cet@b~FCm_%OZ59=hM(Q_S!d6GuYRpz>No}$ste3)c3+DZDSbyCo1rv}W^G};*p zlZr+=Kf|P^(N69gwojVCgg;*sVA49BI5(}6J}}|W*HD-YPAAbV>tv$Qb2Wp>Orz&o z50f=8;r|_$Xa2HT*_=*ynCvvV&+jlfXmp>(w{2D~8tr8K+e~g6?VNzg6PWPthxfW; zoxDyb)J65q2~C290r4Pi<-`z(cd+3Cc+Z?j&Z(S6Fpl%dgmhQO4g(avI+@-*5x z0#h+C;m=q02exx1r_&v#iqlyMQ`PC*fO(Zh&sFA;7^a=mxdqdKM)zrw(Dvy_qxz;vb2PKrd<=|-cSfiUmU zXy*t_4;t;{PHeM!(P(EhOm7wN5V?!kOQqx+0}+By?xbf45I%}k=vPF70R?O{4o%ea1Rp(C9wP zVCK?j=dm=_nMb3Y1~3Z(6aKz+pWSBt;B;of z{79qc`VHnNjh-t{4x4o>FyZGK3v=A*+<^HxFyY_->73JMop3r=U`{&wG|Oe3U!Be| znA0?Re^TYP&KVlLKXqWv(P-xY%x^T>ss5bJxCiPA5r0+c|;LDGrm6M(ObVxS112Sn?vuZe?VO56_h|$3jI+-Qm^4o39!xr?Q>n1+liul!gULvv=ei1$ ziAK*=t%%La;_NdHCacpq3iB+D?vwUKo0XkL_h|@|lSVrq!sMdS&PJH$0u%nv7i2DK z`{Z#t17Y&f=sxFQ^3&)(Rf^fH=K~Y|aicp-L8mhlrVx$p^F2&q8r|nE%!|%G!;0I^ zMV(HH5@w3i=ssg%O3>&&iAq}MC1;;HFr}Q%6qwRZ=M2m%PAAVxwoh57(-5Yd(-{j> zfky97qEa@iB8}dkVK9|xv~w4x3XOI;y==3p(P-xs%&RoosZ-iIuLUOj`!<_kYB-&I zuUMxRjqbAH{ZkW0>+9_SuI`wF@vj^r)8tv38XPvhK6aIeR1k=Fj zgHqxWYuOmiB&KW!>mrzMScZo#yo(ayli z)@c)%@cVonrmfRyTE#l;X>^~>Fdb-gpDb0a(}_kq&0#vzXlEYGyENLl2-B5DJ9()JYqrk^G`de4n8D6Ii(!U1o$D~eXmp>7HEf^ZG`i0en2|KvISez3MmvdW+N?2w z3BS*6U_Nv@J77Md(S2U5WwXZ7=st5`#?xr$Hq0k9+No08W=*8g&Qh33G}=jB$2yZ~ zw9^pgGaBv8hM7vEoy4!(tZ6jb=?*iUMmxu0X3%J-bX}V@i$*)Yz|5x6PTx1IGbb?N z-=EJ`&&*t>vkPW^V8UOAdEd0o0;e+;W+9E9D?@$jETYkKErj`sCZzM0b(YX*XDrMz z8tr6lV4dYO+F1p&l14kPyltITG}_q%vzkUbmtfY=XeUuao3)NcJFQ^W(`aWa%!a^( zKkw&YzI8eY8reRZoX(pto1M-An5}^c|Ne8i#y0Car*i^kJB{9-Oiiq_gGTR9QD+@k$WBVL-I%8mtIGrD1esnsS zn%S(MoK8!aV@_u=Obm@a?**FMte~G}>tgb1E?5ub-tbr=89% zn6osxPvw@j&p8_1X9~=D8trs#Wt|H&+Nsvs%0sstjqbA=<|d8qQ@5ja{-V)NhE8T~(`e@$%$>l5zkUXH zw$49JCtDXY|2m!TVeUDdUhi7x0gaxkQCBmMBz^d^06kZ^Ze|`0O!&DDz{GVr4ZB+> zK8@~^={+-#(da&>U>>K@&U-zqlaNL`iF%qzM5CQbFo|ijGYIBM8toi~NlK%gJiTn6 zWHj1o36q>gJ2PRPrqNCeOiCK16M3vkK7Y{iy}>JdNI;zA!J)XeY%0n^lNLI}2cn z&}iop%!@SI$v4nu6{FEkdzj)h+F1xwl14knVP2xqPQnjtpOhyMmwEg>d6Q(av0$_B7gwGs0$dq|r`Gm`*g>*#pysMmq&Y+N^hJv@;&28;y4E z!*r+7PMc9Ss|SsCmc#U<(av3%-Za{2I@)ISq0!C`n7%aHNjJti{b;n)31$F|cDBL{ zq|r|54{g>U8tr@tGnhs@@yA+cD2;adzzn0&&UKg(G}>wPkW-5(#_Q8Bkqn*YRZPs)e?OcbMNu!+_ldLm~MmvjPzM#=gvQMou zhekWyVde!U{Q0^7GvDbnm~6AYq|tp2!7QZFeX4wBoy9cTSpxGFjdoH_vCdK&?R)~W zj7B>trdnr3V8ZXu2QVw0&UKitX>^~?(`?pi8r|m_%vu`ly!*Lz*3oF^7R)z+2|ri! z>DJlcbPmI8bUJxwSZ9;d83MD#=^TgI>U0Xsv{~C|^!|JcvzW*-4|FwJ^JA zw3B_db@l`%{62St+3R#x!+cMp`}_s7pGNm7@`delkVZS>VGhw~=Q_*}feAlXl{q%+ zh|`$~b2KpFf37J8<|n67(@8zg_W9N6G=(|k zbQZ##aXQyw&N`i<^KGBs0u%oI@ZVt0JDmv&taFh@?{oGq&HPTI_jwh}Wg6{dS!kUr zG};*hb1g98=SsK8I)6Bw1u%co=sxKdTjvH%$UZQ)0u%oFSp)Nz(>Vk4H;wL-;Vawc z4vp?p59Th7cHV>emqt4iVD1Md{9Gqt9yp!cOKj&jk*6wdobb*>m`4K>`IiYjqWi>M zYMpparxQ$krxOE{!0Dt~X0sl5I<;V)pwat05hf9ho+}0>35|B{!8}Q$olMJZ=cj12 z^BPPt8twFjNfDUv=W7ql(@rPN3fm`DV8Xv|+#4pf(}{se+G?{p(CB^c2h)*8@AEF0&NSM2{5zY~ zg+@D-V7k(1XD3WI8tqisX0zU-(auDe9yHoH1JjE}J1=gxS-okrGXm!Qz=S_vmtguj zo$5PmR(~4ZX9dgv8r>(&PV0O?qn(a0gJ`s~6=q0a!q1gum(3dLbo#>#r_p_WfEhuf z`{dqjvqm}l?1dTabUN*^&WAL*Pw~BG#?t6Marc=S=j>At=3}R`5ayG>WR5JOAAf#; znc#Hp!Ax>GZ+~w)f9iDB!+b`g_b1+d>rA21`%@ie8jW`L!hBAnooWYc)(jf$OoW+9 zqn%SQvuU*R!a^|_V{FzQ8r`Qm%sv|JY=HTmMmzC;wpj-P6aM~s2j-yD z*$8vk>7+klvwmf!{IZmVZXFSZ$G}_q)bAm=Yw_#2O zCj35UJ!$*=>U65ZoTkxzhQXYn(S0_+ z-RB>e%QU)A-BUK}s02Oq{@kf1m#( zOk5h>r}S?&D;|yRGacqJ8tq(#NkF5WQs-?}!oY;TFM7f};dEBOB&N}Q{)S0H6SB_* z+b1cFb{fMxMWda8Fv)4OvlJ!;jdo7Lqzp{>{mFOHc24DV`oKIBnDCz${0x)E>6H52 zW~FoX83L2u>Fk5aNTc^B$0eJUiAL{Ff0!&Z+F1{il}0v<^#0WT z!)6tx(fhL+=0zIqJa*kWMQOBC7p6Fkc87TQ;J4Aac)?rG>vxN zgn5NVJ4;~7(r72mO`BDYMmvLGD$r=>XPAmK+9`6&W>pSM`1@-rOckdS_b=;IqtSi3 z!@NqP`<#b)jYc~SZ`-UIG}<`~Q!6mx=gRrFb!t1EJ}|G-=sw3`>eA>w#qZdxdd@zR zVcv8)cVOP4(S6GPW3w92=su%h8q#RziM!TmM5CP%FimK*^8-v%8tr8I*Jd@N(N1TW z<}}*b4AU|&;m>=Pdp4_;(-{cUhDP@}2h)~D_o;HLzc1SKkrYAvJ*Tq`re|Qn&-Gj!>-2IuV`2Kx z=($e7yicR&%JZnr>PMrU4lw;`w6g?eAdPkk#kE-<&}e5h%wQVrB#397AvD^l2Q!RD zJBwk4(`YAde48~gFyYTvYnV|^XCKTMr<46LoAsg7=?n7_jh^c_m~k|Et{Mq!)_5B2 zOn~`>MmsSu6KS+l@Nt_piAFoaU?$UO=VzGDXtYx>q0O2anDFQ8Gni>kC+-v0neKGj z!_06xM_^{r=(##4vRSif^jwJ&o0&tSo%t|xX|z)ziFM}FXy**f0vhcMe9}4#0~3Cq zQztdE$muMG`HDvODfpCimeA-vt6-Kn``m_E?sSSLvso)?bf3{Mt7vqelQ64kw39Nq z&00gFooX=a0uz3pN5ZUkI=f&t(C9vCQrJG<(&#>IU^dZcXDZBQ8tv?d*&3Meb9H*! z_W91~Bu!~%yVE%Yv%~33NM)T}PN!aKGrOHmnrF=Hbvkdt>~lJkVD>wmTQCQlPMtKi z&mpI?6y~tgNs`t&M`-kU?*#KBjXv)OVSb{~PO)@0>llr8ro+SpCj9kt6Xs{9QzgC4 z`h`aKISzA@M)zr#!8)e`6aMq2eK4n;PJxWpIZLDatbsX4qx+P}WS#Rg+F1y5fkrzi zGh65Pz=YrDUND!O&Iy<+PNz&3n|0Oc%z^oXM$c6ut97o^=(+a8+@R4;%WT%UNu!;6 zFn`f#XTr1AxlN;;eA&(12~7BX-T?ED)2W`rI{(t>K6_y9(da%^a$4tsv(J|>k3_x< ziyJ5W`}~P=S?5t2-KQr^TpHcy98CPcgx{aCxoy^CPG>sI<4)%uOhTvA;5nO>$my(x zN$hk|Y(Vqj7``_wF8 zooAfRHkhOr!fufXPCm`&@^~=IrzG3pVRn zr!xvB2aWC%1Cx_R_sLVpX62^Q&TyFLXtZ+70S7 zN~7mWQqpEsqtSB}g{dBx@Xrt1!o22mroq&t(S1_9Wc$>j(S1h1)Co-ZeO?9gy3;uY z^9GIXld+WTQ;$aXX#i87Mmv3A-lEaY6qvUI6Mn9vFb$nfikEHY#x%N5LzpHsy3ahA zcWAV845k^4b`q7geOd%2{9JFtv~)U)VOj?!{O9i}U$I$joK9bub~JjfxiIZ%^j!O4 zI?`yTcp2NL6ODFe!*rq1&Tg1@X|!`4rW=iRDwnl=y3=T9I!q55?feGQlSVuF%Gs>m zfr2Q$&>REPQ0>5PJz>~wa)ObJZ*`=UiP z+j*+fiSw$N&uR4jbb^^qqxa_o%uE{Xw5x8jX3=Qp4$K!c+8Ohjb>`4$Crb@8^Juiw z9A-X^cILr+8JO_r{co6sPNzyu+h?)U84UB4)7c2K)akrh%VsTeI>%sEIGt9tt+UeU z+=BVq>AX?LI;)+|YM8Zw34cA`hgs)zD!gv9zM;|QeJ9KY8hzfY)wRyXz=S{VDc&%% z$?3$vY;ign>RD&2(`gK|jYiM43}!oxo-6K~Hftx1c51`yqS4Mwm_0PwNmAct?WNI9 zFPQHG6Mmmh!|ZoD)!wpM2WfPlMKFhGbe|**tn&kncHV_KLZh9dFh^;$Q{ru#^%ISD zrokMi(aygxF*Mp~(9mX`pwZ4Hm|tkL)2ESjex=b);>Ko9(P(EH%o!T(JlDiJXKA#v z8s;||?Yz{~I_GJ$vl-?hjduQq`JF~P1>Uh)mje_2dhQN$#p$evxkjV=q;6)j{-Du) zy2AWPqn$M{H)ynT59U^2!q1hvx$X0p)2R#dH;wM|70ewP-6uf{n{}5)I|X3=rO{43 znEN!^*#h%`Mmzah+CFh2|0lM8E?@x6qk#$kdBI_rcuuEaE1MPH>5PR*;B>CSJnnR= zx3*bN(CGcS50i*S@6VDp)`|Yninwu}k3{s(kBw?;Ci+J!V*7bYt9E9dqS1ZQw>OiF zM)x@glY&M&Z*{QF(=^&S1CxqIJ6$?jCpC?B9>AmtO!)h2XeaBWbvj8pn@R6y>xSWTw$`CF*J>Yhc2^?{^3$o70)x%{tiw6MlaRbT^a3>1>0^MWg4s z50jfl&sFq2n-%@BQ`|UtBN2T)uYt+ybc*+|PX54z|98#K!W3{iV|!YsU|_=U&uy6K zk3(X6e>Lu9ox(JFe{R4Oq0##@thaTF(r9NdOfeemBN-*gEgSl%dgmR>72`(S086YqQGJXr~5DMH=mlf~iEK zogFaIZ-vD6`&aUQk-r&vM8EYA+x=+>6a98TZ1?91O!Q0r*gAdt+pOr9*0FW64lon_ zk~p@`4w&edsj;0a#(m~dVe%TXS zry5Lyz=XfwyTiQgbf&{JqS15x02BR`J+^%k4vzfI$fIds!uKf#^N!PL1=HN=%!G-4 zS{B|@Y@PEk(N6_p z>!ceR`J0hP^tbTXUeC2)qQ8a5))@v9{jE2)efGjcf9s8{lWbVzZ$=)`-|Ax9rzTAF zx3SndV_~AdwZztmfr?$nnCOSR*g8vKq92B0>)eHjeu#;! zQ)xuxZ$=)`w|#7#4`HHjv)DREV4^RP*gEM(+N|i)7F(w&Omy|wI-6jkBV+4i8fCMh z|0lLiUzpJ}`uk1{%!h#q|F}^y8i+i`I-Myn<7k3k68z=i&t(#ivChXdx=&x2PXZIZ z&jpwXPNz=vK#|8Jr?UsRlddg#dGGn(Lk27h^Yt`#s-X!Km!KC;d<8tqJh`J6^O zDWW$x@|Z!RouM!@X|!_(W;Ts>+C`tJ$m0td?VNy_OQW4v##?6|jdo_kETGZOZI~}< zv{Nnm!ihW<1t$FU(;8;6(-{J@ghux{3$v6)_bC^BkwzZNX|%H)W(AFQs!X)bDjMx< zhWVOCJH?}Kh{$6NjdoVUtfkRTk?5Ny@>n03@caBJ%r{QwF3h)1r`=?mwbALsz-)Fp zFGt_Rk;fLNGZW@Jn&6iNe|h+R?-+ffM;_Z~^!}8bYGy}Z!tYNXn4L~%JJ0Nejh<@{%z?lZj{JK4y1QTW16bs7(CHMMZssse@JoWf zJlv-z%nvlW&qkOZ0~3Cq(?vg6Mjl6&F^f!vg;~b54D#H9mqn%zb7ihGz z2<9SdR__hH;wLd3Fe=`gx{Ym(cjo3kGoE%9?U(O z;Fkn{dAQGHnEN!kPYlc>ky{hn*D0Cj+dgpu6aIbv7BF#Xbe{<@@o03PZ7`3~Xy+nK z0vhckiGJb}c_gIKP8XObXtZ+#CNYh65=1|Niae6gXs0+#QX1`af_aKYJ9A)?2PXXW z^E*rmr&C~|?VOTE_vsCjibnU@2J;M!b{@c_q0vt9=qH$wM>-nq^n^)Iqn*_-83Pl3 ze-cMOQH?w@Ii033S!i^hwJ=#}bf08j*{o-2v{M5nJB@b6z~rRS&M}x=G}_4?{RBMn zc#cLpZDI1zXlDsbJ{s*j9sNW;^2kr4onA1{2PXXa+6Yt7>BL`VvkEz#iZF$p&M=r4 zoz8KXqE07Y^b3^8qqx)Q08_&0EQWc>>0E&+<#h5zzZi-PW+WN ztDMuR08_!~41uZWbhg1%b~?$TU*ts|Rh&*km})e^FA4tg@b}XhFt5_+>-h}KYc$#^ z6#arS@~ACkCbyjdpTIziAP9bf(cx zSD1Hcv~vcgD~)#QY_wV3X|%Hj<~8toi{`HV(8#dq1PsWjRd0yB+9I|pH=2PXXEVcOj`YlhQl z1~ZFB_xTKFHciMrFms%J66~>k<~p5HF!O12pWZMFXmp>|Fbiq4^8jWMjdm*SwVl7B z(as8(B{bT}6#d3(r(`e@u%t{*VRQ}#(t)kJ+5}4J234i_Eg<0ctD($yf z>u7YJ5isj%be}yi8=QTfihff$^7z*2)P>nZqx%ej*-WGRtb*A}qn%?g-_dC29?W(c z?KC}T=h{J|ooz6?XtZ-1W;cy?av!o;dug=O7-k=hb|%2=4@~&$=Qzv(r;{oA4gSdE z5RLBB7UnRG?z0N!2#t2G!Td<0o!mdzK0ncDr$5Xw8toi`i3v>j{mFI2X8r7R`oR1` zqx)=uIZ31YB#iz5B=R^#qn!pYr)jja80IXEcCsC{S?6f9Ga2SQjdtSwWSt8%+UW%I zJB@aJg}Fqdom$Z!>_i?{0u%mx&4an>bne0Y;dHu2e?Sy@Tz5JbVQvH_{GYe#7-OBA zPUi;9Uo^q!;4crq4^TMz!>GvPHjUn&?l5-(6Mlb|!~ElPuEG3E6O0c2@^GJ$Cv2a4 zG`i0)mTpH~ZjQ$`l@`z8PovAR7(P$?@^oMnk z$K!zszt8nx5;~oEFo|e%pDQqlX>^}Lr)-}mX|yvKCMk_}j=&_N(N5LVHY+)eb~eI1 zO{1OMXRMQwMmytSQqyQB?pfGUsfcj5OMr43jx9 zkvB)k&)*CEW}PffXCF*98r|o^^VWHmM)#?4!AuSs?Ocb+Nu!{+N_sp^jxQ5O4I1MI$X0(85->zfGJC( zokD+Dr#y{zzJ{qlqn+Z{ty76cJ6m8X(`cvKpVp}wnDFQ8Buq7@)AfdRs?+E``EQze zjYjvm2vd_rJ40?+rxuNNvixPHPGG`cKOexn?sU$;yg{S;483i$>e1*vx&Jm(pGG@} zVcw$APTxD$d7DN%S792`Xs7W%)@dA=@cXj}ris(J1M?1z?o;Qk&1y!Y`z(fO;p}r3 zrlr$K_pi-r9hmUXd)vaaaXM>Z+R^B_Zo{;v(Q_5KXZv)d(M~^@PBhxt0n>#>JB9Dt ztaoX&GZUs8jdtQbuugXx?X-aDL8G00Fg~^j!O3zM|1{jZb8q zr8L?pl-SHN8toj0SwW+ncuB0Yl14j4V7{i&PCJ;@G}@U7vzA6XPd;h;tfSFRADC}w zv~vz-1C4fSB(+%^0~7wfm{$l zJF{S}&}b)jTI*b+(az^Ef6!^|>Fd1lcpLV%zRwf$lOn}Kuqn(W~S!uMB`Z=4GjYd12V6xL_X9G+Q z8to*?W3zJ6Xs0nuZW`^ZfXPFnoy#zJX|$6)ukDkcMmy7B3eadLWj^Z^3{3d@t2WFF zPG>AkVH(|M3rrCj-RBleQ5x+$m)~|SMx&j^FePZTGZCgFjdu3Il%mm2rUJIl%QV{Q z0`m%uc2>faq0!E5m~u4QdFgrEr#y{z2EtUN(avs|N;KL@QP5^p2~4g?L_hv?hpFmx zj>5benDE!(6EE1T>Q1K=Obr@6R~wj`Gxtu`e_f-!s+aRX+@*w%2wQFwWiT?^?_;Y>~k8XoztmO!e(`#(S7E_bfnRJ z5|p$~=fH&j{Gv5X7pJoerYnu^ljbFx)s05?X#?{fjdp&5=|Q8NN~LU8ufT*q?~7o1 zJDp@NTjzZm-KPaiUmD$KElmHwgx}|yrES&#r*j_W0~+0@#mm{OaWvX#3iC0I zc1FN_LZh8;VJ6UM=LXCq8tqgrZ##cVqn&9mpV4UNBFq#T?G&kCv!>B#XBf=qG}<`^ zGb1qJ@6)F$+N_yQrxMI;r!x%Z3#YRKW-g7MD}5!~XC957s|(Bm8trU>`I1IEDJt8n zMS%&wKX1S+b~=+`meA-vcVU*&=spdr*gnf?v@-!_1&wz0!K?~Q__-2PwOL;~oiZ?M zXmp=$Fl%XapLsCrX|!`4<{KLAl&oeue;b(abB%-9=ycA*Y^KqDio9yGw$SK4gJ8Z3 zO!)6Rhherkoov-@)(#ro=N*`xG`i1BnB6qmc>uGAMmr5(vwijjCj36HgZbX+q^@C| z12no%W0-?9y3ahA!_Gc;VSaErHEP;EKho$vQ(%tL=sxFRjs+(Cc`s7SW*v7rgJ6E9 z(S0_-oS@Nt?!la-(N6u^w$HCL+F1p2IxykSd)7MEIpcK3!knYgeZGVFjYjvm19KrT z;rF@o>$cBDr*j_W5{>RtzOHpH)95}kVXg)y{Qg{qx#o0=zG1Vj)95}kVg97ieG=8P z&P^Ka42QWzqn-F~TIV*6cFMy1O{1OuF#iN5{Qi6ibJyt{fw@Pc`(&zbJKv|#ecHf0 zk~;S9^KXZVL!+H+Z`rK4G`deKn0PeWSqSr3V8ZXuU6=$;r&%b zCUIcG-(T6^wpmG>PA8b8G`i1xn5SrTpHnc&X|z+kq3x4`MmytRQqpK=ElesJ?VN&n zhDJN78reQ+XtYxeCLN7-X27JU(atTHj5OLQ)7bXOM5CQCFj;7{a}p*ijdlt)v02Xs zCj9l>8Ya8bnGTbaM)$b_lZ!_8DcRKadCu8q0!$vKa}6dRjqX$C9h;S(M)w&H^L${! z-(Tlp3Ob#V&1_a78r`QKOko<`XEV%;G}_75+-4P}(asQ<;xyX14^x6hJ3U(1te0rC zvje6SjdoJEv`%Rn?Tm+cg+@C`TUn&3e`8^nrPeM)z3*Q-enLxdl^;Mmx3I+CH^uw6hrIbsFvb z15=kqJC)kmta^b7f4*kGyy6GbUvzpN8 zK7(MI(&#?hV4BfrCr3w{)tp814Co&}e4>Oj{c59D!+1qn*y3 zZB_>w?Ih}ArW1{Jw!?I$(aykkt@AF8cFJ}&)0IX$al4u69+>dgbA6cioX!%Mo;12o z3`{Q?-6uhJ+ounWcHV$_pGG@#VEWN$=N3$V8tqhg&-NKeqn))dAJAwgUk~dHrqRx5 zm?1RUxdbyTFyYTvv7R<-xYHQ|Gm=L4xehamM)zsh%Vv$C(az5>AJS;2L2v7PM5CQQ zV8+pCXGkCGjHl5~iTBNXLZh8)FcWFC^JQP_Orp_Fi+*M%2PXXanhNuo(>V+?l}7i; z*577LqtSi3!c2GeSpqY|>0E-DMWg#XKfv~xO{4pChneH-vmIux(@8zhX3eM3eVV{5 zpwWF6z$^?*`0uATVHP=^(jVA9U(x73yU{=y-=OdU^ zG}>7YvpO*0ujkV+Yn)EP!M5`{8r`Qf%z7H#r#s9B8tv?d`IbgIxrf+3n`pGt6J|4w zc6PvQrO{6Mp*HI~8trs}*&dki`@9flhtoL+v&-ou9A^9Mb~^cB_68>WebEMHpVOHG zv!6!qPYlcf8ofWshTG1EXtYxa<}i(R`obKc(au$vA8EAHc!cfqQ((fMuiY@moKBIE z)`@XC6JdUKI=5kdq0w`-9c8ml(&)KPz?^dSDLmRbr=89yn6pmjFPL*qr|B4*b)H7g zwG-w7jh?H(ht~Ps*{2K4C8x6j=8Drf4|CP&q#JAd{6VAVY65eeM$a_|=7zJ+ahRJ< zC+SDF&tFcbEX-}E(;emxjh^d;aW?B88a>xFn15-s)A(cS+@sOXewYV=34fpFA8(yU zo_YAQ0PT!{c{DKLowG1;oleP5Y*u_4Jy&O#$7pn)IWUjYXy-aiLK^Lqnqd1R3QYLN z`K2(4oldri)_Iaf_t^)Nlt%aIG08f~oP7#^Y9_hUxeoJmV8WlT;ghYC(&=RS%uH&U zkaNL2L!;;FGsQY-X|$7js+n{&+Bpi7fkr#sr&%W>jdoIeZYFbJ!k_o5Fj<_=K$vVa zy3c%=XK8ew{V+Lbw3BkW?VOWFI}KoR2PXV^-vINR)5$c$X61D{Z@}bpI%8l8(CE3g zz&uZ*=eiB^0*!Vu%(R^g(P*a}Op(BZ-=C2%FFKurFvVzepH#DKpW-ySPXm~efyo?+ z=$}`g1oM*9ISli1V8YK;c((0R+UZPyDMO>@IuBEpM$c9J3!7Em*=G?<1*el~j&&;0 z=sq98RHo5=;>@*9)xd<`=Qc3aoX$a*>VXNr&l%_0tk;}QJD8d@dalItty7Ce&$Sq) zj2!yAgGTqc2UCwm_Zjk~&8knMontU>(P$^%LhHOuqn#Qs4QaH~1*UOe zvPL5M{))fIW;Jm-lVRQoO!)JD3#OUVskPW53{(}qUxPol4E zpLR6bX$I4tMmy_aI?`w-#S)v#xktgu-lXtYxoW+aVvX2XmQO!({P2Fw_zQ*Nd0GuG+! zhxy3qtcUrSM$eUGmCYJYqvvW2Gr`$sIm|?-6aQEqhLM{O!)J43}(91$+^a6&2&0VVP-j#g&Z(`g2?G%(@M*JhYyPAAhhHfx2` z=?b&b>Fj{{nns_md>d@mY8rjM#>1?2_BjZ%&gmrm)@FUhuK4;=gP3zX6>cX zbIpVK-r46S%zmd+W{b@_NTd5KhdD%}`()c{ogZklQyb<8jdljY91TqP^YsnPPfq7H z%yAmsC+~N*a}15{(-h`JV8TC-nh5iY)7b;_D~;}R9p)5`?vr|(?REzpCv#vOu4lvhf^jvXvTIUZMJ=X-7 zKb?Ip!`yH><#ySuTQs`Qw=jRv=sv}FTjy^Y?TmoAL!+HzFn4LRlYNiP`j2!ff;dGY5JneL@ z!K9+mbCo}6`=qAPb4`XxwrzcEir?VO+ zD~;ZtYcSbp^#0`h!S=~cqn&SIa?og}?h)(c3QYLx=QvDmr_=aH>*S%)ec~Q9lb1&K znFo`fMmvpuvQ7aS?W87L zQz9_o&sUNdn^n^3w1X+-boRi!>~!+{Y_nc*Is;+KIGv*~3+AJ-*@&Y57XD_bb#qkqx;N+89<}^9D(`3*(b>* z+j)@FsQ@!1FyWuqt%DirbP8OyS;L)uX2XndI;pQ%XOz=v2s7I0%!c`pM(^`mS8di< z8okfSu9+Fx_n9pdm^XhfmX9|sW z=D|!0O!)h>&Y#x#-03`knL(rbw7g-RnKZi3KA71w+NpWdI$zLe=P=A%8tqKHWu196 z+NuASnFWCfzdwCpzH~Y>VHVNoKF47e)95}aZreUf0u%mze-~z{(>VyUJTT$s%K5j= zTH$p1!mOgvb8UzDnnur+^p4G1)g{wae_~+1bM|@tU+ZjhI{RRD1Sb6cWVmOYold6%%x)Sz*FKm%GgU=Gu0XAH~_G}<{2^COLR(mxXU7l%h4 zM`^TE3+7m0!tc*;nBz`oBh1fE=QPX-rxQPp?R=6(&(#~|R~kLnHJH=RKDi&YS!bM1 zGnjKUy3b~q-)MB7OmS`21!tdkVJQ4?OcRO8JO&m zi2k{qREccoR8FTH%rk)rzt3O7q;WdQ65FhFPUlUS^iF3wOhy{LKj&aF(dhljlf?GP zLZh8-Fj;A|vjOH=8twcElbuF8IiIwBat0>+J~x8N<#Z;%Jm+-Qz~pf{F);aP^jtNQ z+RpiD^jzCuo_F?n08`NE6o1NQ6{697CczY@(S2^gyhx*+3dw9%Q5x+`fGJL+oeMA} zXtYx@xy^csMmwuuO3`SiKnm-WrqNC>m{(}DvlXT+jdq@T+Gdrb(N05{3N+eT1XGbl zJ9l9!(`ctwO53Ljjdte2RHM<(A26@dXs388oAp{?!r!O8U}`v>wJ^1u&Ob1rftff+-iovJx(pATuYGY{q?8tqifX`OL2 z+BpX^o<=+Qb6MvT8twFenMk9Z{VZ(`cs*%nTasbb^@`nDF=4Cor>}&RUo`PUj@dT&EL1ubpc?jh?Fj%mNxcSACd; zG}`G0vxr7JvthoX(auGfB{bS8kk8JwEHL5sxh>3cr!xm;C5`U08)g-a?sE-hHH~(X z=eM2L&}gR!%sLwF%!OG`qn*?RY}N)E?X-sZmPR{kVK&idC(rXXYcq{@ron8b(atLc zt@9m?cFw?Tr_oN+7p${`Mmr~Ab_FK<&nJ{DWS!kkXA;a_8r^3%%sv|3=N`;{8trr` zZ2KIb(at%TLp0iXrigV8(`cs}%n=&x421cSMmwuvexlLNpD@R0w3F{e+c_pM;qUkU zFh4t;gD}6)=styt+N_f_y3YidQ#9I%fjLd1oh-#{*4e;>pQ}5}Ij6G==DgEMQ`}}< za5`;Zey7oM?Si>Pqvy(9!e(8e(M|`Lt2EkK2J=T?!tYPqk~ZtQ)2Rz{!|8kibJOV@ zhWU#|&sE|j+vhfoo@*w|oxp^D{P_*$AE%S2l+F5=M)zq1bB{*%83*%#MmsxT9!dA` zX93!|2lFV6b~?UnJIAHb&PkZ~feF7q`Ab{pF{jfP=5ZR`=K@SZ8r`SPD>f^Uv(HqR z#7^fN%#(o$e?6BdW3!Svov|>e{^&rFz{G`i0bnA|klNnF|Xd5%UqLm8=yZC)6r<7mlkrvS6sOVqvlXT!jdrfX zyhNj&Ox11H%QV^<22+|wJJ(>!&}gUZYc{Jajdmu$ln+e!^A!VA!RchFVY4dH=srVW zD%0pb7h$S8`}D7Av#L3rl(o!Mr_p^rhIx%f_eomYIyGsuGaIHBjdqIGu}+=9gx}{8 zFt0nE7??MlPOjH&Rz0WF9i~2wp6d|ITQqvE0(EWH+s-}%VH!G}!!V7VPJ%aVRuiXF z66PHmJ=Z9hW;A-P7?>6`+9^=a_Gw9@ok1|I0~7xH&MKHTPUk#KI~v`m`J1*+dm7#6 z6ii1N?YvUoI-O{=GaaT&V8UO|zrwuhbh5l6C&QN~8OX zgBeDn`<#Or5t#7zMe0Vj&q$|J1!i<$!e56U!i;e`hhfG#ofM62pO2hQ9hi@u&ZjWr zoz4lE2~H<{6WeE^(`f+nsneMNGui3vhnYg7&wHAtw$D@=ecqeFeD3Ts3ue00IR!J5 zM)xWAj_osxM)#Qm^M$j|MVL8GCtow0HP7j^ftl}g=D>VOqvyH|vyev5Rj9e`vzSIZ z!(qOn(as5&rGW{5pFY*XW-W6%Cj5PR2xg_zY1-0eeeHBc!mM^WD`3{r=>2)V zmCag5qxWYq%r`XJd8@T`HqdA%K^rq0X|&TEW)qEeHp6V8(N3baHft-5cIv`x3rzU) z)fZ;F)0qRa)9LJl+2wRD!R(>Yb7gF2=h{o7=c)zsy|Yg*nEg&?Cd@$^-RC^aAsXE$ zUwhm62WOwUFh`tDUznp#X9mnqPG>93aT-0>UobH=dam3Z>|7_DeQLq{;&gh!{7R$y zY=t>Rqx&T3X#1R@(a!5IXKA!E1?IQFgugGogE{YXuE1QR(S5RXvYmgY(S7Q|T&B^^ zmoQgowDSPw8jW@aceZ{0pwUjkE@u9u(auLOH)ynz`d#bXqR~!On7?SW(--D%8tq(x zxkIC!hFxu+yENMQ2hVFiD(!uE0F$bh`AkSx0_NVG}>tgla@w1yI|7OXeaCY zHY)>-cKX0%3QYLx=X03MPG>VrRvO*sCQLRO-6v;X+c~?lPYswHPNxStZGmJ(%6JUnZ zXlFmnNE+=V{LuCpMWdZ^Fk@-7(;wy|8ttry`ItsKw_(Q9Xs6Iv+j%05b~?jMqS4M` zn8`HS`5opn8tvr#$o82|qn%DLGibE48fF%ab{@dYrqNENakkG~8tsgRnMb3YgD?wd zw3F&%oAo7)b{fE}q|r`4m{l~|nF+I+MmyiZtfA4)d6;i#w3B$eoofS)b_&95q|weB zFq>$!(+4I`hSiF&gdMhABa#oew^>StV(-lVq})QZ(8b3iC3Jb{@dILZh92 zpV_Q3G}^fbQ!X&!&sY8_)+z6F8pBj{I-6iBIh`z1ZB`Yh^A=21r!yYrRT{lNyI`u* z=>2&BQ^VP(NM)%3^xy`Ceqn&qP-k{OWJeW6Wv~v!oK8<#= zO}Bj-&}e4>%-b~DIRVp%MmyzZ*sR7h+F1b8ltw%M!n{MHof#o7K(f)PZ@=>3jy$!|9xY=|!XWr`#Odr#Fq>pE)q^(`YBbTWgSB~P!I$pVnE6aH$ z=>nUzj8_Wc%2HlwfGeAMWhkyJ;gzp(Wjn9@jw@gBO5!h51}BW(T|4Q^kt@;v^}j1^ zB3I)5=gKFME7AM?KeIA&rOAJ;oQzy){hupI7N!iIq5u7=f{`oH@Av=jO6|y%&i}bG zCUPb6FH8D=W_jdF=Kowd9J!L~KUZ!EeB`_1lyMXtQ^pDXtwS1SMKO0LEBoG#*>Z-^^Bcx6Q7%J9gIP7wK( z_FOE7`QL^|B3B~+iHQHV^OIkte5CMyu9S;hsrjEPEhAT=kI{UE_r#S^ys{ow7IL4< zkt=Whr;~1pb-ti^6IZ73%BQ$8l~)$w$`oGNhAW@&%0IX=hF9`0#m>A^A6FLh$^cv$ z!Yj*hr5~@Hi(ILh@&Dh|e9Npnl4mcAE17uZJzRN@oey!P5wC2-mF~Q9E^?*kf9_bO zWPT|U{ zyi$Ipbt>@66kOTID}Ufh7S4KhmHny)G(&Ku4zHZTm7Tnj=4<;^dw8WQuDrx6-{ZtC zHrT9N|Hs{%$6D5HdqFQi6ahha3g}aVG{PT3&f2G^`J=w7UH9%=^;MmmUH85Vk}TKR zd!198Z+G9`>zt}{#l#p)ATgrEm_P_k!+%Kp1F?I;6M1yL2(b$i6$GP335}p* zuC>OPeY@7$=X|en-}kEK9?frz*{s=&IVP2SuPymoRPxWXC4ZYret%o?ca!#?XiI)J zmHdsiFaKqY^mE%`-M^5@!;e~?Ok`hV2u z`VlJmm2JsCLM2yi$*-W2-`ztooeX)1a9 zA2(comP-EZw&W+NKv`wk7`umHh6u zu>GZA<=ND)|F#$={)pKh~D~e^l~U z+L9llmhkg_tkM3{sN`3*B|n2oetlc=cTvf@E%}*L^84D7pG74<(U$xiD)}32$mR0)U)h%Y zqf~O$mi!Vb`E6~fJNn5)hGc3bWQ8ur(}E=gu3KjXhd|DdJ6Kr4AA zmE10t<$A+-*&oKW*cVmx*!;UG*;hr21!>s-zmnwatKIxws*5}?cRLczB;Rhfen58IychR^|EuC9x9r=bx0U z$bZxN6V?rHnI9z@#`UjhC4WUL`D+becK33NGT3;V+?g%ZWj z)#lT3^9egVdgIqhk{S1Rw36SYmHcU~lOPq*@n0M=B{lYu?CE`#&bhVLqHO5%nKNlS`tJ>qz2a#J@o+dC*G!1F7Uwv8c8S9N3xU?P5#b zX{@;2?7nKSu>Ufe+g+*9%s$Q+*bW++@^d+(VZPy-t*a#oVshYHF#Ckc(PP4($!Jzz zsgjw9|4p)DSKbMb7#EZ<0IfDw!v6e{KPA>6d}RvxE3;pVt-h5r+tA>Pa(=ZUXI@;9 zsf{>m-DW zJ-B{{L`d^3iRM-`y~fPsd{?4jC3jlM544hhK`Z%vTFD>QO8%5q@|U!dzoC`<>_08m zDMR?{w34w_@}pYGomO(MmHZB=r1tzhRuFpi_ewMj&%djc{C8T(|EZPyyg#Gb_3O2g zcUsBUTFF1HmHdlZ$-kwQ{2{I6$F!24`DayxzgQ|MZZoX+O8&T3@|U%eAO5dZ%rB)9Sjz~X2gLlFB^rkLRx5ebO8!-?laHUzZCxUYpU{d^~>|$^ln;ZC+quFxm(QgP9NZuSzRq99^B ziZhr(+*KbL2yTo)rbOq^Ezz}Vr&X~AlaBMrW}m-aRkzFHZZA5|N`Q*21f*fJ^JuUT za19m$(lFa-8o0-%mGNgT-S{)f-dta6!es~9D7Xe21t}@s`IOiwxDp#htK{9AX?3xH zTD~dvKG12t(5qBa0I*_YMr*dSRL2MLFj*aX8$ z9FAgoBn(iZLoBju`UosFeG6w=UDmr-GpKlIW@Iz35jzE{v{R6h^v!g&n41CAHyD22}nol);K9%K*&>7=Grk z+vUchk=jvcq;~zI*KEgivcBB_5Dx&2)`38ywL-Z3@*aNs0vgxJ+s*7NHwFW-9fW~6 z0L9sN*UJbT0(l4$f!vDawD!o$%2q_Cm#DQu{$3bT{CC)RedN(Wo7 z-oco|Yi!I%7rmDSvD+aAu?J)KxlPsPbD){t3TJfo;UinygBy$G_lo6x`R&aTMibVd zUX9#M$j@tcqMtVnvZoO`)z-X;kZayF$VVN#T=OPEu6b+7ugWEyj;IX*yO8bIMy>5v zt1r$c`&aCEYb-7+v@fAZWw%eHaw(j$BQ~!>qH-!EDyzba$^QERCQ4*>l@eKi&QDlx zuqxNw%7p=0h)y80>OB9j`7S$`^f*?avTGD&SrulNFzZ@uKfpqH2@|urCidg$-es|! z#}3BMV}*9Q-Ru{i&tAiM>buSO>Jm01UQgbR&rV#}987j_4kiz}i&vY;{>6t6zj3_q zqmqbyXe43}iW69}S8P||>SWJOmT6Z-Z>^1~8iNmw#^6De9YM2t2_L+dt8KmKaxAWn zv_90JGBWv)8JRrj&H&u2`x=??xi64~t0afpGexEOZ4hya@pzQ~O}Z)IK1M`vN`#r$p%mK$ITk z7ciiWS#VC!XGkRWL69VSP@KUY&UpQxY;W5-jY#Z6AxZY2IDNqmtK18K=6k~_efl|N zs~k2VN3a{Y-IcS&ez92#)o%C+#T$Mid2E~TlOzU9I5(D{2SDCwetiSS9A%k*guYnr zUdjthD+LN=rw?Ws4kZ`)m-(&)z>=2@k|aWxN{J9PW6L@JvfS^ByAt*!uHVS}tacL8 zW+zegEcfH<>E`;)yJ?OpO`9HOGEJYEOx4MELfJg`s;EBtc9||@LQSttVvuI=Z|0n- ziP~G@Fa#}eC<^BSL;(S`!5Dzn522W{h8E}uP8Ax0G88P4rrvY$03_jhaln90YG4{WW3rcXYmdwB7F!Lksje_ zRg|5wBb3(#yUzL;vd3s)AV8rS!VxJSCBK4(Ap%juU`I51xtW)2L$-pCb@LtB3m;p3 zot#-X9GEN|c2Mlh>)ob$Ro)i&%j*5^9Yi3FuU z6~gGW_C>jSRqkiI#SPRYiQP8IBV+bAY%q#46Fd&SnO*%=mN6PdvLVQgBu z#tP7&#|p4o;KpCu=QJRU-;O_wUxiQWqRUq$EY;b>+tMAalo})}rB!)$M%vqHzYm0s z!w$yAfuLZsX9Ndw5M*1<^KG@8yrD^kp*=SB`Su;0;oYt8^V#Rmz|F!;^6h51m_3e1 z}A;rn}l5zyQ*0?!dSw> zR!=@WZtKfF3-cfs#zt`Cv>`_78mhLFilGxXX#Avv#ZT(hf62yx9Ing;f{^L`NMw31 zoGfGAD~G#ou+9y0i^k#yrLlN%o$p~qSnTAhc2@U`)P6J~wI9f;IRFjw&AC7w07Rhn z1KGpo>lXIeg4*u6Kpg-?p!NdE&exmuE!=)wE+6w-h+PcDWMTBfvoQLRo+QCEa0OsA zaCrfq#kfx(_QMf~5kC~kaVAd|FB;5&V>-D%j@*mjcisS(>L~=it?3Aq`?ssJ_EG7d$8TkUx8Tk+<4j&l8YZ)o! zpGm2iTa}%uO(8pe0qf%R{L6Ns?hPW2mY^YwmY^C@FSxQ3h%)`|mS&bxgGOgqDK$`5 zO0)9w4`s1?wfVFT(QhWUKrj=VQJje=*rhdx6O6PL3`SZr1Qw0k)PhI9PH0iC6Ph(= z&28gpxxCFCcB^C-tty#O=P4Kqx9`M-qSVs(?`AFhcU62gVh!nP2RU$e6`SI*gJ*Lv zrJYn$Y9~egeB6})9Dh~XHV=(-q}e0SqxSTHB^{9bYZ1sPeX2PnD#t35y>kI|TjxBe zU2iyEbdwW|FzJYen|H(-K=XM%yDH#&ZQH9f6Ow+PM5pF#R4$7x=+3K!b&p*Dpwqi? z==5$lr*JEHSJhzPZ*U`5?0QB^GZTvkl!*m#QFV$|U+&8aBKc)#OH-Q(;UaWVx|{&d z7(l5iz37ZAZfHgp#AU9XvpEYt$}4E=`D}B)mM>yO@DQ>H9)xD{^XP1`o>x7V zvOPxgm_Qm;Qio!d)S*ACzf@rWR9Y7TmDUcy6%K(7glHTpiN>J{g9!AM5xMyUX3r=7DG+pWGN(>X=Fq86>YdKkmKZJsx@;E^ z(?s5h#l+x*V`6Y2x+v!P$IYyn@VdrLUN@PA$BE0rgV1o$5wx6CY!1GFX(Z(6-pljw zFmeJEMvhnvV@l=%6G%^J0_hQs34Fc0;~)DQ!^%$dq)tv?!lc`=jE?AYQjg>AZwd$H zxWUZffM(HQ2Q@kZP~r}02rfI51Dc)5jxMXW2HKsT z`Z^R%TTJIwylUNy4wP<22hutmh236e0d!GN-JCA0ZcYc-+O6$(D+;TV(FN7XXh%A# zcT$_!9yXzW1+T5a|BLf*xDba0;X>@zG`pioHuzW_$bGC1y!C+(_kLWv_A|+L|{Ja?Ptk&fu_+P2FJA60e;rmk|-5l~RLar3_G>oxSG=qEog% z4u>gl(U*U`OrJJ`#vnl<(1QepSa#Z2#tu0<85STX$gTi6A!eNj6*gYaQ>)7_Cdeqi zm=K$ec~x~V$txwuBCizHpwXyK%%t_}?4q#>j)?DI(_3hR7mz`ts_6~Oly2fQ6T68E zwRLpV*gApe;W{IO(OT1;OB=pmiNO{JOAIy|8b9QqT0Aaya zX6^Ts&wZS$dTT|x<%HYjmJ@7NJFkPdTRhdM=XL7!P}A(rYGSy|aC5_DhMIoaR45;c z*q4?azQ@?=5)y2jOGv0SnSX{A-UOq+$`x**S5&xxUQwa;jn3sSC2nwb zo+`x24YoWIZ?GF+)E1{p=my?VQ>MkE7^&edh>;rV09+8zB-vnj%oI6LUa--D@`BC9 zp}krE7>tdW7URsOT}&B;g&P`xOtq3Gv?uIpu<@uwC(#h;B&dhZz;qHC{Twu;$w7mv zXopF?Szy`S%gl77(j!k*OFM7bsJZ0w?Q#h*)Y+N%uUBy2zP=fht1}iM-NunBO-m=*e z6fd*M@?i|ySRcgN>?DQE=_Exn=s5r02%chi+*jo)pDiJ!T$bJLHmf?=Ij_cIz%FSH zVAA0RFtzBQjV$(S$c4+tQlSVX3q{9z_LmKt=Q3eULo1DW_NdEg8s{J*j6LY_T;$R|d zF`BICvU8T+8{Tr~2;Imm40co&20NnWjZfyIX#v@SeOI8{cP|xs2OgvRU^td99aXmq zr=bsr)6m=D)Tcmrcj!&|IN7%shFGc+`(E@mzVG>0w($R`c>Sh7LaY}uSO$hT_5 zMRhkZWI{JFXp`Qt&fo80$u;{59w3~R&|$><976lTJo!kmWMa&$<|7*=w2lN;tl z)D5#0H7q4G#oi&n%45f9*MraujcJ7I%n8iojkk{sGj8e_er|%Bq&pb67L^%}T4N1| ztg(jT6{2B-feJjq2nC*CXgp{(92(~dhsJqAp=Bc&sMrQ(6A3474|rRb#u^M%*BXqM z&6613`fhO)T$M8%t;&gDwShR3J1={n1YRL$F3#VT_lKyM?oggFQIv+&qz`s&Hn+615lS{2cYU%pAALTGoSLTJ^j0MA~`>oi>T z*+uhK4?L^^!8y(YDw`XEq}gpq!4_!f=)Arah?&PQ^1jKPB(43lx{^_O1%;aD6%=UM z@$uqry{XgIi@DVr3-|02XjI1y6c=h`ptw+5NBn|k_o_S&k``=fkhDNUMbQ)RpppI};m9Q<*f5t6w8sAxHZ)h!l2id?MXCU_z~jp7Tr!|;dLsTb zc0!-Vj@Z4nd%!316Z%AcgzqzcR0=U}F`r|&38-)q!#N#ruR47-DU+C7%Q;+OzrSH{xKnzKml&*w`pCiRb9#R|>~{C3V^CK$XOiysq5Cj}>lxN%To1Z! zTAgf*1-vLY-RtMAeV8_8PiI1A$WuAE<$zkrr3bb3fDTqV^a0FN#@&NyK9496p;%*xh2^E%xLT9Q&wwu{s>$us~n;HLVw-n}w z>=M`opQdP!!LAR1UcCBn7|6nLK|WkIGMSvIbucfj;4Lq05CpBYImBvh%uCxsm{!ND z#Tvem>^26B$kKBL#vjp6(ZpTFEe zKKGLC>|JdjsFmGhh=v;@#g0El3L0deTPtDdU7z%1$s6J@Y zW2W_2f?Bo3QThm)!q4I3Owp@XoxH>`3f_-nM5Ox2pkJ6!2H$WNLKn^wgA2Y(-aUEU z8sdsVM_ejE^@66wS!OZ~f|<;xvj%5O+O5hXO0Q<3MCDrl7T&335kmC=JuPLZ_n2p3 z^mE-gV*S?fy9XVz(%7)4mB_UWY|q-XzGjA=goB4j?vZX=d4^r5PGD zrY4#lBsumvk!dN@d=jZ7%|Ve$(!3Qjflu^RjEY20#i&T~Q^c4ZdA7_J3z8SYT&TC$7V&F)jNn=jUPdAV*L{StR@ zJ4qq*our^aAuedr0~l;_-|o^K;}S$>bwy;gY;^Md)zY|`GCG;;-)(lQV!8MMtF0gX z$Z~CL;ZpE;=8VHglxVj#6=Q&x6_#SERalCZ7vue` z*p^`Ai>lf!ZtfxV2HddOr`2m_7nfwIU7TvG?U@DT`-8p5O|D^elZRrlBp9>_x1qK6TYy5`}T@UBGnB}}k1vZ)tr$%ZPeCK^n` zpKeUU&*2-E2}YMHQ4q%EiGxu99H)^ZRpMs&vPekd)it0iP?TUzS5#^Cg|{MuMd3}z z%FI#gwP|9Kha*$tv2qE%j?l#cTCUenq$`by{oEjj4lUiCI?LfYm2`6kO7y!^FXHY_ zJ!kYng?$5k|I8bXHVi*Y7dI%MdqZeY@(OP+cMa6Hlu>}+pM$VGcq2xu*k^!7sK94{ z=9yHKvf^NOsp<=oPt$Ca#nrPwgB69V_^2LM2R1c+q$wL{STxt0*D%oHv?b}O<%C(M=ow5L&Da-B5;@!jE=&|yUHzM>P zG{eD=ss~=@xq4$wK%FXpK&J{o3;aea6&%Vy2tygd5kY(R-mX)tfp{Wt5swwxW&LCk zyI-dCLCt8D(hftV3{dW?A}&(tgASMtrB!(b+mS`}k#)ogWCVeI2H4?-W`6!9OH5hr zChX*AEIvY|=?WHM_f@cnP&+K=Dm1N86k5(z+~kPG&~;^}UP9(4c+wEQ*V3(|NIvpj zBwsMhb2z{Kv@YjyAVsclh$0sP^fj!kPC<_#-6!dC1!$ZEG+HNu^;W_etMq$sI$9a1 zz(f#ZG$A^#Sw}4QY>UvH#z6*{DU5_NRwE+yT6ey=uVx##4d)35k#UM#gfU7N0`wYI zw@L*0ZhDjp$4>8C?5-n2WhiRes#hKv)e}B6*Y6`pZ!ynrV@C;ri=ap8LV#iRqPnQI zUDu?*NkF4@B3Q457oT=8`;B&|#6~dVv>`^XarJX7gfq&c8Y^Lq*J{Um_Ik7X3L?j7 zCX=zXOFsL!SkCk9V(xjWHH6)PJA^#~yLaZI>GMurEF5-Fr|&l7&*hB#36tXZSz)*k zhjYV)*sVDZvIVwuJxx18jKiWBG@&*fvzG{8?Cu`+&=YvAvGxyFpxF}_($~|__axiG z#0A?JCJt@YPuFMcg!qV^z{SN(JNXEGq`m-{-h*BO<~`L_D7kVvR^=4d^IC;Ou-qmE z^=J*{5*pb(Tgb5Il*I{|my)!4DFc*y*U1FayG~Xp1C(d%p+98v#e;E&8Q4O6Vqgov zcmntyLMw=fL+}u>6-9RPaS5%l3KOr{oQ98#Pc{fn-_h=i2r4=1nn$ZMG9<9uXIp!;21GDnNNZ zsfJ`sZDOI*Kv?KhwR{Ih!U}D$hTwjBLH3HsqrnN#qe3GKP;h3dA|sWi-bke?03C{3i3+NU{;mQ;EDv~sxBZ|=%mh@ zJA;A$X7VBbaFl<5WREa7o#j_=q!dSK+z2&|I~w?Vz&$+|dTY2|VvUDPtkHODA2W8o z4Hb@9V2;NuFk@@I%=5eTeLnmAd0kGfW^6WabIlIcvhzHLw|wDBQ4U)oyMo=LtJ?~+ z8qwMBk|iMibP2iXa4m=n#)8v4zh5uD z&bQSrpBELZ=c?=i5;HDlun7$*+wS1M@F8-H8&!5PZ{p_RA;TrSe>{OH&6p*xuM^n6 zoMeg`cCD7tK(il@ujKiULi%)w$g9r=kx*$ztjg|7R%w0J7lb&lHwPX}HF5xTqPq{E zZeU+3^CW0OL)fIut_IbD4tq0@7IpL+R1Gz@VXZ-*;l9fGm$2Pe+?C7y1YRo`U&A{4 z`pwk`;oDD9k9JbR?w5-C!AfgXrTlK88eA`g)v`BA#;3E*Jsg!^OB0rN1IZ^#2a?~q zXIiaGnD1629+x-Utl?#Qn(9C}nEj9PYnfjkHg!mdd zyB$9;k6leS2B&dtZbk=8H=`BlC?ljF0B_l*LP0N2J6h0AkbV=!Ks`h~c-VTrOD+B%@E=;52!rRU4t9-kG>B{4HWOzI=iJy!~)Q|A>QTmML12`1` z_wt#*-Zy~>;wSit`Vl@`lDEER`%Z6Yv1%BHn^wiH&B&YE@45&fL%IkNtf82d`W+f> z&It>-zbbZB^Kgab1uP}Z0x zkWFeYOp(c2IBO8T{@GpjFqPim<}SfL-3hNe73ICXyHLRi{UPnw`qP{8Zn2h*R{QY) z7u>TKxZr+0aa^wDOBnt50mb(01r&=u;0Mnv3?QlL(zlA8^1?s?=fUvDA51V7H#wge z2YLC4ap=`z3_9qqp0-=54|DSmqSxT|gXl#!`+_L?^Rs&7c`!#eipkN3wwOH4mT_Vr z1LR%MLrGvS|M;%dPLSd_xvjA}qrvKjU13o5qpTP{gc)ky>8^x(SP*<8rVdVFCeNlY zBWgIelZ=H!1Srv>ir7UHZ(9i9CCmwW6Cit9gafdrO?WvGtm0m?ccG(ct5vC1JZ$9E zIBkd#>f&tnakp7-vZHFTg4ibZL_6G2$dB{yjk3}HaSs>u^Vt%1_{LCrF~5gE#KmSk zSx&3d`md9>ONcpJW=HskO*+QeSuJkASkKD5+-_zcrO(@e^^%tktXFrl!-3$nHqt}9 zNW>9`vKovHWktNyD%^~4JimlvY2}zag_$s?Fl(qgx8=GC!!`?SsER?tu#ehTZ&5Vp z_V;ar?xa)R;qw^;8L(dOsBi4vM+~}cfXH$f7)Cjc3AL3#TwOMASmcY_$@lj=;D&r$ z`C^~baPk4ZGN%v4^1fuUCF3DFe)Tb6nM-SkyHnU3q2dGQQ|*UnEB(+thx zr;2H9dz@C~*Y+sqn=6PXflheCcD>qL68xMwg%>@V!i!xA`NR7sdf)^k%|sbCgpk`g=d3U6wSI= zUf-`NQNinFaR))c`dW;QAhd{-29m)wk)sCJgwBJ3L0Sp*;yv$5wpT6Wv_WkNcbJfg zseNR_+RPFhl^{LBK?%~)F?^tb)ii93n-<+TCMy&K&?*C!2;VW1ak7VVU1{)gQjszz zl|doj9#uXkY`}1W2;(#X3*&6TLNNbo^H5H%!T0Z3ILaA3B?JZeuDmUGC2SJF)y8&$ z|6ZCR#d9Lqcuw>zeqn_BAgs+aS4WH?;Z{lnL&J)d5|umB$DS?L`*K%7bdS7&Xw6J3 zF%Xnc4TuO@qgBJn?E+5SSm2Q`NeN{jM4=2Ji11*I!arQXkvIqm61OMO6?)sezKX1Da75mMZn-(w6y4FlS!`Pkp0~Jg+yZkvY=Jomb+Wga;$&wF z%q?mdfUQ^4dU-(xhTbLIx?^8j_Pymdx$5AR@p%bROe}ExJMg8fUycC#*p=Gz{Q3qm zB$TCa4eTNx-;7^v-%I1}H`M@abKlq+cqT2V{p`qj5T3YEh?t&BJ&Ty0N!8(3l)leT zTy2Qwxl|eAp)X7`XE2V9d|;*dCG8~kGLXZ?+Dl>k38y1Z3I;3cS%AS#1(VFDa*E-k z+w>hhKwB}KoIfcNtehtvVR*pfa~bnEBJ500Jt5(Uc%?mAhmu3_p0H=vK!hrKT907O zJmFY3*LKsM$|VgFs+%YG304lYR`~`KZAS9)kV_;^HZnU-8)2;XVAVSeLLrwg6e`?G z)PF-LUovg>dgY6xcEl*|`^=n5(5dZLb1H{I<;d2c ztf6ozYA8?%?v>KK^AgU&KR}?yWX=Lg>RWvfy8-ztoM(70E&>y!O9d!wyuQe?oKgWv z`wFPRMXbSb5xY=~B0wm#P7DgI0|G=Ugl%d|gf8V0p+oZvcwsoA3KU`&0!^|51q(G& z@12Ia#K-Hx=;Ku(XQwarZ08>WFPq!3kjx5XV8es{<*3FOW({-|TtRp>T|oekQ}8KFVek|tL}z$fM~dyaf_ga4bI?gt-AkOuvNlwO2W8=1Pg0o-;_Qq2~-ztL^LS69S7DMKhF#D*; zc~;vzNFHMGv4QZDa%e<&h2fbZ)$9Ga`V=c4_I_HQy01?_O{ZS)fmR`LlarEkBXGdo z#(C3@#O3yW|1rNQ;JTL@W#pwLPyuos5Ki`=iY+W?eA^--olCVyhich&opcMfpY-eg zi;|$Xk38?BhzuXvBCF?&mqsC4Zmw_DN*;If+3j-kAx!YIo@3v_>P?!zud@ni*LDX{ zK!y)xf#9K_`d}IAvnE5m7~`jQAd7G71oxa>v@St=i=84nZ&HIvLm3fov__7Ujb@V@ z{Sq7ul6hXN=Q%_{vA?c2kmk3kbhsE--EWs=zFd4&2gX8__9%nWI%KxalfAp2RSS5{ zrq1#KTo?FjvEMK5*6g91HUUU`tL_131}r&|?FNBn!<+&!H z(hy>Y98?A3=PW0sc>W`lktm@|VpY%Om^k$aj+e=-2CdC;psZCrB1G5BYfKFM3btpY zi+J3BIuRF6PS%MCs7j;dgHX_@2AKItJRFRw6o%Tc(Qs4ja-6F4+S66(wP~YqtI}%Q zAVxnS*1ThD4byzmRwFcvdP>+fjEn_mE7$R`()>)^#e~GqM2>LqSR0Zq-rA;Yq@-WS zL&|q5kIVU@%IAxHRlwDri!uC*9SM)sB=z7&8uNm=xxZ4lQ-N!3D+;*Q>f*T*f$RM* zMz!8ECu=!=>33axw+ghP>O-u-m_EenK1djmtcEAc zGFY1|3r!T-eA^71-AJV&NDes$RqbYs;vzwYL|{@P5ugUx8rEuL8+S7jYD_p$RzsZlAli#up&j&!w--0?3r>bfRf73kUO#4Y zdA*p6w^;iz7NzxLDoSe&omS_&lD%YEPQ+)e&e@UNZdELKE&`tN#=lv`+cwOsaefUk z91n1WBOl*9g?4o0)7Z{iSeu4o1&3JXgb{EsF~&>mQg|fY=?v#Zqv2dAT5lv|Y+^$5 z4^oMIu~3nZnsm^mad0j)PJYxCc%vHG5M(49x)LTVp38fnDEe|U@gO?(K5?iX0a{RX z8E1QOoFdFPP6Qj+nqj(lEk_u~G7{8SMvj!v59{}%+Ic814Vg7Mm;{7ercV>0W5=NC z^o*Br*}RNc)hSntQI+N-;|iQ)TqjO)P?@r2MLR0e?}8R1KNo+2$#@`*4~)I|wC%`&IDs>Aaj3k36a77$OYo^!e`~{tpOF>&pRcOd$POzZ?5r zS)V*53iRI7`hquXDxz8?mzyz4xsUB~a<0T*A-}xS$ z>`Ni{*nuo0kMiYHjPJl*ELIOcygjub6vw^M3p%uwyOzBe+`Z}oUJ8CKOc#W+l7s3e zZ$6Rz=>FmR(p7uS17bj3<|9ZLAyoF#+Q-O1vM~1TpFw(t`LCi>>)PAq{0&f zPT>iG_QKb_jZRRQg21Vog3u|QGpu42rZ990QwX|wbfrohLAWH25Ku2Jg{-PTfb$m zeIp=W`3!bYAy!w6kEB^(SAm*UT?Iy13a$MDehs;J<< zFE^`gv0Lmn>(|9%dA}>agh%O$yK?gRGeo}bS&|s|KPjyTPK2pKlEm4qO%kWts#PAF zLqfo#)Um_5o64mj57HF|P?;GA0#vvH0V-TU07uFsA`GC)6$Vh{(f}S`?O=rZu$e-P z&-xBFkUn9P70z?8wPr4A9gvH<1p*fXAan5TV!50^JQ)NJPTPOMGrdw~MlT_%_Y$HD zAPmHE4=o$j38i-%2y&_(>oB*BMVb=1Ina%Mu4C0`5RZ_CHo(a^SC%Y|3>A`6C}0e6 z$Tr-DoAe%1(jRM#9t0QX+J-;fnGHXOubtT|US!9htbu5;t8t71;5bG^YC4G4-km_O zqoNv%k)tWhggAxSiQ3!)gD^W;-H4s6h}UqqYIXAIY*`jNIVBk#p!4pdz72wP#MudV zn)VdzLZBgR!dkNA`fbp~B-x^iaoJ?9NFEtMpInnWeaue$KIVATc)Xv08Ceq$BP-&? zDF97avvcty`KElF?3?IHsinlR5zaU^#K;dmA!vEC-9xzb1R^~1?XHAJqC#Y9V|afe z$+rGPwsyme=XL=JUKh9F7faPI7!67gpu$F<`n7CWz>RWOg^$PeEmH{OmR2{<1`zuE z*#Od8Dmyc#rfIJgNFEBc!tOhb1L9|1nonZ~(}jK(Vs!@7g)R&qx%E#+!ceLUA)~t> zL2G<5FmX*pz0Jyp9Mj2uWcyQJ-yJ|W4Q$YgX0R5@W*>`PUhRrSwP)+Z0{+9gf%9lM zo)>F$TE+8XMdDW`JASd-6^}3W--GLmaKqs3>H@khZz^;b?E1xrJbwfGfX4N9ybv^k zx0nPZerq!JP(){Q0;B}k6Cg!3NId#gPPAxnz^Zi6YTz8S2timYQ6n(SOxZVxk}hMA!D77n?d+Glq1Ew(f9 zdRg2}3&^(wvy|*)Ufve>OUM-t=_D$+#tthf?{hq`=BghI1Y%)s_LLyVi%$tcs15OH zo%D);Te<8S(F2SXnyZJ=Ao_6_4gEVwJ6w<+7VF@BEkj1Xg3%MgfW;S_7p$jF*0-Db zkd19`*l!W~xu{yBbRj_eScu>KvzWDkN=$GWOqk9TVmAtf*o6WzLAVe8MaQYc zP82G!3xyKFM2i=rk7dA442oPAgk!~NP7Ers6NF0aMB$4f5Ub-@A$Frsh+Qboe9<5x z3YFN2LM3*gIF3P~5<5|-#4Z$PN-&7CU8uxP6e_U`#c>P@mDq_wC3c}0#ngyO>_njw zt0-t5czpV8c=m2tjz7=JZME2}_mlOPW%Y40pWIIGxAhz0ut_n^>pA-vrXO&KarGhp z66PYWVZrjiLe+$cAC546E6}X%TLF5=G-<5&VD#xRJXGeL9z$+6_QAeV->cH+=zS?6 zPYr2_;4N`#Xt$xBzK)vds}$o0DAOc}cBV;)H^M!=bXf16K6)7uDfTY$dvP4IMWYgv z6GJ4sP@Kh}P>G!=RALoH^gwU~@wWBaw_s-uk6%E>wlO?U*p6^~fIEW$?zF!FE=jHC znZsCX^|4`Fi@8o-q15{UuW#yWh;aUqxS99Qp-t0LN#M0ku9Auk#U6(1;Cq}Aw1KB)exHLAS0bI4)uj(n)G4Bf-fA?&&wfW zV5F1BmY~+pB-CuUCXS9byE(ap>fj9A%fD*P`7#T|gviT>x4jeCFB)N}od77jV!J z4hIdY;tp;#38>yLgcYohkd*oeQ8RfKu8@?wb+HUyb6>KiHob=goI@_W1GJFMgW6(s z*!lG1{q60tWZ#Jg7;ujAvuoJ3*sNe(O#=}`LqPB!dpJ+1Obu_eD7)#=qR>8$xowKd zcE06zLSp$H#cMWa7jSQ>ELQAYd%D8}u52#dxxD4$BuLRZzK(l zf!^bX5-zerR^oEaj#S%VR6Y%fn`g($Bm;ZINv4Z)Zxb-XtclMg9Sj_Fpaw#u&XC;d zurhqpu^1^FdlxL+ApL7>avWJ=o9hLdP_qjrq-aO%TK~7q>1_5iTL#_djFIxm`hoDH zd-#YQRyV@j1j2&6b2gjRZ0A`QMMif=h4u;auP_6h)4WI#WKTK@v?JCd)(>}>2@N~p zPt%@?-4IP13xJDAwt{qQVa{T}>C=L^eBT7fat7T3VsM*u=b8IhgpH9MK3cNDIXz)U zXL!4H1m@ULCR#MPqkq)s57Xe0W#je3Vz*hZU?Yw;;Pf>xjR#$Xkd0l0pf$oUs-KWu ze%KYWQVIcguAt*2kR8bw&6U z2m*^n-(4@N`dktocOBpG7^a?sG=o)?>bVC2DMj5k?Y{YLX-btb?c{>j@<+wI8rb$ZDTL(R$Z8mGMKKe3BL{jcU9X zY-Ff(wk3gapPQLTIYh5i((gE*l2qV2FXEKU!OxMV>F4kbXH#aq0cT z(K@=#JaO)LFf1+|9ijwlx}qZc#3m=eaJFKdjw5r+BenMSBM6UgyjEroFhMg%tv4c* zMt_^NatSyiba8-|ci#1R&+*BJ$88DUW7zSBFYw|A<(z_(uFE?JdDuN3AK7W@wF|ps z4i{qJcKNKz*wf8tkiQllR)$2->`{1De^4@pw@$8aAdyiC2M#cwolIZk?4AvKm-s>W z*t0~qEgf)!oce8UxJ&Vz(F+y!4Ma~32WqMks!4h_e!v>AJVwvk%b|hr>U?64P|ZBg zPNB?DpJ~@sro7J@rKQ4Q9K6gYbJ+b_RFCzbDvz&lq$Bj(W_Udg8D2XJ=3PZ@qMZek zCyZSX3|1$zZaR+BO-E{@&2e{z0DrjKX|Mop!D)5Bh49+%@YyPD42(|dB{zgEU*E4^ zl|}WDefL@37+cC1_Mx88#aQK&J+LNTdDXz0xbvi|ymgP#Cm;!4d^u8FH>e)Laf9ly zxNTlkLjL^@jgQ*h%Si@P6fqN0GuX9(4Dv)$qI(J~HupaT7NLs7d)56kYD{9J_^%8nsi72CZdY9Y2;M~g;(c#a5!!!U>~RSul$FkNMXrzd&T zBzlt9o4HDzcZR1_bWifE=Gv}!X#4BEUG4~#Y_IXIn9&)$E%POlVUzZ3cLRH)Yh@xI zv{Ngvk~#5OBk`W>%Jn=2EiuMoB}R@kJKL3zk#rBczp&F>u)OfT_+)b>@Tj_z`YHfx zhw!I)faQf4ItMF-gDDj}bU3BxU42ZbQ{mKijNh?f{;=n1>`Y``j3z|K;|gIS6!0{S z3ZwJGG&X@`RbL2Oi-jjw25Ew)bSE0x{X4kXK`ZMf1(Hzj^(!^wd^(o1H9TL0SSQaH zAyqPj)Au@pv0UM%5$gjSr->oK)9TQgd8Hg$Gmar<&-Cj4xe}sptcw9OqI2IJ%tmx- z;KajlJ0O~qjEv?)u)c_6-(;bWdxPR!kWWK2$z*Krn9&*hgVi}2{kdEY^!j!Xpj1`Q z-J@9Zf&J%fvEIW2zTsB@uczno)H!T9lct8eKCCs7KGP$9o%adE1`B733AgftB)E() z--{5|m`(${+|Fw9a>oOwRbv8d;!OZeye(vi5V+m!^0G;Z)@eDXc!_^Bq&fW6>xVkU z5oA<@d`GX@be%^;Jr6YK*5`o++ZHZI#f!ZsnVkBb8dC@{nn@=wF3Bzw@LiT}<2q5O z#7-0{u@i-o&fbkeA$Frsh+QZYQYQ$7)`>x(bwM~$?jSiasKibXDlwu6{Iuc4QUVmo zN7y3y5GJ4Zu-oAgljwkZtgnPoOjtM#qlg?av_-n-jC1e^SH@jpjTUV1Oh1Ux6Fn|- z)I~V2%&w3d$>fXPF{3l^E5rBXMs1!$NN#v%NOrhbM5jBz#5Trl|9-uEoUkBt_(nfmEw13{3qIkZZ-0sq4Rwl; zRBJxJ zc@ak?)-bswJ5a2~<7DthDzOX2=rqP18nqLLM%@B|D?F>sLpiyoarOMmqMCgycM~}9fI#l?`*+P=J0r_? z3w4&Jdi@+R;S-~`?%$l1}WazEQGZXl;M| zsE{iVD2dx{qReP^UuUH>uR9o!T{O z7ZCTEFB#3roT@pQOQ&lqj5H#VQy&tcHol8c?>)`9GpAV{OT*q756O!7g;*uMN+o-G zm8v_yyp3Y1A z(FhMNXx~W<_?9KgBsP?dR4E+K2kEb`VQ^8K|VYmXsXSuZ4O5sJwDZJ=q z&tSqcAJexmm;>PnM|#G=o$H7LB|h5~1`0SLK>>#js{9%jEv%3E(_>4)QXFKY1Own$Jl zwu1ngHDt(|1cj$B){o<_$K%-p*hibM%&2w;R=l=7v?B7v(2CG=(9VzcFm9Lgd|T}% zZ>S2gGpt|CK8YLB#T53O&&0J}7a?SE7a?fPKwhh77QCOo8&(Z@WLP!mGwiI=&fO>? zKI>E=Cj23i5e1t)@5gHX5228xij)esk}Iv@t_xM}x{$be;NiZJ&Td%yKHxC@g8dPg za@MzqAhFpS+ny8<)=)Y~<@o!=iViST6xb4aE~$_bRKHY*{uif5F-=e*c45#YyHJc2 z!89K<823UYcA`*;RTT84g^BnMzPc}AkbbeAzue4W?|<^~BQ!jiR?BAq2r7bC!x+IE z3AyM1S>%m{Eb_)d{=@3Rg2h8nVnG2UT(7*=YycLowHYdzp)yujlYy9BkvkzN)y#G@uSLbwC}u zt73Xn+_8wIOEy9b#>OK-YkWKZ79^2pB2Fn}PbVy7(6l<Po!qrOwFvyY37^28B@1rqSu%Gm<-Z1cIv z(vyi>Yf)TOol#r}(DzYd2v67p4^nhr6c+)E;zEFIPd?A@*Nd;&US*pnzsfEE(_)rG zHvYx>4*pvfE5~_Mm7UDX+X9}~$>)%izk;`X*$E-+JYB(Gq|xdC+Q=aXvF#9!Jj=gi zwIj8WA&nFC9mJV}KEa)0+C{LomnNBIcO^Db&7TKRC_3~Y3R{oD1f&Uyhr3^Kz6^+# z7vJt3ToHP3a7EY_VYfyf;9{LPTdIR$zhcoVby6Q~I8H{3K7cPc+^1<@Q~9cV%xCpc zAdK{UounN#g!2&k2tCxW&mnihr(!psTwlGJjo*LBug%vx*o*Yd{SN*~Vp+f9xe;y} zH~JJBK=9iwnY^ZAnTw?ta9~v+)C4;lfs*mb?E>;JUc;FRx0p4M1FA(=9a!z*e5|b~ zhW9V3JfLq;C3U*;YuIz>ZSe{FzPyD_s{w?guLcn=v^L>Y6#pYaYOfw&!c6a>SgMmf z@N}PY(HHf%f^S)L#*1#4LKtB_g---*f$Z*Q73>K^*xJ<$!hk^A8yKBt(jG<-Ie`w7 zj#%{byAycimgR*lmh~YZfMZ8e?5?Qq8MV_#1@R~{2jK@ zzXy-1LM}pfqc>+S=_ntMx-qvj^?2GrD7UIdq-edcUw^zVKjp=8$xbBMD**J-(W*xI zI(3jiwsnw!rlk1%7`|ikvNgJdy{9Z+@g-I>UPM--StJ?SAIdIvvlSHEVTCZlQl2)UQxoJJBT{&qk~w7 zzO)aJDORc}AO?|6o*G0tIz}5%Q~W`VOdGwA-5-Pjl#$yGVc9TVv<=!qJPFT=QqPY% z`O&6sAWz!VwZ4=-21$0oaK}DYr}?$}W7U^%^wS{7v4shP0K_h@H@j7_a_mr-ZFo*ze0RyKL6P1F>6bS$*w@u-=AJW$^t_s?dLIKzOLP=O+tTKS9PK`<+yYfUw#m zv>ITUMDGy!ruT37JXd^HiV#BNH`{w)f#7hi5AO}Jzrp?_EdStnQ1PXX!)ire99An; zA)Yhg|`AsbNdBzJ**rZl0ZetE}GdUII^5ey<+L zJlRxwQGjkUCF+JL{J@&gIWQI;STlDv`p9wflz9r$eq37}d42Qt zhAn)-o$p~HD7kbH`GVsHk&o_yku|nr+M5|#E`cs`$lQ*2I+%sm1ZZeVfPyl*n1eFV z6yb>GByR#kC<7&nMxU`m_-Vd}z|UEgZ`Kepx_xA+9;BNyourUCousq|2^WuG40Bw0 zg8fv-m8W1{1fQZ;hpbPij!!LmOuKHzOLVO~ujqywV9hg?I8*gLCoCk|&W zZ^o~-&ae4TB^$9_sq==PN;W?8rfR%^`AoZ&i1oQQ9TDp@Zvr?Kp()Wbt$xJ$+^ZgO z@@kK|8rjc>%63r`zC1DaDF*=~RN&Kt;k6{KY@W*}$e4WWnIjeI_n9N*m2chKiob8d z_r+|yf`g*8Q&EVP*@P!p~o*)0&rX8{*AAsHGx622&wiyy$9VYU&J!=*c+f=q$7btoDh-BRO) zgKzlzzCHG?9}BAkpCQPE?|vRuD>~+|TCt|_^jmxwAv=l4O0N>5IkaKol8h(}k3dLA z*jFr~E0fcJUqgJ>4i2B|6X;vmc^Hq+>+r8q&LcK}Y_f3x+2|6i7&>d0!xFl9q<_)m zkp4xZKPaGTwa|n2gyC>SRgr5 z{Y)T?ZgA}MW-4B_2XSrm(jm2zSD!??=6J|AMp1ipWMGq=QgW;oRtYu3Tr0!{HgyHD zg6!<+?G5}4Ddp=xLos?#s8QfPfeL8?0@*Wb=6Jwo1y8TKX9Z8F+ctcSzL41nH*#-^ z*;fFf{!_87@5@8FH8ozwHX{oZ zC0NrH71}4vX6(~n*otRIVa&2Rhn)1xpg19l6hZc+qd+^@tW%5EfwEqbg$75Q44{yF zbSMkaqeh3?Li}OE-Ql(ga+9q|x&`1tmkLhW_N;c&Xl4<1G&4tiTHSA#Fk@gV1w-f) z8xJ9>qWOBU=m{~{6K)m6a|^f=xH)h`$Fo@gH7&!A<`qCk^I9OYztp z@=__AMZNOupE{TXc;T9S=!AVF;ndD7U!e735omo7l-6VOV?*Xu>}fTl3?{Ic!Jlt_ zjpZF$rO`N;1U%tPK93}X!D73y?R*M2&6R7_*@9(9xs;=4J`W3kHP9gtpFH%DeT33_ zY4|v3V?}V{j9(dTZLBGHm6ji4s?r>?LaHu-)CEN^wDu+5V#X85V+%k zD~&%Kv(ofq897o%yS;#~#O-1UxlQPNq@G+zF|xd74K3d#L2z{<25v-XOIYj&x za4Y^|4F6(bzgjxDK82!*jxSt1(tfR128MpDR|btfg`)MmiA8vjeQMjpc*fO?@}?9H z7d>mBRxy|j+)2uSm0(Hx*->26t6ae$y~^co=unf6<%lqt52HYE%rFYLhq^mH;hUGx z9IaXeUkzwW>oDn?6=Owcp1O`Q(HVW>#I|A|&6CHo`ho=vG~(XhuxijjjxTc`)(q{l z;IDT#V}ifueW*d7aal0okLeHXN1lD`S;MletHrbpEHDDka|csKZSD}txEGbtkSmY$ zDND1$d|Ka>q7`r4+P-I%f=3T!<* zLn`6k>S=7U?UG1|U-|gZaoBZf6PnxsY~zj`q9<8rq{8yxpn3)89#n7ZW@*mJTT@D( zgHH|HZ-Uz>q5DleX+akbYm2pAMq1HsX{h02%7j`Qs`}J|4%2tT`_$5_!?gP!p1k!b zhM0Bq>nyVl!BuDULXD7`BEp*S_>#Z42>WN>fvDm-W8A|vYz1F^$XQgSdXwT{N=0WL zOeyy+e!e37NxP7z5C?g`FWIwj>;<7xTK^`Gob_m65-oVDZ`A$x;}ZO_-c*nX_Y?OC z3|r@r47a@7LGt^$9Tt!px5@a!@45&JxRjbm(A<+Z6EyeZY?kW+Qa!TAtJ>sM6W+1K zZ4uM0Bi9AzH1>QMU8*Wp+}YE_rqD)`V|HW z(7AxCRO~S}xQYQ|2IT$o-mptE9tPNUe+fco*{tW3G*`P~QSDhmXc)OvI4t+mOJRBc z%|eZ}`^`d44FuZ9u4GR%mxpK-Z0Yhv4)-C?cEx(WS>?rS2AKnS6RnCn{sm)s2A>}~ zUg6IX9ge8b6(f2vi(IRxu-y6V^|mw#=%927sYYa-jUWlhMvw$DLQYu7({Zd={#7Xl z7X*_iIk;HVn3#Y^*g&x)q)3sSeuTN^L$Tae z@|9+25%#1u8k+z=h7B>oeW$LCXb%_nr8QcQGRe9gWuocR>UdRb;Y!L%>2PBAgoCnd zx%pJ?@*8;7d=3}$lqkn!8Dv@q9IYwSs{9&;ZgUzw$r@Om@Zmj@4FN~8p}PTJkgqPj zDj#7*yV|O4DxMn=zf00B0EffU>l@f6D&eJ*cIpaQ51S;nkct92uH222)3y3ZNvoff>vyC;mTI6`-HznRz8tO&xy^Plrst z1B*F0<+l3P=}_>!z8~^a%rc=F{1mf{8e=h8sdrmob%15u0lbV@)tdmTnvq4I#GcLg zI5~`1od_1zb9d|eeD?Wsrd+yNg(vkwQi9``iu$3GQ4mReZ30bJ&ofr?ZLtV0LKUUU z3(yviFU;62AZ?s}pf=7HtaMJfT7}&gGteOrpFHvr?16bE@rJ$>$bw+l(mId@aoL-p zSCA4#(peH&(OD82*LfksA~Rr@bYDV}1-ctyKA-|TU@4c8n zV*B+BiEVuVQ|8s?p`2W=0v?_fuOUV=q8-tUyteSj5*|IFOjixwGLLRNN1uMK~F>^g1;eJLVlojD7Xywioya~xT zX4kMN@;$3lyWT>Kn4mlPC6m|M0ZHNs7@WjdZW?1!gdplpLIj^KVK|US0&J;lM%O$V z1pa2jZAC(QuD_g>%^eNlPRqgb?<)l-jRxes)k#0J6MScN2zur~{dBC2Asge*KX zhUToJ%NrU!NE0mXK^htg8x1%-8HRsW+lC$R7$$-p!(`}K=1OMK{Q({AQrcDJy|uGY zv`*}JorPlEIGgs_e!E;i+Ev)wX+IM6CXulJ34QRrw4dzmD-ifQvR#ljcY6l3xx z;;@qkqCvDD8@=kL(riMC;jOipQ)m=uOccA$WKT-T7g{Q8ab ze566BMCj5k5jr%#7@bGt)K-aI2sFtq6xq>H1PqPZi9@4Sfe0xjUN1LAwOHR>ZQ#sd za@)KYe=8ioV4Vc;XrKak5Sk%>_pypC8@*VrHv4M)^?kA2vlBFNMQ?h2J5U4xPe*}v zc-;lr_gF8T$GDjD5Yh-e2+eQY95Nntbg@kY0Z&JPcIc*GzTWIsMFszT31`v8Zn592 zC!ar$&zf>@_h+ZOgZRmUMExp!X-vM17z{=Vu?EZ~Sw)eZzS!@}UA5S(ugm@YvRdvZ zFS0WaoFFa@R}fbSz^gZ(oZk#7;ZMKQ*V6{zTYd6~vq6C;$e9%2vkTnDmLVY{(k;Mo= zo01V=&A~Peo>_4HC-UPjbwY)DkU4=3A_x<|gAf&#Wmig(+F26X#KOb6VR9NLkLJ_` zqfHB!<2Ec@PJ&sB&;B|x186u?pf{WdHmWX9p?%e7zIjpQCB%1L!AK~~>-rEzCiNkV zTba49b!KXxlJBc#^?g;=$Hs79b(D5rHC>0`lfmrZt_ttm7{V=l72=r%K% zw}Lj?eU|0y<9jtoB&VF&2Em4A^+%TPA#_1s#j^ zv^tWYZc-)>Ku2`@bUcRj)R_HG%INV;z>2l?O~8uXz<0(*J;7e>!T=k8ZkQ+^UHxt# z{OBIoO!3V9dH`3%{|MHcMjWnrbJD zG+5geWoviT6vtA%;v7+TOtWHxCJPBnzUVL)>`OWN@<}Ym*5;e-Sd5LImiYvsH@x#N zpCGi1FC(loLOcyk*+{ldBaC~}WLOYV24D3l9)05-nPXetT*-3Lw|5%(5Oy2x@B;G}??H{yA~5VFxVL&(O~12YkAL<#W@Wc*PEoX(QaTow}34HFutMYbMa zd>isUF3V~8ar}8!ZdsV>UW>?0`DRAp`0_SDA*wda0t-1RRaE-y3DyME{_L2p}U<5hPk5jHI-th=d@B zNVP%`A=n{~gAN~RW2tCJstnPRR2i))eB1&f0>)Eu((cSK ze_LTJu5N}_M2;9*k?uM3Vm#cHk(&syf(@SO2QhlWyYLQ29J^%@E17)JJ7#nSoD-Ws z8B*6c$Oxue8tGJTbeKf518g=tLfyw+#Yqy!ZRiCZ+RD4PnsU#CGW`0DgPSZ#(v84j zsw!W*F=?bq(yrW$+*fWAgppZ&AWO5-c7cVyhH=nr;u0;jiEC|@F1Hx{58aJjtvT^s ztqEmDJCZb04Hc7xVKl-r)WPxvU>UKhO?Xigr3@)PP7WhhCxW$i)b(rjk5(SwfMy%EH|ft4uSaOakaPb3{F|h zK6;}|-xzx_pF5xMyf5Rc*AFl%)Jr@VA0SjzJb?pjhf^vzHT}V2Px{%aKI{FKe4Vl9#J4xq`30dgkT2APfF>HbG-djTd_&0UKpRqBqKj zG$kRZFxJup6|s&;P!Z`TOITpjTZQWd##JZ_U0_3_{UVX6hta&bPu;Pe?NfK_a@rVO z1nkC&r^(TbXlyj2-Z*eJpk$X_u)*41tpQw!5e8ozu>!adV3&Q%{E}@mPVXUfX5a&+ z07c}6p)FE9C!}>*I@6!n2sPw3LevcXns@iCzWFtNDAyIsZdtA&yuz@O31T25p&AI0 zx*l<>69%UAT^Ez#UcubLo)M!b>`NiHOTt%QL2}5>j(E^4Z7t)=D?T-bFI zOGfvLwyO_pt2kjAWZeXFHgcQb&VH~7ZapEb6FoH+zuRLp*&qh3?1%cT8U&fm>4Y3)~Ne_B6U|XV-9_}`rfQR*5Z1Tc~AWeW^Xqtdj3yd2G$>tcP zCEI3{mTYLk20^+X5|pL8DM4AX7yH}{NOy0aDAN7jCkm_(VYY9$*>dF>miTv4$oSA) z))Zsfe4AC>w2(swwFMpKi+D(}CH_`kCoSZ#L2V(2@m(el>UMg1HgjHjix$Go?SKTW z;caZSVArWBWZX0#;QFMHFXuI~>~y}ky)Ad;dRFGuWBx>Y{C3{0%tYsDxYSLd^Ril#zQ6p$xs~8wuXbAQU)$n3CDZvN&yskvBKviHFb^ zh0R~?M6nAx(>3)doh%*%J37YePTn)To=K?V6zSxcL9nA^0#>Ejc>S>0ZPqK;4TmNE zB|XZ_qWr#7zf8c+Thb55vosClpuue5PBN?jCD6Dx8@Bp%vI=I!YK_NhT+g`|0Y>mf zISG~+MN1Izdf}Qxeo9_^i*hQ;IYD)Su$zKJ}yfyPTWC-I>vM*NdvYb^>?6 z$2a_@PXG4}gSC-s4`LfS(l*A^;)1R;Uw+sXv$DRY)8EIcA2sB2l`HtHSGnj0?dzCjA3pBNV*YkBgEV*S`t5PX zKJ8bqGJLP}fSk3nHdd-h_OQuHoNE5yV>^P&=7@1hBk))0?ET4Hvg z``Vat=qw+zhsf*4$X`w}1yh~O2(qP5FCbpvN=}=ukbXnpQ;mN!;R|g?OzEJH*26a& zcyeF@?E=!O=ndn!VH0cpxnX-wRr)HEK3vd8p4?jvq-Rxu4J4{JDHK`SZ*vDBn@G8x zUa6$t5ymU2z?EaCi{A3?uU90ur#F;nw{QZXyt&Bt?`5<}0mhOGTM1-UG6pmPdYJ9< zw~U=U-65PqMK#4p!SlwszY>bmclR#Q36>$pX-(WC2uj z;*cbqyE#WWoeuG^i{!kg>U5;m-bDl^YR+AE$7l)Sse56U^+@VhSW z;Ck8a@%YG2)1G7)#>6KDg6?F4?vnz+nz0WwPXzDPNLu@< z;Bnj!_uFOJJU{Vvbu|7CUt7~z(&(f-+U9II8@}=CF6 zaL&-G1pkRAah4}M61*oQ1sB?mbnG{XGSP>FTPAqXeOi#o>u!SaCinw{~%tBE79j$g^o=_IHi#|&r1V17y; zsUj*vP%@ma1SNvE+`Tu#h7KcA7cHW{hO?!07)%aVn}>38ZJ0wCj0i|U7W}}D-t7XV zql1RQjx8x{$TRsU`I#MqM@SYL9XPx@aiNKx_$z+@j6M4*gm1H*#bY*OOpAhxl}o1g zjJG#8j80#bx5fRk(j&1T>P=j>cDBH)sy}CWRiXcsZ(vY(nAip~wQbcYYl7q2AYjcK z*LIOlU(|7J7vfdqZyIo_+ix0hp{01fXi_Y0zm24hVtdg`tDGX7HSC$%@fg2e%j-2YmF-b|pNhyNA6`e81Y42!k(c#3%%_zu^Nho?a>wgafHW z@7CGd4r3+ym7hMqe#~aOhppIryDR6llTFXY)=$>eiICqx=)?pL6vk|U0H?AOsFs>{ z@&U#c`4YjfYRG@Xs}_C5K3bnIQe$5h8A+mLQMMa zBByoc%2T$)WNj?hg91M4|^Xa$Q|KKfHesai8$G&mku{OVv;HlM=UwdCr zi5jlq`9WjrgRuu5R1vHE(3*LD9a^(KKp9g4`TQ)T#9OVT9SlCc_9GZw)%8QJA@1K3 z&5)gz9MC-b5I}R`19*fBN3ZyD7ezFX__RwY!pSQ`AV;t8#;xS06RPiuCF9}~NTCYH zuRg36v*oMrX6HaIsv%{dsuB8p5xOMFp{#wmTmKBq|ds zH8`~lxosHq=o{mXNCamNb@P%{33?H7NT0ThfcEk2C?9uA4=UPi9)6RRlhdBU za`Za)sQL5QZrEjK`G;}^`6!CrWB$OhEWqV#O7?dJ>Hh8SEA=Coywx}2&YsZrhcV4j zq~Y4uZYMdN&0=8=P}9;hJlXexuS=yRx2jz>92r zxgQMMBqZ8)laN?z5>jjlF{WXIQ-Y3YUnJ;=byc5BclDB}* z%EVKw-cMEHv;=;?N<3z9!w|txa$dLSaWOaMAw?n34HS~KF8BJ zitS_pCw0|jxh`(l<)qum_xC#(!ScL-gTl#o>c6fxRnATf;W%%x&#U?x({k}u*&G*F zqYO$}IC4&@>=z)ce!~v9F7Vf4zhB(ddfMmhPV0p*Jj;91ygI_3zLQUYo-IVIIar=N zS1)2O(t}qorjTo)Sg{)auz|lX)_0Su8Jzs@uir?Emv~n6i{UWcr!^Aqr*ymmYb;)Y z74h=#J=~**X#oUQoX(bIu~UX@{IDCS2!&G?Dtx0?OZH_^%|4d9FN!@}3V^&BuxnQr zy;#r3pSR0mu^z(#2+NY1UDiJ|DN^Y*W?>yRjCe9}81dvA7;s=aaR0Gjp)lKOmlv}c z%Q5hVT4Z+CI*ancHXa+l6~8Q_91_cZm2Wr8#q4oBf>`CF`v1n;N~%{javwq=_uqjO zqDR?*z|3%un+ge;NJ-pU-kcfhBe1PJPRVlTXXa=UG$U%hp`59i>t^AX$iYL+g>%9b zAQvG(Eh`C!xb0e6rX$aT)jn1N7_T)1uPu9#u#&eMYhw<=Y-4UwvzzR%+C14;S2NZu zA0Yf_lwU(5h4WnDEH{7@5e1Nve%vXY1?;hkNtpSzXecK~7ps$3F@D0pRoIC~aH_F{ z+}im~G5ZSUi>zml9~_4nfvgBu+!hREMZ7|9Gd?sq6TY@t9lFMjh}p(R{RorrN$f0% ztm!NXjq}D+SgcD3`|wF3<2qwP<9NjgE$xJF%J0~@iukoQ)$bcO4d-#h`nL`LC z7YrdBz2b8(O#8Tcnq_Je7Ecp&N+CNtVQCGTR_De1fu)`IZd;)xIcw2iMUqSC+H&lWN z%Rg3l`eOY!{(3wpR%qgy-KD#S(Ic231-;9jsRba1ps09l@2cPsOgeVbjFS6?ejzX!!UJtsARAm?a;~ zZgjcOjZM=qz{Ag$aD%M1STN}jFQHaj{dhzvryY0!+=GD1_VNg0p znUZlgV>LkM;JVRK&}$E_+v0Lp{?}~u60$P0cebj(@!XIJoF zIL(^CHbs`rVB;S{*=H=PFgw=LleNJ~W4+Tep%f(2rv9`VUYX#^;gz*soL0woWi@HC zPxj`7Z(*dfz$^9k~y+-&Z_ z)3)KdE~idaKU-4|BiE4iLKsShubiF`AFyJ3LX3@K@Ucz$avQ2#sP1Qgg(~tHVBuBd z*lvpcenX$ieARFeeS)hGq7U6E?gX+x-6cfTLa^JaT;1HW%s!6Cv(&AeF&kweN>2Ww z2s@}f$|rXXgdg2A-NWYKl*c01SNN{pz(&B;41#-L?)|3T7l39of}BFd5-y~%b*b2o zlSPn`=_t?+?T|P-`|f(d5~&r-E7e2EqbYTpWN|Dg2@-Dg4Rs*=TH1LH6R z`q8{>dCI!3u3+7>k}Iq?p=4~INL%aKESVyJ9Tu~&U^)Iajt^~!)rXa2uV;SUje^6D zkIc`bvZqg3@K;1j>>wRY7UMLPzS2QDI>y!}l0>WR`UECa$3gA7Uv=cV!&qnP3;#cN zZ@1mXt+Wl!#mw<6Q<5e7Fo~Ijw&Q3?elvT`NiUjg*?hwvg`^z&yZU(w-31i70W{E! zrs$pJogGV!`gu?Q3WY+UmqIj3>`EYFlnkQCh*;xi5Jj!DJQ73ZLF-{BNloqEXi z?*2xsVD^bpb~Xl{QMD0+4tGHtCp12#nnx}=JPfS+Q(=wWr$w={xQsxh>$R;w9bon` z1DQ8#nZX#07?#l)xsan&rZ#YD_@s`WUW2C>6DMN1H8BI{dhuny+wLx26vgssuQFfkS^~LP{dNRfTUhqGdkfv~u>F4|-+)l(t({*)E5&wnA4bcUa z>ci^yXm^DG2o-0>?QL}`Z+UI!C?59^y7wH#6 z9G~WEdYpcyYOj0WO=&&cq!LyplfS5R-0!>f5(o7};o|z^7i7OIDLZQ|ep$JB)7y{5 zEjn3r@mWi$d-|-U^mh0pzB|=BTvm79JnmFX&)UDYaLC5O4|O&cj1vXypYcr`$A#@@ zmqw$17T9n{xg0XRC)T^mKF_wM*Nc6L)(v7wR)+T#2Cl z!0TeRL~85m_+8zRuruDV$+@815v130<SBmSWy7w0Pbxm`S?)c=+fis$#B^aOkeB6@uykh?}5RA(w;$G^XXWu1^bF z`~Zb5nQ3?EyZ+)yf5Za@xE6C~?-hDzI<90x`e0niOlNjpKSJSe%v7J~=E0QiBK_F} zy(a|$PEQI(31?oay24Cnrr-GAB)k>gtA@Pet5mt!`nsRg7)xQYE&nF|$D06qil#&0|J< z%8!FKN%|sTjj{ElzN01q!l^`=fr?>>xLzO$M zO+n-c+umRgIPyp^1j#%Sa3`dX7|QU|*J&IWThoL7eWWMfOGrz zpNP=1KM|viJIw@nnU^;Q+&xYeqJGM?fc~m|2LH1p*2;`v|zCq}zX$Ucv(YtMoc^GYkbbtawgyAAc_6s8fM+ zH>^$t&fJ2m#o94%S!>~04()CY&fSK(H8^u4QmbJdQKKutzFWd5Pw!bC&)>{)=y>ji zm_tWns=+W?F~c^leV~`ehns%FRrMK?p!$XhpGP`j9%qQ1>DaSe25=hmX`&*YsiUinh}8H1B3uv= zZxEuM`@k2Xo_YT(cgHGM;f~#S4(%GnD$dk$vM71(HkU=o+FH5(=5sAajY7p$`Os$- zhI{`kkU8@?#oEj3RnMGWoxcOxtpVG^xds)xHDDtW_d*j(b!2kxXt8V-5IHBIbXT8~ zP~3aI11!37*tlZ-0)eMP%nj>6Ta85zzA+-_KF1?f5@|-Mm`GEoZa>L|6SL~QKl9!I z6|1Bi#P&&LVpFL|V$%qDsj5MJ_;)z&_Vdr>v|(F5p6-@0(z;vL!onh7Az@b6=U=Mh z->546j_UFVo*bq~t3yukPesEW8J7gt0VWi*C#l6q_`MOG1nWO%7 z6}Pv11usGtuA3HE5PL@~^dVw1n=1<*HSLRiidT z)%VECQg2+>D$*ltmI^W7vWPL?Y7t~Di%j*u0Y5f1x$2qN`Oc zAg+hNN3l1T%kp9Vv_2Nw0Y1(bRhuw&kut&$Ce=ef_vGWB z?EFZ%DfQ9LO{s@+&1nl=8k{8k%DE}^QO-@NRu0n{3c}ix>BDNhu4dAfcpE50W{P?1 zimFW^m@=v6Sp3kMV>41^rSriOYnmBV*EF^2{;flz4NxIW8Z_z>t7EN}RhMDW zjb+rhU?Z?K0G^cX$QZjo9WrpktYb!7mZj3Xl{lSanXkwHaeCElDRpvXHjc#cStqzdlEy4+4TctX%bEI*7u zTLU!$ZHC13`eudXz;=CcZ`4pj37aB_lx3j?eSw=D$cox;kp8qnLg5_AFZI&`lb6fY zLtR`?J+VlKzrPgszsjxc*+`_}KO2d-(^|Wjlzu~3)zRKRs(c97T2m z%#iU-xez+JkRE!fe8fALwixKc=8zx{0n%uCFjVrwn|~YA;Y{wnAlk5iPiQDJo{Nqhe(Wu5B^a=n#VWxabX0<<-&lO6|DRx&Gy`@{3ptq3@r3h)WtEzDIC31 zveytlkM?csU5-)GMBwa<&BmH!jk061b6`6ryEc~V z79%=ix8uGBoKsbEa*BIe6fUwZsXU_y+y~DnLVFBkgkEgn9v@FSpH%D^-*F79rJV!I z0TGBQTUj1UOEt0(cHxtSFeBlu^|7I+BdmHZ$ke*GA3LGELs29}90lom0dynAl%DB9 zR3ng6(rnsCmFoaZ0}HRj;+936e28ZeCtF{27gNY-z+Gj@^P$|Wmw^yVNB!WCiP2f( zGgA$*4PBe{S^fX@{|M!WNyM57?>AWf0&)#0RAD#QTJ+=2vJalvCKFluDYlqX^qk_L zt~DP;b_S;TAVT^&@(ND_;4bdQc5O1#)nH_%Tf=aFgx9~oVmw)VneU6^e!e;$W(&%F zL4AAd$nQT@VRp(N#G$s?f2X%(Rnl8>pOKucTXK*Q*M;FOH7j{{e#-(;xTK4&#!DPK z;uL-IxGERrzbo7z*Z1O!f zVV#03DGu;;zHXM|PH3a0O=!~=tu8YoK&38)S-$G*zIyU@^0UlkQmiobQ~)5 zq9fFDI=w-Jrc;v$NQv@DH@uEaH|$AQs-06_0Yh!;el!uPM=|)PYE&t=(Hb5w0Bhap z?&cVRQt>Pj)*1^J!k!-ngww@{2>C)HD$m*tl*aVp)f&^DJ>&7ap28>#*EB zM0n7%yDgl+#r$w=+FV~6TC)Li2vs5{3OfB!C0*st4ifZeE*0p}oMn&ZePGdh&9Abx zmb@2l7ChjmAL`mO@+OYlTQ$PDIDD^CMd^DjTqJ!K$MGn_<*)1A{J7eFzTM%ZZ}u>~ zULA_VAB!2m?ef)|x)$Bf^DxVt~%|3A;Zq5jaJ@hS+*5%{(xbKqMR!9Q2%`-GDV^|%Y34KDZaoZ^EQ9Tc>< zy=7n}FdI8Jq+S7<$50nI#GN!t;$$MJ)yyYlt+#df~(_>0=qF8U=I8%9iQV+3|o^_opnX7fC~v`Ns^cR(FW=160AvOV;KC>`2L=g#J}Vml z1Q@8o?#We6CQTD0IK8B_+QX${{ZiC>`KkQ8vOVE`&9xr=nzQU?fLQfb+L-Dtl=j-A zyb9jCdn5Pk&n1Ay@3{ov9>Bt`t3;~Mb;KBP>yNML8CI74mC*0 zRXf_6RBI?r`c+91T-}Df3@b^J#D&2cR~NRb?#)1RO_T?I1QQPYux&}JFVX_UPn6;C z=7{)*te>bhmn*7ZGrQ9?UeWu8`|W%^xsjXAcjfmP?w9wV#FQhfvC zPb*B0==KQI8IN(Ovssv>3{Q&f9uEkQ&ZtJh zHj4>Fsy$eLbiHubeP7!zLEtgFju-c(NR zCxIneo~wx5GiNNK?q^{5u-Yz*)kE&i{eahKT?UD{GCap%-6>FG2!F8t;DF~EM_0?; zrkF1l<>6qg@;Lu&h8Bu<{NS1xtNGD2(Z=PB<1}KJy)!Ii#Hkle19(0;dG*jCBug?A z71BwET_3WLo|)B9WX>?2&)cVB@$K8BaYW@IVP&aea1M_$Svp6N*IJGvJ!9hxQ`pi5 z;~l!!h7!{H4kg5z8Qkp9Lqj>|CS}CH!?^4yBbbPV=|nS z(XYLc_bL{M3eNSdwobYL*mxMZvXFmkG%))^(>DbAm$~^NMt9>NSI})-uGNrAp@06c%W?k z85QXupACMN*}JrN@Er}cCaD~?^`c?ywhtmZdV==udVkjz7y4m)kA2+F^k=Mn+-XE( zw3D`&rxC4fdCt0#ffIkxwXL&LPv|N)3&vLrgWN0_r>^LGGEh3eubrFmSZJKaW5GC? zA~LQT##g^lWcb(h{PX?%Yn@WekE}1tb$P66TOdDaGJF4NGNu0^N-ie6k?3oLMxw8$ z&r9Us&fafcOy3T|=Z+kOOI5(B0B)NS8J_<^_|u60<`Huzz^m#T-8CYh&ngCk4KMRK z(J&^9tD>qBPJugd1-<9%3e(5hF2enP6qPZzZmf;Thf!57E z>@Q{{r?eMp_Tujvi6Q>!Bh4rTrK+H++?92@CVhx&0LGA+~S5Q5i#WMnxdr z2$H)bj?c3WwAOm{;?07?UvMTvI~g}~t1ppTeG!#gokmWpmPfi;S1ZriDG=pT%RNeb z3zj&(1$ThI_g3*{!k@Aja(ZdlBY(>LeGso)1)WxnYgSIv@wU{`CG&Lk;3{0u$^4qx zT76@Ft!axxJEwI74i@nYMWA5l-MazwjP!Zr<9_$sol{tuIDV;)^r#|3YT|fb(hNet zuKSX9;NeOIbdeXKj@Du?rx7W2F4`_ca?xf;#95+KeZ*!dDi{6KWik=1*51s> z)`7ZVWHb)L$QYgYtfNC2>wFavTO{YcL^8K^%_Yu|ap68dOz1aUGS;%orFZJ?96RZI zksh=)1|!H_LlS#L>y*BlOK487617p37q-wVQ9G4BLo=5AY%v&JPN&r+uRI4PP>`05 z9nVL3(3XcBD^HP&4AN;+&>rI|R4^!9JTbN@>mX_k#WwBg8*C_q`?-3Hzo!>Zj3L50 zc>5uSh|z}UxfM>a(K1jxvGIkF!$ZT%#97`@EKv=5&d>eqouB(<=~19CAZib40Zn>P z^DF8qJ*cd-%k^J%6i=)T0|Cf(b;fiC0XXt7V1$e>*UT9;^K5k;Wcn3nR8&l{+~VLb zKH?EYN9#LK9#*S+dUh(6BW#vNSSy}e;u;Anl+w`^kwG=5g4~w%>BE;hPuPHKqby=H zE>VmNEH9i43heh`!$5S+D+9G@W42Z4RwmuM~+4sbfL{OuYOG2YD@4&+|ksfNn zpsHiHoP(^;KBu%b2I(O_XV;AqtW4#^NR6+PF`%vxp-YD>q0BVG42?IK7PeHs#Eir! zPF4CjKrbIuv(YGxs|{mjCVkrKgnOX(e$G=uYGjTY$&=}*=d-FPiS*T65r$~AQBMgA z9qRbwpZnKEeHeqITDx4uDY-JZ_jLi5)99)J)(08Z-exl0eqHT%TS{{eR+>!M)%2lh zz{w|Pd%y-FskYD&+Y9YCn6Z+RJOd)F#J_t$rhCz>e#xDVh)QZq!k`25o>0wwy}w`WjguxZB+Ie#pltUu@7yCZ2j4`dTrL? zNNG%lOJ($PYj_=+NXQy@d7fUeo#RV;winBlPv&2@)>d9u4uXFVI+9?#P1&Z(bEuRlFz8i zUV5xtX`6`*RE6ppWn}=m-14vj&cT?zw-~}i!!xEPj8;$UqqE5o`ws2H7x$TDz5(8HX|Qoq09xS-x=Jh-W{!nCE#N0k9EYj)Ze#?(Wk+$DP2 z$#ifaA|LE-@glh)s@2aaDQn-_8%`!4zwFET^8Idsx_7t8DZQN7uZ`W6kGnle|IO&Z zfd}llaX0nVU-R`-`TK6YEcd_87kGO2JD$~)rK84Xq){51(fG){ITdmhqZ1%kF=FH} zjAKeMH4X7aUrSVPCpXI@U1QL~L~rk}<+wdR(RA;epJ->-pRT9W&jvOj-1+sX5Ki>! zi>K}CpQn-vv$<-rjXyvq6Y{z}<=oCsI@z!1CtcmKoLh3|h|{zd|Ne7s#FIm=Je%{7 ziaYYWu;P)4_+zWwU)!zB*_VrTbD?}j8Mt#kJfjTU6@Hi8jIPFET*EK!O+mxZn*u8V zb4ol?;>N@3_+8Cx_9O@P z1Ln9q)V1cL$lf2AZi5j{on9Mg`HH}$oA>}&x{3EkMV0Sd?st!B5mf79)BQS#BSQGQ zsnA4n7=TYC2Llpn6@GkrT;n+@de-6nW-@(?vD|#BpzUm4T&cq)yk>p(w0%>~k6*~w zq?b$RvQ}f>0L2m62)M>%BQSeW{EqWCCpsS*m)^amvDsN|Ul#HgPQLdIV8J0R_0Jh?Vww>lJd9>r0ui@t9T4dB3- zVyYcUhd8rNL1|QT9$yfKyu*yg7sQxv)KPT2l_kBpGHAp!IWe{rDT_H?@2?Ys*O6%< zvWoHKptznvQ36%(XL#Dk5FQ$^5%m}qsQhz#MuP(_-rb@(j#PMW5sZuq-Q z&AAx8;=B;~kW}oLI*Cx)ZqEs+GwMB&%OEzIQFG#${U^jarydkyi9SrpUdTN7vgLe? zEtl-YbHc0c#`xTYoE%A>&`_U?zVH0heutXY=*u)r}8#{)tjGvuNa zkNa}zN>Fa&gbD`M(~}~fg=;d*@&^rwJl$NUSt?mXoLS)3`VILnfRknRVP zntSiZl3E)GkbYQgm&NMg1Xl3@uc^333)~=mLN#fRJv?_+-2YC0a2xXecyYa-ZYBESw@0|*at0Sm$vBKOieqb}=SfjP%DE5@sT?(gAR}Q_j2c3) zZ7a>&&2H+stC|X%l&{NSsc^pfz&Hrg%O*ENVw@c(1mymx*B7pfkL3neo#*@S#aFuC zEJCFsu*@|*`V-Si=a9^3*>$Nyc8$1rPP+Gcf-#Do&^3#EJ=K+Feo?%waz$9{H;;e9 zLoq&x+FRA74&Z;+UNG#$+2wX|GcWPJKtxGiqk;wTQtb#o%@=?FJKryTs|8kv>M2rq z|FWJ~Zvw1cZvt8aJ!8AU4!jl*r2?UqD$j?~6oytCflPmPMci#JNd?`8Vn%Op05KhmB>0>5a9JeK^-r(=8)i&+vAk zDi&T?3!eM;%-h#qlQ$crMJTp53GdZn+ZwUb`Ns64+Rj>pd`mu-)8^9u> zD6u;J07NV$qa4q6w+ou>NCC`{_r(+D$9=g*(LWTDkahdaWY^I`2ph>GDAa2RwcQ=R z?05ef!C>h(E0i7lyq~X&#cq2z&bP%h~wm#R3PbfdJwT!mwLoImM zhs@cm0~E=4hoPV)!C@$kB+Ov=C-?;W(pHI^hlhv?xX9( z;5k9QT97X$XPWS5TI}#=%+n}GM_2w1!_F_*XVZI`!zy|w2U)FCUTGPFPB-6U#gFUh zTKFcz$Y>phkzt+8xD(3}l?|?D%wqoZtyo6e+^Hy&1j|O zbjC{-w9&xig_~o#ac8oRol)ja_UY<`-i#U0lWVMz#+aQizs@PmE=tQaPSrjpr@oBC z!k{;r7Cc~i?`|@Ku725V9_RbjVYmGm+w$25jKtT|e|Y;#ricPm_~FZ+w%@1!sN3wc z6&6!cPNIy3-ihasR9i{)dh8v{^g{0c2XFjiQaO%lfW`6Xe~%n!xY;otcq zf?d|tigDR6tTcINHZiG?L^ALChO{4oO`;fCj6&lo=w zdt`_X8^v$-!2HAGBswOt)iENeU6V6tqaFC?{NZN=^}ik}g)aRg~v#~(NP+X(TZ z`LJl%JJ@BNa1pApwD>>KjQyYJQKG|7L_HMvLbgpHNg<&%OJ`+}Me}BWD4r+k2}TrT zQe_Bg=UYXrKOlJ=m2!SkaSW;}i4l*v>4xd*L|+Qed&&c1OH7F!%`BX=lZ`>gP&qr< zOqVw67QL9hRk))N<7!c$aOZ0K8UHTln;CY5lgR?d6rAO>pqh?|GUDgWvQ5YoLf3W{ zV;X^*fc*rz=|N5FE7ha_Qm!9yPV;{AqO#u<99{LVDj><)$xpOuS^Wnm&~M>Rym|ac z0VcT;o`W>p5fJ+fu+be=7i~hdv3z!(UU|oMzt2Y|(`n};lbNil62!iB0fXR|$?Oi% zRu%JCE9*P_%?u1o#eGRIFat=i9&iz`Fp4_4q0-8ei(jxz(t}IK)ozP9wem`2d_~n{tq1ENyJ{>Y=B$J#BG@N5;zzE$R;3HwPPN&xUr^OMcQt+#97q}FO zLa^_Yn~htMFCKP#O4ZlfB>O((hhb#2w!_G1ov(v35W5)bR}B6ZzFP^)KyX6 zSwHHVTFd=&iD0mNHWWlZWRCq^QmCff&Of1eZ=JUGu*YTHuLU+W~#s%xe z>-t07KK{@4c-Viyj)m%NeVHGM^6+r1YT06c^L09XsjgB@zt(O5@@DML{E_vL7V#tN zApE?s)Nupr0Y&~AwR$gTRTDy-t1%ANSYg7`z2=mjD*H4Fb*n?3r0U5uO6;vW zhW0ZSNM(5#{d2)bo3fZzv`eZTmS=qQf+o}F6o@;_n%$pMAl+lG=`Bex=X9>#!3a+0 z*Rj+2iG?vebq2^J_LAeViPQJaC_<$6$|yqcqNMyx+w(^tPi`?N@sl1&z3kX91e&qN zI31u{dGdPEmWIRNs!%&iJH|b_GAf+K<6^x+HXkZAZntTNH{=meX zl#A*^sj|nA9{^1Zc@H+BbNxIo#>3jJyeIdAOSe-AfBL)Li^;`!OVZp zruKYf=HC91aOUB9u6rOV%~&U-RU0>tTW*4w&5i%~_7S=Nj8}yX>AyggbGI)F3Oqg? ze{|c5Q{(LIDozcyDUtn{c-gd1WnBp-ogn z7YtDiSyH-nQxr&;LIsT#ZZ7>Fq`EJ5kKbo1X&R?i_3x@5b`^U<{Je_b5E&()h&m{o&K&zh9#mz5N)TCU#+5Nj+%n!$pyPp=vr}_FL$|kCc zQ4{N}_FEM3yPVir{C6cD@4>T(Gu&O+Kg<`D+dcV<9`gBpw_cWe)H{1oTwH(rg31R= zx_!GAzpQe>r?{SSi#`($$oY$^d-eQ9_4fbp-o1I;QKeXWOW#5yFCRbhdHFDG6cb2E zti&jJ5j9L+iIMQ@e1TU-zdI{{AY?v$9G2`kqD;Cw&Il*&y5J%wi$f#xoAQ^xVkT-8 zm>xnzgENE(YXgAWC8k{O3+Y49=oVVe=oT!LQH(0-dRFCN@mFWTUYwR%i}$!}wEE++ zVa#0p*mwo!fUF|?p%)#*vY6UX>y_HDmNfR68FV{BbJe>JmGgx+Hy}OA=@{v=5Mzz9 z5HtPZeiwk|gd4ugM}NWFbuXw0y-^DBh2*xZL!Y*~V^Hg&Snf~)fC`!KwguHhoYh@G zB~ZzJqV9I%tD&S=p$w#qe&d!p3SAI;jzUn8@(85Q0w3L7s){Ae|5V>t-c&#AG54TU z1)j}DW&r&s-Ww?B{cK!a$1V5jGTM6ecS$dv!~eOM;HT<6MV(i$!u@#lS~?jR|8{;j zp!x+}ov$BKZ`^smqpS13ilK^xL^VjxQb^OWXDp=YZR#Hsh;m;u{8LSA`%-n{zN~BU zQ}8s8BTX8^ekSfMDd|$Vt#@_AWSSS@dJ~c2_a?&H z_@{}sKGmcoeX78u6l$(D=*OL9Z;k2}Pui!_J=`ACSUN4ORR+0wsMwsCbZ{;~oFmKe527b^MyA8p=t*4| zO>-19{EGwzmH#3u9=R+#2Ym)-EcyZ-r&XGHF99A}v{juNdz3ZtItfDw;7J%VqA{LP zBBoTvy53k?FB*-{N~1VFE5mUc@9G|x^} z$K&td)W?Lq6FLvw)+EoG(KvN3EyKtgY&b(Mfgal$o;bLtoSJ=!oSONuL^3(jm~ggw zjXW&;&X-Pu9if#F^jsncjGs#cWBEu=+06egt4xm71F}BKZ;SHrs9)TerSuT0TB&RT zem5JTJDMF3q`Q^bSQs}a<;#elny-fW0_xhKO}bK1VDfAumVo!Pes-eDEOS_tY=$H}tX#`KCpC0e^L+2?L(4CDXPXv%8SLILTXThM2 z$im>H@`zG&fMYUF+TtrJukTLg!mk|3T$pZWVj|$Q#UEN3(f2=o&+z0X=9=K;*$q8Y z=y+_cXM4s{PTwi~S$tS!GhGY0O*#k6&T@+RSPK^Ov5~@4{A)wQ#wz%Mqgf0F`2wWM zA)ufgJs7NB!Iry3Z$XCMq=kmLrOt zSJ0(i+d&#cM&mb38rEs}0Hxb+`_<(p#cKKj7 z1{%G3mQu5$%Jro|ZoTeoNC*Y{N@4WStf|Pmw9mL{{o<;g)>qp@xj)h__n)V-c-$RS zeLt~L8r&P5tOPD&Yn2T@RjYMfK8!IkXvLMJ^WoEy+Tamuk=PyTSIheqf5ZrB6A?Q0 zm&9n(Q3?>Vcxo9#-9$(l%Oypw$46^H!Dx1sS(gKTS~W?Mt7^h>VYz8JA{K{U#RY+w z-A+rG$WMxCd90RxORJxI8R%y+&c4^I6M$ARc)AUA8AjWQwn-HRv zmN1DI3m8&M6usEI1;^Bq7n^C2f)>2D3=Sn+f!vJ=2X7DzCQW{sgzjb~6LG1MOoX+; zg2G2~wYab$Y|^Ow5?rb6bc1*5#S|L(y_PZZdlsi9jd}A%q;xeTHs5Hr0Xode7y{J? zadaClj2CbrT4w_vDP3pUqc})b9$M8A^&>2kLU(i*BLSh;Cto zYM23B^m}ncPB$j-$6Khx=-_Q7giGMX0(Kq2ILzUS(6zkSAw;zJLx|Mc#FjPLRP|Oc z?Nvv#1In!gNU>%aq~hL!{W;S=pou=J#D6CgTJg4I>Afi@-j*z^8S@i=fPI0Pdpf1Z z<(j3<`!&~M_iOHuz2Qlr3tklOSBENMj!c1SKU?WxdO^M65q&0|PSmC6U`bhfpP7Zl zv|UUpt8fbx8WXP5e0$Q>7-W`Lz)*L!T2HL5)>%)qx_Hh{*iaH$OO?`j3&C;YiPyX( z4J}pNC}_IM1FSnu_)@@jC@rbfP+G%Od^54ut$w;yLS0Fn`{|qQV8gDdNPYXu!U{>(r)#Nno`v@%pw;M0fHi<^ zP3jq^*p~lv&o(N^Opm%DV{~<-ttT=?UyH;I@;fq-)LP~v$$GzQS8Kieb-kM(SKH6G zRNQs;fCI(y+v9FqZjZ&M)$w4>Kt0=Qje53E6aQh4@~SIT$?GY8t9_#Qt@bQ_1o#(M z_o#FB({}mC{4=hwKP}6TyPsFsz${^N|0|}0479Xb8ECPJ-5tCfXkgCvT9uys)5LFe zunwcdv2V3c6u;G;#qaFMKl|gQFt$6T?g~98OG&FGeH+pbpqQ^)?`AZS)nSl_Y1k@8~d} z0{1Vu(g2qy|LDp^qHFRp4uK@p!L(S-9JI8GUfWR`)3Z&7-aCXY5=NokQnW3TlF58; zKzjVvKtkDTdM#4K1C7Ow!iNzNmOKidHf*(bdtL1Z%75_IgV8_$>}u-#k(s5^>=GA3l!&jPSDwpnKpF2|U0ZPlv<+4|&~|c}Gj%W%VQz zEOvtv-x5XR$^GwjuG@zJgEg848X<4w1D4aQZ0XWu zij)GXcv+p|-c%(?hZST@W@FGARU00d{>k4dxrsnhVbJJ%E77!A`&2){C0DnKD|yX! z^%hG{>P6iS3K8mbP;e;WI!0WXxX}u;DQS{^Q8!4$rAo3Stc_S9YjNR$#a+}5eXnJV zq|f5Cz%!R{b$C7Sjbp z4a*D?OKi35KUDpnN?N>K+P7B5eKKp!(tC%l3MkA zQnKD+ISuy-Z{!j-)h?x+WVC+6q+y+Wqadu{ur0SsR|iF{X*L;+(!8RC)#MHsZ$s{a zA`4dm-U)TB0Z!cFIzeb}Rn>Xs!0mb;Rt)6{w9@$X+w{7$8+9|E%+O$YA`N-S_g)CK z|3MLvK3jb!MlPz1P1L48nyNM_I$zsRqLC`hI+I*n4syrLs4GlStOyAj>MlK^X+`6Z z_LN*1K(+FpOjiT&Wr0%Hco0Ro=JOfd*&YRDT>PFQD*;pC{m(7DpHBz@|MLmKh`Rqx?Wy1DCI+=cr8d7zybwG}7U{vz|*nR#z-S?HtM1A5p2K zRGBY4gLJNi=~T38gJfZaeDiovu0D%QDnYGgE(wjsyxasu;vUSs=8Vr&Aa^=VYjmUL z>@Wm5m!LtM7{~E-(%_{`+dN1%w(@K+Qn?G;^$Z54hhwx zPi$(GOm1psCbxecM&3RKp@gPpEt#G(XybunC9%((>F|?}U-spE z`5uq_uFDQzJJ0wN``!nE@E2C z9Fnn?DTqk{hjpZrlGbmqOh!5D%{;sX__~-a5$#_cztb(^d;3XOTr0*z6Y=KMLEHev z>@*$|0m*nw2B6jX!qQNrq8JQ8DT;wX2&?Gt@ZYOLQ@ZpDTW#KFZ7=T^SIV2mP3^m< z?VECb{KD6@rF=TE| z(p5Q(^xbtz(Sf!dWERBq$ulEjW|HVYj!8-QfQqUjoT>ANqQhRQ;A4)k*Vr;~e_^gV z8=RVh$}{y_0gBu>r4Pg3`UbhqLv%KTr0~{xh;D{@dQc{_23bQ|Bg@7;-Yb|jvTWR? zU3Zh-`NBFzJ_NF8{-)&EslNQA(<8=WpuruBfu1CBKT#%Sgi~cjltUmSGh``u^UcT2 zYO!7(A0A&66=c=l>c7zIKDe8-FX>eYRMSEDc8&v}8A>DJH$N9MBz}r;#QpJXMdV&O zV-a~ImJ^-CQG{4n2?bq#B0w|NQ#-m1#hZiD$r4XK}KNYOtXRqxJCQtovz zY|a!@?tFK@8Iy39l{QnOyA$Q8Z&t%T6+_(>r((#63hcaTYyviO%Tp~RJqjvx5z|QI zkgTtk@@>FNJV2-xO;YyFecmo?lHQ!mxGEl`5TmOTqOqf-`gY@8z9(%BQ7 zFxZ*$8Q+>Uao>FqR^a5#g40}8KgPP-b46sdaLUmqwKJBGR%fV0Ml()ubc(>J3j@e zC(w%_q@Ke(c=$5MJ4@=x@^{+bnq2=eKQ6wAl+qa@2S|2! zFD>e#KvL@8#p7X%HOv`e&)M_R3 zWMNgehKs8#a1XuVMpKZnD?>{((_*GIV;O_W$qmB;avANYQX2SZF#!w7sqpPlE-m~FMSeyagRwPY zN2J(MGx z6o}p!y=WSC?_C3pS&d$eS!y$=oF3{s^ow)isLEqn#i@sr(i#mX#rk!h^LP~Ob0*bA zO6xaVDm}dF%DfzsQd2#q_G$>JLVm`~U}aSu-{99QW!%>cbVrvh;6^^apRSEC(xr5r zj+quLP<#uG&K1>Encdw+__)(Q)j-;pstn7%d?@$j7T26{e0FvG{#Z``#2K6s9~r^f zX|tkZ&^C}9{+&PKU8-)cpWYaIU2f-}=xvUN*?$gu%mqa;-!6+8^3?F3+ugC4!A@{a zvpN*jlPv4i-wHG&yk1Q3Qw8T@w>=#9PmALU#AY~*q;%L<{M-5Au==d{s9#N|FTc_? zw&_>>f(z=^ytl#sfwd6b`~z#D4GPH>g?>=3YmBOwLD-j&Z*!llHedkI z@hy9BaxfCPeI*K1ys8fX$|;q6m0NO{m(#;?wi2=>v|<6VSxdfyF)4mp!+*z&x-9Xk zbrp8Gh0t(;KjAQ=EY+{*F3O*l=XeTc8je#iV-%r#BTE|(hvA2<{9G&~pXP_vqQDBX z+J45r%lT#oUu-g2Aj-ujK?^F}1$P?%bf%nV=A`i(T_*vaeJ=!$-GO-$Q13sza6y%m zt^_70T>(SGhA3$@6$pIaGCEba@CH$yFSz7`$woefMN8QU*-8*k$hO89x+0v62r!VS zA69hUbxH+&`gS@Eywr9R^-|l3CE=cUeoS=d+&t{|l&XL|5cPnyn5gI$Ehj3g8plYD zoeyO&R9heEPUWI#z{*8YD_#DB^^+!hEB76OqFDTxzjh}y-XxUA8f=H?OEFf1dp(FTEarkF36d+dL94>Pl+zp_ikOsBBaJKSV4Kmdp2 zwya&BwpwIUHYgyjoyjN56m>Q-LMCt$M(A2XaUZoQJ>Tnsc7ZGR z9dp;q{&UwzVsIzLPIDuP!9xpTIF`R8rmo3F-Sd}oXY>8wlQCtyJ+tgMnx>+gaxZ-_ zszaD1qdA0`nKvxI6#-G@+sYWUGGpNv%Wqib&^MZu@gPCM@003Z8sd(YYz8zRx1+kR zv7+GA%eAO5vS+3 z^F8i6;z}xBoLK5Rkay*0ymGhye)+=xjjA(F$HmBMLQ%rSadJ4$?oq(BQIm^GnqE+T z7R4ez;25RQmq9EytpU^zAiA%Qe*n>qy?D;i+Ed~9T44ywbHdkg=Y;1Xsj!AK$Mjq~ zUuGKLAVv5APnREXiuodNMuJqPR9EPH zBxV!&aWLjNMP^V^PTCp?WVp|=DL0><9*~kYx z(Y~otwAET*NA%BX74QkHyZuK&_*^Z*DwKVPl*3zOc|@g@J(FMH6ZmW`!Y8m^`LXBw zg)@h-iGEw9#kne9sQqEbw~Rx~w``OYta(92`JYO4S+c#qJwZi&=LO5Nk&0ne;it2a zN_1c=y|lA*1-1mZAxHV7I?WaDqew-=G?}?M-O&^sMH&t`n8zQ=ScSFSP=3kh{d|pr zBS@N`BM;(}dZNWzi(34L(AA1%mRFDCh{_8TAggbum}(5v1-Qv#rP)N)K*rrKAJ}9d^FkAMeGEn!+SmJt_* zaLo{|+;(+bAzpxU2)uIiFn?Mfi)~Rog@y;z_!INH+3j+pUZ}sMr_-%fI1@#!SvDD2 z>42e`wSI|32PTnj-W?>gTK%P9J$y#lmcR<_+m9s;A)<8|LWH&P8*p16YmXHF{8Jnu zt<_M8STh(f()H{?_OL?Q^cGJI;yOv4xP>8D)IY{yD*Ljv9d7RFas>(iT+?{FduLSu zz&Yng95fcAai~Fp1=$%4O#rHd2ANKp(1g`UXrkp3NeeBRY_CmbYCKP+ zAtM^ITqmlijI-fv*r=Y8sYdpcOc~ul4nQL8lzFg0oIp7|KV^4#a!I56<1DbLJIe3k zB&x0E6O~1JBldSAk!L7JBCoM=IbD5liE;e;(=}-1m6yjdo!?v(vYK0>tW;}#Ldm(5 zR`~JJlTKM1vO5=&X|ss!)}teHm&?`Tq$bg zf72zSLHXYqm@sb5Z2YX67_{6+0%Utuod=l?hfThHV(>C@=afuSV3AGE;i}8rQ#_@D zgc4M#dt8-^^4}F6&C+%1ilcdXkuJ_pr}TmrYLeg|)bD(mFHus&`dC3bv#*m(|k)f$z3N1hwl!9xw*V^^u&*Ee9b)M69Ps%1of*eGiV{At#Gij}K zeyNA!Va1}B_1FKYNoBi9w7(_o@5 zMF$gQ?R`^iSa)l}w>8g2P-~rwV68F8*_jh+{s{DQl}XVEp!6ldS`Cnbd#$(+VZ>^VpCqz00e1OuS=JDdH}=qaQerKJQ)1-;heH#ul0%N1(y3~t zv&zZ<_$MQOABklu{rso}K#Q7IIE!q0czI8US`yKIrZ(s*(ytx~zKcB!N}|WgV&3qb zUM11veg(berXK-F%!QnZfg6;m7X;m}Os#Oe4_qJw37o&J;tY#kB zxGzD?zYy8N>4iXdUZ2LSMtBkOa5mkOyht=CW?g`~XtU11E4$nV68V_a?K_G*5yp`( zL&1l_pMEbxjl)cUHoj&CMOOzY1#k6z<2aYa-AHH^&q+&%_q5TgVxB`prt!=ieu?K0 z==mOce-DfKSM?y=Cmi_|>M=eX+<&4}D%ghg$`6eQPO`fH#d66`%GMxsQnoe5G-Mig zoZU|vX=g?RS$?Cq#jor6=leN=EtK%kzMPw#IO8>nAi3G!IC?2FCyCCuI_YVN_Qu`s7)79Y$|~fOtLAVG zzndgVpfkki{L^dhH(B>Yg{+tU6OnApT02a*o3oI*HDtjgcA~I9l@fJO75p880%TnS znVy^$50$jCYll&i(hsAQI1s5*!?u3ezubQkafTpvASDquUCwcBF`?5+t?DC_%R>`( zD>g1~5yRwr(_kHk&|p>CoB5zhJpvBB=xG%*$;avnN4IhG>k_k1kRghWR&Ss@)-aVf zAzV_BhhCee2$bG+M7dKbv1-)-93m6<87MUa3NE2kFrhKT(i*bpv>YXIG~M9ZfyGk8 zVo*o0)m;?h;ekL_x~ykzy4+zHvpl!0U~#L6ygJu+EGFHw3ejV>P{)~*N&J)Z>RgSq zKq;JzbPXNaDR3(a{q?LpR|7bJsL(E-qjPdUE1pwM?r+E95mr9Y zUv%lJNw8vJ&oM~CbYZfu=cJp}n~dYYD4;7w(!qcPJ4fNNaCSU`GO#s+D;(5&tUs0YdCRc*#DyeSt40Vvc^R+&`R zRwfHQflC&8MqLf_zx(;)tiwXOaM1e}j7GA%s#p@G3ZtZ+sxV_gb8_AS#*_1|A$JC` zCX?y*>uSH-Zs4E|am?cBFcd@OVYPyeja#f?Zde*kt!_p+S@kHl#u9g+(-o$rRm~um zHBY#MTMgR{xI>)v5_E?w-9ioZYMzdxz*@N` z>o^Lg^CD;LFxd>#b|M3YAb##nWFWfvqIiR-<$m|Qm_L21ig;rXEvuio%Abje9Whu{ z#@lQ-sMGRLWDN3AWTpGg5mxDk_)6{Ju5l67s^^rHwMPdz(m2{ep5WQ5?z}@!(%IzW z7d+a%e7{@F*Dz7Mt8_V0moex2<6U{ciw}3@<8F^o&J1rY?H}NXAa&x^UzB6|`)<7~ z_rJ~;$KC!rl^ts(#;M0*tCUFH6X%DTndGoSS!r$Vq{n=iz4d~2hv>{*6RQ6p!S^i! z6K@_7zG(-(ekjq|9-!lohPt*FdTeg?euHE<6W}!2!THR@ZzXDFKR!LK%K{I+Q#fWu zMq&!G!BkXITlMhn-ThRgrs8<@$5g=B&JU`9SwXCVX~;=@UCfr~#nlmoG4bfx@oHTj z4(dM$*8Elo+xe{!!I_uh zWQXif_UEWKPG6OlONCt8}b+tSyr79H%vR%{^>3sD1YU`sX)Qxh`F0Pbw zvz@Q+p0;nw`SAu`ECS4wu?v!wcH+*dnu3g9e>FR0Z1Ayg_USQKo zPLC2aHYq-pnACf)WJ1d*qnot*+vU$>8B_y!NsPwUtA-FTG+kfk!;ewj-I3rgF0QV7@@(735sLeXJes%xaRQ|LBPU|3 z-V-P1CSCPjV3Yn!u1)$g3C+Fl7^UZnw6>0fZDCJ*flDjeRoO)Hmi)KATk`V|-B`*G zhq|^Gf7;k<+6ml0A(u@(J0+jnsD_3++sx6-;FQEo%Xo1qGrc~|7k~dd-!F@H%9r4c zQ#5a;R~~vst333yx&|bb=_OLRgnr1=LUjWqZ~6KqwyjYkoo_8N#yub5n`oerl@lA& z^VegEuo8nLVQtz6-(jtK9MSh9sI|-`A#3bEB614a=O{jokk)XhMAl%ENAFHK`W?9^ zlVa_v>2r`&+;bq+yqV+_E9z)H+>)hNtGvp&HE%bCTbj;@JW6+y%W#AqNtjgyx_Kq$ zZo>f9Gv?tKtnq*A{*fdOe%{a5)w4izoI`z5Z?0Iu;>?tV zqM0ezU_{+NgpswUA7#oodAm)1a-f?WtDQ+Yt!v8VLl_?2)xaqEIloCSCNytk@ssB zbYnqQjD<~lzhMDF-)L5ZwYgwowjIcCnoMtDtz-j;4^XRI8kSROXb?r6|KE{lRb7aqoDl%iiXg$$`ZPbR76sA> zSKH6{cRAn8Xo0aR_hIs#qb}fds+QPx$+?kP2^7cH%8MU@kU%8~Ep@sUsM2PmmWhEM zt4s_8LX9ZB`$#htHCUOzOui37li!J0N)%7Tvc?rUVhZIwUa`Og_ZiuavtYH=o7VSJ zOoy`gO=hx;PiC?P1G^w=QlVM3P3T={Ha{zY)!15zu?YwH5q{JYwn@tZnN2VteXKjV z{$qYzd=V+OvugExFI~io0!g}m7mvI3YVmz~fwM!bAmqvMmGvc*AlLW6{sdb$=qCOxpe+-%-sMJ1k028 zaQBX^=Q1I8`Q5$qr1VD;p8M*DL|#~P)OgkFn@))j#_dXgE)kNf6S`~;k> z2_;FD)+8qnLrI$v$V;$BAfJYfBkL~*Cb47_v4|zh7|3^k91njU`aJDzHPZ5@aAN6t z1X3ml6;amVcDJ+-S~Aemx@4d=Kt=MG7P~FtH&2WDS=F~H9QJjzcvw%CLjdc^l5q`$ zCfhN?`cYc=bnUtE^6KOF$MSZ*pKnUsQN;P(QfKYlm7h^SaR2@Ch5s8>Spf@BpU~@h zNUD4B>@hvt&X;ekzQTL42b33sO{BjV+l+Rf!g3>oKVK7x5T323V}&{a)HLU{p7uU3 zv2;(Lmss3~XE#NeGg?aEjXvF_-D`38slXXceddMRnve6Nu@Pt=|Jdx@qdzCnZ(;<}9M*@k7fG0L%C=#2o@u68WcN9A{I$LR` zhXg)j8B|EKkrgVa8C)V0D$!Qu*QgvTq`5ba5C>3UiJ|@gDgwk-6o@FNBr~)^HqEoG zaX2s#&Olif9T+6(jy3YVmh>9YA9#V`ThUHG^{+gRW?G#zZY*PnSC8%SvbCqy@}+Rn zMMjp;0F1U1RzPeZ~B7oDrbKa0Ea!=OIf>XiIDrdv#$185Y@k zw7X$I5oA~=Kk#iLJ-WP`h}LI_B-$hp-Ts9mZL=10N<*WY<*sc!26u8>mc36~?tp+% zIh>x$a=AJdO9Zjz+eP_mioa1LtEagQV!+CW3~>+x-KlzPCXm};b)-4rWq3{)NRcss zrSbeRkYa>c7_&~`MQ#=x*svRt*M$@4R}))vk2H{&0ARReMoYZ-VD@~)#I=+6 zEowA{!x4Yoc;fs5B=N@ir`7S_)uCkS^H1v%Po96BzWl0QJijGNs_NX`zbdLfcbEm? zB3f5ckUGvJ%3^*t0*c-^PXTogU(pVCc4w{;>I9F8uVbfw(*EjtU#iXVzI-V6CEOW$ zvA*iDKXKe5&3il^2Iuj3)KEd^3*?w0u!WJjny=|(QeCD|muIGkAJ@ODeh7q`F@}^W zLLFFDQI($xL@y1T&n*W-{@ikKw}ckVKu~`JXR6n#pGZ@~l~GPs-BbpxQj8Jk`m>o8 z`BEk2&FU*W`U@?Vmj*K#Ah$dWyede9ZPiGRJ8n!Qi5s0|pmehQVyzH*mNiMXSh7<1mHq>xVwq zLdQ{OS?EOUqWG(%s`S-uOJ>reL`_#yEn_-Yme+5Yn?Bw~yOEYLg;On^!cy#(X1AN_ z1P^_jaDW$R#L^{kV(e&zY8N91YQCda{@g9wWYY5PmU@c9h_ ztk?guU41S0hxz&zSFY)u zi*M7H>OXO3^V{wH&NwiR%~(WhtxGT7EI2yES)M@4G`XUjS0usK&vsBZ>GMQ&3L+HA zLQN}{g&Hd=y{(3$9?-Sd*;@)dt!yUwYIOmfFZ9;#P#kVF5&)9hvKoE(8j+jvDH925 z35~ra9Yj#|lWM)FD#bKTY+E6@o)m?8nPk*Tw}M42RU=|t@?I0>)Mgy5FG-_zHj+FX z0}-qjaPtx(SZ(Fh@l<6Mh}X*aUno#C0$axK#B2@5U32?|n%nog$8vxCK5%C5q$SW8 zEElU7HET8`8#t$TQPXN>kxkDN{`tHiP{M5PZpjLS=5lvSBWz%nw3`l}$K&Y<#j?n! z)oss?won;n@LmLs!kHxGVV80CZYXw|xx14oBbRgL?qu2z-P?EAJl)bQz#L1ShgwfO zJk*S$*bR18uhQ-p#VIW}2C3RWdj7eI_4yB8RDZTuz-jZ{~wdNsu% zY_R*&^n=i!rck|S6@W<-4mdOvH~)h2Xwy4PEcQlqJT4NR@wf=U?0$8YfTOB;{j0h) zT1y4fd3yzi@qkg&h-K+VrxAPF_=WWI5u!zP9N}UancPQ{u>Gk>@%vK|3OU0(WW236_!E_T<-%%2Nd%D3jEU|XcKKaML~KapEg2J18bHiI zltD6{00JA4NmLlgsgOz?t-R^il<;Rc4g)i&%IWCj$GS~w2Ud7YU!#u-el0uZdcWjEBd&y^{6|O zfkrG{5+}wEjhe@#tEeMa^A+L9}6LfZb42>3c2s>uy`c+;q*^`M@CjU%GGj8InWV|qp20oD5tUB#u=SiSDeBnxQU_m ztP;Ai7k?wZ-%WDyAJKIa&z7EzOakV!kx6%5+kJEOSOyn!09gZIR%v@|hl{}3D z8p)cm%;}0oveq_72l?i;koiUZN{9~Ly6CBUn+TntGK5MFFkU=nuPpQ!nOyXYd37$7 zlj-*BYQNiVu$&KF#=B^-nlTG_7cEvXZb`JM4PCT5sA)B`$YxB}zfjr&r7Y3TmaIT< zadx&e!UmQbtL3vV$fuGjkdV$qvui|a`KD)#4 zqkm3WdB_HqfW+iYm$A^JH*6;fQU7r`GmxRhU>wfc+Az1ZD8CrgPdR&)PX-ay%?=9^m zm*vC!X^rYkBQdY|4C)WZcvTCDOg;O_K0$8U@!7~I`|@0I)N?%fvGm->mvW8k z3p3Btr){q$=iG_95O?q_@0xSde^7tsElQ=ldBlaJsa+-LM-rP20{Z<(V)Jw$PRSkR z4Xnp%_!LOq4DD*e=%lo9h}O7`2&|jcF_2_viV)y0w%a1v_od}hr7x|%DmDrMT=Xwo z0Ek?~dMoK7##*AgB9^_t3uVoGSDDR6PEUU78i!G+dx3H0B|GNl>o<7r`-@8OXCJkH z=5jK9KR9{h_rl|L9NS=Iu$S(q!cS9*da6ZMRf{F=_S=l{a#4=5uWhhqITx z@eJAv>>GnJX0z2(eJrQV&<&D@?WyUP;akCxrIS5(e%RF=3#hYfNFDipDXrabskEU6s?rFkpF6|mG@>xRw01Vi zXFGdnL{xPD@Y$tPfDDN>0@+Av2BjRb@jwflr>0(>k}CB(N6pKT0Sld<=H+NWdbetvMEdopi!2SEklpSMz|i0wbUlJ?BD(TadxW!Qbi&g5_WuOr0Mvu=4@56ZcG#? z(O~Ksd^MK*c#brB=I05nJt8OiF&KUmc#|In4uZ>=&~oZWpYM-|>U# z{qbszR3P=ASk~x>g(9w|aQ=3;EV;HnPN-;(V1jkA*TeM9BTBoAE;uDq4bUl>8gv`y zIL^Zanx;~owyY|;h`@KF*5S!`3T#itGZEUl{EYxh&Y85N*C;s?zf^W}1Hy>gM%O6!)?iUowFI>T%Dd3&Knz;C`@ zBij%$&O7*C8*9-WMo6nMRHB}m$!Bv8Z^;vxekC1|giQWL<3)%hT_Z^M)jonW;~~wX z>CCn}+q@Ig9t@XP^rkC{x6e07B;M0IVLJAGSAIqri2e7=7yfVRdSGpDQ>RP)0J7>H z`vGKS6KK`+&(V|m#Vy@?V!RESDFH&@^e1znP#k>_gOc0*<^1?cM9a`1Df zVqf|LtH5^f1FN9z$i#lIDK2MJ;~3#K8L+IpcNuOo-xwtPbPTK3;SqIm|b_BJcPc zS$_k+H7*jkZfN$#YV?wheh{SVKdMJ%Du6znrW#%6m`u=@)_s*_8<<&Mb7A7nnPoi2 z2IUiL+@7%#l_VFWn%x>rO4RbhvU5}n)V~n8*6P>-S_sC{`!*I$>S?HIUvH`;# z0fu#$v;cHbRM^3u<3(ln_gdme`YcXBLG1{(-z7EcO=KEcEG?}@2Dxe#VND27=>*l?r~k#n z_XsNaMM9W@woO#;g6b38()P5O^O}n!E1XeEt@jp@X1|uxPw*95?mrzZ$lR;@;}9xF zyCGEAR@>5s)O&oi@*DazX7MRJjtmLU#bh>gVlKvH13F(nvxuqoeVp<$wt;M2WQu?b+gF zGM&^h6WQWqnA#!c`J{oLt6L89?9GvbN4AV^1Z7oa;6)>TJ+awY*=#|c_Xq(!;C_C zD)~oXA~(yC!urT0>g*%KIt8`^#+foNHHv^(e5EP8l(S}g8PbDjwE+8W=oW5*EM(4)nxLHU|WGav*{~tBLi(NW0+DL@f}ufl+v~0YqW@+mNTPx zdd>`XoXy$~z6=>n0ZJN-!7?R{AX}oAq4SAGoS}CRV->Ryi|9ffzj8iJk=&07bIM|j%RRdr}x?CjuVK@2Yc;hS~osdy; zphRrOz{?xgcZ!z~g$uN2J!lHJfcQ-X2<0$PE-60imwPIK^5F*++@IObz5 zSHI}TEuE&v! zL8o!pFEBTbT;6Vss6#O59$K>^x17D(AU%gP{w{kCX+%dgvL&M{fM>KIt8(~jaSO0= z_0QmaCJ}2U`DACFBYxby;s80mph8L`4Ma*Kmag~YQY8A+{JX!7Ob zd9i?@K3w!W_l9n*RD3ODB0p^;?b7KBy72|2UzgkYCwgD@VfLTH9_KPR(On&iPpjj< zt3%28-Si2{A$*;_{7MhRPH*W{vc5Zmdc5jS)ZG~rKOT=S!-TGEo=cC)SHsN5#OTBB zN4DiNZWuE46`JU#M%m=1Y`ud|cp)s!C+-v)7}vl9WG8vndnEF@FMU;xFNV}t4m4)H zfSSF^x1K3+RCYE!>Yl_fBAVA=sVbgba<00DI#Q`T4{_GoJN*ukT%gkM2V*KvNxw8< zb3>C)<9Y7p8&B`<&-#(4N<7&!XNVs6t%&S2E+M!r$5g%C+`f|;Btr>lyoM6$tC>BR z=|;IaBW<3iBtHh*LASTw9dv6L(2K~oOD%RhC|d6WvsY5>hJp6$P`1H z=NpBe(l=H3 z0Qa_x)F)%e7@UluMpO*uc4CXSt{w$nXbO25oI-{WG>Bx9kZn~MieoxR5LpEtJkyw5 zF{Npa%aJiV9Y<|O{Rd_O;${d_ybn&4dIKDxKo$L~hw`+zf0KDAk1Qg0+mOLOvWU8$ zX)Cm$g0$5lXigh+8k={{n7;YASljIv>*ev`vACiI6`Py3*M_1MayGVGi^Hc8xtrd3 z4(WY_pk=4c6FKCz_Q0Z$oybONzMvG@ zgcYEjL}U{qm$OV9iH8DrRO0T=s_~9({T*W1s+Jwy8VARVVzynD-wIV7e)jf1hq@9x zX13~Yl&UI52BbV0Pl3$Icrvts!>5fnj>Gi0vcj3Ql;)V=d6_G4s}wRYuTH7JF&5)*XXK8=JIb~v$8Q*jH->n%(b<1X++V& zdhdxyjh%Jm+Mvv`%hwP-Y9NfWqel)YOE6u0QHwQ#gz=>l5|M=LF$ z-`FOuf(c^|qO1%JEGN>?AR0DjmzD#DSR6TlMh@wWu8n}A8Tu2u{K2SplZTbSXl$(v zejUAGX*R@4ItU5fhe@P0YdYUL#{2r?e!eKHCAm8aV23(05;YoUBwB0V?Q1*Hur>@A z2nVP*AzmK7M6K)imxuNKX#f*OXH-qJtyo(Jr_|p4gS-jd@cq*XvDSkLY0cVRx>Krv zv#s;woz8Z+uj9xXt+Pri#)5qxkE%DdQe4}LOstEF8EPJgV}<4=?6VY*`-R5fSqhl9 zht2VDkL$XkZ<}`vGeDP9w9LJlQ#3tm`8{TNe``#aE(ae*TAj#Q$KJ+E&B4dO7IvKk zuK}K1kcv=wfGj+&11D*?S(ARZvC)Qw4Q;ENd^FbHeKpD`*2Seo_<<-_h@(j4UrN^)YsC1>7>|=MV-)=dz!=w#J4yDf0KPTk@}IL) z*7#(n%wV)Ufs@q~cz1s$MHVVSG}Oy9oLmkdpZk)$*_!=+;Vz`31B zW7bijANV>2&hyFS-`|`)<7~_rK05 zP5ZlRmw@CaWX>38uWglQE2Qp|b4If6?P~vv`wiZ0w_JPTzGnU7zSe?ZDy{B4Ow`2( znH!7pyp6l(Fj2aDept-c^Zg7i08FK*E}VazqC(X1`(sHZ+g~B?8H=dgQIE^VC_gSA zFih>EuV$*cB-iN4n*9Sm|j>U3yIL^0= z^3@c7`$+Qv?Zy1l%JxV_En+8@Uua^nLz3qtmFbRil8Of}V0KPg34NI~y~zc@I~R?~ zoV(*$nCoHFZ)7ImVnS4O)5E&=AuoLlpOMCpiTkMU3^s;LJYZbcRulM5tBV^}x;4~n z-n{KakzxCgO-5s{jlZcqWj zxIGGo_22#cQDhRE{iko4hu@F2SzR@28bA(;LjO!M@+gO0*+&>J$TvSUYhYR)Y(g6r zoED*2KDs|HQCDLoZtmO>l}mN+rNHIzO}RbJsJMl7V+Px@X`MiL*LX864?R}t{+NfJ zR<}98HzQn%>rd0Dolj1qy6Ze)L$%oI)IdC}A&cmd9auA1HGw%=2(cqu@W^Ogi+Opm zqL|VacgOKMayj1=yT@`*SNe;8aaCsbbS&28w-v$z#df|ai}h~z_tWF#@?L$c-g__i zlNahgR6uI>4cQkvlzE7F|NR8a8LIY@cLL^&y4cq?Ze(e(+V?tSRNiE^q($Y2kk`nK zBRyji^mf{)BsyRL0$RVm60im__*|%X?w-ch@w;6FZg}6O64#oKAvvQGMztYwYOng5 zYt8y`56Lb9_a;9+PVR8ipv>W>wY*q38g8_+89aHpe@|=0Ql_;s0y;fhmzcqG{sB~k z0t2WRg&HoaOO?uh#>sOVcIiKNHWi|$a<$}@Weip$_+kBN+8XAO)2Qz9kygomn4^Ud zJCa8&lyi@7?7)?v9vOOwCBmW)lEgsloqwFFB+Nvi_N+r_P71ZR#CMNKPjl=h6NYss z5nGX-l0=%8mDQeZRG#LnL6CV|UD0&B9GrT&+so*?h;s}yqMKA>p zk;drM^a2(mIGIQv?VCj{^vx%!(ca|(;td44vWgTdl%cvTkY;N|(qo$l$zz-F;6Ud# zW7Nh*^%%{VgVu<$+lTwEkohx+!+4&FINVpRxezI3aTBlnQ0v!4kvUhn(2l$r^|Bkq zrK{hm1Ge7DH1*l_FU5W1#!1Sf6>@2e%~(R=Q+_d{X08!>4$VhGy}k5$OB0F&1Ej?x z!Qh5`9Tb+N|F13r{8rrmDrPGTm8`uqim+q#>L|k2R?u2~>jz6xc!o+H+Dm&5;*9br zk{eX8MmOFdphH}g6TE|gqN1RkU0pp0a1r?+KoTXP??9P&;Jc>fP2@Z;zGK0hyKeEF zg{jl1|pUq6Y85P5(swL(sFTSc0$_>P6@qGxby7~ZPeeDx>H ztZlyf6T`>GsJ2B%0JzJ19ZiHBv0RK?4Ra&OW6an7PDl`>XV}_;whYgX=nOI8E=of5 zfigua7u-R6`@e-zkW9Q3_KEJ>Ue6tjhh%~6h2Yz!fi(H%nw9-y#aT)Wb_ zsw&TmHrm)?UGL}HK^$NA?e-i4^z%o2p-3((l+!FuII3krTbqZr&H z&n$)>A&nSlJ%gwCto|mfYir{2H_2uzBD|*EOg0J>#(zy0pavOs3?i5N)isJ- zZCEegFmkmqqS<@IUj80!E9FWFK{8Sm>Sd&A0BD^My|6B8ro_zagR7R?+fG!^#Y2EI znjQwKMEn!nE)igt-Z5F0e26&Rvhv9wpnf(SOjq>j?crF^OImz9tKQKvo)Eg`Y-AE$ zbv829T{nD1-|$k3^Km$&GFf&M;tb{}#IvEY8WR-<@qDN_h-X6u(Wy{DuYvnn7xjF& zxTu@?4^wb;;-KDIy>&g``LXEmW-yr{P9@*Ts@9i`gc*+PguO`M#Zv$AOa+$y#4nxx z#PDf{9Z?$W-4dw+wcB&me7>p?BA`g6yNQq^mWz=~TS9eVmn4q~^4s4D34-(-Y-
sM>c`Voa{E&*AeD=N-mE5vjt-R9MqtviLfiB7^S9CAg(_H(^m*eeUPdCD%ws$N~)`->L5~@@#~Fvk^dl zF-?l&BP;Dzl_!mIeTNfgTpX_NaN^leN$4ELFY0t7QN=-GkBcv&#N>=}q^8sN(&xM=-tQKF7mvI3YVmz~ zL7t}Q^%3a5nM`G|opF??n8+R*O_Pz)dT|Q06qB*hQcR5XYCH93tVb11ov0cWRnb%! zZ#)AN&-;LzqvF<(c6TQ!w6A{IZ64?Q)nT{&8Bc-F6w&EFJO*jt-5=DT+g;u zvDG0%Dg(2$ft8J6ta)T(7&*vt@JkwM*%+P@(ZpdFsbl=u^X_57BlY6y_xa&N`R}jT zDy@H=uhvid^7nF$QcWEm;>BgX{=F&Z$1jvz6|wqx8+8r2j)wk@?r7*80{(U#rrgo6 zkEGqEbvgZ3E_6o(J!JdSF5D-s&;2?$KlftX{JH~K=jZXVbfft4!!91j=Et2#x*G)K zcQ^2(+4{ZV{c*ndTfH~>TX{rf$lyqFeBWsV-ZlZ$y>0xa;A+xk4c<11qIKHD#ml$Y`E##S zZ@kpCG(&g?nsve6+0?IMXH#z{gj#m=MQ77~@^<&k)qghY^p5ei>g<<}mH{<8TKap% z->|DwI$HJ;wzEq_`7FGHgsHLHF}wbGzbYTnyD`wNvm-m(2GHqj>+j4^)2{C9Y}-@h z&Mv*Ux!q%R`JUcGp@yAZ)ZI9saCc*WCk5Mf^-_1^zEb=8NhE1-k@o9AYXr|HennN_14$DZRlR+(?z34-kOO6Qtw%&c3 zuY2@(41vz>jwccTC7y`CqoZha^>RFsq1yQR_wwQ%7Z1zjuk*i4Z=Z&?G#5ARjfHv3 z&^gCkTue8Q$M0&U`HDvo-s2Uj67R0Lryb!Vgg@+lSkGFa#HKAjzI6#xuye3&9_QO2w z=t4<+dZ_E&r1kd~*T3y{pVw;Usl&6=Z;SHrNN+BNN9)CP<$54% zWxf_iDlM)^EWyq<&y4{b?!F8wHI{k|c*Za~S?#IsI=+vP5 zsM(vt(JA}@+W$Xy@7CQmuB3sUA2ZLhOiGsRM|Yz1){Z;ziQK*C%nO$y(Y7YCq!wi- zo?m~y0*Jze00>f&lRdq-Sqb5{5yKOS|T?AEAh*GoK$fajR6 z9jD=Rgf_LESskGjm6{I*rwuo_=XSqe98=-3VJA~ z#*tbY*N2Qxnv{4)ne53VnABP6lhJ`Fi^fdu_oIBXi&Vot}49mM%z-~{?s7Z0;y^GBk`J&|GUO-MCvta zxSpy7mpr#7{w7h9Q@%% z4`n}~rpQq@CoZQ+g&;Hy)>jsb^l6G|@R~kL(1?X;nqe4CC%`vCH5J3dBP}MU8^Em6 z5H-idV4mibh@d&NM*lSJR!~iq8ypQ3YSL-&9{Q<)MGvb~R4>=Gn536$8Y;yj2Rq#J zTjIsua<|*;oKRx$BVis82&FLP0qEdz!U9jsQ~nf|w*A!}lciX$?>D;W6c2#cF*6UZ+zbGKu7AZ?Bu~g{L=8$~dO` zlQK@#bmE~*>~QN4eV>MXver+-Ug^HEL|$2i3x;H^Er%@?f!mjg5R|BU5rom7Yf)~E zq8(p8qT<|@Srok?(2*E~TYMx2K@Hh`mStjTEf-z;u7MbCQ42>UY15R+5*YKD z991MW&Js7voV2>*k>my*kK|$PcKWQJSdz$rZIeWFYep}k4?RI8PxrlZODFZfHstSt ztpsn3T>G`z_7ov2Ez4=wDTs5kPeD9UD~W5ks~T+V2c}_cX~AJ!QuTBg7p1U%6VbL} z&fqy7Nmj-2NOHSp@d-bEZ!a>aNENm3HN2KM4W7m6wV1dv9zaA3egF~OnofqTu?qIU zHstSt&4Rb}n!Ajp!E52t;8~nreUV)#w}f1bf&%-l*vF--n|EBgN)1Lm*}=N}Ud&c2 zq@Kg?N}7@!T{(;lH}WtthqlS-$-cr!G6%Owl2L6s!LsO>hLdq%O`MFwDV5~EE~Afd zt>{r7zu~>$a8e}+4v9+Y=-hT2M7@Zos-_q56KSQ>sOc(rrvcN8I48-|@p@ML@eDP| zjd=1EBRW~{f%(7x`@iZO{Xci*J&OMRXYt>krj;CLQZDnu{&KmgglNMF%F1}bibb_4 z9`Q`&s%+Ap?uRA5Oy(r-{BgD`_Pg0~Urq3E2ff)oK>T4jFE%*VEoV=YJMjVlo_+CB zLapMx{{xa5th4;#`uVBcf$(aH_sy%xVhodVzeE%0?3kL2YWFQL)BR0$wOy9;^82zX zQ79Ru_;$~8NKlVz&_I#+YWcrqvESg}bYDJ{yC+Z&d{B7n?@zag*4I=PtJ{}p0j!%0 z4|+cA#oc(k_qkubl*LvEtCz}~90kS~GDod|E5Wsw1=pKwzz#+++dar1N6UxxW{18} zlM&)MU2!oN+s5mC#M-i^kmSLYV$98gssBU<$?ge%Dx=FJk!mL=Ak>xU)||+`uP=OD`|;lsp&u zk>lC>J7YDGd`(7|yR@5NKAOX-+~4E1TBqk^$1}+gR0oPEfSg8@02N(iHau@py>C9N zO6Z;C5uF_Pq;Ut2<&OrI_s1Jd-{ppE46|z5rZ+nG2)Z-)umZe^@jsysh$ftMZ5^cv7uz+a~ln@h=ys%HCEZ`2BT~!Mv#z(6b6al z7NZ0?>v2p|q!(UTa+hnc4PL-7-Pn1D2od?3(ux$V;~v8{5&|0vjNt{<(TdblHRPjq zR*l}LyccO-Zu02=6ZknSl5x zMjw`|5(PeQ;a^rCCO6~J(90kU-Nxba{bo{K-`)Lx<7I@h3Drh%2v2ZNUghnu!k;2k zUC1`d*%@^H4(rgnr>*dVac<(9Vp1DE=r#@`FnIqgh({=!P;C^?Y5r06W}7k`z&5(0 zgkIAyZPd;`eBPGpcAeUAZB$1e-V3tJdW+GpK5Ez+VC^*DtteGHbw)Iy+c*rrpz_&x zdHeD|ks)9Jwb48O*KWBlLGWXgq6OAUQ#LC$WzQ8z8?8%>`7zx%h+6;ys*U0Zj`Mi^ zqIQ;{Za1LXD4t(`-R$;(6;+O+D9BAV{PxG}$8XDr2l)1=W2M~)?1^%0j<&mUzO0a` zN;+-+rUZm958&?-sQ#n+M*H#e;>%aWPs*}*#3(9vB8Ckc75Wszy+j7~t^_;TZVw3) zf+;C=U;I&4)$E~!`-vlFxh)HRYhbS`1b;SPJ|eSJ5wg5i@An23juKzeLUxN9$wBwr zhDf7?c4hu0z@#Rjk}3L^aED+OaW5EjHYLrsNytzM5)P&q4GA<2IHuZ6onk>p6?~a> zy;V$tOQCu`FF;og-Uv|!OQ8vWRTPMyoRkI%(?hilMCox` z1V*l+%QwD8Hh{wP@(lF~UdmlXrA>ELS(j|bJBsu1x%kT%*;gS(>DUbkyw@=>RUK9_ zFrRht!g~yh7tXbAVW38HA{UKas%@aYW<_v}#_=K&0nb8Laxjn%!f&XASCQ~7@1V2O zg5pzA0y{%hYT2;w(nB6RAd0&}&8I_QuklEsG21#~`b4%##H2%(ctkd`1p(ob5TmlW zq*>26TKvXECZ_w>RrvvjU6zgv*b5E&XI0YsApywz{F|twyPmDSJg=F7q#Yh)y7+@T z-&hC-#Mf#MtfyNTs#(h-$UFcV6{3k_2t#`?1if$`T|a$$@XNPK_7hR&zB>VZN({%` zJP~D6^0RIlA1g-;qV+;$-pXR>!Dm$<5jFtp=jZ7#;8=#i;^gHQEh<*5~o>WcdjtFzK-D_T66EKJOhzEo=abboE zjoa6WCj#|-c-CmWc%CoUi}FYJhB96+u9x2_K7I2q0Dx5Zd6cJ23P{kCmA7Z5%xlZCD5#}rN+YpZ8SAlJI(B3y;pa}37m%A*fhc0d5n@;prM$eSpB_s0^P|lrYFub|Aj#1MjTA&5V=%zt4EXUaF>zX z88T9=3|On$i)vir2r5wEa7z`7)*^Pw)$E4g^HW+`8O};Wo43tCZ7(LINT1AJ~R*yqS+Xt2UBB>sT z$*y{Ma7Lb+ABGG9BqIOL=IxJbybU{w$>1Cp87B3Mr|ny86FXq(wq)G43s-fzCIqvX6$0g5A&BBdnx zq})fJJDI zkU00ea_1hmS$}34YThtR`cz9r3G>R3tqB)}nkp9pxTx^d@_e) z^J|QPGnM>=9H2NoYjA|@21J(K$sLt0+p0myofx8)>X!7!gjn z*u~%-u6h}LzpQ9AO>AH?c0>ZX@9D<31t-Q$>_>Hb6FagEE5>m!6_!EF1emh4?rcG7 z@Z<1o?7<2*n3Im=J7Y+~HiB%*a3MmHTx+67I<9XM~J!lDm_?qp3^)%80m5n~@ zNYa$H!!jJEO_OD@dQwPfes(S;p`cMeLD~r<$uTrEGDdB35gzQIk5>F7DF#{_eS~O3 zZ^#gOzYMR+i2;IW*aJ4GM$Z_ps~L0RAUerXIDQRZ)(3U3}zz@A!V?uK5HkIEZ>z>lOEkF24k&jAtgny zlO@Pn7lf3d(@G>=p0>3iMVvMo$;=GPownHlp(C4yRs7TuXhOwbXvwZ( zHk z12Jjc_-GnCffd#dJl%$V!lO3?9My)8g`osb$LDG*F@e*Xc}_tsH?cv=i89;B@+Y)}2D1fs^THIp!4^6nT&+40gMQ9h`J-v`!E=kzJX_%t2vZ zjftPxV~Fa2pwcHDzKOPJmOU|3IbYEMd$~rLi_k)132K2ekJdi$rvM}jlGNk@Hc?!j zD7b>z5Zs0~J!jVoaq)!`-0EsIr~!gapg$PM0y!O>LMBzF{6gfOscShZ8$({iNb1fu z3aOF|2C^9WLT1C+5>=E3m^Qr9=p;*(>wG_3q+NYmB}qwx6f&tY$}YW_%(>0(Tv+I$KT=wqdGVNQYkR%uDF)k%$b8#co0rCU zUefGD=A4a^%c>4TxyW7lhrTX1w zz29wCVtGmF;6y?!S6h$gJbo!b*US^YrwTSnW4)CIOVc(EE{!~OY@qP6R(+MDA0qQ@ z(?XW*M1`|LR3=Mmw2Q*LT0|X5PDz7Y!!q^OmW)umZ~j=6KjygZh8m^y3fv2ixwf<^ zKNBm6%h<|@~a|ajFWgHF#$ zjqAqwz9XEbY97ki;%4`RqSt01M2I4vfvMw<2zxmY=ih|kK#iltMAQkf35>+&yA28- zObMp4(IEt*BV4h6t{|$-f;$M(P$^~tKy50jNKExU>57)a65UX@tZuhuz(B?TP%&H! zgjv=F1c87p$qa6hzs?|$q-IPivZl+~ims&xdjBRrn?65%MzBmYoSZER0aH8n>Q2Ao zd{HF?y3YOwuA+VXuzayp$gse*^c6Lq)ilopMLk|9Rb7zvj~Emu z`~BwgZ`U_P@u|pe23Oxi4eifs*bTfwHA4wdjQItUGVEdtNz{e|KQ-@d?G%bxMxzsl zJTz}GW+>aFaj$z?k#WEKtC^~4H`XH7ojctO4RY_qTWn;0+bqbRsH2JYt2?2`$jV;t zoxx>pteJxW?BPVb-qq}DF{^{S<-s4b-M8ziMnlzoo_DiwB5&duqN#STT}dLEzk4j_-{4+aL}C9d8*|!j zl_!#c+T$s$NGOQ{Qwj#$j_H25oh^40GO#BZO=GH!3#QVQdrNk2*+w;I-k^OoE00x9 z86kOOoVTod$00BC1WqNrShd6iIvEFA!48TDxKYN8=?VyglG?v&08TgyerlMTn~Mi}RrbY>6!5}MoA+z+ z*}rAahX8md4>ZO<%DFtn{KTa)8~n0!6|?y)15+8rXX1%6@7L^+(93bCly*e3*R`8$W$RKwg^^&l6F+Bojdg{rP&go4q34 zf?vVbd%{60O>0Nk4vw`gB7(8!N+3nS5NvC)3Bn+tSm__g-#i}qx*FPv$cxhiX*IaV zTb1p`KH8O}EM5m5&Qq4{JaGS8+(V`bphuP1_cs!)t>L2QCGD#TokAXX8{BUI@S65N zX4U6)Sw}a>PsYlEf8})=@30QW%V?&0_b-S#B3g>bsf?irH&@Ob@tDGCxu_=_PRhj{ zM%)knrn_T^!3XDc@c8%D<|{q9V)nmnbSV6!77t3<@|&A(l>K8VO(x(lA@#iH50ZM}P0PeU_N zTHck~ssjm!2PnKavgJ)%%;jpYbA`@O|tzN%YXmrrXtW zUxSmMGr!d*ro7`coga1jxaNs--WBH zRAJ<}H$n%^=wdb~7fTd^#2NT(JuffE_!~LQU5mIMhcfSQk0H4lcSoaTNT=c{J(>-N zM)aqiJqHj`gG$d+yFc^n-E1{~Ug02_!Yfa+6?HHk<~7nCo)D&b8jq);OR6?SgsY5G z>+D=?l<@|UoP8A;AZ)h8M##{Y6XdE{>R+RQv@molhu|2fX^QU#71gimbEB`!4+h?) zdbF9Mema`}G{)dND^N+fobNMas9;}-pN1cvl{3-#XnV@lfDx^R#7FsbPF5 z8E3@}S&bHHf?IuOF=-={C{2nDV+Vw+n9--0e3af*$bfu3T;_=J==H6Ja4b-FyiQzI zhYIu1BB5)eP`#HdiLWtw{dw5KQ2XG|NB5;yCQ zdwKg@J>Jk;ZZsBp3czm&*AMct3)rC%SC6x*AP+3$sYj=j&_j0iVTIPnbzRuMK7wSK zxSRfua<;(JW7HxwLdeoB*YFU&e7vK$DE@`Q{J*w(GPX$&^7peQ5;f6+WEbyn7kytM zcyPZg7w?z%_m&4_T93eRw7s57u^Ady^BK-Yj6IQeBwdaFR*t$1E|YVF{2PBB^xzC0 z)Nh;3N+uL)FW-7Lqp`~nd$;p~PWYXUBWJAHan7&Jj?2&9Z=P`h@e_(l3xKS+zc)W#N>cpQM%B|Ld-t@JHCD#|Z_Vk)4~r0Ay49ec zB+tBP2dxE20=-KX;P-R^es7~XWDQL3zOWK_*0H*^&Mr-ich}Q#5|+h>HQ0$y1k0Y~ z*dtW9*;0v+0}Z8Gvu4M(V|a`~ zU{V5fn8To6NmweX7n08MK=f?%ujK+&S}Ar{s{=#NuU{47JI5`7?}Vm8eZVkh9;-tk zT$sQrF6hn}#>y;9!nTKIL?FY|#$YQF!Kfw6FDVU~vXj>pu6ew0iwzFc7yrli z$sE6Db6iR)aOV=1Vj}ir^ReFoWf$`Cus@NTu05e?)jjm-6oH`-Os{uNb8+5PKUO8S zlL0bpP0(OFql_(BKqh0C*aOkvtHN5X3>)#TR1CEW$Qu0eLbej$`^|CPO+0r;V129c zc#mU#6!nutx9F;7d29*hfG^C;kbeyil)>L6J$1CyBmRK9C zb`B_6QK3jKX^7cS8sdLJwG=oa(tLA~H?kJ5e27=(mJ7H;rpXdHnX*q>2$;Q^pZREs z_On(Ka&2KPOlwIv983L6E z#5;^8ylRPPhcNHH1W)nRTE->3WAeq1uC13pdLf-0LIFvSN&e}3WfB+rb_Ps^T4?c(lj?AmU5 zPsDwt5Au1R=A0+;@8Tq~BZ+>pi1it+Ql|#UMSYKIwf`Yd)y^>{F-Ea4r`nBdg$}o9 zi4FNO`Hoc>x|KsvJvGgcCe-Ifqn!_G<#qxY=9&rQF%wuw(d~7Mt>KpfEQ>)=z5KzRhENsK`+$QIJ-PId40xh z6I7AC4jv+uAZwpnl)CtsH`xd~=4*t0MQM2Q#pG2j`(*Y^R00wpR&Q~evY{-SgFvE$ zqGMQnj>&Mi7$m-<01JYa`};O#=+6H|9v7ZWo>S@i;t2wR^6!70j<#Nhl!w$uXn)UV zC@iHaH{8s=mbhGFSQ$f0qi+ZZJma7RK3EJemjmF#^Ge+5dAE6@SGp$mI1ofYzkdGC zumEho)pV8ttMLnfDegffp_B=418LA=`DuWoIQOf%Rv=A;=y8yD>|_TlpJ7i!k3|Hd z(q;pmVIs6c_QgJJOcNkLr>73plQxI~CcR^qC}Ya&cs(Ufep$^oAEG^!Ou4V*9UeF8 zE_?^#J>}?~}a{^($5+TGsyOq_<%x9qx$sNSp6r#Bs3jOf&h zJSf*)%(h3^I#cZZ7+YdDjl{|zBhAu76?)}ow)|^*RH3=d7t}O`KS~!1$ZuB5X%E7g zbUEud-I1hKtI!0|A{mZV56o&&m$Af>k$BukH7n6eXhVuS2@&k5j}XBNEbZR$+MP_q z>c@zsEajagOd;A&-h+&PL=UNSdrE!a$`TViopevxQ=hu+I!cb=k3|&Icf~!7WIr8e z-BZsHc1?$aDz0Aw%;(CDtAlg7O`$wBj*W6(8g6f`N*o zS-Kh%4t9lLqu#3r$#7cvcp)ZGc6qL8jngZu_5vN1YJLyEespApDe|5*x z=))M`1M;jWGNgTu=8{EaV1TpIRmBzPpDPkw>2{bveTE5bWm9_`D4t(L**2K6)LT zmP8RduF@W%vNrcMQIZVXH;S@|A;wR{_ZeU+de<#_>uFl*RyehVbugfJ@Mrj6Pb+We zCl}Yja4!-sj?nt_uSaAxRa?9uHTGXB&ij!HFIr)O8Is*ZsxE|ohg%j%P{YOEu409# z^pfaOUYLbIoazkoVP`+`G8Ac9kWNFY9QVt&`&Sy@){3QkI^`He;e3ux2*Gf2+Gx8A zdx)ffOKzF#0tBhj*=9Ob$5{wcb>I?u6J3FmN^d4i0=9qo3y&R{JL5gd4kIaVBW^%^ z)+kIfAJ8GT2ycs0zi@JOxnR!crz8}^6w_U$Adt7otSQZ=QScK5-p!LFSvOp z(lT%Q}SyiK@4@PD%tIWm+ty+XmFa=g0D_x?-y zgZlp3c)OWDnpMy6Bucfp9GztWK9RO&@-7B7@;$BsKwgo(je-a?O1t$j#*KK|%QASN zL^coo7`h-CmM*(sf;4hOCYF>;9=q_5T?LhAE|8NbNKZh>X%D}yROPV~sH(-2>PjRX z5CxaX`gEw4v=SF!q()bf#}u|DTAZ%uTal=;BwOU;RultBIb zpVbC84N$TT{brv^rI^()dZ0C7gqUFsV;x{wBSg=ny(8U({R>z~}L+HM_7k%{ScC)@IXD{$&L>8vc!_@x4K)x)1 z{5#Z@!4;?Rk0rgfS;j0$3r@qIZRh6t%iS?Dk+f)SFDiF`;e~Os3wEKfK&MLp z&&Q)v;Lb!mRn0&Qq<5(G1nBair24+;&Lvz*GBw7rIm`s zkAuv9ilV=?oj{Hr9esJMy{|jOc~|f%jd8VR(Kg>fL5YZ zE5NPf;uHj(F&uza`!Ie4u~<}_;t{VPuS&9qtQ9tsor-WPuE}M$86mOIHp370u#j~@ z?`G{~Pcuf9Q%ih~KsDb6@;5!dH;RWRz-ML&=>+nk4T5e`6OyikamOXx2-C2w7s42{ z<9#s3OSullz-hO^7(8pO-L1w=`?WDm^c?dL*Qsffia$MVrDBBvu#C1=4n4G zE{8OsM)jk?q0chYE`*)suoC1HNFT{AdZ9&DcX+6nfxKJN6ePQxEsDp@Tvld>rNZ+O zw$;}3sO+|J-N#_AY#_s4t?HzG_i`qyeu$bG-OhSB*}(0lcHvd(F^{8XE8D2{ql#`Uxu5qP@>$JjbPCaMvHxAA%TeL{#y}hE#)8 z_{qWtm)<+OpI72X5#jMR4XK=)t%2gYHs3{-7J+1Ypt_Ps(<<+8hkz3CSK{Ic_v{D zgOgL*O5Xr>;@6_wc~_OE(da2ng0emQrEQ5_l=dOjlfswI69P9{6)39ST)k3W32l3( z7B2!gwd+TX+V%LQS-bu^v3C70EcUOib3I*u$sr-cGjv#&%0E$uPeX44;QHg(^D4kk z6ysOXiE>c+6@#Cn6Cnocgk3(h+^1MEH52+HAI4v4vKN25{nNcQnGv78DkgMfu-w0j z$3pCJP7e{g&xQ=5ruR^atf}sjs&49uX>cA?2#4YHqoEAVA`X&5OZ6(|M~IyQX>`0@ zr3h|et4?9?KJiyYRKEj_U^H}fYI`Yf3DBx`DUfSJDD?{mvs2J;n? zYMO`lJu#Vcd&|N@#uZUOcAyNMg^QEA#G}C0XmSE)vS@;=&x5BFd{YU9NN}8hqJ!z7 zD%DS@g2H79yJOq7AiomLC4fzk5vx^CpnWiG>P{-%p`z3O_5n}Ty4)viQH_xjDB`dPaFC~&1QCqQYAEu(;V4@bjI7j}x#yijA)t8`*Hq&sDmK|?m#aTlu zKgZfpY$}w!#z8Apxt^EBgE(p>lYLeo`MGfj3w@Tmd&(g7>d=ud^HWceF1xZKdEPj$ zzgKp zQRD+reiKXh-_Mv#2EMc*yBeO|ASTeG~q^|NR} zvffn4hU61y`c1N4h&T;vp5YSC)AqfH>4(=)9Ye-?Xrc2EbU;#Q1($eD%LT!LGDk7t zg@|ciQQTXGyvYpP>E9Nl>!#WtohIGn`8PMPJl(%y9Qa2}K6)rntm}S;W8wvc$Lp7f zAD63zA0G3I@v0WP4Hkj*reUh5W$i9@d?FSo~kJ z-I|tce?A;);h{V0Q;Qos_7Uimo9t4#xXPj#!=n4oq(_GHJFTekEVA93ndH z^Ii=QX96)(4Kk9?rjgmjX5vC5s+YS7?OhNZ9uzQ^P6r)G(C5;#q$ zc5Tf{oUm83huWlvjZ}uCrFzIr@Qf<$y?v5<4MHkzeEV(-U>r*|w@x;wYwK8%j$8tc zHQ?FM*<`Qad+y~E1VZ!O5YqWv;MUW3nt5ql3~=VrrlBmOk)ikmydJytE(-H%Rl|t% z_FV6)IzTgr*4CVf)<`b?+3fUuW@9j?R_QJ_&-?kNnRx=|O_b+$_!!{KqqQ}nZxkO< z&s(24Beo*gr%XH9V{L?3uJ*R$si8%2pFA!#IP*wryFyIsN}(=|!n|7BbNQV%^yv*U z;h9Toi*g#9%qgu&J#eTl{A__b^kQv8QsiESD8w66{)NIBt0HXk_A?f7*E5DQg=-YCLj#*-5*;2d&Gel)WgVSS)4H`8H_N+;8P?X(%@@V zKnw~yXlqD|2*e+=<$8SU*DLn17Q&QVbQ!m}{dgM)(mQk2u@SxGNRQq3?9`O7XVbDP1@l5V5_JY%Li?q>waPN-2ejRW|G!2)1H@nyR-Ab=1Ls()` z*>wHk!b=K45@1GKe$7G-fu^6Q;m_r5>+uhiIIk!)faQ^7iQvF9S*{nf&9+4os)^ub zSCSVuT@(&)#TrU1YN1AG%zWLVoSqwEXhaY2Ofv-!0>NC3nBj;P&u3Ai#7%R7m!OMP zNk>t2cOpndM@Fr!I`57#slIGBdyUu11NB0#zgC;oGrdf_e+<|IRzQwb3uW%HgO_Iy z4IQ=*4SE1OT|hjsi(SdSR2aDUj7J=wam@WvBDB}qzFeYz*sK;PHqr*3<60RN7C^X#gf*3BR6R=b8wUGyYq}vP2}Sq94z%*RSKh$K$Yf z*pF0Xb+E(;uW3!NFwHEhTP7MSB6YJVPR>J*F^9n$JnZR8JzXTzb@BM*nP*KvLTi~8Ss~n)d-`|nAZ81@VujMA>R?-uINb- zG3cp5P>8K=?rnf(Ib4bTa+U}#PVpjI%D>f*Jdy(ZO3LaY0|dcOK|)ObMrlyjOd*p6 zgdJ53*p{MfKpKHdaU%q=5R4qMX?Qb-j&t$Dw0tQMI>HHOh`Gki`r`(TCsS|n%d_FT z*_N(@BV7ec(G!NLUsqnh#$4pycfo@r$_toIS3E&&G=WaI{6pSll#Yp`_lII$s|nd9 zSZjkvQw}5|tNwvXF9%7AQt#q@s#}q!;tCofKrb2_El1~#yAUu0Sdf?jt!Xhuvjb4J zEHQcxB&jk$lP*uvG@O#paeGx1)rZN=cr^5G6e!zqhU<)bxS_&4v>_n8NC(pYgFOh{ z6veD9W)!dRYg;_DHWAQNc#bxg!SLthlrE4HVGVlQ_Gq-8I6ib(S+2K(TwKI7s!&y` zGx7AA%ipi!n=Gd--Q5PsWPif$ZRN_vdFK%f~@ul!#$O8kRs6gRYt{ zmt!lxg*hOtA`K7$5JB)7Npr|Ndbq(!$Zobm>%WJj52GL}%TgALBeR-7^syCU)(R06 zjJdpDhKOWW*z{r1u4XIQ?A>lAmT$M8S@aOb_aFv~LDQy9A-5lc&9R5tfcEWsM5d}g z*IUXFqai>)?KUfVw-1jiew_Q$K5Rl1Z29x0Dic_ISbAaoH+iw73%PT5h5^5@| z9IrdC7fZ^;Q2MU!@CvHH52>bpPel$#3>osq9a#4oI_3E6sTilqt$`}cHmwlosEeez zsMbnAnZy+C+3mlG8~WEYI#ih#QDe=E&cPrrzHmWoy3+fKqYW#$3paLR+%@@-9;z?D ze?T$473H$PwWI96Qa;`n4fls}EmfrO3hp0*;srg~uv9^xGJ+DiI}t|7>zC%8ehT+_ zW3zRWi40Z5gK_Xd1Kb>dtW9KAO}DEhT!;OJcu}Y?42_ahcrH@E?R`r}xn+L-7j_-@ zuj-|43BZ&n3W)!Bi$2|NSCcu8DzZ5e)+u9pxvwU3dMaR!grl#MyW;MwxXTKfX(PPR zPRPZ7_d-)ES32@%u*A#fofs;d?%YJ<2)z?Ojioq#f}{GdelF%eeyq#M?VLQduX3L4ha5_O-^LM?z7>dyq}?f3Q|m0<-QcyozFxxV8&-=OrHw$+eU$=AHT?X(Og z{Zg(Z$ET_!CWRbJ+HD>GIW|d_b&7n130$A?_^v?jLeu19kRufM!kB7w*3Q3rT3r&G zR$o5a12hKKpvlfxHlUsPa=t`F4Sf#cu#1p1bc_=QkMO{yEOUb?f;cZEzq5zYQbjSs zobrr0-C;vpiv29Y+t^W#&&6NJp&JDGcEJxzVV~fDAr3*PK$LIW5`yhSJ-CJNP#3V> zsE776KI#P9je2Nf;-gNmov1_a;(l^AQs=Pi`r6|J!yph!^l)yalPXpESWuABovSS> zx!lS60dV5DQIH+lsGJdH!}QFy&Vh+?mk~qoY2!sfc91#J$6^lqV*!mGXeYxm!O0mS zx{oa=BJpC)pWGOGA;hR~l=rRJZeXBa$2n34>Z#Zdk@+@zWyE$Pc&4XRIh`KYd(%$`V4D(fJ|uQn$kI@{XhgB-umJ%8CxH_32ty8G zjzCDuHH%2X^AsY5<&{vHVs`7a=?;g;%>a6C>2bdZC% z5{y4Wh&p;ibq^_lMLZHo3xe)d+9C&g`^YSGTV|6!q|Fi1A74x1j-5Us`2luYr+k`9nea!fgEdMu?5$x*DaSFh`HWrV>n zR_VQ?l!)b6gav-C03JPfgPF%u%yuigQ@8sq7;-z?;;P4MC`X{)tfhjZZYjArX3!Id z(9P&B9R0yVsbd$NP`dLnq9kdY1OoF(ZPGc4!=O>OvQ$G4Ear%CjwL9C);wyY3o>Cn zwj=f77t&>fTR&}T&&pDTUlSNm_D&2M9L*n5B7KvcQ8{_+LU6#2tma}+{FP^U^;+S+ zcQIdKhk`V|;&M?xXf#<(_vhkmqsh$*2N0|5O#MR!cASj_ITSQQm7n0J0xg{bZWVk{cPKEe-U^O`&+>N65;1OeICJqa+Av@Lxu}OPm zKi5ML35k^$hY{VY0e41(Lqj$zFjVtGjZz^4fcIDO4e(-lKl!g}2W(WoES6Ql1N;tF z;~Y;EqVyAeHKzwoji4R(l{N+S*}6Dz?u?}P@ivh+dGeC>N>rivyqhd3kPVjF(aVLSM@KA6Cj+iG4VK2> zqn!~?scn?%5*bOI;F*hVOcIkW;LJlsL|7-3EIyviA8`Py_Z;5$LQ&69`q3h~k8bwH zybqxlmNLs^_P==0(-2kM!$D%#95?&$GKAWejxWT5rfv^48hrpcmeFxSnj;qPIAuuWBt8XX|=bhJM)u3=*s!pNbEefH6anjAmfBoxI9=gi{y-!Ew7XA1X@cH-Jz zfdYZ$u7tmcw4r)s{VWZ5XB5SY$Cq)gPr8+7|Mtmh2!v@xsyC02oLZt%*Jrh-8DNKl zUWDK))S9CHtb5gjWXkBGAj0q-cX7!Z6YnA?LMBnx(VG}mCnl4SM}W2ptCb9@q)pGA z6M1RML+ypuohKbobWah~Sp7J5ZzOS4So#6LELTaBlzch)=NN{i;I%&=;7LFX;OXmn z|5)yqa{>~tdeOiW<#FxQmapSKv2}rc6ctnjNm_Q10WrNQ_}?XbgYl;fMd!p#c*;S* zx!F`yLcaU!R}jvU4Q|Y@Ad{moTw4_i`}IW2&gA`U>VCPqSN_#c8*TbrJd&oB@(@Jp zb2g4?*U3}jIAnZ*f~qU>M*oRbKs+3RX-T<_7sZ#aNJTD7BlGIA7=InV-+q=0(!Z(X z%D!Pq4<^XHh34x8v(7pGb%gm<^rM&kpRAjJXW^Y8dU~--$BWld1{E?Iugr|bpD6{8 z6!>L7OAa%B?K4?#&>?O-{HIzKK0*~cvR^|K9w$F>nA8V`KUo6S#7~?t3w1f<=joyr zA=Oh%F`T%_NcWEs8^jI)4~3)L1zl>y?eOpp;DYWo$$tYo0CCSMeFyMXg7)1Fyp?>- zoq)^6KPoDo;uOP1A5Q zx0o~2jYAleRIHy#$g@9L^~Mu>iENhFFrA@+Ay*+M^Av$)z8U-4xz=P+c;;# zeFcAFeFXeJ>1Nx1c(d_y$w6KmHu#Jdc%k66@MKpT!NKb+EBN|QFoftrHCk*^%u@*3 zKrwna5^D)?nh-Hc*V$Q$Xbx12A|0hVPpPASTf}WaYVga>QHmDfEG$&=Iyfre6f zfMEx$B#!P7FovR!l?$H4BNWW`F|c5hs9)P-uB`z!bP|V_o^9dSf}JG6HInlK)7hs) z7d(x}pc4xlnmKUQ1U8oT=_Q3?2N?z9bRCB;NWIzN>`@#*ig&=w6Rn2zJ%k|3c_gZo zBZla+@Nk-&{(h2bnqg@#L}58R0jU=+(yVjHPkE%bACT`LgL_L#;t8IFA4HKQg*-A< z>uGs-f)=8YlruxM5jIaxn{`2%ER%oMIU7b|i<9|M;NmCjH8Nh_A)NW1V*T=d)h{ev zQ-j$+rTHZ08DYs7n`uN&>QSd`BGRBv972AQQaYtkuo{0+5m}emX}4$8K}}Fx=cGCZ zjd_CQizup0N2~Ib{A!EmzlyJT5m6t$wgJWH4Xf|7E&P$7|7!p+9f~?w*}TW8>|mPe z({c#6#G6oy6ZC}3rf-P&Oq`YA=+Pm^QHQcH$|)iM&(N`c`Ox4$bStQ>_Erz=*5+W8|P3T6sI3s@`UtW zU5PCGk@11Epqs4n<|zNg{>}j!`re59;3pH`&ehlAEd(p#^#l)D=3hp>Y6-Z3H3jD8 z{h;x%*18a8O9LO{_=YB$_zlf?K(wX;A2oj#ep*cGrj!3b7k_IdW|T9dk}cIRXoXJV z&{T4huG7=T4Pd?58LZqLCtTK zdK1!mI#e!W>>kvI%{Ajda(a9pfsoc0k1N=^9_pvTf364rIcGG|23hR^k4gFHk~b&E zVVbb#iQ$ek7ZbnR5{C1)-B~9+M>>tQ)IQtMJynxxk}yB`r8r>hG}#^21EJRS5V0v* zUm~nEV?@+i^$!E*qYuCKewC00W%CPT!krHkNojXN)FP)TL{C_IXvstQsFJf`KY|t< zPlYXAk7gTjF%F{Z33&{Hh8C4Y?m^bht2zdu2goOoN4T}$0~1E9{6x>YBEw+er69R3E1dMS^Kgj zLlaGt`TOcROd3452G+M7BRyLa;@EkWpr6!wdo}5V!fi=pg@xx!eeTy0!{DUtzR2aN zS1$c)be#!9YYr44V&l($(cj(mpr*+vvF`>IWqcI6^4EFJn;#6kOLfmcUPDu*U7zTt zBd)Kbe)N2w;U*A*9{9<+rbhQ3aT}iRDc~jpl~R^PrkVdK8R&MWJ$<;aSo`%(M9y zp`m)1V#}K2NQ#QQZ}lbD;`{1A_WM@`2z zVl44n2NbN6C-{exF=UD~!SrC-!4ys9ha^b}voDUA>N4Lc`XLm>i-vv*j;cG>1)O=H zGt!voLR#tY%q2RuM-^4qMt#YkBp4iDq#qccCFzt{GGn#qvT1;orSP)t*C}t~076HS z%d_6~5K2%vl0IiDp_4c){5PRo8#;}HGu_%) zIN)hK@{3N*aKO`epoDHGCN6v`mu@3AJG0>vxpdPPR_3V1^bN&p8>g+?ZRkcT^uFr+ z!)k*|?(2tJs)c+rp4?O3ZqX1yRJ$4$IAjy`nRo>{kWv@PFdL5~Sqi1FWP$@%#arxs2SRaPD83jN6|`ygCBE%wG9>rJduaJ z1h(?9!P9u;wt;Np5dpU!xyIAj)90`9A<_vQ_=u&@JGj0gZiIg+ySpy3q`XmR?f09{ zzg^!H#it^p=eAv%-va{{7wP5*915DE4iC?!Hkx#+)h{NI9I}{A^$x@%NXCPE5H97x zJq@O4PWKnMS$Mx(;kjYN055U8CjW*)mhvW18-${S;2;|Om$>944_ypJh^w8u4GsEZnhN;W+%9%UTpD1o-bXvDTAJ+N28^rgRQ2TyYw=E5w7*c zj&$8)*Dml#r?s*^X`yv0*ELr&U!z3E7LIhKgY>INqBLWugJObu9yw!Kw_excPkD6d zofB<46%%ex`aEe^gif=%fz1-M9mjOjG3SBlNzr%Q8a-zvj7{SYK!gH&=*l^Kn{19} zFj4+=w%k|bE72>-bav8=2C{~fg~_WmNYqc>zQgMxOX$7pOAi0K)tKP%2$v7+CjRP-w3qv5PKI8`TG+iGaV zvq{PuV}Z$Er)R9;a3lY!-c=r*B)3*iDsgBCF|?sm^$1eToXE*FZ0W(&SVA@0%>ghB z29+XEQHt4RXfJJ2bfB1`R+^ri&iYaN;p_u;vbBuG9F+;Vohk2Yv2ZRhh@Xx$qW6k znmtTs$e)MJ^*-0pS}FponyB2vSABmPcT)pqL5cp2$K6ND^}vf_x4L;JA$NTTRKMJbN#kaIwf z4pfxlAc>*_6{VObwc3GdP~@d!aQ+X}tXY-gAM3|MBQwGx!i=w ziM8D@}x@y^{E>{2<9AcA!{xAH`7;MF*-uvGZ6x!!f7uwB(CD zzv0@4c;ZKRp74Lw+!$eQoF8Fs^x+q7rN^(g-zTC_+z~1_+I~ZbAj@g^@-b(^?@^~< zFelg$`-miltwEi;I|q@_vdoMKq1KprV&s#q?X<{;L)}WoE_hPZiln9HEqxS+Z^5aU zL@TtxK`UNdt6D;Q6lB)FM!O>ntvL`q)&>7Xe|JYoO_Nb#-wi6N?Fzl26z7Aob8MAv zM(=SCagWQ;c#DjEaa>%+`m67dG|&Psi)spbnji2`X$m=yGGYTk?Jjf(q!qd&2RqR0 z*0YLnYhW^G!+g~p>bF$RN521}zk)P2(&qUHz2YxG2RImM%9 zvnQ%x$SDO!j>mfF4QM~hS-UB?3! zscwXOE84Kwh=hlim5?~(oHb~$G{ypx)_?x>ryDMF*CsHHK+{5Y!0XM`Je%t(G2=4# zwo~Vp7V$Jie1wLvI2uX4VAz{BORvx2yocK#`*1+){8qGsO4}nF<*uNko2)2GQJR>N zLH*4O>Mv1f4IQ70G!!q?Y>mtZ6QtycpeF3cL`v$4uf-C2O?H+XIU1MT6 zow<4Q9`peB@N#k?+OkyDl4WfjuN^2S59_Wp zSz6!V&$99QWx3m|pRhaOT}i{^vbNely%>j(b89l_;Up3|6dpdey<;s7_nrtRmgzjxYaL;$WHSGG;=~9(t zt{Qtv4kvAiwggu4;Zd~I*vXhut{^YUOK_~W@YuS+-VH=!xIZ-=tpofrwnBvDF#9BO~L!Dl!3in$Iyq`sg8DE%ZKG!`7B8rRgKe?+i+K|7oB)1 z41-fPs^4KLxPG^BHsU?9@T-6WDLCCEeNZRi9~o}D7RPmP7~YB-x3D=kL|V7ldw-&% z>y{!8L1^Zn4|uS$B$RM)DfTbm5TK+aGm0jhMDx}YJD-pQF1;pPn)FQzT?fCJvX;a$TWbS$cxdm%66hN$GcO zMdQRVaFT9z37mm=+M}<9w(pqiV6~w|+v`VGPE(+zaU{hLLDT!qt|({oM+$Qv;s!Yk z^<1~sX#5h>4d`zW>VTPOSyvWKt(CSzL|+<#-_#O>p;aR z+Lxh26m6&|MH@6g&<2Xq8`?=80fG(`Q}oS8&xF=_UfmFwk6wc)^{>O~n2_c5-jg7B zbPk@DcvsU7j1zObx>96GkLaVYPpA9w(AEo*ENgS`me*H=a4+b=b5CfwOus3V^`zC1 z&a@(VlJyEh@eb-HJI8r(RpKrY>Mv8d7do{Xi|Vigx|OdF#2Z@5F9quFo6Q5RAl21k zs?Y1y>x52?VGLhxm$yX2unWvN9lN24R2rxodw>K6c36V!a)R_Qt%8)6x8Zc;X2|K& zvzMEJ)8J-~v-6~46Ao02BA$=*Jq=*+G$CS?uH7=}M&k`~4X`N9QPR9}prRD>bGzzF zKuQ-((L{E})8?g|d@-Du*?#_rXAH5=$4ni6rV7UJ^9W2ocBr2={4Cx3BN0+^8RC>x zHG3$<;}S{UKyE`tDGrl-DhH}TQQM2*`{$>p*FQ*uU&`uv#TN^MA?`em(u>zwAj}`( zMJUYcW5X0@nP^kFqxunYWL(H!kb)qy8oMKPCiy0WoOt2>?r{ z2DITa+ux$t#`gO&v_pOABjkcbX$C@HEERu`Qt@sEm`4192l`I$Vl#1iKt=gd?g9BK zNFGLxTiNE-282#^;A7}4L#wwQpd$Qen&>?nA@C2D;%S-o(qgE?1U^gA(v*)ODk3~d z3IZg)CM#?@K{&MidmL^#G>*wZ<1))#W%)Q z>kj)3SJ%6TXS(TAW%>1D!G9Bbr58GIQ3hC+ji570@2000p|D(;+<|?X?VoqE)u-pD zukZ^|1A@+gs?f%(6-n`%?r9f?CDU6&+AJUqb|ZSB1a0ntr1-TRgYmsb7@U?_!Jr*! zi{dD0w3pf+(+E^Qop>h%jxL1;P~D1 zB%|ohlQK~4;Qd5C{#(o{Do}*SpvoOGIcz zy1|q>bXw7m=hy4k@!#X|`~~vW9`;TMRd2^c{?3Uxa7)mUXBEo3my2S%-%a$Ry4gtS zi!^vo*8}U_;%q7&v6l{AZ)}#}L@gzSpHh>OKDR=RBx|3MR21{vhGL4eCRSt4#npdv zA=K>=3E^B0QHu(fUx$m)X8EY9A~_*cbV(LzZ}{(rljBx+GzWIAF&-NxM(z4MsSvFL z6{U!$=o8Lq!cc6MZt^qnpw)Ht4wLXknAFwXX7U};H8K|28T~HbX%n|bu_6-WDKvsBVy1CiIUcABt7}|uppZH`5u>d!9B%s%@{KDd#F{s}QC?Mp z1?iPj+#QMeY3G*>3vcDExIyzX)6gE2_hd(uifvd!${M~UQ{HLAbwyUus33z9Z{0Rr zXa>9c+@w>;!rJlh^MyfJn0OR~wg&z-#JyIvwY@;C9_-+-Yjq0lh`K6AB+l*cH#!mn zB!RIduvvn(_(p(8YIr1uu4S0+2YB=lj)ik&6Eom^zIjF+3UczuwZm*q0%h6}c(oH( zv{OM%+E24B#Aa)xm#>`Gxtq-#ufJ~A?qxY_ZDvcjwP-Nq^^9$+GB`3(L*5*3ZGOeh zs4R>5W?k)d$}(-YYMEMFqjHk>FlmaM+IES`lF|u(D`rOfj-)!%1|65AA?vZ!qpZPn ze^iPrX^V}b{kKd}m#_GB0cRdCS(>c}ifSz?laH2a4i(z5JW@l!d%(x6dv? zb~!KPbG7(C3XeuYL!P%{C?tmc&@BQD_2%>BY~G|zqv8)zl+^esm8Th*?J}APsw^MUaEfG2I!$o;N!(nr+Q%cP2)KTO4 ziYE@1_U1!Oed)23u!?8ANPR0`vF_2M;wZSNt3&8;Ml!IXPd7w1yYI8zV)6yG?#7?* ziZA}O1*!-++@p#G`If!V6i?E8ash$Nc0}kFs8uHen*>7>6y2f9(BdUM+FekY1X{5TA?fT@oBqZ3d`@b|?mHD2_tU&WA!USsaCV(H!j< z{ZXf5!7TzP`+ElxQSz`q(qmX8_&nlX?CE)^*3jCX7e%+(8CO0=+UL3& z@9Bu2QvU3e^4G+*{6-a)M(kHRa_vx>qMMASr*PC*(?tH+#G8*Ug`6SH5cHcT4h;{UdqEvA$xLOd;w3NJvkCp zC9&yZdLAAyt|xZTmOhXi>Y^wz-hA%lnRyRbd$lpnl-t`DwLTti70jj+FvB>UR?CX1 zZZAwnGq#OGyJp-DCwDrmE6?qEp(@_&;nT5r`^BI-VY9wrl#HXeiA2K2SwX0w=erW8 zmvC{!31uf88K}&g!XgbVi*wYbnkgfxUC&9#%-_eJPG+0j-A?X_X>zt=@gb%OVf<87 z=1p2}M6)XypH?T&5df3UX#R-j6E@k|e)&{lmyO&fdX;ie{FP^U^@{i2o{Bj<_-{y_ zDJ~aCaHccj$!fYk7k`}Gtgg~suK=tKZ()dTY+Twm?E2YtbicE;WbW;i0NR%tR z-Y!vqVza_6g?54&wPRZD|J;(cKJNqt$U7I;6&tPY!y?Z~Rpo5=e)E0Z;G)L1k&r_H zhHw@ScHF)!o>U|czosUS^CC{95pa@yjrggOD9yMlQY^*fIEsR$w^E`4PX}FK*(*{0 z30Vhf-TNn&R!Wx|V+vC4n{VL*wXfs%TmRbkf2eW4djHueZO)4NtMr2*8vrxu?H7>ZS07pSZ5YdO{Z;0vA!5ugOc_IY{_e4yf5T;3 z_>lV<-q#Z0U~KA=eMAISj6MzSMLQ&|=)GtFsV6^mDLlMk_VBarjvJ?6PA&{wu=bo6 z1(YIx<7m6`XRv5x`7oH1A-QM!0m1O^0sEIW0xSnbk-CQ~dSEffFhgWbJzsMJ@3XB)X~q2?KII547-=+E8pAY)*FbE>DR@V6 zh$~34{FZ6fyWui-@A(O4VW%r=fN$gp(4k}dvBU8>amzrukurjjxm&;|#;99_|8=i|zZlNBZ;sJ6wq3C#>a=*lW*)y@! zTBCZu6DGH_F(MnHk{sli>k$*3bzSg#NKsEZSrt89c#YPBr|REyb{%^65>xwrxmpRU zDYyB;Zp!mqtxZq&Mo@dSvdi4pVi|)~43aL^ph*QJ$Ub1RgHh*8=TAZ5wuk2CuW1dDRBXKj}ih z_3F`K#FTtVeoq%xn497}9|KYBP{LM28{6LWPu_}l+jm$iLe>z=aYv<)K_nwU$`AQ; zoZqe@XQ$%A{nD_Jz12klB5EI!LAv{j9d+5l>%^_AO}MN9e;Ng97AJ0tnm?y$#))Q6 z$nll8CG`kCaFRyYoVZs)i>O|J3OZ2Ydb7t}(C=De%!3Qu z2Q44)s*NmBhK!$yyirgeTh{JPhfY`9Cs@X=ERWPy%8kW6HIb1ouZB$Y$TPikUqS{3 zsBru|XPteNa70;HJH|f1*Mcr$^1VOIN9s6o*XkRbNd*m#$4j*iV-oFC1)Oo%j^Vl4 zy|yOO^pnJTV_jU-W6t~CY`L%K(k~_nGES((5sO1tDc(`O!@rfdTE|c^o-@MJ4dq)X zmb{4H3ZyNKcC+%0(T<7#(bg)lS&ao~XTfXZ?9A zRL$GI?xmAnpBm*`5fnxO>Iz*;m+;7*P^8&NBNtwAAcwXGx#P*0kUyR(U#CoOyu#cm zC)+!bF@E^>i<8+Cfr z7g_OFwP+E}X}%F)iGamlm?BvbHw|8K5f4J7H1kr`erA0qHPA#edA3Wr&^?<7Y|`f` zjRM&)YV=M7nKg_#-xtP236cHtc7&)lrsU;_+383hZ_XgGIVeekK z!oq3}h%{KH9`3_dLMp6#C<&G&cmXcefuUe3wmY~lPR~NPDq{nBplN95a@-buEgzO^ zmFaf`*%dt{CEvVyO1MWa*3YgOiW9b}D#oN{k&~@WgV~p?-43pKi1~6>+#t;Yfg_{5 z{+wQxa3@O}Ak&Qw^9YrsY0`$zQea%yup&7CJt3-vh^CRHpdcj;&^d~b8&9)HZKR}Z*g<;4K zJXqaC3y2Ex)xl--?of7>ira`DHQbsb(lexNay2`H!fLqDgxxd}ME59(fe13sE>Rc1 z_Dl~a!!pqwgYcwqcb*-f6$f*4`1?pi6x(ZLUddfoT_ZEtnI4Tz?p*;IrHl9*Yu7X4pbs99O?HoshG{OF}b{D^nHTjv2SFtvKxA4OB&8X)}8A z1}bLUK3XZn>(khu$<3_wg9|4jYbIR%1H-AifaVR$Jn4p|0~Mo)3jkkm#g$%$p^dPI zrwI|Gbe&(M-2QZ+q7<{Uq(`G&um(+I!hBe5aD{#Sa4RaG-pj*{d$Z~7z)atBxpd$% z$nxve)27;w|9+mWDvFoX(GsQV2tO|_b8jVp%O*6Y7D=sRV5Z;Rx&`uu`nE2B%iNo- zyOM8u_M$`+udq_g5lL1Gw5bYzLp2iojQeCmLyI8(G-ZQC_^ zZJa26$2|~ z`=Z2A6g?S4i_H)NuCK9U1>`_8h-Z7!7H*rJ$^Z{)iuy)4k#W6iW ztDy-V`<@)HezJ7Wh3Y!ix^w8)l0ZU}9EGjPRT){;v3bIjJ{WNL;?3*o!r zxVF@eiD6rgc}K&A5*?)XjRumTI1OQs+$goM*;ZLr6kE7uBB#cesB&TYVjs)b303qE zHC9nA66s9>TRd@qdjWO>PQoGF5>p=5zuq+Y8sdL~rl}(77z~$jH%EJy6oRTNTtu#a1D2SSck^MQ=u8myS6w` zKf)|G{O*=D+cp$-3iN?1c0baF>`h~9lZ-8Vfdwg@Kp#1}uWH@I>`uQ=D~`Bub!*-c z8GG7|L?9S3nb>pt5yyfkr2>m2ih-%Del_A+V3~T$vKc6sC+)wCvmHpmBS~$X;UCa> zQc;S)9@SBuh_oiLh>qkUYJ5ZDFe0t;I^k2O6zrDD4UBp9(DU%mb7 zB(9rFtLM?W#1r>g{f#(^*FUFtCB5tA@$~Bghw_mo!+Ad;AJ(L9l~1zn&D?Gq_r*Oe z?n#%WZgaFc_s&A)s2*D%f-uVs4-Q5c#ajO^w)A3y>#OnH)q9*&mAAjRctqk#e$I68yrY`A zl6OvzIUZ3ZFPZnoh)vLod}OjdvOJIk%hH%$gUf&5CeW&!mXG5f^KwgPWYuK-N4bC8 zEGGBU=dCF7OYg}P!nUITIaNcxy(|8JPxS#?=NEdJg{Ix| z?weL72-7-bSmF((bFuu)s4Va6Zz36&r-GgdBg};J_lR4c17vR%j7$>vAM>Zj=A&ka6vBuiD z9zGn_L?Z_w4`efRr_xiRK<0s5hdZ<^Ku1YsWiWUfhmjI5&6tR#IMUsjr8%tYzv%C7 z&($w5cNwlND9kH7GM5R%u!do3jWMUhaEI5@pDGgpZ|4!{Xy1TQd;%znmo+w)%a+?x zO#p+=J&GNav-xA|VVChH_N89%^};yRbtR7bBz7-us)fko@So%O=7xQSlZ&hiao&rp zi$Pk}#UW%3nN>91M^2eW?fB?8WdeLhF4$Sb%iqLU`jETw?|yP4CRU0Dk5joOs(`@3 zj2u-)_|Y2>gfDTYVU?~IMjn5%Ulrun4 zNox5^EhIa5)xJqW`!~lcS5o*xAzmW&KCm^8l7!r!zjiUaQJffeC(42z=;LX6IlO_- zc_3fbc)R!M<8)L%^biI{JDUEKkFYXCdf@nc(*(@koP925z#)u@;Um*urla|=QIWfI z>EEK$`?b-g9+5rkz*zfzr|2!qhBit@gjl94xv4>3U;iNT+=jNeY9B5g5^D}2uiMbo zWQ^vjMh7N(=Y>jRvjlo1;B8AJyz$AScT9SF9ywQ$^pos-vAn-8cO~965wCF4?a_C| z^n-I;@b>Ik2VFZsmw8Fu)yhnYZtF@9F5IHFx$$w11HcZ0-GXN>dhB?oxiOfGO`cY^ znK158c0V3jmbq0kdIq!#-9>>t$g<1{o>ewpzbto~^%FL+2pO0qst=6qWxYrnvU^6o zMKaNkisAI&=5u;NzLS@=k3b(ex_dI+#OzMLPb-e-q;zZE5gBv44~du|D`_q&ift>JtB8Q1OC&y=vWz#FBXW4V8n?jx5)v3Gj zYhC^+A0WtbHmqZo-96%Ig2l~dj_V^R2UZL+GJm(T-CouR`BI9^$K7O&yC(OrE-)HjGH z`|hviDCyNLF}7o)B8r`FF5bFMkl-w3WMr33{dzOi@sv;N``jaX>Sv5ZNA+=%~oA04cik)4eBQ%;31@cde27qb-y6d1DIr3w&Ias@`P*}e_~KaQq& zwpNpGx*LNby-^M~fA&-(V&FF^ziVV11C{tNjlM zxmo@sDn z(5bnYEsF1@do-r~u5Z)(I074P6LL8k_pUo}?0&~RB0dvi`5<0G|7IgS4P<0AI1{?p znCMRXbkg@2`yF(nshcf`kNFPd`;7Gi$g4JB!Fk%el#?$WQ|cj~aQVW1j^&tSmCWAT z^UZnb6JOk~?^JW5Il!Cqu;p|?XV*{#FXJeeToqB8vE#u@M}n-kgXPT6- z8i3Q57jKaa`^ckR^fn$H&Q}g%cHqg1$vbm9UA!)ne5QiKlGZbo%VK&h&Qvaa6@rq^ zRDPnwJVLRewOCZ^T=Tdhi*uA~d5*$r{AI-XMRe5j?BvKjWuKb(b8hXRbn=asI2!jt z2cG&eLU$y^4;#l`_gC!J=v3j8-IjKaPtrN6mWmtG^_%hhaC__RaP4Q9kySr;DxWFK(TVJHT~Msi!UK^N8D?pAgbLel_hb^uw)aseRpK;!iHFb<&@jlF+JKidAKF z^bv)7>98s16hEN)=2_vB9qt`RCS;{0yCRBdg$V$f!dj4L|ylrZ_t+Aeq#?7LDtfuwTAcDzjFx5h^MnJP=%b{n9B zDmq*S=s}ew)_vz(m@!&^OE)X@dSqx|{QmA~IbSXI_uE1WEdO#={|$F@!k2mIO$z${ zTS4y!p{ndyM1+4ai9DLZ%r$Q|rD-Z!@Jy-VTB_n*LltkslG{qQYqnY;0TZS5iv4c3 z+*cE<8Qzh0gskp^=(5ya7uDz;TJ$JruCJ}Zcy&i&ekmh0FmJ-M0<|%FUU4&9>YuHB zxpIqjYrH+C6pZ)#?#d_R=+1VpR0ICGM4I0}#Ve0+IBrpx#dv2}W#Au$;^C6&O=3^M z?EPJDjZw@Ns*@}15vVB5c%r7pz)1*_o>P?O7*v!*M%9}57@*u6`HXcjd;U=;sJD3^ znDL?z(C524x|G(f2lMLOy7XdEMt|{)^I&(Dp!;Pgjmk9D)u7XWVQTO%J=H_d4^xVt$MX@K+oPV!GY!vc=Gh;!J)YCu zQ9bnuj9Z26i1_ImFTDQPu4c>i81VqQmX}?L5AsePm%5{f&`IcOsWD!$_o^Oe^q3<( zP%@j(%c`0f>+X7Ck3*_QE*X&mwbcMQK3+s$e@e;wyIsyq|_jkkNLM6xe$z=>N% zTkN@+4ygX7AsTl8=Hvs?iwd1?z_em9N4?9<+`BIGgw#T`K;$1XJ*d>V#h_(rWY?dC zYVft-BykI5%?sZzEMovmailcK_w^Op+uJ$y4Ar#DgYRT}VKgD{sxHxnbb&Bra%+M{H%#Rp!AQN`hr+joSu< z=@O)EA;GffW*Zu%2gd8I?~bAZrWNyP?<4w2#JWD?4`h)~K$RtK(;gNP&7M~yZDd=z zF@~;WnC>rTi-FpS@9}szp%h(O%B3i{Z|jxhIF#c#PKOC^ z=QZV~3vlq-Kb}p;pKH~KCCczGjz^sP)fn^6s!E+y-v?+1VtS2LmFF3Vq3@LyaMraZ zl%gm-A9~DFoB`k@pnSkHJFU|zFk9)I8G93^SDz{1JT$xD9~Bc4SR^_80zxQ#7#5V3 z2Hy~`t(x_Se-r_}n+5zgBmf$>XDX9-V&wu-QG$_TmMy>Behef^=qKI;?+VGWb?J=tqZW z)T6t#<;{e_JB$F!(YD(81?k`^#0e-lD1iXeWS{H%jbdZ3^NwIh-~yl{l0g-1jPAP|UkeIUyOnjU|GGqJ{LX~YWU4Skv^ z)BIB-4b3-}X*ij_-mhw^O+)?o@RYZ51`$<*DVsTi6lY^rqqdkkBC@BOpN7Pji_iHrSMI>Ha;JWtSY>C3*MFi>?RezyY)(u&>^bN9uXcK{f zQup}TL>T<=ULGZUAyq&K2z3e3WGje^T26LU3~DCe_sCqOtXob&B~$E^B7DMmlEP8L zCM`k`$DgG}_k?qtklkmq|5hKWPy0tqHgsOa->Z#PsjYnrqZw`Q@%b|hsfxFw@7k6G z^l$5UF{YuPO3pZs2@`Q)gRmKRw>#(I6iWFe`#tVXI4-2c%%iT&S)<1Szi5Oia+WrJ%%TB|$MlR@E1_e%RBXrj znZMi^l@cTGO3oT}2diiftzIY4_PSnRUC-m|Iw&5VRcpmNVW7Rxgc}=sp${lcn`zd7 z>DVcj0?VXKPbssSyt})0%_c*`=UMnIAt7v;rj5+uOhe0BC7eGlD}`B!QhiE!DLj>9 zWAM&|jPUM6#GWXfM%j+&0-a}ou~*A4Xxp-%o>kTA5w1JfsH^4Tc#@T;5VZAz|9ZZG z=}&wyf4`Z`@PB9gKkR&R9njzNUm-9GAI&y0L<;`}otoeRiu_Rij&T=IeJQ6Dafia5 zC?8VKkS@hFN1L8rzy4A$|EgDS_TP3i%a8k4%hTgxL$xR8X*22nL}5qSrwhwFOWTX4 z>xVtOpllc(4Yt~t^i2PWMLf(X$e&Gy;t5#d82>#-q`Z_~-t{;JDxO>Gq8kK}$geHE zbYD3N%ul5ylRKW0S-u-w6iw`+isW$R324yVFf?N5s-!9lQ*TS_)<5t#s0hmNM@4m^ z=A_DaPRR%jk0b{mO7}jZrjKM;5>ai#16A}w2DS-A9kg4CHT07jTTT{=XuhJnXJJ97 zus!+y=)g5Eq&}39W3mYW#ln36VJ#G-vV}q{0)8)K-Xrwlwox-WFl$tj3|=K8NT`d* zr20fY`x%9k{GsO5ZK#3U>lPFtodK>&eYboV<3uQH6Ad=M4X!9nQh4-H97ZJd9O|Yg zswm4RUHG76Kwv)lMC?w84#c>5>Bt97=opjLA)-wGZ4jakcL#Bq2Sre8wo zQxx(c=N+NoXoF{d6E%Eh=hsJ3b-yBO#eR1}k{Mjy%l*R-?O~&6JLnrKklAaXE{0`L zr`Sh&QOxl;OrHwK_Kao&V%si7Z#!`eknDNH)sJhAt{*#c2h9hJ${PPKP3XC=Q%p&g zin*;rK9?PqqWrmYz9m>a2SSRkXL%Nqq(67w3+dE6N+{+i6k&&i@qoB`#;Y^HUOhp`>YrQ7NKUoEDk5=??`RsTF zIS1`$i4x8yl}U3ylM3d@bA1oAlu{)hv<>DN-)u?J74MCRyTah$fv%8NtnxFWMsWy7 z-D_c?xF{=d@C?fRaVz&l>7XopgPDhj_%dK7eeJR}u*0Ax32{UHJ@rB(r;%Z$Qoo51 z-PD*IY!ran7=(_f&b#za zp*t!9o`<*Slo4Zt;>CB>`J^3#dt0MQEh0KpnJ6sh)vxvGkHc$Wa}$9%O+rB;-lGqA zH3t>I6%W&b`43OJ4Fb=(YFW2|2Hx<&eW?n@VY|cp2;^UHVTVPC5*Zug23h(%4Zxs- zi$dz7;wfz^bl0peqmavMk_Hf$1B%i`=M~#eIHIL>h0MOhcQd*K3xw%`JVStxWFFiJqI_Z_ zsj23V#Fz1rhG&Kf50zowB?M*6gzOH%xgdvm1YOpR%EAfuhtP_$k!A*l6VR12)Wq#+ zuNnlQs_THd@^J=MK3Oa5t`&uNA|GtK_+A}R1jf_>GQQJL2^8|7a4tmNrU1=SUjII4!B7nSKIo~ zN;VFxb`{DquC^=ce1n~HCQJH3-a_^5Hcn$TqPdXL><#8pf6t?E>UeM6p%t^-h9v6f z3UIa~%h|Fa8W-RybPcX%r#6tIA0*(2y&HqWA80uC?sljnPEfd?-fDWkiwq-@TIwvw zo6DYI0!9~Vyj$FNCc+c)g6KkveGtGe|H%o{;swF9;8Y;JuYH>C*PD$zN)FI1@Y9lE z`(KFj_3qUx(=-}q&ml>iMbS8jjC3l2E%+TnHO{6RJv%wCSL;)?S|3kT zvhc+Wf1=a^DocY@EzjYVt&23)fnXZcS|_0k0(F-3Ib*scx~09BkeH{-7Z1g69|hqxmP0P#_z|4;EY&V4GHMUM(z z&%wM}JItZEryGg~12!Oi;(8y7J_e@g3*YmF+@xeK+7Sq}^6C{L`7@?h43BT@S$f5m zPbPN0omx!wq8odTjuLZ~)Pwpgq!%5}F;{2mK)@FJmbNbLh8KPGtHDw0xf}OJul*!$ zk|uq4XqZebopY~`q<}vVBWJBD3>n$_LxATwmHR!#a_?`?Y21Hk@^%qEd51usgrm3ns(*3p8)|izuDB+SI$*7Bz~< zQ#U+NMXzQMwG=HOS=vdNVS;%|d_2ox zZrbZr)0agYBls|J*M4kv;Q$wT0KA%mmW$NQw`4)QJAqoyMMY!NY23IQpAfHS);=NL zpADH!$a}L};PK3AbNV@J`Gk0R*2u)B!tK(fYHX_k7Z$#L+;SqnX@&q2(&A-+!Oz3Z zvma-|hN8oL6t$cfkg+x%->iD5v(iN=EO#cKhJdIj4MxdsDf7LRO9yv>RfL}$L3y#y z<Ll_t7)NcF>P$19@;#?)IraoeLElU!N zn3IQfy{x~jQTSK|5LTy{-3TuZzul-OG!KQk>xGkdXp>p{ z1x4pXyOYOSR9ymxHMi`hPvF~N5_J$lhT}`?iq;&EO-nFudA0W3DoG^6%}1P`ob2gW z-t6h2W;_5H1M(!DoI2RN^H8a|8QPZhuG!LsDe9RgzfsU|`+9vx(77y+5F+ij9FL?>NwIA3sx}$|;(i2SU-(`=&yh#p<51wlG;? zq}c+`|5JD@g6Hq5M`+5*Q_^%tumJhKi$E<;OA#+=8)-S12u&27BrUG*LVuO>> zJ`}u>+}EOT#Ccg{oby2;8kF)W4sTqslItDXiBd`r>tK1yW(-p}O;2>#U?KBacA@UlKqb9by^L zaC~<}ja2d#TuAY)yAb0{qCS#r)R5T2bhtBNDeA~3((D@hx!&l_a?PPtgJJs}t`_P# zpe&6Y2b=gaH#>=WvDvw+V);0QRg2oh2|F^UwvFmU*vstKS!& zk;DJEsy{q#KcN#GatQwi5e{_7Mu4g)PIG2e${BNj!jqiCYF5CRZ7yfZp*j>#&P5l# zkNZ2(lzRRhA>>ES+vjP8KT`0*TUIUbWGc!Vpg385fJo0!M&m;jZk%PWeij^V8!?KS zi&?V>!D8xK_KhG#lvEjOEM_5XKG!&ORc;-}>b7(%SGN$wqc(xlAubCX(-?$f)+7nx zQr{?OIs45a*m!*-laE4ZVXlK}jzB9?>145pks$jh_q`;8e1dMkk4nl!L?ntJUb04} zj2fg53R=+)U4dzc&FR!-lu5 zX|y5AVYGp6kQs*S&=`cq6ykwO;n4G2MUl>Jxi*!hclD1sA|L(`Q*xSWd}OorAM)Kg z3RtGuu!N#A%KqVqN7$SKFCPx|%9q3Hn+Pr~Yz8`YdLQ?O#uP$K0V=GMN}J{$n0LS4 zt*Z6?&@7|Yg1%+OA&YN($dC$Uy73QW3G5YDu$Qd%+iI~~*2kk>>(k;hHWf8x`dd#y zuZ35yw;lsoYIwWbj-l0e0mk$NPK?sljn{qqOsOvvBrOLfmj60{q~%M)2I`^BTP#Sw z5){>5eYg!SrpeMpuBA(8qA>`H63xH1R%#LRWIE}nc-5>U8mUD9zbA_H(L5LiHLeC3 z1kp-7%h5$UKw`?uwK)sfu)16}aHc;)lWW5aYF;>T*fWLJBJId)>4Z#ONZ+`5M^4v5 zEupC|;@1+oLS#xo3-3@}!IB)cxK2OUXyCU#trr`(ljahWh{l2I0SzjSm4h>OJ zs^wXuFkDG3Q}}9*l(HXX6UuXWdVJW_^WTO9%ycI@2T!sI7rh+M z1*H`xw5{RU`Zpe2nlEo2aJ+EXWE9sezqyPWsY=Px4~}v1GZ(}?Aj-}Cr$SIn)AF7T z-sRNb*^N#wVqJB#3uGlVz#RjDF%Pv_gy@-E*t<+D0ZKrJcUi$e#@pIOvGL`*q^ZPW z?2^IZ^DMl(Ac8G#mGc28I#R;Q5CkMv=DYj7>3}c{A@VKfWLNqOp6@z9RTL-XYd&z6 ztT|G<9IB$&;IZ|l^#RTBhlYnKoFVPjJJj}Fo+FfB7uob`$whFOs+JGb3xOP(LJ7$J zlwq41iN)o021}c76tock*1pL1HOGW_Srr<>xLQ+P2O{6q-|JC^O~}j3h&>3o>%IWz zTkpY)Mb~LSOjl$byi}T2mUCgf5oXm~Uu;L1K5BiE$_L(1U>)(7rNDLos^~TBL|!nk zZ_qO%T~MiXw4y*yKL*0@XU!U+Flo6-wk+>h{f;%3qJwW0PqLZihj=2KYPOI#ZGWhD z!o0p2_N$Wd1{G`>NDOb;t?-b8TkjG+RIXXw8;YVRb>DmG^zMs->%JT))0=B!^J0*j zm=3V?l_Jj%OfB=376N9vNh9@MUp{!IU5%)Pe-t{y$Hsp?034>uh!|hT?x8@&PUaZK z7UTi0aO0j@|As#oWb9;&HYnhevxdDNBYhb=?VrM9eVI7I@@e7leHVdRo@(PoS`H>c zlP|AEtdgmZ_-^=hC}XE#GHf_*E>JOKMY+DyZ2y)%XA|KnpM8a0gEDw(w3*L|lFR|1 z=t!S-FBQFB3Pli^(w26dm}2Vn;3c3L#Q0MC#ZZxb;IwvR1_^X~8+U;3nZ-_6@s+(R zA83c#Z6o9I%+7COjqelx8f8|t>a_j>wxT|z(R4zws+*X8L&EsvU3cJ2zi}s<4@Td{ zie1_I>1f3y#1}6QB-3i1X3Hv&Kx5qZILQ=M(D7aB1)J0t{YFAgT;KeiC$gj$YgKWHQ@*T_5&4 z^5{mZjOFMK9e^=?CNsiXLmNT*M#m#q@7u`huN1D2>coy|q3|CN`D7`yXSY`{0a(%P z*Kpc2^6i<-B{I%MHUve9ULQ-VX@hz?eP&F&YSuALrcD5^LYWSe1;e1mqrHScg!PP; z$tk%hVj7U5EOmDVv3U0jUuqz99KcL>2TiNZ?tyizT;NQ9j&{|88PtNro=91z+cGQ& zi>Yh9hLx2?#qqrScvviJ5jK(ca0O@JeS!Pv_uZLMJc;|QeculaUCqF_J>%4}@J?Q#oxv!YG-tA4`JKgOLlthlBk2y0 z1Mv#x;S3W`iCoR!xy|EL@UF@l2aAPuR@A~`J{bcyXn&13z~{bp4k-Y%9WU?~i}FJ8`hd%>K_4aO_P}t9U$)2@Gl`I6*l<^Y(@~>$)REg*Q83 zo*MRItK6VMB<=BMN7M7;R;vKvv*DMf%H-G?rDRZb{L{f#A7T8hHJMQ5JUdt9*^$LO zV@vq0M~QcYS@(mOQB9*|DSsB^Fpns2+)2F2ko`T_wcIEH_4AOc`G>U%y=yFs4qwJy zhbr7)eIjDg!rU)<%Cd1;1^78N3)2(Q79aHj)T7@S{x{P9rVEDnn;l0gqh^IoYXx~)GW z;_&d}{4D&9G-l>3=FcQd@r{2`Y;bk>n!K1%E{SXJBeHMVX z%TX8vY!8}~tKe>+43d*jdr&M=!d9rdD>_1mdiM6MarAYk${;%rv_ZSwu5U8?4O`1j zAa@1y^gSjEot_6J%o$i#RP6$HlTEJl z&XVRkud#+gZBch7Qr%!s&`f(`RZEB;XEjHsfH{$CAIo3PyebR5meoR`=8~{;8V*&I z7}5@Tp-zgx^d4sC9>5DM&fT!&8=Jeq&$Ki50Irr8QnlE`Y~r2R>n>tCee3R(S1;JO zEXthZ9-fv}awKY=6Nj|vwxa=lU><3DOfHq!YzHQ&zY%$4f|yVF=Hre8Wf+cMlON}q z5W;-vWHRo`B4I3+0;h|yxG!2YXX7dC3&b+B5?U5dO~3%@oF$Mwl-tRb8Q?Oq9PF|e zqhayPD4D#OF~tsPo4HUG#i_8M!tJx_kgAzMvjEF9E1~1jRxg#g_XAA80~M6-2$bnH z%-c<&&qO(S7axLCW$mcpU@>)2-5^1na_;CLIJr91sIrKzsQhcPSh}_n80LOM(4dkE zY{W=$5&sj48pEchZt?2!B5CPwMXu&CSj+|I$7k#Z)P3;nG{|{nyqUP0OcZeaXLa|_ z@&c~^Pt1u|OK1_p?|m~_ZDxi}j>0@IHZ?=7Gt~bvlMMZ*R>mTVr+CJ#Yv&e@f`Mn! zN>T7ipH8U>Js>eWD4nNU(ZT+yIqa62K>*oyi{noqRhk~sXtdt?1OBUSUoCTvGu`?0f_ z$w=BL0$|XQC!u0_lLdk<28LV|%yMl~1Th z<9mHj9dz-gzdJoWR-W+ylQs0I?N*jH(!#)NILP3j4OG#adf}JB&VAr_fT}2Fhtc)# z2rOEBt~bZ|a)u@tXBCPv$sCE)CkmFa$Brb`5t9K|#qU*pSm0s1I92s-g@A#h3`%Fo zpj(G{zg5s_pJM5bUl!;LCrZ-Gc3pF$%fi*~ixZl#>pY4%wl~OlZ|jbAn>sXH~QU z^-XvbV{8X6E=8h}=!Y5jL66hA%QE(iK+7DjqLMj?@sT+s$Qe_KJcAM`8W2E<1dGhh zzI{O$wD4KDS<<;7e7;(m?VB+AX&iQW$;=Sya!7H?d{r_V{+mbGck|&hq3)BG-{ie` z*g6;jH4n%o7thtwXb_zELP638o3zw-*bE9X_8#pFY8XZBfhyn4^^t5z*f^{8{e69? zcgwmuAwpL+i}d#V9Ug_6i+9c!OS%C>aA5Rz1x0g&EE{2Rp~Xa*GP@HlG-C@508dew zy!8VM`LLO7=q~IvUQwYpiy=iQHFLc?)`wHIc>FF!%U6R9zI{aZfH+C9bJQC!(=Bgx zWtrv{r%6S3N%uOALQ&JyXgjnNTe@P@GsSjZtiCRAGV`Xlfn`OU>bxGMqrhhBJr1CY z*Zb|m;;=sMcfUZxn^W7em$Uz{4n_-fcND$MUhRI&{v)CkNgty<&q}2>l6Qv26e?d8 z_Qcdw6nkrkIjxf0KKh?U0`r2-#lSqcIDT6^;ANoVe#V2(vw+gLLLN!hfe}rM_##$s zikOISE=rWO!#~0j_cQSFtg&{^JRqmFfQfrcxxQ^?rv#CWW$WxHk|arp%DxpJD!--Xj!Cp2obhL)N6lYSna19SO3c{O*W50czlWha2^Ad4fd*x983BV+EHbxPAY;|ZASfUaf_*d*A1IKDD@(lp`NZk`$E z=sxtd%yzQ+~ZB>T?WwLczy+JbUVgEx|48_p{nw9)J zBSOZdQFwc#A^`^Vhoh(pPgA=-l_BZ;%wLm&>P?WD%JO{O;Ajc2*Z4@(d_3HlAj-(# za;JF-{$J};-d@KcG4M>pMBK;H(fj-%d+qHzdj62A;CcU?r{6!lA#2LbR|MYF?h{nd z3z<79>Jcyaud-{!gK1dkdIr81BJ>t7^MwyH%KeKZ_lJNTr#?WuSc&kvx!=CYfy-2j zaOIzvHAj0^`OhXlpAhCtYrm^oOo`;5Q6qp(-cO`NbH;Z{iwN_cXHhmFdY-S6=lN-= zDCLN!0KgM+Vhrre0lHHX+7bEAsLB`jK`!{-z@jV^nRa6efKnd%a$C3_-iwC2>aY68 z?1q$tp(@Kj-;VbrzDrI#S8)}BjD-E^>%^BuJ5g=E}iww9Ss$*u#VJb6Xi)7Rv#K{psv(nWm zLc6Rz@mwi=_M9c-va+w!TYH8||OXvg0~v&2>ZR1_#q_>|BmAcESSz2JFdS@f$_FkDoHkqZN9IPG|c=R}T=M^*|Q zY-+8XH)J9v9Dm*s3KNA|R290hARu>*FcK8Nhra&s1EpM1kr&pK<~RA5rfb@lz68b8 z6Zebo4l)J8@&aSv>+0^8#sc$GFsqq6!TZze*A$yvuiosx?Usw<>Er&@^7OdaQ2Bq6 z7vOYS$?AAC`BV46LaxVIHN7%gX&FCC$Le{9t2OK!8=)V}( z4||H!Y1Gqk5vXk^6u+O{{pg{i0}gH9x_8TgZsJ5pQ}+i!jN*?Wk6qDcCbhyvOfFSw zf~RYu^cbxuzzVsk3(2}3kbF(HxaU&^Thm9`kpXEL%>wkMM#2Ush3csA)hv7rvdUH* zVdTd@l!GsoNSCFN5sWFf&IK5W$CTv1yk=0{0N4?T4(vlfVT#D@b>+)Or_HF_Gm__v z=C0$_3I{PhpnHLkn!RjATJ3igWiZW~xl(2wF*+V`*dK;L&A535vB;Vy%`C_xMDs-? zmeGl(Y)&)4@p!;#L4@vZRl)K}|GC?rDyo)6mi)UNVGyFZztWQnYA^x`>%HlR&F^-}kj0>_EGQ0g&=C-xF`ORuO!)=U>ES9?9V}?)X zzz(Ug0$#B|(TJMh=OzyCXG(-K}TraJ@WkE1Pl+CsZNNy0@{TXz08xM-M})8Uf+h^R%w6_`TO>eikBgUSsTj>ps0k(ZZ{E(ZZewJAjbqnREAcVDFZ8EAHtR zrT6qOxOjFxDIdI)3sH;bxX{Q&Z^tJ?rRElvWd$>_J&MU(!k(}d^@gRr03^vl>MfvE z9J?4_PhdJc2fWS7H=Ugo&vq@hxuV=##YbXOC5eO?$ietCm*R^*t=K z_4j4{aMERtN@(NS`CJYVPZ-*+c&yxrxcetYsOLGwJlk(9^7L0YPA6P`7x{nGIQ zR}}IausNs*kg&-91hhQoh|Qp6g4(Y`dKh^eY3B|jdp)of^=2&&U${lV9JB^OXOdO^ zRo#SU8gm&B5zh?6gKbbRyaFY}<6aoYCxk|(IJ{n;5cN29T?IIv zbJJDucb)~Whteqw*rP? z1jA-Gt2+tfCB0>+@Y@arvgF|orm}Q}IUu#ZObW^zoK7Cr^|Jo9M$LWY2CYuIS2?9A z;7R-jPE~Ak63XC@9bFEFq;pBKx$s1^D((^+^o#@-v_irek=Sn7)tGscW>Zn%nu@pY zK3-ALfA>&4%whfc%W1o3(uN0W(3_Q5gY6@$*a`PplMu;FrM;xip*TshqNQB{PmMLO zt8tXBtOLGtciHr!IloOgPL34YA4O)4)R;%cG2CoKV%?^`A9U$S!Wl3PYI9c}Dv&B+ zSeW93edCNaC`hCn;izUO2l2N>(76LFHn1(n+8?(X?sVZj!+-E)?|2OF!zzpg)5IASv~!dJJyVQhBr>elSb z=nVDY_Pye^`VqLr6Oaf%pI~u`S?}4>(TW1YqSv4R$Dx{tqTiz4H_AN{vb+x!T!(U1 zb3%9p*nHLCR6nZmdQ~Xy*29Pn{YU~qw?hI~^oyO_#N~)8fy`YxX3AX1rowgvP2f`l zw#7c&+INOIkNoZU#|`DxfJ2`v94SkNhiPWVTfKa^)}W9bwkWNs?Q4de|{oDZud(Xp4$s`qG# zAT(=rtxF2@^hJ$;w5_cenxYURy|(%|#P)SWv6nZXluzD(08Kg@eu9snXm<<3n5~(NkNyzHLiTT z8-Bz8(X}tOjhVO7aWCdTH)qgcITm-bH@ohuDTgZ>%zGdujM}EUjw2OjaCp*e#%hPg zS#)xuyIH&tamSNyYkeX$2|g{+S%swcFt8ML@7(OO^S7Hl%G>Wg-%ys?{2oT0`uoFv zSMN|Dd3`!IMxIUs3-R6`7E3C$UyRotsPJY`J-xU?e#5KX>i5NGB&R;E>W}+h){A4k z!dm6g_GFue$QzH?R<|%|_CnlanXB_CSR+)&et7TTFe&X|ie{CD0AtX^uct5-JSk78gfJ&UE4ZacR(YsIkbiwp@!ZM+6 zr~Ct6oBBMn^9N`%wzIh2wmWEfG~$5EIcFA-x-uw_MtQ$R+vOd5Q9sj zdZH3PBq$GUP&W4uM?6C25Zu)R8eaQq1YDbP^h(V7l^V@?*l=#CV;&~Oydy9~PrF{`}J%ettzKv`gNuQ5{XJa1b zpq#hBdPH+uD)a!vbivWaDM!@L8vUE-MSRKjSniDY(bvbDVg;K9#=U`PdV;Gi$fG(N z$MSnSF_y6#t0X#}4_4Fzja==9-(w)~%%iy{ujI{L{|7aYj#SE#3XjGvXIw?b?ZgF9 za61LB;(<}9xnMt98RgV$Q{8^5sl(*rSJFS;ZWf>K7Iwq| zhBNJ9@iP~sZPDneN}XGOLmvTe{~gf~C%!Y2BN?-Q=V7>aePt`2@XqSnh$jcKrrcP$ z*nG=(hR7If?To?U^DK;e#IEyT2riOV)CA12K%J*7P`N-9Jz_)Tw%^ip37b(c9omYw z@Djxk6eY%^#!_F_mLYDPhz{|5udt-&yT)S|nLw%(f^D3$CZ|7FIE*)xZ|eM<3tP@| zM=6Y$mDgtG1Jr&uH9M*w0D}&GGx;#{#64y!=oCU{ye0cfwuNjgBs`z2x006#&pU|} z3<$iN{Pds>kTvB&Z5ix67X_ABm7m}E5Y1q(q?9I*jMIRo6_n}KG2y2aKF^|5TIzQZ z!6_QW{?61f zy}(&l6ym_~mRbr~f>4H~s57Kmd?>3gIeMFK8ou$0iqM{klhjd{^HJx5GH7EN5~qeI zID&rXqj(5(JjX&!&r6Q0R|&68SDmi|4n3Q0+Mf^QIC@|yCZ1WAM(72uBrhqoMY>@w zIHpmEyJ}17wQTlo679Pm6Q@emy(5hrzBdtFh%2nRYfM^XOnf4A#vIW#KvWhG7wrPA z1SYdlCW>&p8OjXc7@_>Nn(|M>&Kxk48;k{<%ywVbhy8Ag%T^R~qGw;$jgcJL1@ncd zOlp@-Nzu!r6vm9(sYSkfnaHc#s}_Z*ae)~0cy6Q?1w&j8t=C70${`T(yh?AO_Kb(V ze@dY18FajPTF6GabFy*pY)pA(*(5{TL2LNs_e`5U&xNJvGIUngiSqIzB6(|JKjzID z7C^4;z`gk(_0(jf|gnKPKWIyyF$Q}QVQfL0Lwp`>D*zeaRg`nbob?>FONMhI@ zet2E{qLAO~iBMH#X@JJr|GY?IUg4BWUv(g=;R%>k?n|A?ef;;NoH~$(4azk`L@U;AVn9}G~vqCVtUdB z%QnMO`=cL8}J;IpK$7Gv;q9`iikqNUSgM1(iT3Quw5E}Ecny>JzUY~xT z?2cU*3lZgc#Ws$<${s^P?=ypBL5{WBN+LWyG0dN$SHsXWm9K2m z(yZXU@GNL%Zg+Yq3_OEj-U#CorTCSK6?vzx=e82A>BIYg&M&#~W*i9u&3q)tO!?gj z!9}J)IPS?aR9k~`(}72Rtv4UH>*Z#3x_>yUx&dd^V_NJy#N_SIVUndGHFGObvw zb|8Qe*K5K<;6P(-F8N+#A$z^{{C`?3|N6E#tk7YAUU+_-#D>O)k1+2B`w(!LD!(`0 zm^C|l!k#cM^L@hEN@0&7&YM%Pm zLCG*ffCa%B3h3<9?Yn>m@{wYeMEQCuU^G4wH6KzMA)}997AVI-4vhIbWipst{k}M% zQmb~L&7n%dc>3O;5ToDkmw#0c`^|d!V>X@5=zZ4IA{!03qF=MhiD_Q8J(f3k)~9?0 z-XRK?m`yx3d5LgAzBB2)m+~U$?-iEljLiFe0+oTPDrF~++$_z+6O47oD=Lhrk((vm z3A8;iokZ#0__qqWo+D*pV33YmMExUR6Z7hjiV;YW9~^_4iCAN^4zIz1jFgP<*9Hc4 zU+aZv7v!Z>1;`onh5+MaX~x1aj16~bR(1sFmJ3DO0-{Uoc_M(D?+yTlX`*xF*PU>B zbmS9Jf;5RqlQq|6l)|X@r}x@=7uruUi%O=0_J*OTNn0xd2dK#6k$}O}U@>G$AS?6Y z{NlXIT_DnAum!U|W0>Z3;(L!Sap^p~pKaQAqjzc4rwsd!drRG9Tx=Olr9{Ec5r7)> zif&R_zn~`FagtCskdvla@SD0e}TA>N4Q|f|7*) zkqpYLf`f|-|D2{*hsAES-&Tv|vOXS_8Lv7mKFd?}90_B-VZII<;6}VdGsW+fh%Sfz zcxK&DiebJl4aojGfH-Zo$2^ldUg*m3eXejo=P3>&m{hMeXmcqlm!nFZ)Q^3wr;f9x zr_d8%Q8NM?EH5rzqM1&V^Nmlc8#QDGSWt{2-mu7t^CiKhV@ES8j}fLj;; zGraSoqA=&u4g-LDzLf6wpHMECzQhe_$lJG)O5$rFBwm|nM*}a_B zsB-GVjD(M83GjF|Qhj+9E#VFOC?#Wt=53K+iRo52_O9NXUtKH*fgGaqAvW$vuvrjjo8b$7x47pt!uBbAcc+!Yl&#VmB0R+=R_c5L~ zjj?07e?%GexGe)-{47ld8Fr+cjtZY=0VGsxeziJ4L)hQzU{kj)E0&Dv2usbObdbiU zBh9sK$SEh=l+d6%lw;XbUo!^cn@@&$OI(p^rG?--oS%mCeIPI;AS6$&9TSoYhM#gt zl@FBZ4R9`2lgi|s@UHZSk)Xz3s;s?^y_b;yC_2chSseMSmDfQcfLg6{o)s zQ`{YEuTpqgEAjkkHn<(I*tiE|{8?cunpUEh2`kYvA@SMr(sV;!!;N@E#XqnZ?w6P3 zexdWtX1?dO3GxVMzNaMgQ|#M_?`2ekjlJm#o&fJzu_e_mUN!AHFU#Y_p`}S zJi-Oy^?Z7ijHg&&!`pg|^UlY;d4K;MD1Ek^ZKbseF$(jp2v>P-dmun5b5`g)ulGA> zNRLbOXg~fYeIl*6){KuBp3tbzD82fz7V$~0IGBu|TiuRndM@OcJaQaw;pkQ6aWg+r zu(TOOedmb0tu( zM4Gb)0i$UuiRJ_y6hy;~ND%0Vml90%=L+p+Pma_4aesW2`UH`Xq*V>He5A-4F@mZX3Yw1 z??@sc0P>19%3rYTJ zI7vPb8O)QgBrilHwy|)TUHigA^exv1uBO^|n{kTyQyppq(~=L-%#2l02a}Lq02Pd` z8{$56Fq~l7gNTz+D5ht4$V@rK57;(_5=J9w1oSsX)Byl7T_Ed4TeYQ3?0HXW=}wnC zMsIDF9Z!IVXJz}QwcUG5b;nx%RzzS}{#J^~=;m+j58ar7|BX#6(~2F%T3tLW*2u}c zJ3>)xKfy0kYDX!s0q8T`Yp7@d%kODAd05xW`r8^sNrZ8b%)-@4S7xFBMP$CBLJ4Aj z@jrMKE(dTT3Vw}1kHMvYXFhkQv^!S~1jLjW{0`<^a^Tw0m*VaQAfg zGl^3cfT^g36yPV&7S}Y!n2rY-G!^+k!3nJq0c>h()JTg+*d{$+8yGA)Tt~&Wi{qo2 zc6Vq@VV1jMOPkhe+lX1?)`r3_JPYSgh_;Kr>dNVSrW!rQfoOVME0?JE0&UDk1O&>q zQ6HeP_3(E<$c8{MZ4uwaRy#Yun6$6M^SuvCSYR!0D20N8K`CxuR!1<@>4Jeiyp}-? zoIk6mdz(l=QA&iQ!LpgdYMHdC7D7`LhR$o8zSdc8s2d0pQwDHt+o{;C5uQm~Dr>tP z$1?WFzKnCm)MhRbbtTL-w0U*Bm9eLaHbn}wqW$`WBE85E)Nitjf9=*(b8fM@LF(XX z{+%wtcOR>pyFFckWdj(Gy+R7iWJ+*^@s20|2`h54@ZS$a;hOQ|5)JxRDGrXOS4Zf-c%y%9X7&GWVr{gTcsvw z`RO7hqsrZDc|klSKAt6Q0xOcuUqeGl8$&hzm6TO#X>qrJicHo`qxi(oP)&;4F=^gL z7LyB$x@2*Tj2UVeCN>CPruX;yb;wa9v{|;@_CiJX-_se7lQE$QiW-U>ObXu6z(o zOYZI=ro_vjoOj5fE`iDvgU|eS)s2!d&$Gie*0eV~MX$s43-1Y-gs zpJtPbAE&zEg9s8RdU<*$WCLV6DVl^&z#1#Cj`=-2A1FAOnb(g*0Q3DGp05oI7NM@E zVomSgDH0UmVb4zZXlB(N8dI3%_gH(j0A^k0_lN`0^pyBL*5s^MH@mK%-y;HwX)_ga zOFFH!-vf+E`#n70D=d0*>r*kgrpsaW6`l9U|4{Fs^s?+JxFt%#D4JsTMHFbao1+Uz zMQhF-;zMAZ`LwMwzBD!{rVZ!FvUkSebiQGH^NRpu`r>zu4`}YK6C2Ce!JXp!#|ziK zI7HRlaX=fiV`Y)gP#F?=F03{ux9)Aw{3jhUj04+dOvy7>sMul|4xy3`7MJ1icO)nyY$PcM*+ft2y-J{@kd%)DWqOU%<{F`_rk3;|Odh$;P!vV( zxyyrDa`<{dRFsBKU=)7QF)V__l(}ay3a0Qtc7?^%`A%gNX8dSo4Q1T<=Q9qr&mk>? z%#;(??CvngIK>`Z;R$uv|1esEDUX72g7JLA1+VPigMd=Bbv+5KNYESX!$fRZoOK>( zib8PDW7l=zJwa`dh)*Zr=@`FWiKL0SCFMuUZ{c?d4M&)_%DgBN7Af!jDsI<)<}_<= z$NO&&$7HOl;~|qg7Bczt_yA9Ay{Wgb$ISl?|Etcrc=I40XiWjJ+q;?cu>L(MXU=2R ztu%^^dXgo{K)t{jG&+enZW&Rmteuo$ePqJ(T8F(L%!Wx+<%N=OZbVQx?U?>>x>D5= z^@1o0?{2(rC1eEvnRI2{8`F#V4n~sQVsrbrdxNs3U)YsTS!T|u>*ts5k1R63>}Z86 zJ)txy&!JXxxIm}sNUHBfl6)=J1Ai^n1D^%Wn%gAj{N4tm!#CN+MR1SY|GD35EYow- zCBUr^E7!?jAjNao^(_nnNYkZfFMJDzx5FR=vq#h=+yxE`G6yj}>@JQQ(B@?WQOqtc zqPRMbRus6_#W*D;R>e+`6lGx>iWhE?6)_6}QzG}cKT614tgc}~c`%q7A(5=)RR44+ zT_qz>$Ux7AMaG4h7rRqUa5x|XgbKwVGNop$knRZ_PLuY36Nh#oIxvb#E;u#n=&7c{ z{JVkz_IaOP=p$|HRw@z@eX03AH*mOwxZy&r2FD;Pv)-)cQXh~^YgP;rbq02#+CYA3 z7*Z0Brm7?o32Q-)eB>I!{DVtSCZ|D8!|7dKbT$r+DKujRtau~<(B%^-0Wuwu*J5>nro5ff39$ZZz5pP5rpYzBKLEJqula_BWZPv!7M3=oC=n>#;-wp#$;eJW@g2j zdmqlAxu~+SQQ6lQ&ptGc@NDqhE2Ui+U3^Ixjtyr3$R_31Ti$QkD#eK%XUs+9_|vI; z8eBX(AjB!<;u{r}K>G{}9GXu?($KD*?`PQ9T=8{4cm|d2EV&4Am#g)C)8kYodXc!q zKgBt6gX7@Y&?@8pdw{q{BhY#!x(noV`%JYAooVylc<}#mSS?PA|6Bd{$3MrJhgnN| zf;>UZCv=LgQ+-pXGC>-obsB1}kt5;L zQs5Aci_j9X?=;5TucH_o1SKq_Zy7qYVwjcZ@3%R=ZvE^S#QCDne%e?cF`Q1GoupthKE~7wa1;&i`q8=H^EwMSL9U@ZV>Kx75$lEwCeC#ywJu0?tNCqoAh`^ zMVMDE5Q`hpB)jBjra)|Gqf4rC$2L=^()koqN_VVM`8o_@d@;UzBz36IM&WMl1DPoY zOL^B7fZIa$&#h?hu@>;J!r_BPA z=+NS(e`(baoB||@2!2|hL>G|;I+YnjO~J3T%deuO;0-Oqg{UcrK3?)4(M}h^7jl-* zk}}P?3)0lkkfVTMvp+~Nx;oTC$vf1I!;MNUN>2R2EqX=+&h&$jDV&3zhC`x*2p)pX zZz8(F*Bzi_-k27v$*(FrnxyyVXA+?J5R;mb=P>#Z*os#|)hGj|=+il1G718(fj^XU z=~B2-=1tFb{z;APF*nmXbdlW}2m--u4PA-I=BAgOS@a1Um>^#2g>xe^p|iC3V0(yZ%2z+d!)jAXY%6BgsuNZyDRaR z>iZr$Pn(12zV2zYqJ{GS9D+{E#M1Ql>M?N-Kt-ok8M!x&-Fkp61RS3k`A$J~qp^8Z zN!)c}jKUUX&9+FCI$tve$Pvp*vz0~~?1CH{P55iZK{o!+ zx1GUIi|9p8fyrjLv@*#K14`58DCrJG847>XOk*fmOkGUBhgr2mzjtRPj2@E3+*R~x z@fovBon5P=K(~{d0;1^2I=2?IuBSEuhG~kOSqntYiS-UKa77MTduWf-nhi+P<({uL zkUl513nZp&$a7=SG4d%*Ve2?U)x)BZ;T;8xAB;hh<)89K@T(hA8`kWu2VD{a%D{$c z_NRW^6k2XHnMF#9tm8$?pvwcyq%SKrHvsI({#z5D+ZLeC#?N#b$h5-i~2&fl}51t5J5}|c?s3=`+2tZ6%j{Ixa8}BIj596lD=f5eHc&F3Mmrb*{{a!wCzHoN)%$u=MaP z6fPKYYf*f$eAS6Az_;pEFc>sVA)n>=ywcHZ){}Vva7<(DR2TZUd_1R`5X|nJNAxHt zd9K)}=+sQ18N~$y7!PSTSq4Uz z2q#5pQk_qz@bk^$aJsFJj~o2^VShknXi*;eezB}!S9$R#MWFt3zgg9Xw}aMBZq=o| zp`r9Cs|u=Yt#H3+OicOGDCI<><^#eTy(@rrAi zJX7MBf0zp_0i9|}+ncJ#wvKm7ei^SG>~+SBD;9F;WiFesRh|${vlK%+UO4fw55AL- z<%H3~p`)W8@rO>)lwKg6>9L|5ryUY#L68TEq6iy3LsCX+t9YE8zM^kl5m*K`Omps5 zzjC_(bnr}i&QKI^m~Jmq($!DOywWaho+UGBv_!MN5?vk>S{~Bgo@sX`Z5J#M3^9+E z0N1g^AMmI!R7ai8_Cy*|PfASAWSsc6wrJv>*j%8R2XhN@hXhP$X#XK8I2QsNGIYM!5;+GM$pRp;`oDG%6cZ}#pfo-qtd=NlPSBCA} zpr>Q#Nfd&jBw`EGJ~Zr7`Mgji$K^ z5hbdN5M|t;TaxYjf+4kXMXf!CI8W{Rkqsuo``7w76Mos%1swJOg{MQEN>WMfx{xw? z8U_&B-Byva8Y)pMFC{@S$ArM2z%Jdj~0pooG2csMYIlch9kNS{}X3Wx6>smddrWM2u$6 zHdZE=r@*9UX6o);jcXGdo}50QbC6j`(|5Vwu$^r~zxVrB5b=u9TSN8IDZ_ z-lkKnDuxw&hXrU$!&KCoYh&MZF6(q519u+|Rb1D;%%Jf-eogC~T*uu3*z=~1f zt6AKQztFEIDE|n{wJ^9-eULvO-et7CDvUACY|-e~i<@U(RONph4{4WL|Lv~kIo8Z) zMZ4y{*5YNV4isEGEyVK)^3Hmcs2`2-j%_AZKhz)K92>!yVm5}nkQNY6Mm#ezDUol| z9WGN17UI3)bkmvNtSF0Va;bhf9Tw};k;-eK1s#Gw7HE^Ln)Oig9ez>`2hN}o<+Wrf z#A*T3>=K-ropriH(3I$cL{L51n8HOnBV~k;ezu z-xapuLU@HcrHNzstKuzW_;k}FO>zACb7~a>T zVdR+_XP^)lNn3ed_$kEar4Jyc3u+T3K=dy72iYMldYr#M5@4pgvw}?(!UojWec%+0 z5L~XuR$8VIXs65iCBHHtDov9LO`#GX8H3?woZ);=9@h1;7DYICdF(Ai%r43S6Hws4W%?->gg(Nf^H5#^45Ge+CG z-FDk2`5LD4Ci(h;vXAgjJo$PwYs1@#%#@CItC>ML8o*Vhp{Dvmh`fw6nZkKGb~Cf<5^P@_el@MEJcfd+)An<`Bk(J=OCSgxWh}yn;Mn70r=dst?rU znzA`(U+dk8N=etd`d}WDeEE?(i*m_O)K!l$ZqMF{_sUHNUgpOA5 zh3%y)=W!7psPIN#7~b(&&y4U$g_)lco=?StL%IMnzG8@Aq4)jnL4cV17Rtpit>yX&WSBg$d_vjTsRJ%n zE31|JbJ=dF=Rla^8}6CUyT@wz{re;%AhY0Wg`xAQ_9XQVYz4@}(0?Ya9j2o;%JPOs zkWBqa3G*gH7?|h_0>f=-q$-EBFOMfBz~sXqa>(RONos6M0{s%mBn&yi z>G%+ffnZul^YdEskW1D!=W%RX{^trujO)ungC6Lzy~vCQQ?YGw$QMLZ2qxLJ#Vd?T zO>hEAql$mx!3kp`)bnJ^9GHJjFCD|!z`UNeIZ#PE*s@2D1DB}=(QOgc2)Ig> z#C3BRDGIrK6k`mYBy3Ax_DefIM8;4dJOM8}m=M(SZVad<#nz3P6R~byMg_V9oz7K# zzd%X5YE^IQQ$0s%f5drdr_DR0kjVfpTXBB|bSbVGns_={2bG>mlBfN9#e&e8lJ=HE z;Jf8uG)sSFO)U

BOWu~U@(S3xQnI1G4UD0B$;Ph6)`koI^J<5vE-Z zK6!kRa>!esXjt%Hh(riVq*%?qid-786-5Mh_*aHt9!)4Yi_K=gteWf)tmtaCLWW3n zR~;c)5eBy33H4m(Bp5=gc(|g0xH_%=1OjBCh`gXC2Lm?q-$h}@j}MYG%2UyyO+{l& zY#bNfpt<~1e_rnt+|aKP2>Y>qji@adC@>#sF4UH5$pdnnDoqy{pPXhp4Y22?r69x7rSNsVun9`{P9o= z4=e55OJsm!Cic$l0f{Ly8SB}m1sH_J88{I#fW=tDQBm>S`s}BIiR+z5&lSjeeT8;H2cy&u!)D2&YQD`MBJ)$1gXl)BQtrK~fCt zac>-iqKXaP9%dLi#zSk&x%Gxw$YvfT45ug{sQ70T1B4wQXEZcWrkCz*_dOwBHd@KY z0|#W}e``SZW{SMuA|LZNkuh>>XNKJ3-6>K-C}K}sUi00m{$8CPA2#*;w|^gH(#Q;_ zLH>!{Yq1=X5s<0*MXV%f7{6V7ua4{gt()7+kY1Li-u{-MM{G`Rn{|2!2a~AW&l!hj zW6Fs7|5~5EyoJg_R>ouy{v6kEx^;Z->r!i&?rD2amfn-sdWK z?m1F6Fz2+jtV2YY!7~-^GXT#9q=~sDOdl=lnZ8rZD3MVvlmQSJ^N8Oj2CgnwNo+XN z5Yy-o>5#9|Ssyd}yRhkn0x2Ner58bKsXu7UG2vxPa6fl<P ziW3p5r=Q1m^jC3dQY^C#Ls0{it_54mN~J+K_wT43`iwPuuGBFHr3Q$j6jbvX^_kSX z#Ag~Nj<)okPlWs2JeNo&tapn~o4Q)x&;NZqh!w2X$LhFTY!-((ge4-3s;|^AbM|$H zNc$7{GU3L2L4~ZF;J8r{@H~S0{c1KlzcxMhyVGKgOi>wPt14fu_d9av$E!;f!&1~4 z@-x?|EvvXmhfbg2Oam6r*EGRg?_AR0Z#UiTLWLgn$0->) zv*Swvt+=Tn&akODdSMt)OdH9C_M82T?%1QHHS3^-%#RtqS;w5<&StlS@?1n9R0!7F zqB6vs`e(Fa7pRnF8T9#H`ddopXxubN zy61Z2d7mWO?GVLxJRR!Aw%R{5#kRj8c47Z`sy6laH8jdW_*m794du*w$SP*Ij(+ojtnJEpE& zQQ#`7qxXVKZ|*e^9;q4#cfOsEXn^uPmt9oC=JKVl|%2+EJXq7#+jd+`HI2 z43}>6sxGAE;%1|c`?G+W=z(+V^d?=*v!bv^^i9~XJ7_> zKJmWJzX{w=8MasR)Qt1_ZBxo-=4hrMwx_-5b9Q%RU>mQ0zXXOueaYEvsnJY9iuWzA zZUNW*;}~m{-|eAUoc0Yda3zF6+n?V_o+LmRv;<{J8$`Zb36Eo}rb#2DcPN{x>4i5h z({s4AskU3TZC!sV64xa}d ziYvaeh{rUa8JW-J7=DZ|6eQ`9bkn*-ZpDo1TFBpog{5nz7w5XauI@N8pd^Rh6q_aX z?#9$7v5qxkSBeGmZVam=Ji@R_UXvI{E)xBJ>BauFx_jH?gAB@{F{osYI+AiaP-0G7 z{tf`upcqmW_M_@cy@6#zn32dFg+42{SO_G}wEdp4q3bl24qXC*Y4PfP+tg9kA21wO zljBY$Lhf3(2>)h`Zgab_q6Q31nco`FEp3bNgInmpz&5Mc2L_xr=4MYAH-dU%=UmAp z!=Ryqgr@wSYi%&Sd5#0{c z9_}y|Q`S!#aG?%IF&gZQK(PyTIEtb4ds7H{s(c=>OtU4;QV!m&w79;gu(##$&HUDYZoQrffAsa-`oIUL zS&eQI3TG6?M&UC`uieYo+C3qDgA0EC7tnHJ7#4Kon^Rn0aL6y>MWU?~l~L9{T1398r(EQ@yGlP6w10RFj)r{k}LYzrdJ}Uk~?- zWj!Zz{A~8#ysf6y`~C8->S4cGFMrIYxT8!yj{yJ8L{_L8hk5~h>=~SmIs<~PSNTu1 zo?+i^bv_|0|IOlXx~-3>pL|G6Myk~zkOI7*2n$s7u4393!t^{(izG`UJ=_Hy!GN=ZNvxwAy!{ zD-c@SVhDVB8*nI01=}zarGGDyYNa>EWO|F5(nnmT!jb;l43$YMb(@`EP~l@-yh!@M zCn&$UqR;LgQHNHJJN%eVUw^5Wf4$w~I;I_YS}#t>)IB2E_+Oi^GnfU4T6sHL_0VTdq&#Bz8*+M%O;#UHcRzNgFZF4? zr0w{cY8aF5{{g`zlj-aIs)o`pcH!((coU*OF8|YO6OKt!uZ{PFgq3Z!CnStEm`}0> zUyt6el|YqP=9-iN9yM7V!e4h)c+JAW#*g1qfJiF8}0B-y*PcLU7MjB1_uQ% z-S~*G-WDDgx&-4Rd@NT?oSe_T*Gt8SsCL}`G&pYyWJ*=ApoZpXLk(>vJ+sRX`~11t zABSh>{W83o6X*Nj4832*SMLf}{a@?dXLA9g`YpD8v*+o0PaKrV^k48E2xTPvF@KVR z_2Q4?-3djvKOSHn`n5hmhl%bs&-dX)34I({7vGTJ(u6*auFmxGH&`B+Khj)sa}e3R zv6)AP1sRYU6Xru~WQZN9F>$V3{Cm48XG(BXm?!Ze5tf7p200QR5@m>yqy}Rej%V9w z=DWbIemSh``*J2m#)a9K8Wdq!;wFJjxTP}O(altAcn!$dll;*M$c(W{4sr!6iWmSBS7T#6%w()OMO)yLy)P&3MO7 zr?c(D>4%v3SCoKxPc|r&eDli#G*M-JLb>! z+Bm;ChoSX_wbh;9qANI=G;|7|)tzued31UORC-z?^AR5eXQY1(&q;n0nw9>wU|wR7 zf1T70m|nbj+-`pec1ZO(zT>8s4d>p}$K_%D$@EHkx6b5cHf%-IfVjxsW#?*=Mhm|jP*f3Y!X2aAFmH~KS!*&c0TAW)}$$q`yKT% zrxqcN$?s3l=Px;#Out3U2~@5B+8&BV$L9?P~TDcFc#1wO1Sy377 zu>vO0W^3bm<~a`reGGVoJW}`{~uM`~ByQus}3+1n+U6K-%*IVrbW>+*uzE z`-AtaC_1KB($Ypg^o+BtAgKE9 z3q*w@Tm>Nn)fx_`^S;I$N)K0{=MF_XtD&2P`#rrx)w} zQ4n!42LSQbZDgeR*-`$$0a>7bgrH-T@co?{mOt$AG!%89p9GJ3ypM^ER$~8S{8=eH zW6$aWYel7KR;YeVeisO=(@Sc~fQ@*+hgMG+0Ap;D1Y$MscW!K5zZdW1jEy57_o#j( z<~Tl*5$6N1gf#Yis6Pv#G3LBN$VQx>v}wKCt!CdJHfY5$L+&*_rUTa+w(RiBSx7^S z8^c*tCg;Dy=8piNCec9F+;`8*m>9EXnrZ%snOi!|cNDy8)(*2@wz4ZO=xEB@BJ;~I zM*LutP!Zh zu8zTA^`ws3(v2Q5+MwX-tKg2uq3K}^nj$qSX!$UO)7b;Ng4raF2$Kb zvE}2C?WIIky1OOY4Cw`4&7s?FX`ck<^3)Eb0m%`3tbQh?G zy8<^+iOo<2LLDDJRr3m3th-Ftf9bgL-xr6!MBvi*rgQ<>Z!UI^TO`aatIZn4+>i6s z44delERAH!`o}~5rwkQ9Q5fWi9K7nZhpFgPf36Q(4J!0IkKcXU-WZshKk~1u&CS=l zN<-s6^Y5Z6#q!JIP@N77n$U7~y%d@5HA<)~(I3npCF|n|>gl@C62hF-#_a{t<@(WjPLU*v_XBsMEKb$K#hd?BxKT0PB1khWk=@mdMd{ zL1km&fIT1QK!%BEQvloeJPiF(&@EnG`f70&&-^L{OXw0wSn{hdtjUGgV1hbgC@6$3 ziTW9e&j=h)ccDXY*6@7nsX5u`QnQO$n8Yg~GPU&B@Vug9$@tP0uNd1AFKKdJ@rtn$ z?;GJ1vmMY3IrM9o=Ii4MPc1NAdxT$OMMlF^G zzk0jg)JVa-!L#`IcK&{LbrC}p8I;2G;>~`3eD(3;|2IQ$Kv;rF46Tn-kT0O0o=Ek* zxj5p#($Jj&DGZY{tO*rOc)fiP$~!EK$vJojr7&Fq(VItsB#oizl9tlio7sw<)-n|8+ps8UTKm1G)Wm61JRYhA6mHU#4Kbz}cBmv{sgcF+Wa0 zzJjtp+kLg3*P(41Q`RWr2^Tjm*x%>2&3==Q7DV}lRxU6nJ!E{mA=m53ATSVGFmEaD35rgppfjoyA=vx!^fNFiHATqgn@FxzG&2ff~+qdr!rNIDwy0!l^2b!{YzMvcR2IU)4j|=O=JctN=LOZC) z-D5&+KF)?5)iEr<_%;LX;*Nr~GAY&{XFxu`!!F8)ZGNtxyS{cc$*UujuwDD1ocDPS z^vfl6jc*--2yp#%4s2-VB2hFKy7|3=&&NpZYA2sA^;`=KD8OI|oHR*tKmw}U z^6szo0}8Zm7pcq7{xS?x%oGJ6?$_V{g&6Bi7Wl}Z2&Re59(udjh%n!X+??2-hM`{F zBH($y#de4)T&>TN(5{d=Ti2^BkjA%RxTrt@mj}WuAta9!LK>O8`)wHRbb=I?ul3b}+qNP+zo{4xyFE%lIs9U7r<&^rZ&CwNJla`nBd)mtQug<#AX zv<=cD%%E+x27q$~UUi5Bn#!8;qa5K=IKB&hYuy~Khbgx_JLplIMdGZFc{ zx&{`uHu)(<`D=PAto?^6Z?7WqC=!+l+xR*Sdvd+o z@9wDv@#aT$57$~Qn!vyej2E5Ic}AsiU6stp_*g*}N`^O~!#+(jYVtDiXLIN~Z6J7k z=(Eg69VoKwNk&X%NC+zCKpL8duY9PQIipIJKCl$u!f^_p!zZIRGlfu+T62EpZ*V}- zMIz^&8v(WR94zf)bWG#SDYdWq@GH3EdI1gX#r{AQhk3UtbuhF=xCe%HKst`^j^Emg z#rQ3KxOn{J-0UKP)*rD4L5i6kU}4VqY}#=LO=v_IM@|=%^RsZL6cQwjLfJ;{Gur4q zm(hErD^@jEtw&v|nmV%T;qvRJ)-oo)%z$}qC{XIb7zS*9o&kMwNqPesGE`+~yyFx; zJ`3zr4IH)h&(7$H&ECoRD=3G%)$ff0nsnS2LvUyiPn^jGJdOW)ps-)j#izB#JlEit z0hrex>&4;C{@X4GtpDQxtch7c;-1hbS!Gm7ZL!sCh|s!rIGDv>A-^j!}4goSR;)cgsV)MI~(11&Sc-GFV|& zGgRH!CYNGjM{4L6u@uF>kHEhOTb~q6^-ToM`!A*CqnL2SzzsN zBXE_K*Hv;9nd+Mu9JbiT;P5vQIFpy_BQge2*=&!lX$Rq<3fQF-eZes?Jn+2iA2+KC z)#j3`)c!OE^&He6M9bgBr=abfgfl7H6Zh)~>?_3Yp`mbsSmP@Niw~k=Sn(0g9vQ|t zK{zQ?FMTl~Y`_~psBncwC>%;g=!%%?fV$hz^HB_veKunN?Qi37+q)?axBYDlZuFkl zb2mPVLZd2;A+5oHray~8b2WhItR4L#3fp(}N5T6BL@~Trtg0{jrMy^Ur%*Fy5*VZK z@R>A*T!{N^4Z(m+Y_yv(wVu4s6?D(Zn8d(mey`yB$PxOKmZ_gSs+2id_wxw!>6sE9 zO+!~93Ih^Eqlu1-;G0~-fqcjBuJG$qV+xFj;Fz8PhxumAK@%Pn!88#XZ1WBfkvU4n z`pi1Uq@n|37$+p>DT0x_N<}E+BV#xPv5i0~LKz(x!8jEUNYo!kA^~0ZZ`Mcpe`OQS z2NIz~J`g+MPYsP>6~+ub|FVTn4vt|yzY~&1oFItGqUBDFb?_=XXRM5Iz}QwWwjYV~aCh|Nhy4R#gIfOhq>~3_7N9JOE+s`|XzN8# z2AnKBnTG7&v^VoF@_6a=Xmdd_3xMWRI`vSh zc44RWo@Rs0rZP(st4Tkw{_&8HWK-Ml53UcK?UT({E_sM)l#PM~gG50NEzZYI2Z`dGF|oy9|47oidX z=1`{Y$_pxA>a{YtpC~BGQsjQ4j#A_s1&5Wfi5+bact-`kbKt4>)?_N9ME+TC;9j0w znSXjiC0i+My0S&O5k-CFOGy|OyrLfE>8_SvpoQ&UtRAJdIN#izF2#S&-)|-}{NEY> zZ#J7cw^i4g5uJ0Ui~>my@emgQ@yR0RFG^kxj*c; z!a-b}W~MJyq0Sh@n84@tafi%OJq6>h_$#XVSHa$kp?@~Fa2>Q z2%FV978`$Dl z0s|r#Wc42L2d&|F2YiwELY`{d2+_Awi3Xf-rTCF4}KF^ou)>iu@Jvtw^*7tIZI4p8l6(rdi?cUVw!c{kFja6Tb(L8k zsyQV%fwCT}l`=@kIxMJ80i8Q)+fnpc`ymTjE^X6m5k^HV?NFl}ag5m82;2FL6}OW2 z5|c~<%BAT1eEoU17rFQpH`b=?NQb>>8)kybrf#Z3+S;UbVcK~Xv|QSzQ;H;5J{}Gf zkSJDC@QbSVCR|B@y_OF#o5qPlBZYYg61$v+X(qgE`q20ru~{GXyH~4!?w53GW$x!BK9GXgDfDUg}={oUiIhr@n}RF~KL9lE)0 zC{VM654rFZeW?|lDltW|s%FUbJ-yb=z1bg>qAImdUKpX@_Y3Mr*Uqx&I9}mTO=U7U zh+1HksNGe<1ZSkenV|VfVr+3de~7}8oY~cKaaw+ji&EIXf!k!>_dM0ivn*d)h zpW2q~;~0hzq2UtRKKl^nL94WSm-;@BKu=hLQwng(lAN^dwCeuho&QIoE@wOQQVj^t zaEPqW6c>iWG44F1*(_f1afrESJZe67r;CTh`Y=Zpn`^5Z0_TiMn;}W=(sWHcDb}Z) ztFeJ^X>&w^o7<1!Jsp+ zm^lPff_tL_gCT`XjSEh^hl`X<>@zp%3k$=c{^JUO1`R6-NKZ}3DRSwu2I^msn!@fG>?=XY1t`%jaZTQP7{ zJj2b$*<(HFcJ|r%Ry03H*l3HFCg;U{+urE~qYPeTjdJe0f>8!8Y!>01mUl=qoh20s zrmZ66WAg>=69;LR;YHZp^OYpnIcpbWoS*Y4X-&@AH_2}e>LcGej7omXaPLm%+w~4Y zjM~lPthOo~cz?7;QrvfNWcx=R=@IIa*I)Jz@Auz+K}*cp&HtEg9KNje4d{LxhCDr+ zAOCf_pIqI+2)qBhIH3sx`rUks_IHX53S&CIetm$UrhbjMi<>>3gA}t+jJgDhq9uF< zw~I5VLS$N*^B=P*H<1?SRIOJ5wC=RIN3e_<=R7+1e_$HU;Vc`dX6$ZQHxj}+u=zuZ zuwX{X=e$ds8s*@!1JVMs@PC$sCh&T*u5EzoO9j(80Y()wvYZM-snSN&hRWIfrI5PO zl-l(%DuO#cIw+(9rU!**xCV>YrTTDWP!dy$Z4K-ohxqppGg`kZYWTQL#NnBJg>#Rz z8gj^61SP+8V5)0wiuMZ#zWKqXN9pux`YPZAn5rM6DH+@m^W&FcAP;r{BHD5ASOxeEy@+wmtgFKW36JF7tSh%(m-DY!Yra&h|~| z%VJ6)l8!Sex&FH?Lch$vELP=c0o{ntfvh+mc{6(+Hrkfo@%3B^voD?2ORVE;gD*$@ zOpZ;=dZ%e;RLO9~2}j{KP@~cfSs&A>8v4!J9-^>#f_U69lNa~|F`Aa_nNKw*le7ysUFygE7B7ac$B58K6N{lCPZ|N26q(hmqE zoGoLSQ(Yl;p>gtZenffS^$L@CjfQK8mO~Gkj^qV_b)xLW?6_P!)FABD32k>jJtC=u ziZFL$-6Raop)OR8z!E9EIpd#aLl0zig`fxWxPqViEk^Or^J(`NdI~}ppF7a??RkE; zMB(ifEMVKk38m;~-`6MVpbdEngHv<|q=t6D8nAPx$&~{gjBN)*0J`rZ2a+Pe?Wq{p ztjQ5!9Mkirf3XTkek+4(ty_-Ig+i4Ws4&Lv=!sF}p}#JY4XrzE7XORqmZN!ir(vyz zSLcWf%$c!K1+A}BB@^)c%C!$&z<+qv3{02L{e$+vWXKKY31)i@lhg{h$52BHwneFh`6es zNzHTNjiq+{WZnccr6MV3t+u0vGMZtb$)! zs~*9g+Ut``nd}E^0lC=os;vaaDB3+18G8^at%z#HhJs?ewYmaO6gVfrnW@FZ+yMm` zu=L58D4Q*6Oc>8gQ7whSjI6!oOu_y#2WE;b8fJ2D;SJYhlg<%g3l$gdX(Xe!+nJlS zb({%IazTV=W`PJ;K9unHey*TY zOt6h?6w?!+j@)ySQiJ3W%xqzfa?*CQF?`0WWE)7LBu#4|6N zd&N7u^G1wfTxqoHky%r%q$ox*&PM*MR`%?0%Nxen8aY&@Kz{9Tsgp>vSgZ|=V7>l* zyZaMP89wGmq_Gt9A4~L;dR#VPP8ptqz42(TAq?2H&DOj6vK{|j&Y3}6xcPTjI*W2mMorQAG6iO%rpPdxG(|(F zs+Oh4HThqn!%{f71g4+ywP|qh$6?5$%lF$gN@^|l+YPm$pU_SFcKp{LR7axR(d&7P zoOt~3>fPpf{1>tk&*SLZLJZSrlhZhd7V%B{XHh1x>u$&zH+_G+l4x z{a(YL9*}T6$AvVSBfbIlq#1GyCo17|j-CH)a$nq^75Afpf(x#T+fPb!z(Pz#3Q#`2E`SrD8=5=k&cLh=!IX2; zpa;MpXxx1^C>ov_tufvFfv42$d%4Ud1}`Y73nemr4b6x~I|( z0$kG9HP}Woz95&wa=ttuFXd1G3C>qgZrv~%N7ASWu1kdEqSwNHwo3s0s=jKQ@r_DRqvO7Q8y=jEUn7)2+qsoH+SI!LH?4-gF&Um_lQytDE2sk)Lyfz(+5n}Ar>nYY)pdt0=w{aw zFUb5Q5nQRAC{-73&y-$$LkpCRWqCIHstdISaL*K9lxT`>hadMbWg09~YwU_-b8RIG zu8~S+KdfaK2=S-cayyo+|SxS?Tr43xZ`JIPVv1nA*|k{s)C>!(=!^i~*CZLh?9+ zh7A_u8+AdVAc=fN)rjo^m1%X9p89e`H5anWZ)U5zrws?xs;1;V^@vtD>t!zkq>fP&n!7#+(#GhR5 z(IM8_8_}op&1YQ9BF-F7d*$#fmFe7=L*UQbm+#O*2x8GvHlu>H{W565+M_fKEVN@bN zgE+lY2P9$8<|V$UV$k)+8gfF22Aaai(=dI6!I2uzsR9%sE2%+ehBqEZ=i?>^Q0q`q zF}NM()=U#-hi7coU`SF*M*YPZ^}hAtW~B~7nIPWm+Dqw|Gjr0LP}(Pyo9=fvXj zdfDcP=6fsN9It{HEg5?Hy_8fuwoKp2c7pk-*+yUV+&6x?*Rr1sMZ9iaaM{?-r4hsl|(BYx<9X~)Nry+{Ym znJy`Go0Y0m?v`hsE9tV(Z@KTVqJWI={+ z70(216fw(DTU2aR4VQRrz8j4SP9LzeS4~*#<0$0w48YE}F}N`8R>=-c)LI|LAihHh z!VDQWAIBh*L!lOtmPmfn*c#r^)w?~}0hZfM)w2nyApoN14~r-wx17OAn41@t4`pps z60Qd0iVu-JBnitqXOZ$5r+11Ek2@#{Q`6KZVQvDFM9Dh@(Z;uimuYuY8m@~rsGLEJ z$x}|nasu2!K8^jmeHL3i+Z^;}y8$xcGQB;4rI-v{X5KXTjuZ>fVXAN5Z=Voa@F1Kl zBoW66MsZ%Zzr#OR8CI5*AJgO+>IRr8#*IAxvDt*)<2v~&3=S(@?+x2?8DaaE% z`FQko3de9^dFGLO1cQ0CkBbCBRCV?ZmnT5QT+vN=ysp+T9jy_D7mG@8zhO8SyP(WDXM>MRVxm)p3v5yR8EQlkdV2p?Ldovz}Hy4CQBB5{MaOx7P z!>LQq^G!{np>GU5%+wS$%PS${-|D(L3VTFOXBifNeV|uW^PnV5!O5t@cUOo=RWwhx zi*m6T* z-|l?#(#s%$7BmGX92fMZxO2o>?gr4zOcx4+8=(bpuH@ti)&gAgv}+H~$gL}V^)+tJ zsW$Z0SA9o#wSCYBJR?6|cQ`a#@JpNI%50J=9csjOR6}jQ2zuurxQV*a?d&I^Th(u= zsG1e|+%F5~UJkp@YFD`9M>A7+1Q`Tn{oYSihcy;N+iiw|+_oS!NMdVPEJd+$j$)23 z7xx<9CO{50h_Q|jwH$CQ#^&PHb0uaziC#TU<4X*W1gn@W zWBJJ(rm-c&KLS&Bq#}=zc#_27y{+;_GS0+V$HjJM`)hLt3XJB)Qt@8LtI_;4@K1!_Li}6-#H@S16E?9j?k*($IbIRYU zHMhI2n%lYdL%W4s-*^l^^sW>%ZMF+o@+G=@X`tjG21{3NYLAwVvk-Z$?CAo5B|oe! zvTw8cL~!Y>EuouymD##RF*zg$4R$rr zM+nx!Py_@PM&tJeK5du=?&`ZdafrqOf6RLJC+bzqmb=OPPD$>#ym29)!^cR)$RABI zU-4@PM-94b;MZ4+az1-D>3w5($0$AnZk|h+5paJgXHFG7z`s-_^u9Wp$4gS7WdV*Z zS6EH{g(MfDdz<78OT*^XgCl6n_X7U;aWMocHCM|NCo5hC3WW z6SPHm(HfJ`v=YA7u(hI;L@vUM43GIEHO^G&ICZ5GWm=75T$rpR-s(zS#xTYf-4oY) zs``vNgh7h1i0&*sHonO+05XNbP?7T}!s$(BeXl;MFRCu^dZI6U&$b}Wxskg`&Kx?pvVeLzp91zxEim_5%8s{_kIrL=uj7Z|xQQPYW98}PaY^vy{M5w{gLrzgws^|<@iGE3NVL4Z0CL{Oad6D@Zti+D%Z0E z{%u+^|2|u;&@A`ZMQ`%=-|%RvzGH}ow_>pMjmr{j1+GS2Z35|rgQLz`foY4$9hHd7 zxq}mNIiu2WojWIQ8ZLKK9oL2G#B*=D$Nkc?D2yh00_(lz#Mc@&VjPg?`mkJ~cP|Ww zZ;I*hZ>SPzrK>f5s3F3nX#B6r6U3WxbWTlEZg*RFEDq1gDb%HVPC7J0n~3vvsPVXW zLxk6IAaXgbJBk9aTMmt6CnJef;|*8r2M$rp149nvw1JG#XV|J$e$YtIXNOSzUxU^y z8{rI&WA?9vB)rj~jMZZn46=JQUzIbvly1A>t*{Hn7@nPhgwtlR*TF=o@k`NTllDoX zX>be7+H}eXZ#rH*l(FjblrO~5jXcIamCqCO2PLvy=OW6shwfCTP{j z^f!u>v$U31Ly(q`5DQrv&4zOpyODw^*q+i6=)K>BHyAGFD}5u?j}TswU4SqpP2PY! znY;d3vuWBcYcZjA#lLC1i$H_55K}ydiZz;}Rb+A4&6bBfsczJfn5^L*OCw86A4#K& zce~x}`Q83M<@~VSO+K&RVC$Jl;h3SjclSl{2`??LdYKO-fszqbYv@c$0+bpp(h%s_ zfq3C+2}ZtUxI#x_fqHJl_-9dQ`l@2`e6aLK8WKVX=?RsYh=)FO`r14Nd zRGa;D>>skGS)8WI^9XXx!Kq{5QjSd-VBITFrqs7WE}JY*ayhvlMQ`636h`*9TV zd5$#Pk86_vSBAFk2}XJm7D{tY=o zV=9%ZG-kZ{^mBR;AFcYwZdAXVXczSq1ZBQH$KXLn=71wuAoVRPJj(ldp zMvOf`Rj7pgYGTO-#Z(zg$2kiwY3uhqzDCOE&GdktxofI=$`Ll;u!@q3G0`+K6X&Wm zPBD^kM(*dzk3IfbBF+wpw&jMbbjN!v@8~!CHy5U%Q{LG=D4uI0jyB^S_u-E5ignSQhP)7TfsIlKjpcTk8d((me^m@07_ zrI8iAtTI6`6}hqr9-CkWu=-P#cCv#a!w0U7DMn2>hs-*ZDRE zH`%LTeaH~aicx<3In}a(N0%05FsqT)pO9;N5FRRgSSit9Kh8{?HA5In)2XD;ES!!P zhPyCn)fj`vx6*{duT>IraPngCUSZLp*;sWrN;XbCkTDw3sI_B`LrJjrEKgWsvekpw z?E_)*@Z_KF3??%dY&K-3xp7@*fX-e1*`S$f-zFK2#+#o@G|O7!NyJZ~y2{6Ew+j%a zL~Odcll<-dj(W07$97b0%!9x*_->3GcY*UQ!!-g*A}pwkW{hUsnkTl}rP^TNGC2RA z4f+gFNWmJ4AG(HU??lg@zGPI)Ri;Ff7H^Vt>yX;g^yYEB>SP(@m9txN#29AwGAm58cPv6jkyZ!V?1s*vQXt%jI4oL zrOL1sMaCPhcuRzsW5fyeAwNbnP+&BZ=J>j#R@Ko+m*wpmCH2&~o$c`4N3zlK|CI~6{H9N+KX_Mu zhjDoKd~p{3M(HOM;c3;BMYGVUT|1iEhl={G$j~)HdBk%BJfK*ih_Uh9JznG2`DEc=kLc5E`H8WB`JKE7fdr^3j~+{L(nToNRE8 zZf2{yr_G0QcKD$ppAZWl3WKMPRuhiUv%B*h2F4_KvO@jT@myc{Etq>>yFz6KLEm^n z{48b%k^bLdvUr}}PewRqYP@Lcul>BSzIzE;q+DdIWIt1^GZ-AE2Sqd}N3|2f3NY}$gfEjwu@sBK62M&hKQWC*kD2s zW+?a(9V?}Bm^wWodVSBk7Hx3yK!I^|eeCR1aD{#0row9G^#wr| ztYB7o4?^auh{>4x$-}K+T-mReLL);sKzrRNl)mlT827LpNgu4LuzOO>nrGFsYv7&h zx;?!j>6QBmBlDPe@_RxCvPUw`Cckmhf!jxLmb~4}QC@@0G@Db-dq;?vtVYPMB^2vr z2xW;TuAl4WW{;wQ>5*4=(;IQLq9|dSe$oz2E;n^wYBZ!kP7!pBhB#CotF}u_dp3kN z7RBEsu$U-d_hW|a+s~d8LC422lFV_8&)jho?Ur#1Cxq2~5ZgrPGs7VAaOAzU zGg!=q<6!)kbRhk~JiryhJ&HCst@1FBxq8PHnzI(F8mdosXu~A!)H7ex+cb;<^ zx*yjdGymsr;8EX~|JrW9Bc<$E3~B#$vwEheGOE}2^LBZAdoTAyO^6vlT2q3$(A_DK zK*E%a-b@f#XGD@AiN>LsSS7){J!!~6$YtHMG7NA>tC6*h-v zNuQYptft-SSL?yi7d%a$AgkQ(XWvWJASOq@ICnmdLcYw=;@ppGkj;sB`Qd53e*S|b zdsptCR-Aa+WQ{*>7}*NvnPpC{ZT$#NHIi|Dstp~D6p!VO%A8ay=%)G!qBE?((iUU$ z@Q%(tl>7N^`3+gkNYLJzcgmL}-1YH{U$ZTan|D_^JKg=5A!DmKwLs?d`Z}ZdG5!U` z4LDw=%y9-EA`IuAU=;qL`7%tI8_Ux4rGUxC31-vT5JH)EK8ZpRhK8?@o|t~F??Ym<7R_4|sL{|50 zw@PQcDympkX1_ry#{)XuRC_EqmvAz*gc+qXm~3QNakAU>eaHID+jqO~Pn0aSADzEj zEckB}ggO36t}T5WRpn5~J1oxNp5QT;HF%@y1^Q)nc-qZYU!KKz+a+r074&i_=N66Kmic-wzFo<4~<9j!|$c@ z@n32;QjtD1lv6>uZ^wTf)pL5jISRSnM5zNAqeq**H2v4qLx5^72;?-;2rb7CuikB* z$A68-^Piye_)^#@;*QTx8C5wnBIXDae6~lMiE>dq9(EJcaC~&F;aP>KQKd-+ickdv=lSO=Hi`oz$?dQ;{8RI+m`%V zV;Qf|@%YXOwsCM&&K6@CuTd>||CpCH>pRh}7?#lEDS2d|?GZ6~>u(s2k+!NP0!7@Z=X`c{@j+=IzGKHZ(btDo|bPV?ai~E=nDgfcw5;HhGoD8SnvnLtq^GTdxJwp~W z_a!Ii6zOjQoRh_zquw))Uc*(Wzt#FPYZObT=@cVmmsFI&@>*q$VqEleFN&wl@-KSX z6)FQ0KYIi4%Xxuxe>7mnzflf1V%YICbRq*6ULUtG16cdx1lUf(+ja2=3Cx;-A!RA> zN&aL~Wna@a8htMh#iCqM1qheHlOWU_;+U>{@dyvfTapP*dRaSga73CTl|yj3C?95U zc^_p=fvQ>iZ9HGO8;f!$`UA_<;y69yOYhI}8TaV=5oREe%qmUI$dEopK)t5DmZ7Y^#l?i` zyzbouX^7Gvo#8UQQ#ibeX{BH9p5})M?cee39Hu_7@d;aCF1G5Iw9grO-TrimdVFXi zxu30+5ew+Zkc0lSjh3s1k&Kh}bf&Gl9(&RbLN^-duz``)_U5(XMnYnm^jw@@9Zmi^ znrNp=oRIC`F*hfVsNo2?6#@w2pC?0i!ge(IA?VfT3>}h&OY;$10Z)54N=QMUe3sVn z^8!!hKa0ohYB_%%pCf|l44ZWaMGK$0idI)xnl4stTC9WwElOrKp8%ESinN3CqR88) z@yWp2`f45YL*f{ckI@PE&^QbqqM%OA>RnS26FxSO-RL>CL)Gw*!bRp#JkhI$_Ub)b zQ27++J1A9e^^W;MD0E6jh!`uZXaXq~{MB-@rsU=*jm!_OfWnsUP7G<$hPlcQLZnC(y614HJ3&!)U z{R7}OeB+3zI}PCGteYSa6(B6vytT+0(F%g5fu9-_c+i}XB@=C04AofaMUYPR)vkp9 z7pj!>@wSG*G$i_524qk8DS0hvmA2wE(eN)NB5t_|N(1eE*F8jO${Km&KoB3T0g&pqsq! zlhyQarT%mBc{Li-|LD)?T0z+_H}kS6AGh-#mc9(KPJoWNGuSRP-Nk&iSNugdIn#fL zqZOhFB#YRTZ>^?fkP1wl#d2S094dbH%JeL&JO~u7G*Uq`_w;DAUOQSSuaQiTG`lVp zE#ET|@X?X&#O`W|426ohq9ysWq}K2gt6{6WJiH%h2+*Xs227J~(paZST*9i>3;DJ2 zwu7F9vTd@6#c8o>UcH%{_dnpTUr<;Mit4j4Rmi#BL`aqA99{pbJbc}~$CyL;AJx~d zA;x^v2LjE3xsKUL!fIlqz;wc;FBkBzSTrwQ{UD1i-)%xwo>-S~dY0DJk^a#!cXWr< z)Sq7P`P74xV9Vt#ql|6`p4wqyUNB9z5ey-SDxQBl3cW)4aBVSGcSn1u+G>HQnG?Em3F#etvzfe#F^L z0ZwD&OHmY??_dSAZ{rV-(X;h`6OXTb9=*Y6&Vl_}=0no@+U2TGd%iJVsZ2GULY`TH zVf~yrV^TytVQM%;a-!b`Ax22XQa@hHuJGp3ymCr~OoMNe{GbiSf4kJYGK*lJj^JuT&2LE)|UmM{tJ!Btf{mgAM zm@$VDBg$wEecgF&g~$|NYuI@5A*>DQIH--eoUN$;rg{Ywh?o)+;B$2<_l-7;@}wdj z6#u|&1#oN3HPm5La%KEmfelWVssT%Ek%#c0h8!V&cE%{SMREZVQGl!}G z;T^mqJ7m0YH0yYLqns~J63hUwnQk3&$`;U8U8}uh_Yaz>X0OhAS@%K-*8+KN#&B9u zeW2}njR!7ea!fv2ZmfH1g+gCl!ZkB0?r8{8C{)e|wicckpU^1QtX+URx+YGEz0Nxl zW!T@Od|Fj5oyA+tMF-&!cfzApi3?t?s%0B~jjVX(B9neEAykaMgiI<|RwX;1a9$O8 zQhG;M4`{e~B7?`Z zzK8CgL{LnXINHN^D<0`&6e4<5GLcn2OWqEdAeaie6l?Z<{46Uu4d2)N;p8++Hir*@ zkU8`+7;^gKdhQUrp+`&HNzn?I#|d`VTJ~Upnfu0Kn|bDkwis;5+$GWq5kOdh?r)nu zTHy99sSpv6nRGqo&KAao@Tv})A@Z5;P#4!@0VC^Nwb<$jyre#9x-n@m4kPKu5nJ|P z#w<=E=e@FUBZ-?oO@f;I2wEK9OAOWcwiobkEmRyaQqg{tNU|XXx>%JPpFXayj)YMH zmve9E!F&Z!>U^zMZ~CA{Oyad5Y)pOx;@d{Jj{LFdm?ahUdStYg?c_)i-4G~)ph|2u z&zG_N_DmntNOucgrk=Bq7gXaU(;Y|rFVJfe;U0~COwV^3p1ho$T~%Ad>ANg6v=vro z6@>S89cyr9Owo(J+L+{iJ|^aPH>h*h=~a>kfcdU1;Tp|E4?Qf*Qcu~vSzuaFbKJEu zSd|`2_I3;sAx5{r?aY5V+ML;cgCpW$xmu~yxiW94^V#xm8U{VnAA`_>>lSB-Ay2Gr zwU)9@l{y%}pmPR~Ijqh|`cTqHmPL3Yv-!ms8!pNPZq3DVf0!X$^vxK5yQf+U>1R?t z(4HxE)^R`V2iJH8yL99nbDg|Lpi?JDAAvn%U}@Jjcnd_w6UU+4Ij_3G74&wHNS? zYR@PK=JI%_ST*g3k*B~kFi+0@8it*rc2`K_wz4qI0`It&W7r0srQod>wze3yyKJ(S z?}j!gagNX%1HmGxZ;YO>gy$|3!BK^FJvGjST-#!OV(FKcTF^y9f_)oK{5T{Z*IcVa zL?maR8js(q61%Dd7~VM_;iaXiLTN6%Xm9Tea^SgP5hp_`IMr%E25L zRb3aiWK-Xud!ibJ){D*dfSl4_hH`9>8|0Oi-_Z@ID&96jmT8qSV7WQEFx3KcPdrns zGV<9}gng9?GBGPsz6yMSG+4Mwu?+j1+bo_wNn$C9hlh`o96F7HeA%VoLXRjlmsqRd zllu#yqEh*NyL)a7h-ya)Ho1P~Rk13y&PMlWY;;p2hw?Pui@2137S%@95H;FAp~7N$ z3IUTg@>_xUv+Lb#v)HbS*?f*t`DV5cv+w3SqU5jFN1c`(RcOjsb7WLix1`~(J%rXY zj5^c65DX1=`j?5DUe^ld!sv~}JlP$AOzAT2UufTf80R)n`=eFI)AvWGhA3!^1jVDR zcbi!H+AzlEX1cYQzCGerEdyDPFquwtvZ#7Tteq7k35MBZwA%hEcf~i9Qnm0K;T&Fa@0*PfEm~n_Ryi zcqeeeAH;b$A3ZM1dHHLJrw~8-ih~fO^7W%S#^fVjfUsZ&1rg;Qf~u?F|I0Wtb2gi- zT{kQA3H>wkof{9ZR$q}7Jl7`DG?HN~_JPRms2xAG)bt5Fl%-tCh(-h34 zOx66zs$A}7sD?_7L|hTN2XeaDRHF6DQZqcTfD?ePNWXiSh0o#YY3R0 zQzMq9(kMy}fsZw0Ue*?dguNj>)1825N{Gi5mMymmv8Iu3Ds2Qk8s#zjm(?6U9 zy1LaTSV3(ayPPCapOK*lD*^(F53}V8vG%+xRbK^LgYE$u(+2%kZw${F5O`_l4APk7 z#QW!toc{@{>86CBJ_!q`E05<+#P9trQsfNGM^-O)x8|=O|iU{ z4lI7|ey>cCp6~U~`FouVD>IMJon&Hu0;GH#gN($KJEVkDk0SB#_dvBij6r;Nev^?U z?S34EJUYv1I$ry_23u^n-&b2ys@;6QRTXU?DkI5*M_3#`@%&uI)ArXZ}*4s zUr)2up6p3dJN1>&Oa#GH=*bLHj^rs?go_+*%^1eh%dk)`M3soboFk(FLzW|xhf8@+E3o0 zy%SoSMYeL%s3csft63%{XAI-PS;}6i(YdO5u-iU@xo4lfpy5*k)wSM)2GUV}O#R6< zP_+ihR0_Sov0Q~%x5|TQd4Q! z(}EmhrIAY+CLTyLl0=gOKvO`zms&VXxChlGo?UQie}|ErGE%KX$j*@BG}*hH*Htz} z>2TW6v;4bRCVmR4k&H8ITCTJ$u$Uc+5-ve%btNvRK7a|zM)4rG+VZgj=|(D$j*d?X zq&sgHNY@^R;3IwEYxlJ{3-SlI!VEJ(UVvUrGQ3rMklNAIA_%UP4dnfh9y#YIzliAuLO=G4t(PE#Wi$P=yteYt9>Qo&du9 zE2aq$Q)HHX@K)01wl?qF;8A=GpRu3JOjVXO!&AMw<@k2^YtPdx?0PigHXCkJ;>a@7 zQfm)wPAs90jK5Lo&cb&h9SfmaO~!=oIwU#|cRmX9*?oMp;*^Z=`UKC^H))R9v$b$y zoBO7}g3t6rbHpi*V$gpTkB8l{o^0Lua``WM$o;;WeV@*dxI^K#wF;c{C`G=>EzVl= z48Scq41%FJ@YN9QnFoPFav=*U@*X#Duhc0>?nK%r4$TKgoOpTzk6aEC0#Bq-Uo z#TV4dRox9^(rwSkr27YSxZm;A|2c-nE4Jr=IG7LL_EG9cP2w;N9nTO)6R)2kDFE71 zAU3FYz+}-NKu9X&9*=O4yoYmOXgbV3!svuOD3$*Mpy9wQQve{*a1Gw|&p>q~~& zW&Oemd8Mwk8Fhkv{!ImM^VTst=Ndcbs@I*<3N!O8v`KNy5+{?*!&VjZp}RP)1*eV7 z#i?~y-ZqJ}>T!(Es69#v^-^oJU1`W{)^^8IKN%X4ha6IF?D9?j-1F7AKdh)lgMbsjXT|r zIPnc)$<(4v&g0Q0Er7M8EEE#L2Us4XA#j>HE5gLfC00^WiPqG?8Z*VUEn z&g`*6dW+@VG?Hr}`*uh*r(~4y`pbNq%J!9=t7sWI?kQU4A}d;^6Ldkl zc1!r+=_6MwRAQOs49moZr%_T=OpIbLj9fZexX3ak)Kd&hR1yIXShebeeb%c;LKji_ zB;n|nli}90$FIg^!gEs^Q?dtYjKX=Rk5ebBb4fcmETe=`jH}BVw0KL$=ky6axq*!} z35aSOiRkxLG%P*zAw$HuWR~4Xg$0d&mYV}*bCnxdls&3R(g1_O)m!4j^+DM}t?3Au zDGqBraSZ7yQ4$=cr=~B(hqDA-bqXg?RH5nwwllRMwMyIr!KaOH;j$P)fHlRIzSbav z{8xaNG!Ga}jf^yJAm;eKO|>U^DXGC|Pe)C)@!FVTRA>mA2Fy$w&DV?KbUJWX^qTtw zZPGst)%8KvJ6A6UaRRgh(3%3T?%SFiFSPcw^{rFKrlNQ4I*ROMdiKev z;8_;Bg)b7V;lwwGn6Ru@VQSJF)bteThJ|@)vO~8)lOI6U35(&ygjY2HJl>esb1ss@ z2SWCRCx9>|W`&@sF#;jk+wEPf-W7qEyGU5k=xVWicqn%z`aG#F%#;=VzL@^*cfY&< z6)cO~Nip@8nzn#`jSH9iDUdN|O?&6l91ht0&0r5>Y-UY)O%q~~iPxx+hfGL_CROwZ zooR2Bl-VJT#J3P=8|X}XvpsV(8gG6sciYVxk8YSgWGVfAY?>`G2p&92mqm4+z7`$Y z0;^Z6;v?BCVl$DpL^SnYIBn?ZT`%)WtbdKnkLGl`*zovyHoI5`5hHT`Kj<*5+$-q& zJN{-OQu>eOO2)>#h0Yw-BRF*N?fq^xFI8+xe+N%LXaqO<^oau2n>g}h%o^VozxNRF z97ajRc!9O1te;~kjqnz@TJtsV0hPvZpF{{r_`RV~lE&kk1w0qK?Q<3VqP?M(qT4H6 zrnh#gjz;%C(28a8c{@is6UzD(7b7}0Z)dwhRa@t-RFSc}3Hs6O9&j4rAbO7>hZ0H2 zR=&Uxz3Et;)s-K$W59Zq~v-gnTJ|8EIVK z$ioYs(kmfZ1fbVN``T!GRdV|9`ly_o;yz@!whlwGP(J zbDIZ}sT3BDV9cfc?rY_(wWvEnU>dL_La~=NYL-+753NN>1HcXxhMcEDr_E(L1X5EO z^2gd7dt9iRrq%#71r(EM%mu=#6x~Mk?+m=~$`GS?7P|y2=fGq7Qg)93+-B?4hcoub zz7eBXI_)=2I<&U5h1RxSnxw#l&IliMA$Xd;z*3i>@;6GuXpOtED@9$sxwyQ4ek`H> z&(OcdIp=J=%a#l>sRXIP5sD?gXCR5X2ijEv=zi!-0z8)g@!g^f)Q(53uOoz(dH#7q- zOO)bL&j^qyaRC?94|t3%x@0&mby@n+~OnnqO2 zm2+w)IZ&hsNAA?97D>sTAGmZHJwI=X={x25c_RZ7|7nCvi8q{BmY1|&VJmOXyUN?+ ziu3hQ^-5&b&BN34#5ukle`v97630PF8h>&=P{U}Rl?>dq_?s4EHC{X~TV?;)Y?%P* zp>y9IA5R8i&9Tb(*_9~dhxXcBp0+8J*(fQ}aO+1;#p$QAYv2h{GMC0`0R=v#TD__U zrE+nHt(zYE|>ab$Z?VN<*~)oIzJ)b)aqnqryi# zlsUF%RCT`WnWdu7|E7P!W$XVb#2d+%e>L_6$lAszrsWj^%0f?N8LjEz)R;BTT~95M z;6$C#g|=*t4{y3blN@V+2cWpx(d|;Q{D-)p+5l(Dn{p&FWRjmE(FQnEZYI;oGZJFB zrTi0fp9xWnKisdE^VQ<;@K{uYSARJ>{tcN;;Z!JU8AHGSt)OmUsI@$n_UG3|m`7sR z+A=>ZO=8h9d|D*$Dv`VoiR46>nP)odW~&v#NKp_Hj;Y!5u%FbR4>3ZWq3-Z$({n3mK*9ZTg;yRK8EQx=}S6c_3OQD6+0EmY%a4)kBMpI z4eA4uO-YMv6h41b=d=ZmY(Dx-GRbDJPvnC0POs1;i%ah&k36h`*ZNjzGc`n zSYw_ZP^!7csQz=aJrope z1sl|IUmR3$&1(5)S#`BMoR9ER^70mQG;28Qp5})ofT;zJQE&8bXZ!u~yTWr^`&UX) zL{Y%Y17cZK6E4T(@@h%cQuMfk-%JtiH(QfD@3;8x<>ve37A^0m`@2t;#!>fGHVw_i z`l~%wF_f{Iqm$dkUCmeJY!^^bJzp`bPj&7`f6NYO^1Y)j1rr>KdpwWSkKUob^xu!G z*>W?6{eqGoM{m_Hs?0|&uqZ5B!+FgY)f(fMcbxLqyh&*O8rbkEfP#*YU}sB|oy0wHsV3kr+29!$wUG+)-@@aJ^9 zQJ<4G`Af}%8MAqn*Q&$M(*rcYQ7v}b%`7lP)lw$T8Y)3H4P|aH!%jYf85&An5V~jn zV2zoAPd^+Joo{dFG;>s+{k*utJi?wQY(Z4Fj_Z3Vw#K? zgorQA6Mje54tYBIr1=T+r)+#*@gL&E9|Aa2-Xu+2Rt7&`d$mKnVS1xbG%eG^&1~^= zhKgg2FA*wyHHQ7@PBlR^vg!arQ&HD@-j4s$7aq`7YkO~SCJzW>7+t>Kt{-Q+<$k+S zI)Vysv(Q4xq90zp+dPl|8jmk0lmJhvL`4#^wPO_Zgn&6vC%RA)I%@~x*>wEXW@11b z%!gREPDU_^)y}s__?F?;Zam&O0E$_2_P2Axc|O*V0T^`Xu#W=1j`BO&Uo~!+zy>4_ zJYGKx@8~swhj?_uKh#Kwa2Xcz8fejS5%(iY50d($*v&TI@%lq8rsZsfT*4$tsY^_$ z3Wzg2oSz}Y=+|twFmgZ4zKiYVIUt9|&3ubh>AO=P3}c+p&9jeZ*hn539pNxNP4|hP zp!~bJ0gk4JVjHk*59cOvQ9b2(Dpd}W)Kt<(XdGC3RxVsZh7X)dY~H8-txv~iA*Dm9 zL^|v(G&QgC>nvKoja}pZ$#IAHj^zN3&fjkrCDr($zL$8sJ2{nz2LkIWdT8S0B}I}V zggjA-j;x2oc{)C85s`y)sWA#3uax;~@{!V4-+Y_xm-7N9FW7kSZ&-aMP=-gNIqU-3 zw?3zNBJ)o@7pSrT!%@nC+}4|adKey==4^Vn_+B0+RkmDjtliPQc~Kb*kr_;dIVb<6 zz$)hK!y`Q~p{X4$fbYd=`*7h1tf z{to6avFwMJQ%@ALj0fL7)=BA+ppf1xphd_f@}S5*FR?C0O}w83AM+<)apW;w!MzE0 z(7IfIdwPJwG*a!u)%3@-ci~5}PYm(g>=8cGKi%VnH8oya6+?CV3Cim291Z|n$)A+& z3c;Tj#lvicTpH5T_BX>Mmj+>G)mhL?6$R{HZVq32|#()o=?*oq4?Y8p5D=DZu}OU5V|~*Oez#ji^Z~X zKGj95%wv>Xl`C86>l_@Bmm~5%)EQE1C6}F6E2R|@%?Soy&wrqu(DwYSC>BpUWs`?5 zaet^Piy;i{jsEdu1(T-wV)A)~a_pJHk*M_*g-@cn4o@OhmQ92>7 zydcmYpj&pCtcVhd$B9aoNX-362)fA^XbdjzLBjT6pt3s4t|go8Ec#7>|`fayX_nj3Rp`D0o5!tZL|V=ZQ=9|~9o`Aej| zV>D@+M0|=ze*fS95tKLWwvh8XYpaEU2ul1ma5(iYZuY7@L$TeE&+mYII{578+s9|) z0;I4*=r`6Q8Rx6l0-g_2P|5NneJtiF?WfTRcu43@q1N+UHBD681o^Lfs20#B=sI&l zl+dlBUex4&6<@D?zG6zc^+0fS*4MJ&8X0))GhiLSo(*ChZ?AH1G;{FU=RloW$Hx!_ zRfR$eky{@)#$Nv{^}(Z<$LPzam_RYATd4ZEh|uGl-eotf-(@dDosiwD+{Fk`Lg@5v z`>5{i&~^O}Sm%j+i23lo!H2)#28&_tX`iK75niiWARdVP&U79}!%uLU$}C6~Yw~rT z5w$>NzfvDCT{&UOuXH}@Px2N_>Y3D8elK;zIEl1XlH!XJqb2itPmU&=#p^#%nmFJ& z5HW+9;n6+aF?9I3LEEp1D3%n?0Ivy$0=Jw9$TK_=_G?R1${w49w{LS4@sbHs(rMS; zf!zn$wIm(>IXUIY8CJKB@h6nPMfR-t&=jl`YI`(9?NO+C_PrcCa}q-8AE|L-A-sVr zlN0?H%Kn#>?(fNvhn~G3!>a^$?7PA_tcS&;`T622^d*9TP}h1|T#W4C)8BG! zKP+&VMM1>RJJ^X4Q$NTLdQ) zRa#cirR&je*zx|@VO0{;lgd(ypG$%uY4G$74#IHD9)Z{v!v%J|1s7O-3*1Mj6IZNf ze;0dHT)Rwbzo@b6UI02v09&sL5x{V?J zT?0I|=o8@acLtujJ8IODgjCq9XTQkQFFGXolj;I>8E*pBhARKw2=A#de||`9XmWQD zq}$d9ylKb&=RASp)s{Q%tepGEz{LtE@Jwi3KioIJS zP3>jbLyL@;oPZeqTtgRoyY3eoU6hOEp;#>U2dYZ>W{kg4PKT;bMd=5%%`Yh#0JNam z*)na2=S^qsF^B%)ko3!me+P#5avN#+acDjoFQ^QZYvgUxUb|{}7j{QwxDuNw1FYJW z!PLz*fHXy7Q{gVofJ9daZCUz%ihHVUUD>`M&@-J3 z)6f}KBr>H-S$MQk5D4eBlgjK~EEeaSG}q1mXou$3f6j%^(teorV;!2;nwE5(s&93f zSU*HGc9S{EpK|zqA~=9P&1AtreNj85_pp6X~OliFcR~Y!kOI+iyY*~kYA08923oWweL;#?Ml}^9hbTzq_*ng;@&}-3eB9^S2XsMumt{%T z;$5k_`cn8W`Z}vS><*JH)@Qe+AH~6Z$eMVb_0@gl<`+TFnJ4dNVU(InB#zf?I4Z$# z`G6f&{yi@r(U3H6n^v2XmSE*jzo9w2g9*t@;EB;{Zu_~hZx+WELu#ABcZ@sxUNAQ- z7UspAqtto3^U|R1jnSiYY<08~SL`X#d${)<{@ul~URz-kM%Y85^KiF1yy)DX620ag zl>(?2N#(*8>#Rq~BlZHfq{@dIBjAT#4OZaC3zDFvFbv~DadKLe4!y#i?xX@;2YtEn z`AW;96k9KVc|L++(rc>FVC7`OP2zO7Ajg;pFc;>PK!AA*p#4#r6nYJoI>wi$^4JSG z{Yl5lv*YPg={oho_xyW1J2;i~W?X_V9FX-EGA6xZP0@CtIWxK$sV|)XF-2mJN28iS zSeN)?dpKk7ykAEnSqnZjX(DxIebAY9w}OG3#I(ca4f;_aB6j^~sWCmn)$~pe&=Z3F zVyG?nx2os$UvjgyvXJx~d#5I~4)!A+WO{8q!YEMYLtjvklgy!^F9#c&QB zEezWn+#tWcPvm~+=}$h^-ESmObrk~t)|K6H=``c&k1w^WQnLKtd9(a`=DZJTdX!Cb z)^y+eCt_qCg;wW0u-0_($_4?=pE6Y3=3ZYKlsm^mhD?pM6D5~7QscBj$6)S(o7A>Z z3eTbWwH_ULXo44ayGjKvqw0JjB&MnJjfeiH#cuii$06yR(DBeoK-M2;utLMr^>7l# znsI5qgtobkDM_fE9#N7~hia@r3pI9|aC)vk;_vy%Q7J$KCE8oGhDi=Xb*D;UA_;sE zhJhrEY4HS&ojpnNR5H$^BTDb*5$G-Qpu*gsbMO?lg98e*|1$Jq+d`GG?nf% zL&wRg0;ZL3;>ZRs_j*p1nnihD`P^A+rL@*{(qRy=bi-E!L~vGoMl7zftZ);mxoYc_ ze$%9YVQQiule+qIwsO;?GsbxE90TC1GCqno?V&#(0Uy=v{X!iTkDXn%c3&-nyA>Qs zkM|BW@GGtJc#R$BU~D{L^jjC))KCy_qaB~eB;HBoc5<``Kas6T26SSTMD#Z zY~28A3dOmuYXVk6i#&vz9_C_=#I6bfMpJ|H{&Iz#WN#w9(CV*T<=FI!tbRW93s_K` zI3ddo`W91anWGb?tq(bxaZAsC*l=0Rr_XTNa=gJGovy2L{dlmOg25;enFcd}F+{&V zzrx0;LW9b`(AL77J*XHCr{0WWd@YyNwLnh78M19vxC`o# zS)ElHmOPyesUVq3vi%&Fm1~Z$4n}DI5a4!$tBcx$SWlu3FeDv`n}eSZqW*d7}>s?1;;}~DUu!}bzj`>Kxm4{ztxtXFj=ey0~kJ)$BzIa-cU!K;DML+Jmo>_T)d88O z6lx7KC!Q1ttRt1vD#|hx0v`vymvT^U&`tDfnKEb*VWgO-WF*&?yqEgLz&zlR*R(|F z1&J!DJv$h@wxWsKASk9Php4M><@cq1&9)oP*v-PRBG2o*u;}D8wg@ywDX9-qU4AJ7 zSOPe&ISW`lbQ9JFsme#|L+z2(8JM6fW4Ss3-1sZv+R$MT(`7wQ`U1&R%9mXq8<*p; z**-WJ2F*iu=yiR2RA(FQ_A0;|)>a6=TYz^K7R^i0jvZdsV_~!+4q&u`4w4tXU86M& zR8xuvH-*(t?wB%@TXiFqv`^*p1Q9G>6>GI-Klj=V@YQ;U4+CA(E^aH7CfYvk@p_z4 zfbQe2T=;UbeGK6e#3B*9)0~Cffoe)|yaBAX3*hk$1NwIN+*lNlC&f{i&3!|OD7fJ$ zsR4gza;_K+>xmgs;hrUHey-j`djZGNe z5IAcJBp~1)oH?+=T*Dr;*shD&d|vMNX3h_@?`Dxv&$)j#CuUB(?+WKBl&1gdyGGck z<*T9p1F@`zzzlaLDNS6O#~&Vs;jC&7*>L0hVI)2pr$ZiYjm&;qBExB z(0n9lj5g4)YR5YhODfX{X8fkM3aY6L=`pvT$oZYAeMpB*?|?PMph>S_Q{k2z=D4Q6 zmuPUhJS=A`xalSp4=UOUE*m&hj@>T7YFd=EB6d`!Z}V|3xp^-&eEm)7j6Xt5z5NT%cj&0VU;+7SRdy@~!&$ zO4sB-@HPFo#o!U0d|sc8KXzh3^}fA0JUy<;0*tLocn1HA2cV(ai;tiPh6T8qJM&bwto*&3*Y^%|9WQR5}k1~^mRc=o45Z*l6k0M3*PnLBT9AJlaJa%42)4yo1Nv91&N0;wal zV!B=}JrA6w&hid>L6ARLDjDe`G!D5a9qBLAMXf(&s3Ey7eVG(3pUd&3}IdxVYeYAGr7Q7HV~%7h$99g>c>tS$QaFeOtw4kVDkBFI}ni_qrFFjKSGbn7o0GR%&`_olGrBVZ29o$2}y&Hfyz zkcIJ2*l{T1tlYqQm9AnZ!C`uux3`y?K3+I^fHlRI_TIp2;;Y9?h#sr)HmxV2yZhjo zt5pVXbb9-@LF3_Oqr4!-d+k|#e&XBLXdD`)hs!1_O}a4iD%G`G7EX1#CQYgpjzwwb zjEIBD_eko1L(hh|`{hg5C;6Cakp71509n&4cfDivXgGU>UV$A?Q6Jsj)m~;2kT56S zm#PmcMS!$?vu1;1>df-9A9P-b-dDnaugX&p!IHp@9C}}R>Cm&)=B1ehP*A89%J?4O zg%o`-dQ`*clQqd5$iDIVkw%Qp>B9k~Id#sCk?oW5neR=u-@mnMYCtjw;jxz#sH9KUzp&*s}wYtH|`zU^TpY zZTh3pc=L0)+iu9C9<3Ufp_8As7)uI`2xeJ{uQHRMBDzo9^Nu8t*#d+mQ(#2)?Gjg+^zKe;8dZ8HeU0MT@h5 zhSe+Roxm^RSum@?qSJ%&9Kdh z>t2yDw3eHpgE^ox4j&)ByEux-97uIrX3mA&2?=u|Zsj;YeF>yq&F!HvZAMZ_z@pCi zObASaS+S%e#G!Z(_}&dGC#8YqP}3ITWa!nBt}?WPC+O39Ln@#=<)H_tOl#8(AIIfg zW%+7E7bMI{%T=L^h2KBwY6SIKh_)3kPOV;TA-I~}RNW_ztw#l@H6p{2C~O>u2BUQ4 zmAiu_fdblPZfzGRnikT?+RR$5r*19Svp=Xzt2x*6G!c{TMGgsy^D|Lm?NzGl&lDM;?CO6oT{AYrsGh< zb4=+iDz}O?`T9tEeNyuk{(LoZ6U0f$oly=Bb=NrTe2G58FSXH#DpCe=gkB$YT6Wqp zf9Fx=YbR^_4VqB(#b>#H9aL#qQSa!{rE|{Iud+VHHeb01*bCCYatLb+W)<0H@m3LM zwsEPto|y(rMMGq&LqRW5W;RJdkebR+e3=bKM~7*{Tiz&*E23_hS$RvE(ew$md|Cwo z)`v6p=J}9=gObxSNU&!n!PE2wWGZ1KPJ?fV#uAwW$S2%6rGAK9T;4xFmbbIrY>njN z9m)$Vc@Z_mu^dS zKM{lA!R<#n8h^x+ZPuI5FO`92Gh5v~Z9bHcSe4f>$`m{KB9wprcIKnKH=vqQ*m7g_KOz)*=B6rTl3&Zge!{&Hg0zIN_PK^e zU7HwPn-y1?1HDEi3S~y!q~9Z}PLc{-^-YrZ(0QXR*|Jtn z>cY1ypFR$TTv;?v~?i0u}pWy&b*5UuP+8o=4x2hS3^NP{;XvkE!*(iguugro6?#< zaDVx;{UP&k)|fe)fW3XrY%*}ByeT#*b6G9g=gB6}UP0Hi^XcT#QLosR`~~*qe!DWX zg{|opHuPil+J>GCb%Y4DwF;E=2vSoCMF%HNttSH7kdCf*B}#;%MYH~GW2XUQQV`As zac-cz4m5k@1*tzu^V6`Y)nmLxgUtN;XHjir4N>c^4Z{og3yOL8RvzvLw)l+di%wN1 z{&z9`ckAlJ|2tUIv!=9>{`Z2+{2P1XJO>e?A1QNcbdT~cnZfDb%~impdZ#Dc+H(7f zb8Hwynj2uW|GQR)dAA29C~JzSkUWbhO`^9|v9Ba}ZRwK}j!r3+O%2(E z1~;PDmntU1D_1)MCkR|q4%ipeA`3o*`JcaLyG7`Xz?o2$dQ)x3Ow?j)0EPn2N%k`o zDKiS9B4tLqfYa2`O_8>aQ?qTnRPomGL19|VS#D>+inVH}l~2arGh6&ju%!CI&3t2x z*>UB5^!j*8&t%DiBj`z6645MGVF2s_nx-u^Z^F-ckNFbW2n+|%ALJG4Gnp9ZL4$^+ z7kxunBH!zWng_^wtJA{^AlIDtz_ifc)@!Tol{q`Sc8&yr)?hQ;O_qo};F*SqHo%#3 z?ajLR15s78@8xPgnUB$V=Bz;FE-PWA@k@p&j^I6=>j*%Bh5wJD+|BUto*jyEvp_V& z-rS*hHR~h5wDIu|VJx(sF{k?GVcT>CY9PV zD7C8V2b5Zf&eKl3GbBNi-aNN++HZsx8*W-WVY}_h6>_f-QY-_|%yw%S5y#P@z^m`l zH$=Ap7^l!zH1;?z@(A$Vu=q?pOXxKs{7T}e60++L5A!4SZkEvXyxyI>=|hHSP6pDR zKY@I6>Oxb)%AvM!)a$G8U6J=>JHx_SEFT`qUAdW;#Q|Z^Rj1il!|?$yF;8CRFXwc_ z$ORw&jG-9`kqIYEH?*m!kj7K#iWDoY53o#aqt+3a;K$W?CGOsCV3-=Sn8d!IeA(q@ zU+xaY?CJ07X!dY*CmnTPTIL30H zEq>0hlN;X~ip>=)N$M2HYJ@xt3eAPbfp+RtGD{Fl}RX~L#^ z)zI+W=6U>=3IQd(Q0xh<>>8g!d!U+9_W5DP&!ytpSz}G<+b$2Jm#0L_g!WC(vbfy; znmytLV}(Bqi$-$;t#yIqpQH_?T9IkJjUPR+qoj86qP8ObF{}24&};66X2ks9e4iG0 zf#H2cy;zG?xf!pq*Ukjlx#I*r$0}yfrdzw(H{XW4SMWEe}5^C{yVoI0)Y!KU_Xc{<}HscVD1{P}a$h*}f?E z4~Hs)6e`Ql@%Tzb^o)NV&tll_ZBhP{`H=I0mW7X4G+2<>-q2^uhIQ%WcHvZR2Z3oY z)>b!4jIZs{B?UvH(#Ek`oa2^qn=SVSk!b{%=fwxmu-iT>6QaF-w^Knz#&i3^7 zib!*$7^=Uv_TKjs8I_P4{jp=YvzI)x)c2B!&~;%NGibcQO>M(b>36osC{l#JLDCp=Kuh zAn#>8C4tw}S5K^rvVg|BL>T~1T6KQLF0EzPK{$HBbWcr>mXEa&_%`ID`~@pU(9V2G zf{cWGyEuz7?|xTBB%=HMI(5IFn3!D2cIIZev`mXX%jfYeDIGo6DZ)b`4!Z;0-c|~^6Jda8N+=Lk>0f>i z2Lcq#t1#tT4Hs)N$!1C>)%q-0rqr*vat#r^0~Qnq+&oT%EhzR2tNM=NVS(k&kL7uq zuT)H_UqUc33z-a$N^>P_yg@m{Y`<}*UssTtN-UCG(RVQNCY*o?&^yqcV)zshiMgUl z0Ux41W=HL(z9`m=<;3t;&&1ABQO=c5SH{daOXbxP{OTo4R&X{(D>+X-!UdvI#((-w zG0apw>eO1CuVykj@FwQ1^^I6eypD)|HV}e{gyXWm+xFx{3rTx#=;2q>I89YJ86hkY zpR#)bDyaJp+ze=lP_sg~O5e$;v1DW2ASWQD^2S?TL1>Czjtni0X8rC2(upaMXtW#& z9tbFquZLzWXIDcVo{%wDqSgXbBoujLg=d3ut77gdbFDnQ47{MI3 zw$<$QlNy$4cbVNhZYh4q)AP2EEtyZHeJq>1Ge zJ&0t|F+AAh>7`DOwHi8IfG{PPv0BOsTqQ7Xs1y&C-GN{`p#mk3U>t@}%2Ev+e$nhp zZ;C2xb=DamXB4agPpnZeLp>5T_x7cn9$`G3zd8dp=I$4s%j@qss8P3zelh$MU);3dOD$?cN9_jyR|=F zF_A)>Y3JXaug+gG(Qccl{0t~}=UljtgY!q@4g&2kUW1Z~x3^piH&#H%;Hf8t3g zaASb)&}eM>FIx)#D7v-0X{xP&!q01eYaXRYH0Gx@j+J<8ZFQ!5^&qNaiGL|!dhdh< z8eXkue;0eayeLuAxmW#{kZ%xUGRlG*sl1>hKH!kIrhL&kFGu+~L&u!h)!i1jn?Mh2 z_5UfU`*lIdbH!qInAK&KH?kQgSt7XXk9-aXsdPt39HIHK-ref9UpTn(Mrxcm>v0Fz zPjB55b~CwMtjDs_g$Qh&Y&^~e_i=4n=Okhf2QFxTZ<&}m}5swSTS@&*CQ)?hh zNq8UBX{q*wygDNLA~u|{*H&O{6zOynz}I5uRbV^TcwE!$VTWGQ4n+{AJXJe_(bV{MF067`*__c) zBdglUmQ%{J|I?vJTD(%OM~;pz$_45t=<*V8#`qiA&Y-JUcb&E0LX+4Hyr#b4+{{3t zPUWktQ@JH{O}lRuI45xihH8DtM24Z@OZvSl$E@89`svtIG4%FYav3@aLgp~#uF2$4 zMch>Pl2sjMcvQ?)AgZue9 z^L}o@E*8?6RrHhbYJO8L;TDM3w2E=>ziD~z_k>b&={voHw|gdTWnNG(1KE)EbQqb( z@S&H%k-cDUaf`@j+;AwE3*leLAe+uj>hWPzCmHzKBTP*v4C$~)OxBdwsm#rG`he$` zdL*q3?+KH^E*Rw}{hc#M!+;mmYll$=y?T03IAKbLd#+)7OLg^Oio1rl1iuT}?4ijS z9|i>YQY2_8VD@3_U(fz5D=YN!0T%1>?|J!n;NlaL9Qo*;6}ns{o>H`&@o2i0=?|yI zYxq3}zxJDt0w4-(yE^F^jE|2c9V&+vTzbei!D69eQf9(&N4)@c&3nYik;AC*hmoE~ z9$mxWfGC&?S)|2R9XW#+v;Sz%>Zit{v?E`|T`?d&%^#AmDlbL`9|?{UX(AX9h2TPY zA##|&aX5@G4ULeoxxKzL>XBS`sbKp~#Hxn8{`t)4nUPyG8lktQDq5Z*Nn$(XjA#6q z3fGGQF9kbXY=1?{#{zO76J<^FZv|?@n1@-FRl}5VmL5}7cyNP4Y}O$VjF)W`YVg5m+Kb&<&0JfkzDIW^U zs;a7}+>dtNtClq_HQugj!&QY?-NK9pgrI^4+6DVkm*4s2ai1T{$m&SH?Or8T34Nxs zFdI?z$Cb*LT$K+)ED1UoC1^o)>WYAh#icgeWvpRY)qw~~8ZyYRwR3a5ct{o&r_(eR zx-a?MI&-Qaj0ML`?HsngZ9ILkcWr0AuL9kyM|i#w-_H zR( zMTvR}a53kK5+e>(nj+cem=BaG#Za$rBM#EO{wOy078E->wokZ{-lP1~$)R6aN`CCL zpmQW(-q6y|7%g!lv{4^Ws^g`~VTewty0wl15*HWb+Z9$vx;~7o7k@i~Dj<@QHnT2N z4m^B5;(w%esAc8JqiVTilaNSGTFlREI{vWfJj+KYOpClU|^nb<5?Ex0k)hyRV$9eIN&%|GoE9>TI^w-8S{zh3Y#?g6^_i7KY!gQUF{%5oN zS?>183dg_8Tl7{!YVzdo@s;{dtdYNOr`y;vNe01G2vy6`mDs5^I#)I5cUyExIy^fu zQf}OIPw<#N98~VR+=)aA(y5;7t*g&FOfxX1OuSnS32wQ5I;zS0ksfGMtD^4(!Bjv# z-a9``k{t|_7WJM5P0*%af#LC*J5Q*Kvcp0fxueHo>rj`VJUe03Jmy81)M=?lgQ(@w zEs!M}jp3$Mhy~h_`tign1<9wc40t$3D#k+c;XlHciIZaj1x!%x4j51Domg-W?8&`8P)b0H&b% z-msx{yEPhN3A*ZchCO=t8)E=`n!n8Z!l7iC+aeE%;iTPNVPhNgrpQ30xk|bx9JszS zonJ5F6bart3Gg(1aB%7rI5bHk11de`ue70BcV4|O#`PjF6gw)_;XYs)x`L}gkx6xI z_O11SCJ>qmF?-~r2~`dYT#%}>yGL#?pP_s{>9uGgqi}$+H2+F@uI&4oBRH^=N z?9#{8CT_bu9iGq<=ug8H-!~@a3G3CVz(8Go`8wquFQdzUk$&_0YW96P!?T#8>uMFO z)Wuyd3NQ!)%>n4}RIW*2Aktj~nlhCqvFQFUcJW78?h=~?pMU@(0nrO90dH{T@>>GS zq#<0U@H3!sv%e=#`T}Z4hL%QUOch<8sgv}_>h!6vSk+G}X~nAJD+)kU;9rp#?_F_K zN3ZaT>#3ht5(2}4n93OA`BNn`U9A<#n>UQHHIu!>s~j0>Zt0K) zX2mGRCEj>GS?FhHqh&C8Fk=RnUYno~lKrl;S6)Xrf*$>*^HHD$;jza-cTqa)9ods| zEr5gJ(tIVo<-AmQ-f^VJ;KaO@c9+2r7!HD3JH&mV3Zm(!#pKq<${6-pO1%T=*fnTo zLz#))64J8KXl`;(UGr|E+`;5<4=;T_SP673WwhS%BaV^Wc)tb+J{o-1tfhG*EHQsX zNPfIu6bMry&c!3D_YA+riHYUoS9#pkADR~*a-cCuX~O-nI7 z-Y+yl;Ls<$`BX;kE$JB=iT6tw#kgcRMdDJw7gl4s7~WT;H5+7F33uopTjvEn#M*M{RDnM!d=#+lXXQ-&VtBf$%XsR^yAIBDH< zOCOaUh=N9a2F0n;oDQdN`Y7)OtL8ORG4#??*YA`UtfLOv29@Eeoi^&jIjCNmjZkx# zq@jAD^T|!hb{kza8LFmL9h1eH)PI#SIg!Ns?%jr6$4MUaVt^G|MVaDCET*s8x$aOFc`T0&L-H!s`1-86K(TG)YU2lhfzn(g~B{ zDMv?+qKxi+z5Mb{wD$N6e`w7Dzu0d3JTZq0#{`JYtX|=lR{f;xp&Dz@W)f$}wqB5v z!i|P+c^WuXNExo6_ewQ+nRo*yMxq5AqzLoV#YlyU&US~pa{si#zaO_d$}OM-g9n_C zu*AIik7*_MJCbC!yJv66g(~3rexy|7s?>&5z)aa6&-B&$sGWc^Ei;@3Rj@!H+T;X6 z%lBQ6t@Zs6WkAmW?J|ThQ5l>9jh|Ih4_{dG@H2tHYU*XXDzW;l9JE(UAuOsitEk5ta-6-gIP8Y|Uw^g5JTh)_)}BfTU=t(B8GeKdUIh`mBzw%~VFz zv`&$+*(fv@sdMXL;?#3G00~A4BAT(=4Cd>MwmJQU3DFY4>P~*K7z^|lBtwcPAG-~b z-zqAdt&g|L&@^c|WxZ1RCMtie*)1V6-Y2hvbS?E(FO!~G==Du9Fl{WirdXU$=32Lv zeM2DLBebu{tvTip8&+tCLZCUA9uV9m4cu|hrqG!M2hyQQ{=E

*aj4I6OR_6%|X> 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 MQAJZ~l*|+VKa^)`gXHF1ulO zuf2p8|3t(PL+g`12=zhw;!~jr_Nmpr`6@nJP$=lLps4ZtX74qevmR-47({LHLBX*nKU)IC-_Z(IJ9R=rG!=`+u# z=pbhpIY*6pS5g$MT$<4GL7vY~6pM;7HeM))y=#4N5IRQ4$YX>|axFu0KI{5i7ukcW)V9861uT@e5l3k;-Cw4B zb9w$c?8F|C>>ZEMCC6P!Ff7|=uC2GJ+p%d(CM{r{V~dJXQVRKkMy7P1ol;)(@Tfph zjdio-T9=t>s7;T#o?2bk+iJ@(I;+g~J=Js^v(2z$vg)~pnm7u`#g1)TwyEIJaN?x0 z`E>9orH0b`hYFc=sv-LIj3|hV57Lp^4)|Dp1qt^Rmfu4f33MpP z^x3ngloQi4&6A3j&lPfc1pkHL`h5jbhTxjOuQTL0ay(%&1b2Rp zYlk6Mxds`JOd9N=HU!#pknrRoG zLdXOpp_RCnTe6}B|2J$TGnHIg_zen<7X^DKdW#1G)?(x#)UeMn@*C7J7BP|*jdLHu z&k;ayR57Ovh>}1UAe97i9gu|tavzXx0{ICL6g)`MDV(kN6bQAyB921#1v-8c3cs#{ zN{Rr7>sct;pdlhgQ3)L4F_lhX6k=y#TbBX_XLAr|6F9hcglGANMt|uP?kQYTvBbk#q{j5=&qrw*%#IFbR%`5;D;w z->?{~bZQh$36XDCTtk9`S}gL-il=ICR72)>L4OW#&XEvKls^O>cM`~bsPR=b zy2sm8Ov|1Y{?ysi!XI;^8yg$&fW`OFX!N)p@Q&@J$!}mfKkL`E@|wjAcEy6r)^Kdk zcRPkp==@BXQq%5GquZ?)G zz4HFU|CBtVO&B>&qNYtVm~V)OZ7}%f+KV#=lY%B{GT&wJP?K32|6iNt4>xpJZCH(l ffsEdNy0iFCM`1DR6yAkhu@ZYp{KqfxmpJ?nw7{I~ diff --git a/UnitTests_App/GoogleTest/ci/build-linux-bazel.sh b/UnitTests_App/GoogleTest/ci/build-linux-bazel.sh deleted file mode 100644 index cfb06a9..0000000 --- a/UnitTests_App/GoogleTest/ci/build-linux-bazel.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2017 Google Inc. -# All Rights Reserved. -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -set -e - -bazel version -bazel test --curses=no //...:all -bazel test --curses=no //...:all --define absl=1 diff --git a/UnitTests_App/GoogleTest/ci/build-platformio.sh b/UnitTests_App/GoogleTest/ci/build-platformio.sh deleted file mode 100644 index 1d7658d..0000000 --- a/UnitTests_App/GoogleTest/ci/build-platformio.sh +++ /dev/null @@ -1,2 +0,0 @@ -# run PlatformIO builds -platformio run diff --git a/UnitTests_App/GoogleTest/ci/env-linux.sh b/UnitTests_App/GoogleTest/ci/env-linux.sh deleted file mode 100644 index 7d2b8a8..0000000 --- a/UnitTests_App/GoogleTest/ci/env-linux.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2017 Google Inc. -# All Rights Reserved. -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# -# This file should be sourced, and not executed as a standalone script. -# - -# TODO() - we can check if this is being sourced using $BASH_VERSION and $BASH_SOURCE[0] != ${0}. - -if [ "${TRAVIS_OS_NAME}" = "linux" ]; then - if [ "$CXX" = "g++" ]; then export CXX="g++" CC="gcc"; fi - if [ "$CXX" = "clang++" ]; then export CXX="clang++" CC="clang"; fi -fi diff --git a/UnitTests_App/GoogleTest/ci/env-osx.sh b/UnitTests_App/GoogleTest/ci/env-osx.sh deleted file mode 100644 index fd4239f..0000000 --- a/UnitTests_App/GoogleTest/ci/env-osx.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2017 Google Inc. -# All Rights Reserved. -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# -# This file should be sourced, and not executed as a standalone script. -# - -if [ "${TRAVIS_OS_NAME}" != "osx" ]; then - echo "Not a macOS build; skipping" - exit 0 -fi - -# This file is currently intentionally empty. diff --git a/UnitTests_App/GoogleTest/ci/get-nprocessors.sh b/UnitTests_App/GoogleTest/ci/get-nprocessors.sh deleted file mode 100644 index 43635e7..0000000 --- a/UnitTests_App/GoogleTest/ci/get-nprocessors.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2017 Google Inc. -# All Rights Reserved. -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# This file is typically sourced by another script. -# if possible, ask for the precise number of processors, -# otherwise take 2 processors as reasonable default; see -# https://docs.travis-ci.com/user/speeding-up-the-build/#Makefile-optimization -if [ -x /usr/bin/getconf ]; then - NPROCESSORS=$(/usr/bin/getconf _NPROCESSORS_ONLN) -else - NPROCESSORS=2 -fi - -# as of 2017-09-04 Travis CI reports 32 processors, but GCC build -# crashes if parallelized too much (maybe memory consumption problem), -# so limit to 4 processors for the time being. -if [ $NPROCESSORS -gt 4 ] ; then - echo "$0:Note: Limiting processors to use by make from $NPROCESSORS to 4." - NPROCESSORS=4 -fi diff --git a/UnitTests_App/GoogleTest/ci/install-linux.sh b/UnitTests_App/GoogleTest/ci/install-linux.sh deleted file mode 100644 index f98ac7d..0000000 --- a/UnitTests_App/GoogleTest/ci/install-linux.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2017 Google Inc. -# All Rights Reserved. -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -set -eu - -if [ "${TRAVIS_OS_NAME}" != linux ]; then - echo "Not a Linux build; skipping installation" - exit 0 -fi - - -if [ "${TRAVIS_SUDO}" = "true" ]; then - echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | \ - sudo tee /etc/apt/sources.list.d/bazel.list - curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add - - sudo apt-get update && sudo apt-get install -y bazel gcc g++ clang -elif [ "${CXX}" = "clang++" ]; then - # Use ccache, assuming $HOME/bin is in the path, which is true in the Travis build environment. - ln -sf /usr/bin/ccache $HOME/bin/${CXX}; - ln -sf /usr/bin/ccache $HOME/bin/${CC}; -fi diff --git a/UnitTests_App/GoogleTest/ci/install-osx.sh b/UnitTests_App/GoogleTest/ci/install-osx.sh deleted file mode 100644 index c81c33c..0000000 --- a/UnitTests_App/GoogleTest/ci/install-osx.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2017 Google Inc. -# All Rights Reserved. -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -set -eu - -if [ "${TRAVIS_OS_NAME}" != "osx" ]; then - echo "Not a macOS build; skipping installation" - exit 0 -fi - -# This file is currently intentionally empty. diff --git a/UnitTests_App/GoogleTest/ci/install-platformio.sh b/UnitTests_App/GoogleTest/ci/install-platformio.sh deleted file mode 100644 index 4d7860a..0000000 --- a/UnitTests_App/GoogleTest/ci/install-platformio.sh +++ /dev/null @@ -1,5 +0,0 @@ -# install PlatformIO -sudo pip install -U platformio - -# update PlatformIO -platformio update diff --git a/UnitTests_App/GoogleTest/ci/log-config.sh b/UnitTests_App/GoogleTest/ci/log-config.sh deleted file mode 100644 index c76c49a..0000000 --- a/UnitTests_App/GoogleTest/ci/log-config.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2017 Google Inc. -# All Rights Reserved. -# -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -set -e - -echo PATH=${PATH} - -echo "Compiler configuration:" -echo CXX=${CXX} -echo CC=${CC} -echo CXXFLAGS=${CXXFLAGS} - -echo "C++ compiler version:" -${CXX} --version || echo "${CXX} does not seem to support the --version flag" -${CXX} -v || echo "${CXX} does not seem to support the -v flag" - -echo "C compiler version:" -${CC} --version || echo "${CXX} does not seem to support the --version flag" -${CC} -v || echo "${CXX} does not seem to support the -v flag" diff --git a/UnitTests_App/GoogleTest/ci/travis.sh b/UnitTests_App/GoogleTest/ci/travis.sh deleted file mode 100644 index a248822..0000000 --- a/UnitTests_App/GoogleTest/ci/travis.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env sh -set -evx - -. ci/get-nprocessors.sh - -# Tell make to use the processors. No preceding '-' required. -MAKEFLAGS="j${NPROCESSORS}" -export MAKEFLAGS - -env | sort - -# Set default values to OFF for these variables if not specified. -: "${NO_EXCEPTION:=OFF}" -: "${NO_RTTI:=OFF}" -: "${COMPILER_IS_GNUCXX:=OFF}" - -mkdir build || true -cd build -cmake -Dgtest_build_samples=ON \ - -Dgtest_build_tests=ON \ - -Dgmock_build_tests=ON \ - -Dcxx_no_exception="$NO_EXCEPTION" \ - -Dcxx_no_rtti="$NO_RTTI" \ - -DCMAKE_COMPILER_IS_GNUCXX="$COMPILER_IS_GNUCXX" \ - -DCMAKE_CXX_FLAGS="$CXX_FLAGS" \ - -DCMAKE_BUILD_TYPE="$BUILD_TYPE" \ - .. -make -CTEST_OUTPUT_ON_FAILURE=1 make test diff --git a/UnitTests_App/GoogleTest/googlemock/CMakeLists.txt b/UnitTests_App/GoogleTest/googlemock/CMakeLists.txt deleted file mode 100644 index 3d6699a..0000000 --- a/UnitTests_App/GoogleTest/googlemock/CMakeLists.txt +++ /dev/null @@ -1,219 +0,0 @@ -######################################################################## -# Note: CMake support is community-based. The maintainers do not use CMake -# internally. -# -# CMake build script for Google Mock. -# -# To run the tests for Google Mock itself on Linux, use 'make test' or -# ctest. You can select which tests to run using 'ctest -R regex'. -# For more options, run 'ctest --help'. - -option(gmock_build_tests "Build all of Google Mock's own tests." OFF) - -# A directory to find Google Test sources. -if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/gtest/CMakeLists.txt") - set(gtest_dir gtest) -else() - set(gtest_dir ../googletest) -endif() - -# Defines pre_project_set_up_hermetic_build() and set_up_hermetic_build(). -include("${gtest_dir}/cmake/hermetic_build.cmake" OPTIONAL) - -if (COMMAND pre_project_set_up_hermetic_build) - # Google Test also calls hermetic setup functions from add_subdirectory, - # although its changes will not affect things at the current scope. - pre_project_set_up_hermetic_build() -endif() - -######################################################################## -# -# Project-wide settings - -# Name of the project. -# -# CMake files in this project can refer to the root source directory -# as ${gmock_SOURCE_DIR} and to the root binary directory as -# ${gmock_BINARY_DIR}. -# Language "C" is required for find_package(Threads). -if (CMAKE_VERSION VERSION_LESS 3.0) - project(gmock CXX C) -else() - cmake_policy(SET CMP0048 NEW) - project(gmock VERSION ${GOOGLETEST_VERSION} LANGUAGES CXX C) -endif() -cmake_minimum_required(VERSION 2.8.12) - -if (COMMAND set_up_hermetic_build) - set_up_hermetic_build() -endif() - -# Instructs CMake to process Google Test's CMakeLists.txt and add its -# targets to the current scope. We are placing Google Test's binary -# directory in a subdirectory of our own as VC compilation may break -# if they are the same (the default). -add_subdirectory("${gtest_dir}" "${gmock_BINARY_DIR}/${gtest_dir}") - - -# These commands only run if this is the main project -if(CMAKE_PROJECT_NAME STREQUAL "gmock" OR CMAKE_PROJECT_NAME STREQUAL "googletest-distribution") - # BUILD_SHARED_LIBS is a standard CMake variable, but we declare it here to - # make it prominent in the GUI. - option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF) -else() - mark_as_advanced(gmock_build_tests) -endif() - -# Although Google Test's CMakeLists.txt calls this function, the -# changes there don't affect the current scope. Therefore we have to -# call it again here. -config_compiler_and_linker() # from ${gtest_dir}/cmake/internal_utils.cmake - -# Adds Google Mock's and Google Test's header directories to the search path. -set(gmock_build_include_dirs - "${gmock_SOURCE_DIR}/include" - "${gmock_SOURCE_DIR}" - "${gtest_SOURCE_DIR}/include" - # This directory is needed to build directly from Google Test sources. - "${gtest_SOURCE_DIR}") -include_directories(${gmock_build_include_dirs}) - -######################################################################## -# -# Defines the gmock & gmock_main libraries. User tests should link -# with one of them. - -# Google Mock libraries. We build them using more strict warnings than what -# are used for other targets, to ensure that Google Mock can be compiled by -# a user aggressive about warnings. -if (MSVC) - cxx_library(gmock - "${cxx_strict}" - "${gtest_dir}/src/gtest-all.cc" - src/gmock-all.cc) - - cxx_library(gmock_main - "${cxx_strict}" - "${gtest_dir}/src/gtest-all.cc" - src/gmock-all.cc - src/gmock_main.cc) -else() - cxx_library(gmock "${cxx_strict}" src/gmock-all.cc) - target_link_libraries(gmock PUBLIC gtest) - set_target_properties(gmock PROPERTIES VERSION ${GOOGLETEST_VERSION}) - cxx_library(gmock_main "${cxx_strict}" src/gmock_main.cc) - target_link_libraries(gmock_main PUBLIC gmock) - set_target_properties(gmock_main PROPERTIES VERSION ${GOOGLETEST_VERSION}) -endif() -# If the CMake version supports it, attach header directory information -# to the targets for when we are part of a parent build (ie being pulled -# in via add_subdirectory() rather than being a standalone build). -if (DEFINED CMAKE_VERSION AND NOT "${CMAKE_VERSION}" VERSION_LESS "2.8.11") - target_include_directories(gmock SYSTEM INTERFACE - "$" - "$/${CMAKE_INSTALL_INCLUDEDIR}>") - target_include_directories(gmock_main SYSTEM INTERFACE - "$" - "$/${CMAKE_INSTALL_INCLUDEDIR}>") -endif() - -######################################################################## -# -# Install rules -install_project(gmock gmock_main) - -######################################################################## -# -# Google Mock's own tests. -# -# You can skip this section if you aren't interested in testing -# Google Mock itself. -# -# The tests are not built by default. To build them, set the -# gmock_build_tests option to ON. You can do it by running ccmake -# or specifying the -Dgmock_build_tests=ON flag when running cmake. - -if (gmock_build_tests) - # This must be set in the root directory for the tests to be run by - # 'make test' or ctest. - enable_testing() - - if (MINGW OR CYGWIN) - if (CMAKE_VERSION VERSION_LESS "2.8.12") - add_compile_options("-Wa,-mbig-obj") - else() - add_definitions("-Wa,-mbig-obj") - endif() - endif() - - ############################################################ - # C++ tests built with standard compiler flags. - - cxx_test(gmock-actions_test gmock_main) - cxx_test(gmock-cardinalities_test gmock_main) - cxx_test(gmock_ex_test gmock_main) - cxx_test(gmock-function-mocker_test gmock_main) - cxx_test(gmock-generated-actions_test gmock_main) - cxx_test(gmock-internal-utils_test gmock_main) - cxx_test(gmock-matchers_test gmock_main) - cxx_test(gmock-more-actions_test gmock_main) - cxx_test(gmock-nice-strict_test gmock_main) - cxx_test(gmock-port_test gmock_main) - cxx_test(gmock-spec-builders_test gmock_main) - cxx_test(gmock_link_test gmock_main test/gmock_link2_test.cc) - cxx_test(gmock_test gmock_main) - - if (DEFINED GTEST_HAS_PTHREAD) - cxx_test(gmock_stress_test gmock) - endif() - - # gmock_all_test is commented to save time building and running tests. - # Uncomment if necessary. - # cxx_test(gmock_all_test gmock_main) - - ############################################################ - # C++ tests built with non-standard compiler flags. - - if (MSVC) - cxx_library(gmock_main_no_exception "${cxx_no_exception}" - "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) - - cxx_library(gmock_main_no_rtti "${cxx_no_rtti}" - "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) - - else() - cxx_library(gmock_main_no_exception "${cxx_no_exception}" src/gmock_main.cc) - target_link_libraries(gmock_main_no_exception PUBLIC gmock) - - cxx_library(gmock_main_no_rtti "${cxx_no_rtti}" src/gmock_main.cc) - target_link_libraries(gmock_main_no_rtti PUBLIC gmock) - endif() - cxx_test_with_flags(gmock-more-actions_no_exception_test "${cxx_no_exception}" - gmock_main_no_exception test/gmock-more-actions_test.cc) - - cxx_test_with_flags(gmock_no_rtti_test "${cxx_no_rtti}" - gmock_main_no_rtti test/gmock-spec-builders_test.cc) - - cxx_shared_library(shared_gmock_main "${cxx_default}" - "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) - - # Tests that a binary can be built with Google Mock as a shared library. On - # some system configurations, it may not possible to run the binary without - # knowing more details about the system configurations. We do not try to run - # this binary. To get a more robust shared library coverage, configure with - # -DBUILD_SHARED_LIBS=ON. - cxx_executable_with_flags(shared_gmock_test_ "${cxx_default}" - shared_gmock_main test/gmock-spec-builders_test.cc) - set_target_properties(shared_gmock_test_ - PROPERTIES - COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1") - - ############################################################ - # Python tests. - - cxx_executable(gmock_leak_test_ test gmock_main) - py_test(gmock_leak_test) - - cxx_executable(gmock_output_test_ test gmock) - py_test(gmock_output_test) -endif() diff --git a/UnitTests_App/GoogleTest/googlemock/CONTRIBUTORS b/UnitTests_App/GoogleTest/googlemock/CONTRIBUTORS deleted file mode 100644 index 6e9ae36..0000000 --- a/UnitTests_App/GoogleTest/googlemock/CONTRIBUTORS +++ /dev/null @@ -1,40 +0,0 @@ -# This file contains a list of people who've made non-trivial -# contribution to the Google C++ Mocking Framework project. People -# who commit code to the project are encouraged to add their names -# here. Please keep the list sorted by first names. - -Benoit Sigoure -Bogdan Piloca -Chandler Carruth -Dave MacLachlan -David Anderson -Dean Sturtevant -Gene Volovich -Hal Burch -Jeffrey Yasskin -Jim Keller -Joe Walnes -Jon Wray -Keir Mierle -Keith Ray -Kostya Serebryany -Lev Makhlis -Manuel Klimek -Mario Tanev -Mark Paskin -Markus Heule -Matthew Simmons -Mike Bland -Neal Norwitz -Nermin Ozkiranartli -Owen Carlsen -Paneendra Ba -Paul Menage -Piotr Kaminski -Russ Rufer -Sverre Sundsdal -Takeshi Yoshino -Vadim Berman -Vlad Losev -Wolfgang Klier -Zhanyong Wan diff --git a/UnitTests_App/GoogleTest/googlemock/LICENSE b/UnitTests_App/GoogleTest/googlemock/LICENSE deleted file mode 100644 index 1941a11..0000000 --- a/UnitTests_App/GoogleTest/googlemock/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright 2008, Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/UnitTests_App/GoogleTest/googlemock/README.md b/UnitTests_App/GoogleTest/googlemock/README.md deleted file mode 100644 index daafe28..0000000 --- a/UnitTests_App/GoogleTest/googlemock/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# Googletest Mocking (gMock) Framework - -### Overview - -Google's framework for writing and using C++ mock classes. It can help you -derive better designs of your system and write better tests. - -It is inspired by: - -* [jMock](http://www.jmock.org/) -* [EasyMock](http://www.easymock.org/) -* [Hamcrest](http://code.google.com/p/hamcrest/) - -It is designed with C++'s specifics in mind. - -gMock: - -- Provides a declarative syntax for defining mocks. -- Can define partial (hybrid) mocks, which are a cross of real and mock - objects. -- Handles functions of arbitrary types and overloaded functions. -- Comes with a rich set of matchers for validating function arguments. -- Uses an intuitive syntax for controlling the behavior of a mock. -- Does automatic verification of expectations (no record-and-replay needed). -- Allows arbitrary (partial) ordering constraints on function calls to be - expressed. -- Lets a user extend it by defining new matchers and actions. -- Does not use exceptions. -- Is easy to learn and use. - -Details and examples can be found here: - -* [gMock for Dummies](docs/for_dummies.md) -* [Legacy gMock FAQ](docs/gmock_faq.md) -* [gMock Cookbook](docs/cook_book.md) -* [gMock Cheat Sheet](docs/cheat_sheet.md) - -Please note that code under scripts/generator/ is from the -[cppclean project](http://code.google.com/p/cppclean/) and under the Apache -License, which is different from GoogleMock's license. - -GoogleMock is a part of -[GoogleTest C++ testing framework](http://github.com/google/googletest/) and a -subject to the same requirements. diff --git a/UnitTests_App/GoogleTest/googlemock/cmake/gmock.pc.in b/UnitTests_App/GoogleTest/googlemock/cmake/gmock.pc.in deleted file mode 100644 index 23c67b5..0000000 --- a/UnitTests_App/GoogleTest/googlemock/cmake/gmock.pc.in +++ /dev/null @@ -1,10 +0,0 @@ -libdir=@CMAKE_INSTALL_FULL_LIBDIR@ -includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ - -Name: gmock -Description: GoogleMock (without main() function) -Version: @PROJECT_VERSION@ -URL: https://github.com/google/googletest -Requires: gtest = @PROJECT_VERSION@ -Libs: -L${libdir} -lgmock @CMAKE_THREAD_LIBS_INIT@ -Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@ diff --git a/UnitTests_App/GoogleTest/googlemock/cmake/gmock_main.pc.in b/UnitTests_App/GoogleTest/googlemock/cmake/gmock_main.pc.in deleted file mode 100644 index 66ffea7..0000000 --- a/UnitTests_App/GoogleTest/googlemock/cmake/gmock_main.pc.in +++ /dev/null @@ -1,10 +0,0 @@ -libdir=@CMAKE_INSTALL_FULL_LIBDIR@ -includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ - -Name: gmock_main -Description: GoogleMock (with main() function) -Version: @PROJECT_VERSION@ -URL: https://github.com/google/googletest -Requires: gmock = @PROJECT_VERSION@ -Libs: -L${libdir} -lgmock_main @CMAKE_THREAD_LIBS_INIT@ -Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@ diff --git a/UnitTests_App/GoogleTest/googlemock/docs/cheat_sheet.md b/UnitTests_App/GoogleTest/googlemock/docs/cheat_sheet.md deleted file mode 100644 index dc2428e..0000000 --- a/UnitTests_App/GoogleTest/googlemock/docs/cheat_sheet.md +++ /dev/null @@ -1,786 +0,0 @@ -# gMock Cheat Sheet - - - - - - - -## Defining a Mock Class - -### Mocking a Normal Class {#MockClass} - -Given - -```cpp -class Foo { - ... - virtual ~Foo(); - virtual int GetSize() const = 0; - virtual string Describe(const char* name) = 0; - virtual string Describe(int type) = 0; - virtual bool Process(Bar elem, int count) = 0; -}; -``` - -(note that `~Foo()` **must** be virtual) we can define its mock as - -```cpp -#include "gmock/gmock.h" - -class MockFoo : public Foo { - ... - MOCK_METHOD(int, GetSize, (), (const, override)); - MOCK_METHOD(string, Describe, (const char* name), (override)); - MOCK_METHOD(string, Describe, (int type), (override)); - MOCK_METHOD(bool, Process, (Bar elem, int count), (override)); -}; -``` - -To create a "nice" mock, which ignores all uninteresting calls, a "naggy" mock, -which warns on all uninteresting calls, or a "strict" mock, which treats them as -failures: - -```cpp -using ::testing::NiceMock; -using ::testing::NaggyMock; -using ::testing::StrictMock; - -NiceMock nice_foo; // The type is a subclass of MockFoo. -NaggyMock naggy_foo; // The type is a subclass of MockFoo. -StrictMock strict_foo; // The type is a subclass of MockFoo. -``` - -**Note:** A mock object is currently naggy by default. We may make it nice by -default in the future. - -### Mocking a Class Template {#MockTemplate} - -Class templates can be mocked just like any class. - -To mock - -```cpp -template -class StackInterface { - ... - virtual ~StackInterface(); - virtual int GetSize() const = 0; - virtual void Push(const Elem& x) = 0; -}; -``` - -(note that all member functions that are mocked, including `~StackInterface()` -**must** be virtual). - -```cpp -template -class MockStack : public StackInterface { - ... - MOCK_METHOD(int, GetSize, (), (const, override)); - MOCK_METHOD(void, Push, (const Elem& x), (override)); -}; -``` - -### Specifying Calling Conventions for Mock Functions - -If your mock function doesn't use the default calling convention, you can -specify it by adding `Calltype(convention)` to `MOCK_METHOD`'s 4th parameter. -For example, - -```cpp - MOCK_METHOD(bool, Foo, (int n), (Calltype(STDMETHODCALLTYPE))); - MOCK_METHOD(int, Bar, (double x, double y), - (const, Calltype(STDMETHODCALLTYPE))); -``` - -where `STDMETHODCALLTYPE` is defined by `` on Windows. - -## Using Mocks in Tests {#UsingMocks} - -The typical work flow is: - -1. Import the gMock names you need to use. All gMock symbols are in the - `testing` namespace unless they are macros or otherwise noted. -2. Create the mock objects. -3. Optionally, set the default actions of the mock objects. -4. Set your expectations on the mock objects (How will they be called? What - will they do?). -5. Exercise code that uses the mock objects; if necessary, check the result - using googletest assertions. -6. When a mock object is destructed, gMock automatically verifies that all - expectations on it have been satisfied. - -Here's an example: - -```cpp -using ::testing::Return; // #1 - -TEST(BarTest, DoesThis) { - MockFoo foo; // #2 - - ON_CALL(foo, GetSize()) // #3 - .WillByDefault(Return(1)); - // ... other default actions ... - - EXPECT_CALL(foo, Describe(5)) // #4 - .Times(3) - .WillRepeatedly(Return("Category 5")); - // ... other expectations ... - - EXPECT_EQ("good", MyProductionFunction(&foo)); // #5 -} // #6 -``` - -## Setting Default Actions {#OnCall} - -gMock has a **built-in default action** for any function that returns `void`, -`bool`, a numeric value, or a pointer. In C++11, it will additionally returns -the default-constructed value, if one exists for the given type. - -To customize the default action for functions with return type *`T`*: - -```cpp -using ::testing::DefaultValue; - -// Sets the default value to be returned. T must be CopyConstructible. -DefaultValue::Set(value); -// Sets a factory. Will be invoked on demand. T must be MoveConstructible. -// T MakeT(); -DefaultValue::SetFactory(&MakeT); -// ... use the mocks ... -// Resets the default value. -DefaultValue::Clear(); -``` - -Example usage: - -```cpp - // Sets the default action for return type std::unique_ptr to - // creating a new Buzz every time. - DefaultValue>::SetFactory( - [] { return MakeUnique(AccessLevel::kInternal); }); - - // When this fires, the default action of MakeBuzz() will run, which - // will return a new Buzz object. - EXPECT_CALL(mock_buzzer_, MakeBuzz("hello")).Times(AnyNumber()); - - auto buzz1 = mock_buzzer_.MakeBuzz("hello"); - auto buzz2 = mock_buzzer_.MakeBuzz("hello"); - EXPECT_NE(nullptr, buzz1); - EXPECT_NE(nullptr, buzz2); - EXPECT_NE(buzz1, buzz2); - - // Resets the default action for return type std::unique_ptr, - // to avoid interfere with other tests. - DefaultValue>::Clear(); -``` - -To customize the default action for a particular method of a specific mock -object, use `ON_CALL()`. `ON_CALL()` has a similar syntax to `EXPECT_CALL()`, -but it is used for setting default behaviors (when you do not require that the -mock method is called). See [here](cook_book.md#UseOnCall) for a more detailed -discussion. - -```cpp -ON_CALL(mock-object, method(matchers)) - .With(multi-argument-matcher) ? - .WillByDefault(action); -``` - -## Setting Expectations {#ExpectCall} - -`EXPECT_CALL()` sets **expectations** on a mock method (How will it be called? -What will it do?): - -```cpp -EXPECT_CALL(mock-object, method (matchers)?) - .With(multi-argument-matcher) ? - .Times(cardinality) ? - .InSequence(sequences) * - .After(expectations) * - .WillOnce(action) * - .WillRepeatedly(action) ? - .RetiresOnSaturation(); ? -``` - -For each item above, `?` means it can be used at most once, while `*` means it -can be used any number of times. - -In order to pass, `EXPECT_CALL` must be used before the calls are actually made. - -The `(matchers)` is a comma-separated list of matchers that correspond to each -of the arguments of `method`, and sets the expectation only for calls of -`method` that matches all of the matchers. - -If `(matchers)` is omitted, the expectation is the same as if the matchers were -set to anything matchers (for example, `(_, _, _, _)` for a four-arg method). - -If `Times()` is omitted, the cardinality is assumed to be: - -* `Times(1)` when there is neither `WillOnce()` nor `WillRepeatedly()`; -* `Times(n)` when there are `n` `WillOnce()`s but no `WillRepeatedly()`, where - `n` >= 1; or -* `Times(AtLeast(n))` when there are `n` `WillOnce()`s and a - `WillRepeatedly()`, where `n` >= 0. - -A method with no `EXPECT_CALL()` is free to be invoked *any number of times*, -and the default action will be taken each time. - -## Matchers {#MatcherList} - - - -A **matcher** matches a *single* argument. You can use it inside `ON_CALL()` or -`EXPECT_CALL()`, or use it to validate a value directly using two macros: - - -| Macro | Description | -| :----------------------------------- | :------------------------------------ | -| `EXPECT_THAT(actual_value, matcher)` | Asserts that `actual_value` matches `matcher`. | -| `ASSERT_THAT(actual_value, matcher)` | The same as `EXPECT_THAT(actual_value, matcher)`, except that it generates a **fatal** failure. | - - -**Note:** Although equality matching via `EXPECT_THAT(actual_value, -expected_value)` is supported, prefer to make the comparison explicit via -`EXPECT_THAT(actual_value, Eq(expected_value))` or `EXPECT_EQ(actual_value, -expected_value)`. - -Built-in matchers (where `argument` is the function argument, e.g. -`actual_value` in the example above, or when used in the context of -`EXPECT_CALL(mock_object, method(matchers))`, the arguments of `method`) are -divided into several categories: - -### Wildcard - -Matcher | Description -:-------------------------- | :----------------------------------------------- -`_` | `argument` can be any value of the correct type. -`A()` or `An()` | `argument` can be any value of type `type`. - -### Generic Comparison - - -| Matcher | Description | -| :--------------------- | :-------------------------------------------------- | -| `Eq(value)` or `value` | `argument == value` | -| `Ge(value)` | `argument >= value` | -| `Gt(value)` | `argument > value` | -| `Le(value)` | `argument <= value` | -| `Lt(value)` | `argument < value` | -| `Ne(value)` | `argument != value` | -| `IsFalse()` | `argument` evaluates to `false` in a Boolean context. | -| `IsTrue()` | `argument` evaluates to `true` in a Boolean context. | -| `IsNull()` | `argument` is a `NULL` pointer (raw or smart). | -| `NotNull()` | `argument` is a non-null pointer (raw or smart). | -| `Optional(m)` | `argument` is `optional<>` that contains a value matching `m`. (For testing whether an `optional<>` is set, check for equality with `nullopt`. You may need to use `Eq(nullopt)` if the inner type doesn't have `==`.)| -| `VariantWith(m)` | `argument` is `variant<>` that holds the alternative of type T with a value matching `m`. | -| `Ref(variable)` | `argument` is a reference to `variable`. | -| `TypedEq(value)` | `argument` has type `type` and is equal to `value`. You may need to use this instead of `Eq(value)` when the mock function is overloaded. | - - -Except `Ref()`, these matchers make a *copy* of `value` in case it's modified or -destructed later. If the compiler complains that `value` doesn't have a public -copy constructor, try wrap it in `std::ref()`, e.g. -`Eq(std::ref(non_copyable_value))`. If you do that, make sure -`non_copyable_value` is not changed afterwards, or the meaning of your matcher -will be changed. - -`IsTrue` and `IsFalse` are useful when you need to use a matcher, or for types -that can be explicitly converted to Boolean, but are not implicitly converted to -Boolean. In other cases, you can use the basic -[`EXPECT_TRUE` and `EXPECT_FALSE`](../../googletest/docs/primer#basic-assertions) -assertions. - -### Floating-Point Matchers {#FpMatchers} - - -| Matcher | Description | -| :------------------------------- | :--------------------------------- | -| `DoubleEq(a_double)` | `argument` is a `double` value approximately equal to `a_double`, treating two NaNs as unequal. | -| `FloatEq(a_float)` | `argument` is a `float` value approximately equal to `a_float`, treating two NaNs as unequal. | -| `NanSensitiveDoubleEq(a_double)` | `argument` is a `double` value approximately equal to `a_double`, treating two NaNs as equal. | -| `NanSensitiveFloatEq(a_float)` | `argument` is a `float` value approximately equal to `a_float`, treating two NaNs as equal. | -| `IsNan()` | `argument` is any floating-point type with a NaN value. | - - -The above matchers use ULP-based comparison (the same as used in googletest). -They automatically pick a reasonable error bound based on the absolute value of -the expected value. `DoubleEq()` and `FloatEq()` conform to the IEEE standard, -which requires comparing two NaNs for equality to return false. The -`NanSensitive*` version instead treats two NaNs as equal, which is often what a -user wants. - - -| Matcher | Description | -| :------------------------------------------------ | :----------------------- | -| `DoubleNear(a_double, max_abs_error)` | `argument` is a `double` value close to `a_double` (absolute error <= `max_abs_error`), treating two NaNs as unequal. | -| `FloatNear(a_float, max_abs_error)` | `argument` is a `float` value close to `a_float` (absolute error <= `max_abs_error`), treating two NaNs as unequal. | -| `NanSensitiveDoubleNear(a_double, max_abs_error)` | `argument` is a `double` value close to `a_double` (absolute error <= `max_abs_error`), treating two NaNs as equal. | -| `NanSensitiveFloatNear(a_float, max_abs_error)` | `argument` is a `float` value close to `a_float` (absolute error <= `max_abs_error`), treating two NaNs as equal. | - - -### String Matchers - -The `argument` can be either a C string or a C++ string object: - - -| Matcher | Description | -| :---------------------- | :------------------------------------------------- | -| `ContainsRegex(string)` | `argument` matches the given regular expression. | -| `EndsWith(suffix)` | `argument` ends with string `suffix`. | -| `HasSubstr(string)` | `argument` contains `string` as a sub-string. | -| `MatchesRegex(string)` | `argument` matches the given regular expression with the match starting at the first character and ending at the last character. | -| `StartsWith(prefix)` | `argument` starts with string `prefix`. | -| `StrCaseEq(string)` | `argument` is equal to `string`, ignoring case. | -| `StrCaseNe(string)` | `argument` is not equal to `string`, ignoring case. | -| `StrEq(string)` | `argument` is equal to `string`. | -| `StrNe(string)` | `argument` is not equal to `string`. | - - -`ContainsRegex()` and `MatchesRegex()` take ownership of the `RE` object. They -use the regular expression syntax defined -[here](../../googletest/docs/advanced.md#regular-expression-syntax). All of -these matchers, except `ContainsRegex()` and `MatchesRegex()` work for wide -strings as well. - -### Container Matchers - -Most STL-style containers support `==`, so you can use `Eq(expected_container)` -or simply `expected_container` to match a container exactly. If you want to -write the elements in-line, match them more flexibly, or get more informative -messages, you can use: - - -| Matcher | Description | -| :---------------------------------------- | :------------------------------- | -| `BeginEndDistanceIs(m)` | `argument` is a container whose `begin()` and `end()` iterators are separated by a number of increments matching `m`. E.g. `BeginEndDistanceIs(2)` or `BeginEndDistanceIs(Lt(2))`. For containers that define a `size()` method, `SizeIs(m)` may be more efficient. | -| `ContainerEq(container)` | The same as `Eq(container)` except that the failure message also includes which elements are in one container but not the other. | -| `Contains(e)` | `argument` contains an element that matches `e`, which can be either a value or a matcher. | -| `Each(e)` | `argument` is a container where *every* element matches `e`, which can be either a value or a matcher. | -| `ElementsAre(e0, e1, ..., en)` | `argument` has `n + 1` elements, where the *i*-th element matches `ei`, which can be a value or a matcher. | -| `ElementsAreArray({e0, e1, ..., en})`, `ElementsAreArray(a_container)`, `ElementsAreArray(begin, end)`, `ElementsAreArray(array)`, or `ElementsAreArray(array, count)` | The same as `ElementsAre()` except that the expected element values/matchers come from an initializer list, STL-style container, iterator range, or C-style array. | -| `IsEmpty()` | `argument` is an empty container (`container.empty()`). | -| `IsSubsetOf({e0, e1, ..., en})`, `IsSubsetOf(a_container)`, `IsSubsetOf(begin, end)`, `IsSubsetOf(array)`, or `IsSubsetOf(array, count)` | `argument` matches `UnorderedElementsAre(x0, x1, ..., xk)` for some subset `{x0, x1, ..., xk}` of the expected matchers. | -| `IsSupersetOf({e0, e1, ..., en})`, `IsSupersetOf(a_container)`, `IsSupersetOf(begin, end)`, `IsSupersetOf(array)`, or `IsSupersetOf(array, count)` | Some subset of `argument` matches `UnorderedElementsAre(`expected matchers`)`. | -| `Pointwise(m, container)`, `Pointwise(m, {e0, e1, ..., en})` | `argument` contains the same number of elements as in `container`, and for all i, (the i-th element in `argument`, the i-th element in `container`) match `m`, which is a matcher on 2-tuples. E.g. `Pointwise(Le(), upper_bounds)` verifies that each element in `argument` doesn't exceed the corresponding element in `upper_bounds`. See more detail below. | -| `SizeIs(m)` | `argument` is a container whose size matches `m`. E.g. `SizeIs(2)` or `SizeIs(Lt(2))`. | -| `UnorderedElementsAre(e0, e1, ..., en)` | `argument` has `n + 1` elements, and under *some* permutation of the elements, each element matches an `ei` (for a different `i`), which can be a value or a matcher. | -| `UnorderedElementsAreArray({e0, e1, ..., en})`, `UnorderedElementsAreArray(a_container)`, `UnorderedElementsAreArray(begin, end)`, `UnorderedElementsAreArray(array)`, or `UnorderedElementsAreArray(array, count)` | The same as `UnorderedElementsAre()` except that the expected element values/matchers come from an initializer list, STL-style container, iterator range, or C-style array. | -| `UnorderedPointwise(m, container)`, `UnorderedPointwise(m, {e0, e1, ..., en})` | Like `Pointwise(m, container)`, but ignores the order of elements. | -| `WhenSorted(m)` | When `argument` is sorted using the `<` operator, it matches container matcher `m`. E.g. `WhenSorted(ElementsAre(1, 2, 3))` verifies that `argument` contains elements 1, 2, and 3, ignoring order. | -| `WhenSortedBy(comparator, m)` | The same as `WhenSorted(m)`, except that the given comparator instead of `<` is used to sort `argument`. E.g. `WhenSortedBy(std::greater(), ElementsAre(3, 2, 1))`. | - - -**Notes:** - -* These matchers can also match: - 1. a native array passed by reference (e.g. in `Foo(const int (&a)[5])`), - and - 2. an array passed as a pointer and a count (e.g. in `Bar(const T* buffer, - int len)` -- see [Multi-argument Matchers](#MultiArgMatchers)). -* The array being matched may be multi-dimensional (i.e. its elements can be - arrays). -* `m` in `Pointwise(m, ...)` should be a matcher for `::std::tuple` - where `T` and `U` are the element type of the actual container and the - expected container, respectively. For example, to compare two `Foo` - containers where `Foo` doesn't support `operator==`, one might write: - - ```cpp - using ::std::get; - MATCHER(FooEq, "") { - return std::get<0>(arg).Equals(std::get<1>(arg)); - } - ... - EXPECT_THAT(actual_foos, Pointwise(FooEq(), expected_foos)); - ``` - -### Member Matchers - - -| Matcher | Description | -| :------------------------------ | :----------------------------------------- | -| `Field(&class::field, m)` | `argument.field` (or `argument->field` when `argument` is a plain pointer) matches matcher `m`, where `argument` is an object of type _class_. | -| `Key(e)` | `argument.first` matches `e`, which can be either a value or a matcher. E.g. `Contains(Key(Le(5)))` can verify that a `map` contains a key `<= 5`. | -| `Pair(m1, m2)` | `argument` is an `std::pair` whose `first` field matches `m1` and `second` field matches `m2`. | -| `FieldsAre(m...)` | `argument` is a compatible object where each field matches piecewise with `m...`. A compatible object is any that supports the `std::tuple_size`+`get(obj)` protocol. In C++17 and up this also supports types compatible with structured bindings, like aggregates. | -| `Property(&class::property, m)` | `argument.property()` (or `argument->property()` when `argument` is a plain pointer) matches matcher `m`, where `argument` is an object of type _class_. | - - -### Matching the Result of a Function, Functor, or Callback - - -| Matcher | Description | -| :--------------- | :------------------------------------------------ | -| `ResultOf(f, m)` | `f(argument)` matches matcher `m`, where `f` is a function or functor. | - - -### Pointer Matchers - - -| Matcher | Description | -| :------------------------ | :---------------------------------------------- | -| `Address(m)` | the result of `std::addressof(argument)` matches `m`. | -| `Pointee(m)` | `argument` (either a smart pointer or a raw pointer) points to a value that matches matcher `m`. | -| `Pointer(m)` | `argument` (either a smart pointer or a raw pointer) contains a pointer that matches `m`. `m` will match against the raw pointer regardless of the type of `argument`. | -| `WhenDynamicCastTo(m)` | when `argument` is passed through `dynamic_cast()`, it matches matcher `m`. | - - - - - - -### Multi-argument Matchers {#MultiArgMatchers} - -Technically, all matchers match a *single* value. A "multi-argument" matcher is -just one that matches a *tuple*. The following matchers can be used to match a -tuple `(x, y)`: - -Matcher | Description -:------ | :---------- -`Eq()` | `x == y` -`Ge()` | `x >= y` -`Gt()` | `x > y` -`Le()` | `x <= y` -`Lt()` | `x < y` -`Ne()` | `x != y` - -You can use the following selectors to pick a subset of the arguments (or -reorder them) to participate in the matching: - - -| Matcher | Description | -| :------------------------- | :---------------------------------------------- | -| `AllArgs(m)` | Equivalent to `m`. Useful as syntactic sugar in `.With(AllArgs(m))`. | -| `Args(m)` | The tuple of the `k` selected (using 0-based indices) arguments matches `m`, e.g. `Args<1, 2>(Eq())`. | - - -### Composite Matchers - -You can make a matcher from one or more other matchers: - - -| Matcher | Description | -| :------------------------------- | :-------------------------------------- | -| `AllOf(m1, m2, ..., mn)` | `argument` matches all of the matchers `m1` to `mn`. | -| `AllOfArray({m0, m1, ..., mn})`, `AllOfArray(a_container)`, `AllOfArray(begin, end)`, `AllOfArray(array)`, or `AllOfArray(array, count)` | The same as `AllOf()` except that the matchers come from an initializer list, STL-style container, iterator range, or C-style array. | -| `AnyOf(m1, m2, ..., mn)` | `argument` matches at least one of the matchers `m1` to `mn`. | -| `AnyOfArray({m0, m1, ..., mn})`, `AnyOfArray(a_container)`, `AnyOfArray(begin, end)`, `AnyOfArray(array)`, or `AnyOfArray(array, count)` | The same as `AnyOf()` except that the matchers come from an initializer list, STL-style container, iterator range, or C-style array. | -| `Not(m)` | `argument` doesn't match matcher `m`. | - - - - -### Adapters for Matchers - - -| Matcher | Description | -| :---------------------- | :------------------------------------ | -| `MatcherCast(m)` | casts matcher `m` to type `Matcher`. | -| `SafeMatcherCast(m)` | [safely casts](cook_book.md#casting-matchers) matcher `m` to type `Matcher`. | -| `Truly(predicate)` | `predicate(argument)` returns something considered by C++ to be true, where `predicate` is a function or functor. | - - -`AddressSatisfies(callback)` and `Truly(callback)` take ownership of `callback`, -which must be a permanent callback. - -### Using Matchers as Predicates {#MatchersAsPredicatesCheat} - - -| Matcher | Description | -| :---------------------------- | :------------------------------------------ | -| `Matches(m)(value)` | evaluates to `true` if `value` matches `m`. You can use `Matches(m)` alone as a unary functor. | -| `ExplainMatchResult(m, value, result_listener)` | evaluates to `true` if `value` matches `m`, explaining the result to `result_listener`. | -| `Value(value, m)` | evaluates to `true` if `value` matches `m`. | - - -### Defining Matchers - - -| Matcher | Description | -| :----------------------------------- | :------------------------------------ | -| `MATCHER(IsEven, "") { return (arg % 2) == 0; }` | Defines a matcher `IsEven()` to match an even number. | -| `MATCHER_P(IsDivisibleBy, n, "") { *result_listener << "where the remainder is " << (arg % n); return (arg % n) == 0; }` | Defines a matcher `IsDivisibleBy(n)` to match a number divisible by `n`. | -| `MATCHER_P2(IsBetween, a, b, absl::StrCat(negation ? "isn't" : "is", " between ", PrintToString(a), " and ", PrintToString(b))) { return a <= arg && arg <= b; }` | Defines a matcher `IsBetween(a, b)` to match a value in the range [`a`, `b`]. | - - -**Notes:** - -1. The `MATCHER*` macros cannot be used inside a function or class. -2. The matcher body must be *purely functional* (i.e. it cannot have any side - effect, and the result must not depend on anything other than the value - being matched and the matcher parameters). -3. You can use `PrintToString(x)` to convert a value `x` of any type to a - string. - -## Actions {#ActionList} - -**Actions** specify what a mock function should do when invoked. - -### Returning a Value - - -| | | -| :-------------------------------- | :-------------------------------------------- | -| `Return()` | Return from a `void` mock function. | -| `Return(value)` | Return `value`. If the type of `value` is different to the mock function's return type, `value` is converted to the latter type at the time the expectation is set, not when the action is executed. | -| `ReturnArg()` | Return the `N`-th (0-based) argument. | -| `ReturnNew(a1, ..., ak)` | Return `new T(a1, ..., ak)`; a different object is created each time. | -| `ReturnNull()` | Return a null pointer. | -| `ReturnPointee(ptr)` | Return the value pointed to by `ptr`. | -| `ReturnRef(variable)` | Return a reference to `variable`. | -| `ReturnRefOfCopy(value)` | Return a reference to a copy of `value`; the copy lives as long as the action. | -| `ReturnRoundRobin({a1, ..., ak})` | Each call will return the next `ai` in the list, starting at the beginning when the end of the list is reached. | - - -### Side Effects - - -| | | -| :--------------------------------- | :-------------------------------------- | -| `Assign(&variable, value)` | Assign `value` to variable. | -| `DeleteArg()` | Delete the `N`-th (0-based) argument, which must be a pointer. | -| `SaveArg(pointer)` | Save the `N`-th (0-based) argument to `*pointer`. | -| `SaveArgPointee(pointer)` | Save the value pointed to by the `N`-th (0-based) argument to `*pointer`. | -| `SetArgReferee(value)` | Assign `value` to the variable referenced by the `N`-th (0-based) argument. | -| `SetArgPointee(value)` | Assign `value` to the variable pointed by the `N`-th (0-based) argument. | -| `SetArgumentPointee(value)` | Same as `SetArgPointee(value)`. Deprecated. Will be removed in v1.7.0. | -| `SetArrayArgument(first, last)` | Copies the elements in source range [`first`, `last`) to the array pointed to by the `N`-th (0-based) argument, which can be either a pointer or an iterator. The action does not take ownership of the elements in the source range. | -| `SetErrnoAndReturn(error, value)` | Set `errno` to `error` and return `value`. | -| `Throw(exception)` | Throws the given exception, which can be any copyable value. Available since v1.1.0. | - - -### Using a Function, Functor, or Lambda as an Action - -In the following, by "callable" we mean a free function, `std::function`, -functor, or lambda. - - -| | | -| :---------------------------------- | :------------------------------------- | -| `f` | Invoke f with the arguments passed to the mock function, where f is a callable. | -| `Invoke(f)` | Invoke `f` with the arguments passed to the mock function, where `f` can be a global/static function or a functor. | -| `Invoke(object_pointer, &class::method)` | Invoke the method on the object with the arguments passed to the mock function. | -| `InvokeWithoutArgs(f)` | Invoke `f`, which can be a global/static function or a functor. `f` must take no arguments. | -| `InvokeWithoutArgs(object_pointer, &class::method)` | Invoke the method on the object, which takes no arguments. | -| `InvokeArgument(arg1, arg2, ..., argk)` | Invoke the mock function's `N`-th (0-based) argument, which must be a function or a functor, with the `k` arguments. | - - -The return value of the invoked function is used as the return value of the -action. - -When defining a callable to be used with `Invoke*()`, you can declare any unused -parameters as `Unused`: - -```cpp -using ::testing::Invoke; -double Distance(Unused, double x, double y) { return sqrt(x*x + y*y); } -... -EXPECT_CALL(mock, Foo("Hi", _, _)).WillOnce(Invoke(Distance)); -``` - -`Invoke(callback)` and `InvokeWithoutArgs(callback)` take ownership of -`callback`, which must be permanent. The type of `callback` must be a base -callback type instead of a derived one, e.g. - -```cpp - BlockingClosure* done = new BlockingClosure; - ... Invoke(done) ...; // This won't compile! - - Closure* done2 = new BlockingClosure; - ... Invoke(done2) ...; // This works. -``` - -In `InvokeArgument(...)`, if an argument needs to be passed by reference, -wrap it inside `std::ref()`. For example, - -```cpp -using ::testing::InvokeArgument; -... -InvokeArgument<2>(5, string("Hi"), std::ref(foo)) -``` - -calls the mock function's #2 argument, passing to it `5` and `string("Hi")` by -value, and `foo` by reference. - -### Default Action - - -| Matcher | Description | -| :------------ | :----------------------------------------------------- | -| `DoDefault()` | Do the default action (specified by `ON_CALL()` or the built-in one). | - - -**Note:** due to technical reasons, `DoDefault()` cannot be used inside a -composite action - trying to do so will result in a run-time error. - - - -### Composite Actions - - -| | | -| :----------------------------- | :------------------------------------------ | -| `DoAll(a1, a2, ..., an)` | Do all actions `a1` to `an` and return the result of `an` in each invocation. The first `n - 1` sub-actions must return void and will receive a readonly view of the arguments. | -| `IgnoreResult(a)` | Perform action `a` and ignore its result. `a` must not return void. | -| `WithArg(a)` | Pass the `N`-th (0-based) argument of the mock function to action `a` and perform it. | -| `WithArgs(a)` | Pass the selected (0-based) arguments of the mock function to action `a` and perform it. | -| `WithoutArgs(a)` | Perform action `a` without any arguments. | - - -### Defining Actions - - -| | | -| :--------------------------------- | :-------------------------------------- | -| `ACTION(Sum) { return arg0 + arg1; }` | Defines an action `Sum()` to return the sum of the mock function's argument #0 and #1. | -| `ACTION_P(Plus, n) { return arg0 + n; }` | Defines an action `Plus(n)` to return the sum of the mock function's argument #0 and `n`. | -| `ACTION_Pk(Foo, p1, ..., pk) { statements; }` | Defines a parameterized action `Foo(p1, ..., pk)` to execute the given `statements`. | - - -The `ACTION*` macros cannot be used inside a function or class. - -## Cardinalities {#CardinalityList} - -These are used in `Times()` to specify how many times a mock function will be -called: - - -| | | -| :---------------- | :----------------------------------------------------- | -| `AnyNumber()` | The function can be called any number of times. | -| `AtLeast(n)` | The call is expected at least `n` times. | -| `AtMost(n)` | The call is expected at most `n` times. | -| `Between(m, n)` | The call is expected between `m` and `n` (inclusive) times. | -| `Exactly(n) or n` | The call is expected exactly `n` times. In particular, the call should never happen when `n` is 0. | - - -## Expectation Order - -By default, the expectations can be matched in *any* order. If some or all -expectations must be matched in a given order, there are two ways to specify it. -They can be used either independently or together. - -### The After Clause {#AfterClause} - -```cpp -using ::testing::Expectation; -... -Expectation init_x = EXPECT_CALL(foo, InitX()); -Expectation init_y = EXPECT_CALL(foo, InitY()); -EXPECT_CALL(foo, Bar()) - .After(init_x, init_y); -``` - -says that `Bar()` can be called only after both `InitX()` and `InitY()` have -been called. - -If you don't know how many pre-requisites an expectation has when you write it, -you can use an `ExpectationSet` to collect them: - -```cpp -using ::testing::ExpectationSet; -... -ExpectationSet all_inits; -for (int i = 0; i < element_count; i++) { - all_inits += EXPECT_CALL(foo, InitElement(i)); -} -EXPECT_CALL(foo, Bar()) - .After(all_inits); -``` - -says that `Bar()` can be called only after all elements have been initialized -(but we don't care about which elements get initialized before the others). - -Modifying an `ExpectationSet` after using it in an `.After()` doesn't affect the -meaning of the `.After()`. - -### Sequences {#UsingSequences} - -When you have a long chain of sequential expectations, it's easier to specify -the order using **sequences**, which don't require you to given each expectation -in the chain a different name. *All expected calls* in the same sequence must -occur in the order they are specified. - -```cpp -using ::testing::Return; -using ::testing::Sequence; -Sequence s1, s2; -... -EXPECT_CALL(foo, Reset()) - .InSequence(s1, s2) - .WillOnce(Return(true)); -EXPECT_CALL(foo, GetSize()) - .InSequence(s1) - .WillOnce(Return(1)); -EXPECT_CALL(foo, Describe(A())) - .InSequence(s2) - .WillOnce(Return("dummy")); -``` - -says that `Reset()` must be called before *both* `GetSize()` *and* `Describe()`, -and the latter two can occur in any order. - -To put many expectations in a sequence conveniently: - -```cpp -using ::testing::InSequence; -{ - InSequence seq; - - EXPECT_CALL(...)...; - EXPECT_CALL(...)...; - ... - EXPECT_CALL(...)...; -} -``` - -says that all expected calls in the scope of `seq` must occur in strict order. -The name `seq` is irrelevant. - -## Verifying and Resetting a Mock - -gMock will verify the expectations on a mock object when it is destructed, or -you can do it earlier: - -```cpp -using ::testing::Mock; -... -// Verifies and removes the expectations on mock_obj; -// returns true if and only if successful. -Mock::VerifyAndClearExpectations(&mock_obj); -... -// Verifies and removes the expectations on mock_obj; -// also removes the default actions set by ON_CALL(); -// returns true if and only if successful. -Mock::VerifyAndClear(&mock_obj); -``` - -You can also tell gMock that a mock object can be leaked and doesn't need to be -verified: - -```cpp -Mock::AllowLeak(&mock_obj); -``` - -## Mock Classes - -gMock defines a convenient mock class template - -```cpp -class MockFunction { - public: - MOCK_METHOD(R, Call, (A1, ..., An)); -}; -``` - -See this [recipe](cook_book.md#using-check-points) for one application of it. - -## Flags - - -| Flag | Description | -| :----------------------------- | :---------------------------------------- | -| `--gmock_catch_leaked_mocks=0` | Don't report leaked mock objects as failures. | -| `--gmock_verbose=LEVEL` | Sets the default verbosity level (`info`, `warning`, or `error`) of Google Mock messages. | - diff --git a/UnitTests_App/GoogleTest/googlemock/docs/community_created_documentation.md b/UnitTests_App/GoogleTest/googlemock/docs/community_created_documentation.md deleted file mode 100644 index dfd87f7..0000000 --- a/UnitTests_App/GoogleTest/googlemock/docs/community_created_documentation.md +++ /dev/null @@ -1,9 +0,0 @@ -# Community-Created Documentation - -go/gunit-community-created-docs - -The following is a list, in no particular order, of links to documentation -created by the Googletest community. - -* [Googlemock Insights](https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/blob/master/googletest/insights.md), - by [ElectricRCAircraftGuy](https://github.com/ElectricRCAircraftGuy) diff --git a/UnitTests_App/GoogleTest/googlemock/docs/cook_book.md b/UnitTests_App/GoogleTest/googlemock/docs/cook_book.md deleted file mode 100644 index cd64150..0000000 --- a/UnitTests_App/GoogleTest/googlemock/docs/cook_book.md +++ /dev/null @@ -1,4266 +0,0 @@ -# gMock Cookbook - - - -You can find recipes for using gMock here. If you haven't yet, please read -[the dummy guide](for_dummies.md) first to make sure you understand the basics. - -**Note:** gMock lives in the `testing` name space. For readability, it is -recommended to write `using ::testing::Foo;` once in your file before using the -name `Foo` defined by gMock. We omit such `using` statements in this section for -brevity, but you should do it in your own code. - - - -## Creating Mock Classes - -Mock classes are defined as normal classes, using the `MOCK_METHOD` macro to -generate mocked methods. The macro gets 3 or 4 parameters: - -```cpp -class MyMock { - public: - MOCK_METHOD(ReturnType, MethodName, (Args...)); - MOCK_METHOD(ReturnType, MethodName, (Args...), (Specs...)); -}; -``` - -The first 3 parameters are simply the method declaration, split into 3 parts. -The 4th parameter accepts a closed list of qualifiers, which affect the -generated method: - -* **`const`** - Makes the mocked method a `const` method. Required if - overriding a `const` method. -* **`override`** - Marks the method with `override`. Recommended if overriding - a `virtual` method. -* **`noexcept`** - Marks the method with `noexcept`. Required if overriding a - `noexcept` method. -* **`Calltype(...)`** - Sets the call type for the method (e.g. to - `STDMETHODCALLTYPE`), useful in Windows. -* **`ref(...)`** - Marks the method with the reference qualification - specified. Required if overriding a method that has reference - qualifications. Eg `ref(&)` or `ref(&&)`. - -### Dealing with unprotected commas - -Unprotected commas, i.e. commas which are not surrounded by parentheses, prevent -`MOCK_METHOD` from parsing its arguments correctly: - -```cpp {.bad} -class MockFoo { - public: - MOCK_METHOD(std::pair, GetPair, ()); // Won't compile! - MOCK_METHOD(bool, CheckMap, (std::map, bool)); // Won't compile! -}; -``` - -Solution 1 - wrap with parentheses: - -```cpp {.good} -class MockFoo { - public: - MOCK_METHOD((std::pair), GetPair, ()); - MOCK_METHOD(bool, CheckMap, ((std::map), bool)); -}; -``` - -Note that wrapping a return or argument type with parentheses is, in general, -invalid C++. `MOCK_METHOD` removes the parentheses. - -Solution 2 - define an alias: - -```cpp {.good} -class MockFoo { - public: - using BoolAndInt = std::pair; - MOCK_METHOD(BoolAndInt, GetPair, ()); - using MapIntDouble = std::map; - MOCK_METHOD(bool, CheckMap, (MapIntDouble, bool)); -}; -``` - -### Mocking Private or Protected Methods - -You must always put a mock method definition (`MOCK_METHOD`) in a `public:` -section of the mock class, regardless of the method being mocked being `public`, -`protected`, or `private` in the base class. This allows `ON_CALL` and -`EXPECT_CALL` to reference the mock function from outside of the mock class. -(Yes, C++ allows a subclass to change the access level of a virtual function in -the base class.) Example: - -```cpp -class Foo { - public: - ... - virtual bool Transform(Gadget* g) = 0; - - protected: - virtual void Resume(); - - private: - virtual int GetTimeOut(); -}; - -class MockFoo : public Foo { - public: - ... - MOCK_METHOD(bool, Transform, (Gadget* g), (override)); - - // The following must be in the public section, even though the - // methods are protected or private in the base class. - MOCK_METHOD(void, Resume, (), (override)); - MOCK_METHOD(int, GetTimeOut, (), (override)); -}; -``` - -### Mocking Overloaded Methods - -You can mock overloaded functions as usual. No special attention is required: - -```cpp -class Foo { - ... - - // Must be virtual as we'll inherit from Foo. - virtual ~Foo(); - - // Overloaded on the types and/or numbers of arguments. - virtual int Add(Element x); - virtual int Add(int times, Element x); - - // Overloaded on the const-ness of this object. - virtual Bar& GetBar(); - virtual const Bar& GetBar() const; -}; - -class MockFoo : public Foo { - ... - MOCK_METHOD(int, Add, (Element x), (override)); - MOCK_METHOD(int, Add, (int times, Element x), (override)); - - MOCK_METHOD(Bar&, GetBar, (), (override)); - MOCK_METHOD(const Bar&, GetBar, (), (const, override)); -}; -``` - -**Note:** if you don't mock all versions of the overloaded method, the compiler -will give you a warning about some methods in the base class being hidden. To -fix that, use `using` to bring them in scope: - -```cpp -class MockFoo : public Foo { - ... - using Foo::Add; - MOCK_METHOD(int, Add, (Element x), (override)); - // We don't want to mock int Add(int times, Element x); - ... -}; -``` - -### Mocking Class Templates - -You can mock class templates just like any class. - -```cpp -template -class StackInterface { - ... - // Must be virtual as we'll inherit from StackInterface. - virtual ~StackInterface(); - - virtual int GetSize() const = 0; - virtual void Push(const Elem& x) = 0; -}; - -template -class MockStack : public StackInterface { - ... - MOCK_METHOD(int, GetSize, (), (override)); - MOCK_METHOD(void, Push, (const Elem& x), (override)); -}; -``` - -### Mocking Non-virtual Methods {#MockingNonVirtualMethods} - -gMock can mock non-virtual functions to be used in Hi-perf dependency -injection. - -In this case, instead of sharing a common base class with the real class, your -mock class will be *unrelated* to the real class, but contain methods with the -same signatures. The syntax for mocking non-virtual methods is the *same* as -mocking virtual methods (just don't add `override`): - -```cpp -// A simple packet stream class. None of its members is virtual. -class ConcretePacketStream { - public: - void AppendPacket(Packet* new_packet); - const Packet* GetPacket(size_t packet_number) const; - size_t NumberOfPackets() const; - ... -}; - -// A mock packet stream class. It inherits from no other, but defines -// GetPacket() and NumberOfPackets(). -class MockPacketStream { - public: - MOCK_METHOD(const Packet*, GetPacket, (size_t packet_number), (const)); - MOCK_METHOD(size_t, NumberOfPackets, (), (const)); - ... -}; -``` - -Note that the mock class doesn't define `AppendPacket()`, unlike the real class. -That's fine as long as the test doesn't need to call it. - -Next, you need a way to say that you want to use `ConcretePacketStream` in -production code, and use `MockPacketStream` in tests. Since the functions are -not virtual and the two classes are unrelated, you must specify your choice at -*compile time* (as opposed to run time). - -One way to do it is to templatize your code that needs to use a packet stream. -More specifically, you will give your code a template type argument for the type -of the packet stream. In production, you will instantiate your template with -`ConcretePacketStream` as the type argument. In tests, you will instantiate the -same template with `MockPacketStream`. For example, you may write: - -```cpp -template -void CreateConnection(PacketStream* stream) { ... } - -template -class PacketReader { - public: - void ReadPackets(PacketStream* stream, size_t packet_num); -}; -``` - -Then you can use `CreateConnection()` and -`PacketReader` in production code, and use -`CreateConnection()` and `PacketReader` in -tests. - -```cpp - MockPacketStream mock_stream; - EXPECT_CALL(mock_stream, ...)...; - .. set more expectations on mock_stream ... - PacketReader reader(&mock_stream); - ... exercise reader ... -``` - -### Mocking Free Functions - -It's possible to use gMock to mock a free function (i.e. a C-style function or a -static method). You just need to rewrite your code to use an interface (abstract -class). - -Instead of calling a free function (say, `OpenFile`) directly, introduce an -interface for it and have a concrete subclass that calls the free function: - -```cpp -class FileInterface { - public: - ... - virtual bool Open(const char* path, const char* mode) = 0; -}; - -class File : public FileInterface { - public: - ... - virtual bool Open(const char* path, const char* mode) { - return OpenFile(path, mode); - } -}; -``` - -Your code should talk to `FileInterface` to open a file. Now it's easy to mock -out the function. - -This may seem like a lot of hassle, but in practice you often have multiple -related functions that you can put in the same interface, so the per-function -syntactic overhead will be much lower. - -If you are concerned about the performance overhead incurred by virtual -functions, and profiling confirms your concern, you can combine this with the -recipe for [mocking non-virtual methods](#MockingNonVirtualMethods). - -### Old-Style `MOCK_METHODn` Macros - -Before the generic `MOCK_METHOD` macro -[was introduced in 2018](https://github.com/google/googletest/commit/c5f08bf91944ce1b19bcf414fa1760e69d20afc2), -mocks where created using a family of macros collectively called `MOCK_METHODn`. -These macros are still supported, though migration to the new `MOCK_METHOD` is -recommended. - -The macros in the `MOCK_METHODn` family differ from `MOCK_METHOD`: - -* The general structure is `MOCK_METHODn(MethodName, ReturnType(Args))`, - instead of `MOCK_METHOD(ReturnType, MethodName, (Args))`. -* The number `n` must equal the number of arguments. -* When mocking a const method, one must use `MOCK_CONST_METHODn`. -* When mocking a class template, the macro name must be suffixed with `_T`. -* In order to specify the call type, the macro name must be suffixed with - `_WITH_CALLTYPE`, and the call type is the first macro argument. - -Old macros and their new equivalents: - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Simple
Old `MOCK_METHOD1(Foo, bool(int))`
New `MOCK_METHOD(bool, Foo, (int))`
Const Method
Old -`MOCK_CONST_METHOD1(Foo, bool(int))`
New -`MOCK_METHOD(bool, Foo, (int), (const))`
Method in a Class Template
Old `MOCK_METHOD1_T(Foo, bool(int))`
New -`MOCK_METHOD(bool, Foo, (int))`
Const Method in a Class Template
Old - `MOCK_CONST_METHOD1_T(Foo, bool(int))`
New - `MOCK_METHOD(bool, Foo, (int), (const))`
Method with Call Type
Old -`MOCK_METHOD1_WITH_CALLTYPE(STDMETHODCALLTYPE, Foo, bool(int))`
New `MOCK_METHOD(bool, Foo, (int), -(Calltype(STDMETHODCALLTYPE)))`
Const Method with Call Type
Old `MOCK_CONST_METHOD1_WITH_CALLTYPE(STDMETHODCALLTYPE, Foo, bool(int))`
New `MOCK_METHOD(bool, Foo, (int), (const, -Calltype(STDMETHODCALLTYPE)))`
Method with Call Type in a Class Template
Old `MOCK_METHOD1_T_WITH_CALLTYPE(STDMETHODCALLTYPE, Foo, -bool(int))`
New `MOCK_METHOD(bool, Foo, (int), -(Calltype(STDMETHODCALLTYPE)))`
Const Method with Call Type in a Class Template
Old `MOCK_CONST_METHOD1_T_WITH_CALLTYPE(STDMETHODCALLTYPE, -Foo, bool(int))`
New `MOCK_METHOD(bool, Foo, -(int), (const, Calltype(STDMETHODCALLTYPE)))`
- -### The Nice, the Strict, and the Naggy {#NiceStrictNaggy} - -If a mock method has no `EXPECT_CALL` spec but is called, we say that it's an -"uninteresting call", and the default action (which can be specified using -`ON_CALL()`) of the method will be taken. Currently, an uninteresting call will -also by default cause gMock to print a warning. (In the future, we might remove -this warning by default.) - -However, sometimes you may want to ignore these uninteresting calls, and -sometimes you may want to treat them as errors. gMock lets you make the decision -on a per-mock-object basis. - -Suppose your test uses a mock class `MockFoo`: - -```cpp -TEST(...) { - MockFoo mock_foo; - EXPECT_CALL(mock_foo, DoThis()); - ... code that uses mock_foo ... -} -``` - -If a method of `mock_foo` other than `DoThis()` is called, you will get a -warning. However, if you rewrite your test to use `NiceMock` instead, -you can suppress the warning: - -```cpp -using ::testing::NiceMock; - -TEST(...) { - NiceMock mock_foo; - EXPECT_CALL(mock_foo, DoThis()); - ... code that uses mock_foo ... -} -``` - -`NiceMock` is a subclass of `MockFoo`, so it can be used wherever -`MockFoo` is accepted. - -It also works if `MockFoo`'s constructor takes some arguments, as -`NiceMock` "inherits" `MockFoo`'s constructors: - -```cpp -using ::testing::NiceMock; - -TEST(...) { - NiceMock mock_foo(5, "hi"); // Calls MockFoo(5, "hi"). - EXPECT_CALL(mock_foo, DoThis()); - ... code that uses mock_foo ... -} -``` - -The usage of `StrictMock` is similar, except that it makes all uninteresting -calls failures: - -```cpp -using ::testing::StrictMock; - -TEST(...) { - StrictMock mock_foo; - EXPECT_CALL(mock_foo, DoThis()); - ... code that uses mock_foo ... - - // The test will fail if a method of mock_foo other than DoThis() - // is called. -} -``` - -NOTE: `NiceMock` and `StrictMock` only affects *uninteresting* calls (calls of -*methods* with no expectations); they do not affect *unexpected* calls (calls of -methods with expectations, but they don't match). See -[Understanding Uninteresting vs Unexpected Calls](#uninteresting-vs-unexpected). - -There are some caveats though (sadly they are side effects of C++'s -limitations): - -1. `NiceMock` and `StrictMock` only work for mock methods - defined using the `MOCK_METHOD` macro **directly** in the `MockFoo` class. - If a mock method is defined in a **base class** of `MockFoo`, the "nice" or - "strict" modifier may not affect it, depending on the compiler. In - particular, nesting `NiceMock` and `StrictMock` (e.g. - `NiceMock >`) is **not** supported. -2. `NiceMock` and `StrictMock` may not work correctly if the - destructor of `MockFoo` is not virtual. We would like to fix this, but it - requires cleaning up existing tests. - -Finally, you should be **very cautious** about when to use naggy or strict -mocks, as they tend to make tests more brittle and harder to maintain. When you -refactor your code without changing its externally visible behavior, ideally you -shouldn't need to update any tests. If your code interacts with a naggy mock, -however, you may start to get spammed with warnings as the result of your -change. Worse, if your code interacts with a strict mock, your tests may start -to fail and you'll be forced to fix them. Our general recommendation is to use -nice mocks (not yet the default) most of the time, use naggy mocks (the current -default) when developing or debugging tests, and use strict mocks only as the -last resort. - -### Simplifying the Interface without Breaking Existing Code {#SimplerInterfaces} - -Sometimes a method has a long list of arguments that is mostly uninteresting. -For example: - -```cpp -class LogSink { - public: - ... - virtual void send(LogSeverity severity, const char* full_filename, - const char* base_filename, int line, - const struct tm* tm_time, - const char* message, size_t message_len) = 0; -}; -``` - -This method's argument list is lengthy and hard to work with (the `message` -argument is not even 0-terminated). If we mock it as is, using the mock will be -awkward. If, however, we try to simplify this interface, we'll need to fix all -clients depending on it, which is often infeasible. - -The trick is to redispatch the method in the mock class: - -```cpp -class ScopedMockLog : public LogSink { - public: - ... - virtual void send(LogSeverity severity, const char* full_filename, - const char* base_filename, int line, const tm* tm_time, - const char* message, size_t message_len) { - // We are only interested in the log severity, full file name, and - // log message. - Log(severity, full_filename, std::string(message, message_len)); - } - - // Implements the mock method: - // - // void Log(LogSeverity severity, - // const string& file_path, - // const string& message); - MOCK_METHOD(void, Log, - (LogSeverity severity, const string& file_path, - const string& message)); -}; -``` - -By defining a new mock method with a trimmed argument list, we make the mock -class more user-friendly. - -This technique may also be applied to make overloaded methods more amenable to -mocking. For example, when overloads have been used to implement default -arguments: - -```cpp -class MockTurtleFactory : public TurtleFactory { - public: - Turtle* MakeTurtle(int length, int weight) override { ... } - Turtle* MakeTurtle(int length, int weight, int speed) override { ... } - - // the above methods delegate to this one: - MOCK_METHOD(Turtle*, DoMakeTurtle, ()); -}; -``` - -This allows tests that don't care which overload was invoked to avoid specifying -argument matchers: - -```cpp -ON_CALL(factory, DoMakeTurtle) - .WillByDefault(Return(MakeMockTurtle())); -``` - -### Alternative to Mocking Concrete Classes - -Often you may find yourself using classes that don't implement interfaces. In -order to test your code that uses such a class (let's call it `Concrete`), you -may be tempted to make the methods of `Concrete` virtual and then mock it. - -Try not to do that. - -Making a non-virtual function virtual is a big decision. It creates an extension -point where subclasses can tweak your class' behavior. This weakens your control -on the class because now it's harder to maintain the class invariants. You -should make a function virtual only when there is a valid reason for a subclass -to override it. - -Mocking concrete classes directly is problematic as it creates a tight coupling -between the class and the tests - any small change in the class may invalidate -your tests and make test maintenance a pain. - -To avoid such problems, many programmers have been practicing "coding to -interfaces": instead of talking to the `Concrete` class, your code would define -an interface and talk to it. Then you implement that interface as an adaptor on -top of `Concrete`. In tests, you can easily mock that interface to observe how -your code is doing. - -This technique incurs some overhead: - -* You pay the cost of virtual function calls (usually not a problem). -* There is more abstraction for the programmers to learn. - -However, it can also bring significant benefits in addition to better -testability: - -* `Concrete`'s API may not fit your problem domain very well, as you may not - be the only client it tries to serve. By designing your own interface, you - have a chance to tailor it to your need - you may add higher-level - functionalities, rename stuff, etc instead of just trimming the class. This - allows you to write your code (user of the interface) in a more natural way, - which means it will be more readable, more maintainable, and you'll be more - productive. -* If `Concrete`'s implementation ever has to change, you don't have to rewrite - everywhere it is used. Instead, you can absorb the change in your - implementation of the interface, and your other code and tests will be - insulated from this change. - -Some people worry that if everyone is practicing this technique, they will end -up writing lots of redundant code. This concern is totally understandable. -However, there are two reasons why it may not be the case: - -* Different projects may need to use `Concrete` in different ways, so the best - interfaces for them will be different. Therefore, each of them will have its - own domain-specific interface on top of `Concrete`, and they will not be the - same code. -* If enough projects want to use the same interface, they can always share it, - just like they have been sharing `Concrete`. You can check in the interface - and the adaptor somewhere near `Concrete` (perhaps in a `contrib` - sub-directory) and let many projects use it. - -You need to weigh the pros and cons carefully for your particular problem, but -I'd like to assure you that the Java community has been practicing this for a -long time and it's a proven effective technique applicable in a wide variety of -situations. :-) - -### Delegating Calls to a Fake {#DelegatingToFake} - -Some times you have a non-trivial fake implementation of an interface. For -example: - -```cpp -class Foo { - public: - virtual ~Foo() {} - virtual char DoThis(int n) = 0; - virtual void DoThat(const char* s, int* p) = 0; -}; - -class FakeFoo : public Foo { - public: - char DoThis(int n) override { - return (n > 0) ? '+' : - (n < 0) ? '-' : '0'; - } - - void DoThat(const char* s, int* p) override { - *p = strlen(s); - } -}; -``` - -Now you want to mock this interface such that you can set expectations on it. -However, you also want to use `FakeFoo` for the default behavior, as duplicating -it in the mock object is, well, a lot of work. - -When you define the mock class using gMock, you can have it delegate its default -action to a fake class you already have, using this pattern: - -```cpp -class MockFoo : public Foo { - public: - // Normal mock method definitions using gMock. - MOCK_METHOD(char, DoThis, (int n), (override)); - MOCK_METHOD(void, DoThat, (const char* s, int* p), (override)); - - // Delegates the default actions of the methods to a FakeFoo object. - // This must be called *before* the custom ON_CALL() statements. - void DelegateToFake() { - ON_CALL(*this, DoThis).WillByDefault([this](int n) { - return fake_.DoThis(n); - }); - ON_CALL(*this, DoThat).WillByDefault([this](const char* s, int* p) { - fake_.DoThat(s, p); - }); - } - - private: - FakeFoo fake_; // Keeps an instance of the fake in the mock. -}; -``` - -With that, you can use `MockFoo` in your tests as usual. Just remember that if -you don't explicitly set an action in an `ON_CALL()` or `EXPECT_CALL()`, the -fake will be called upon to do it.: - -```cpp -using ::testing::_; - -TEST(AbcTest, Xyz) { - MockFoo foo; - - foo.DelegateToFake(); // Enables the fake for delegation. - - // Put your ON_CALL(foo, ...)s here, if any. - - // No action specified, meaning to use the default action. - EXPECT_CALL(foo, DoThis(5)); - EXPECT_CALL(foo, DoThat(_, _)); - - int n = 0; - EXPECT_EQ('+', foo.DoThis(5)); // FakeFoo::DoThis() is invoked. - foo.DoThat("Hi", &n); // FakeFoo::DoThat() is invoked. - EXPECT_EQ(2, n); -} -``` - -**Some tips:** - -* If you want, you can still override the default action by providing your own - `ON_CALL()` or using `.WillOnce()` / `.WillRepeatedly()` in `EXPECT_CALL()`. -* In `DelegateToFake()`, you only need to delegate the methods whose fake - implementation you intend to use. - -* The general technique discussed here works for overloaded methods, but - you'll need to tell the compiler which version you mean. To disambiguate a - mock function (the one you specify inside the parentheses of `ON_CALL()`), - use [this technique](#SelectOverload); to disambiguate a fake function (the - one you place inside `Invoke()`), use a `static_cast` to specify the - function's type. For instance, if class `Foo` has methods `char DoThis(int - n)` and `bool DoThis(double x) const`, and you want to invoke the latter, - you need to write `Invoke(&fake_, static_cast(&FakeFoo::DoThis))` instead of `Invoke(&fake_, &FakeFoo::DoThis)` - (The strange-looking thing inside the angled brackets of `static_cast` is - the type of a function pointer to the second `DoThis()` method.). - -* Having to mix a mock and a fake is often a sign of something gone wrong. - Perhaps you haven't got used to the interaction-based way of testing yet. Or - perhaps your interface is taking on too many roles and should be split up. - Therefore, **don't abuse this**. We would only recommend to do it as an - intermediate step when you are refactoring your code. - -Regarding the tip on mixing a mock and a fake, here's an example on why it may -be a bad sign: Suppose you have a class `System` for low-level system -operations. In particular, it does file and I/O operations. And suppose you want -to test how your code uses `System` to do I/O, and you just want the file -operations to work normally. If you mock out the entire `System` class, you'll -have to provide a fake implementation for the file operation part, which -suggests that `System` is taking on too many roles. - -Instead, you can define a `FileOps` interface and an `IOOps` interface and split -`System`'s functionalities into the two. Then you can mock `IOOps` without -mocking `FileOps`. - -### Delegating Calls to a Real Object - -When using testing doubles (mocks, fakes, stubs, and etc), sometimes their -behaviors will differ from those of the real objects. This difference could be -either intentional (as in simulating an error such that you can test the error -handling code) or unintentional. If your mocks have different behaviors than the -real objects by mistake, you could end up with code that passes the tests but -fails in production. - -You can use the *delegating-to-real* technique to ensure that your mock has the -same behavior as the real object while retaining the ability to validate calls. -This technique is very similar to the [delegating-to-fake](#DelegatingToFake) -technique, the difference being that we use a real object instead of a fake. -Here's an example: - -```cpp -using ::testing::AtLeast; - -class MockFoo : public Foo { - public: - MockFoo() { - // By default, all calls are delegated to the real object. - ON_CALL(*this, DoThis).WillByDefault([this](int n) { - return real_.DoThis(n); - }); - ON_CALL(*this, DoThat).WillByDefault([this](const char* s, int* p) { - real_.DoThat(s, p); - }); - ... - } - MOCK_METHOD(char, DoThis, ...); - MOCK_METHOD(void, DoThat, ...); - ... - private: - Foo real_; -}; - -... - MockFoo mock; - EXPECT_CALL(mock, DoThis()) - .Times(3); - EXPECT_CALL(mock, DoThat("Hi")) - .Times(AtLeast(1)); - ... use mock in test ... -``` - -With this, gMock will verify that your code made the right calls (with the right -arguments, in the right order, called the right number of times, etc), and a -real object will answer the calls (so the behavior will be the same as in -production). This gives you the best of both worlds. - -### Delegating Calls to a Parent Class - -Ideally, you should code to interfaces, whose methods are all pure virtual. In -reality, sometimes you do need to mock a virtual method that is not pure (i.e, -it already has an implementation). For example: - -```cpp -class Foo { - public: - virtual ~Foo(); - - virtual void Pure(int n) = 0; - virtual int Concrete(const char* str) { ... } -}; - -class MockFoo : public Foo { - public: - // Mocking a pure method. - MOCK_METHOD(void, Pure, (int n), (override)); - // Mocking a concrete method. Foo::Concrete() is shadowed. - MOCK_METHOD(int, Concrete, (const char* str), (override)); -}; -``` - -Sometimes you may want to call `Foo::Concrete()` instead of -`MockFoo::Concrete()`. Perhaps you want to do it as part of a stub action, or -perhaps your test doesn't need to mock `Concrete()` at all (but it would be -oh-so painful to have to define a new mock class whenever you don't need to mock -one of its methods). - -You can call `Foo::Concrete()` inside an action by: - -```cpp -... - EXPECT_CALL(foo, Concrete).WillOnce([&foo](const char* str) { - return foo.Foo::Concrete(str); - }); -``` - -or tell the mock object that you don't want to mock `Concrete()`: - -```cpp -... - ON_CALL(foo, Concrete).WillByDefault([&foo](const char* str) { - return foo.Foo::Concrete(str); - }); -``` - -(Why don't we just write `{ return foo.Concrete(str); }`? If you do that, -`MockFoo::Concrete()` will be called (and cause an infinite recursion) since -`Foo::Concrete()` is virtual. That's just how C++ works.) - -## Using Matchers - -### Matching Argument Values Exactly - -You can specify exactly which arguments a mock method is expecting: - -```cpp -using ::testing::Return; -... - EXPECT_CALL(foo, DoThis(5)) - .WillOnce(Return('a')); - EXPECT_CALL(foo, DoThat("Hello", bar)); -``` - -### Using Simple Matchers - -You can use matchers to match arguments that have a certain property: - -```cpp -using ::testing::NotNull; -using ::testing::Return; -... - EXPECT_CALL(foo, DoThis(Ge(5))) // The argument must be >= 5. - .WillOnce(Return('a')); - EXPECT_CALL(foo, DoThat("Hello", NotNull())); - // The second argument must not be NULL. -``` - -A frequently used matcher is `_`, which matches anything: - -```cpp - EXPECT_CALL(foo, DoThat(_, NotNull())); -``` - - -### Combining Matchers {#CombiningMatchers} - -You can build complex matchers from existing ones using `AllOf()`, -`AllOfArray()`, `AnyOf()`, `AnyOfArray()` and `Not()`: - -```cpp -using ::testing::AllOf; -using ::testing::Gt; -using ::testing::HasSubstr; -using ::testing::Ne; -using ::testing::Not; -... - // The argument must be > 5 and != 10. - EXPECT_CALL(foo, DoThis(AllOf(Gt(5), - Ne(10)))); - - // The first argument must not contain sub-string "blah". - EXPECT_CALL(foo, DoThat(Not(HasSubstr("blah")), - NULL)); -``` - -Matchers are function objects, and parametrized matchers can be composed just -like any other function. However because their types can be long and rarely -provide meaningful information, it can be easier to express them with C++14 -generic lambdas to avoid specifying types. For example, - -```cpp -using ::testing::Contains; -using ::testing::Property; - -inline constexpr auto HasFoo = [](const auto& f) { - return Property(&MyClass::foo, Contains(f)); -}; -... - EXPECT_THAT(x, HasFoo("blah")); -``` - -### Casting Matchers {#SafeMatcherCast} - -gMock matchers are statically typed, meaning that the compiler can catch your -mistake if you use a matcher of the wrong type (for example, if you use `Eq(5)` -to match a `string` argument). Good for you! - -Sometimes, however, you know what you're doing and want the compiler to give you -some slack. One example is that you have a matcher for `long` and the argument -you want to match is `int`. While the two types aren't exactly the same, there -is nothing really wrong with using a `Matcher` to match an `int` - after -all, we can first convert the `int` argument to a `long` losslessly before -giving it to the matcher. - -To support this need, gMock gives you the `SafeMatcherCast(m)` function. It -casts a matcher `m` to type `Matcher`. To ensure safety, gMock checks that -(let `U` be the type `m` accepts : - -1. Type `T` can be *implicitly* cast to type `U`; -2. When both `T` and `U` are built-in arithmetic types (`bool`, integers, and - floating-point numbers), the conversion from `T` to `U` is not lossy (in - other words, any value representable by `T` can also be represented by `U`); - and -3. When `U` is a reference, `T` must also be a reference (as the underlying - matcher may be interested in the address of the `U` value). - -The code won't compile if any of these conditions isn't met. - -Here's one example: - -```cpp -using ::testing::SafeMatcherCast; - -// A base class and a child class. -class Base { ... }; -class Derived : public Base { ... }; - -class MockFoo : public Foo { - public: - MOCK_METHOD(void, DoThis, (Derived* derived), (override)); -}; - -... - MockFoo foo; - // m is a Matcher we got from somewhere. - EXPECT_CALL(foo, DoThis(SafeMatcherCast(m))); -``` - -If you find `SafeMatcherCast(m)` too limiting, you can use a similar function -`MatcherCast(m)`. The difference is that `MatcherCast` works as long as you -can `static_cast` type `T` to type `U`. - -`MatcherCast` essentially lets you bypass C++'s type system (`static_cast` isn't -always safe as it could throw away information, for example), so be careful not -to misuse/abuse it. - -### Selecting Between Overloaded Functions {#SelectOverload} - -If you expect an overloaded function to be called, the compiler may need some -help on which overloaded version it is. - -To disambiguate functions overloaded on the const-ness of this object, use the -`Const()` argument wrapper. - -```cpp -using ::testing::ReturnRef; - -class MockFoo : public Foo { - ... - MOCK_METHOD(Bar&, GetBar, (), (override)); - MOCK_METHOD(const Bar&, GetBar, (), (const, override)); -}; - -... - MockFoo foo; - Bar bar1, bar2; - EXPECT_CALL(foo, GetBar()) // The non-const GetBar(). - .WillOnce(ReturnRef(bar1)); - EXPECT_CALL(Const(foo), GetBar()) // The const GetBar(). - .WillOnce(ReturnRef(bar2)); -``` - -(`Const()` is defined by gMock and returns a `const` reference to its argument.) - -To disambiguate overloaded functions with the same number of arguments but -different argument types, you may need to specify the exact type of a matcher, -either by wrapping your matcher in `Matcher()`, or using a matcher whose -type is fixed (`TypedEq`, `An()`, etc): - -```cpp -using ::testing::An; -using ::testing::Matcher; -using ::testing::TypedEq; - -class MockPrinter : public Printer { - public: - MOCK_METHOD(void, Print, (int n), (override)); - MOCK_METHOD(void, Print, (char c), (override)); -}; - -TEST(PrinterTest, Print) { - MockPrinter printer; - - EXPECT_CALL(printer, Print(An())); // void Print(int); - EXPECT_CALL(printer, Print(Matcher(Lt(5)))); // void Print(int); - EXPECT_CALL(printer, Print(TypedEq('a'))); // void Print(char); - - printer.Print(3); - printer.Print(6); - printer.Print('a'); -} -``` - -### Performing Different Actions Based on the Arguments - -When a mock method is called, the *last* matching expectation that's still -active will be selected (think "newer overrides older"). So, you can make a -method do different things depending on its argument values like this: - -```cpp -using ::testing::_; -using ::testing::Lt; -using ::testing::Return; -... - // The default case. - EXPECT_CALL(foo, DoThis(_)) - .WillRepeatedly(Return('b')); - // The more specific case. - EXPECT_CALL(foo, DoThis(Lt(5))) - .WillRepeatedly(Return('a')); -``` - -Now, if `foo.DoThis()` is called with a value less than 5, `'a'` will be -returned; otherwise `'b'` will be returned. - -### Matching Multiple Arguments as a Whole - -Sometimes it's not enough to match the arguments individually. For example, we -may want to say that the first argument must be less than the second argument. -The `With()` clause allows us to match all arguments of a mock function as a -whole. For example, - -```cpp -using ::testing::_; -using ::testing::Ne; -using ::testing::Lt; -... - EXPECT_CALL(foo, InRange(Ne(0), _)) - .With(Lt()); -``` - -says that the first argument of `InRange()` must not be 0, and must be less than -the second argument. - -The expression inside `With()` must be a matcher of type `Matcher>`, where `A1`, ..., `An` are the types of the function arguments. - -You can also write `AllArgs(m)` instead of `m` inside `.With()`. The two forms -are equivalent, but `.With(AllArgs(Lt()))` is more readable than `.With(Lt())`. - -You can use `Args(m)` to match the `n` selected arguments (as a -tuple) against `m`. For example, - -```cpp -using ::testing::_; -using ::testing::AllOf; -using ::testing::Args; -using ::testing::Lt; -... - EXPECT_CALL(foo, Blah) - .With(AllOf(Args<0, 1>(Lt()), Args<1, 2>(Lt()))); -``` - -says that `Blah` will be called with arguments `x`, `y`, and `z` where `x < y < -z`. Note that in this example, it wasn't necessary specify the positional -matchers. - -As a convenience and example, gMock provides some matchers for 2-tuples, -including the `Lt()` matcher above. See [here](#MultiArgMatchers) for the -complete list. - -Note that if you want to pass the arguments to a predicate of your own (e.g. -`.With(Args<0, 1>(Truly(&MyPredicate)))`), that predicate MUST be written to -take a `std::tuple` as its argument; gMock will pass the `n` selected arguments -as *one* single tuple to the predicate. - -### Using Matchers as Predicates - -Have you noticed that a matcher is just a fancy predicate that also knows how to -describe itself? Many existing algorithms take predicates as arguments (e.g. -those defined in STL's `` header), and it would be a shame if gMock -matchers were not allowed to participate. - -Luckily, you can use a matcher where a unary predicate functor is expected by -wrapping it inside the `Matches()` function. For example, - -```cpp -#include -#include - -using ::testing::Matches; -using ::testing::Ge; - -vector v; -... -// How many elements in v are >= 10? -const int count = count_if(v.begin(), v.end(), Matches(Ge(10))); -``` - -Since you can build complex matchers from simpler ones easily using gMock, this -gives you a way to conveniently construct composite predicates (doing the same -using STL's `` header is just painful). For example, here's a -predicate that's satisfied by any number that is >= 0, <= 100, and != 50: - -```cpp -using testing::AllOf; -using testing::Ge; -using testing::Le; -using testing::Matches; -using testing::Ne; -... -Matches(AllOf(Ge(0), Le(100), Ne(50))) -``` - -### Using Matchers in googletest Assertions - -Since matchers are basically predicates that also know how to describe -themselves, there is a way to take advantage of them in googletest assertions. -It's called `ASSERT_THAT` and `EXPECT_THAT`: - -```cpp - ASSERT_THAT(value, matcher); // Asserts that value matches matcher. - EXPECT_THAT(value, matcher); // The non-fatal version. -``` - -For example, in a googletest test you can write: - -```cpp -#include "gmock/gmock.h" - -using ::testing::AllOf; -using ::testing::Ge; -using ::testing::Le; -using ::testing::MatchesRegex; -using ::testing::StartsWith; - -... - EXPECT_THAT(Foo(), StartsWith("Hello")); - EXPECT_THAT(Bar(), MatchesRegex("Line \\d+")); - ASSERT_THAT(Baz(), AllOf(Ge(5), Le(10))); -``` - -which (as you can probably guess) executes `Foo()`, `Bar()`, and `Baz()`, and -verifies that: - -* `Foo()` returns a string that starts with `"Hello"`. -* `Bar()` returns a string that matches regular expression `"Line \\d+"`. -* `Baz()` returns a number in the range [5, 10]. - -The nice thing about these macros is that *they read like English*. They -generate informative messages too. For example, if the first `EXPECT_THAT()` -above fails, the message will be something like: - -```cpp -Value of: Foo() - Actual: "Hi, world!" -Expected: starts with "Hello" -``` - -**Credit:** The idea of `(ASSERT|EXPECT)_THAT` was borrowed from Joe Walnes' -Hamcrest project, which adds `assertThat()` to JUnit. - -### Using Predicates as Matchers - -gMock provides a [built-in set](cheat_sheet.md#MatcherList) of matchers. In case -you find them lacking, you can use an arbitrary unary predicate function or -functor as a matcher - as long as the predicate accepts a value of the type you -want. You do this by wrapping the predicate inside the `Truly()` function, for -example: - -```cpp -using ::testing::Truly; - -int IsEven(int n) { return (n % 2) == 0 ? 1 : 0; } -... - // Bar() must be called with an even number. - EXPECT_CALL(foo, Bar(Truly(IsEven))); -``` - -Note that the predicate function / functor doesn't have to return `bool`. It -works as long as the return value can be used as the condition in in statement -`if (condition) ...`. - - - -### Matching Arguments that Are Not Copyable - -When you do an `EXPECT_CALL(mock_obj, Foo(bar))`, gMock saves away a copy of -`bar`. When `Foo()` is called later, gMock compares the argument to `Foo()` with -the saved copy of `bar`. This way, you don't need to worry about `bar` being -modified or destroyed after the `EXPECT_CALL()` is executed. The same is true -when you use matchers like `Eq(bar)`, `Le(bar)`, and so on. - -But what if `bar` cannot be copied (i.e. has no copy constructor)? You could -define your own matcher function or callback and use it with `Truly()`, as the -previous couple of recipes have shown. Or, you may be able to get away from it -if you can guarantee that `bar` won't be changed after the `EXPECT_CALL()` is -executed. Just tell gMock that it should save a reference to `bar`, instead of a -copy of it. Here's how: - -```cpp -using ::testing::Eq; -using ::testing::Lt; -... - // Expects that Foo()'s argument == bar. - EXPECT_CALL(mock_obj, Foo(Eq(std::ref(bar)))); - - // Expects that Foo()'s argument < bar. - EXPECT_CALL(mock_obj, Foo(Lt(std::ref(bar)))); -``` - -Remember: if you do this, don't change `bar` after the `EXPECT_CALL()`, or the -result is undefined. - -### Validating a Member of an Object - -Often a mock function takes a reference to object as an argument. When matching -the argument, you may not want to compare the entire object against a fixed -object, as that may be over-specification. Instead, you may need to validate a -certain member variable or the result of a certain getter method of the object. -You can do this with `Field()` and `Property()`. More specifically, - -```cpp -Field(&Foo::bar, m) -``` - -is a matcher that matches a `Foo` object whose `bar` member variable satisfies -matcher `m`. - -```cpp -Property(&Foo::baz, m) -``` - -is a matcher that matches a `Foo` object whose `baz()` method returns a value -that satisfies matcher `m`. - -For example: - - -| Expression | Description | -| :--------------------------- | :--------------------------------------- | -| `Field(&Foo::number, Ge(3))` | Matches `x` where `x.number >= 3`. | -| `Property(&Foo::name, StartsWith("John "))` | Matches `x` where `x.name()` starts with `"John "`. | - - -Note that in `Property(&Foo::baz, ...)`, method `baz()` must take no argument -and be declared as `const`. - -BTW, `Field()` and `Property()` can also match plain pointers to objects. For -instance, - -```cpp -using ::testing::Field; -using ::testing::Ge; -... -Field(&Foo::number, Ge(3)) -``` - -matches a plain pointer `p` where `p->number >= 3`. If `p` is `NULL`, the match -will always fail regardless of the inner matcher. - -What if you want to validate more than one members at the same time? Remember -that there are [`AllOf()` and `AllOfArray()`](#CombiningMatchers). - -Finally `Field()` and `Property()` provide overloads that take the field or -property names as the first argument to include it in the error message. This -can be useful when creating combined matchers. - -```cpp -using ::testing::AllOf; -using ::testing::Field; -using ::testing::Matcher; -using ::testing::SafeMatcherCast; - -Matcher IsFoo(const Foo& foo) { - return AllOf(Field("some_field", &Foo::some_field, foo.some_field), - Field("other_field", &Foo::other_field, foo.other_field), - Field("last_field", &Foo::last_field, foo.last_field)); -} -``` - -### Validating the Value Pointed to by a Pointer Argument - -C++ functions often take pointers as arguments. You can use matchers like -`IsNull()`, `NotNull()`, and other comparison matchers to match a pointer, but -what if you want to make sure the value *pointed to* by the pointer, instead of -the pointer itself, has a certain property? Well, you can use the `Pointee(m)` -matcher. - -`Pointee(m)` matches a pointer if and only if `m` matches the value the pointer -points to. For example: - -```cpp -using ::testing::Ge; -using ::testing::Pointee; -... - EXPECT_CALL(foo, Bar(Pointee(Ge(3)))); -``` - -expects `foo.Bar()` to be called with a pointer that points to a value greater -than or equal to 3. - -One nice thing about `Pointee()` is that it treats a `NULL` pointer as a match -failure, so you can write `Pointee(m)` instead of - -```cpp -using ::testing::AllOf; -using ::testing::NotNull; -using ::testing::Pointee; -... - AllOf(NotNull(), Pointee(m)) -``` - -without worrying that a `NULL` pointer will crash your test. - -Also, did we tell you that `Pointee()` works with both raw pointers **and** -smart pointers (`std::unique_ptr`, `std::shared_ptr`, etc)? - -What if you have a pointer to pointer? You guessed it - you can use nested -`Pointee()` to probe deeper inside the value. For example, -`Pointee(Pointee(Lt(3)))` matches a pointer that points to a pointer that points -to a number less than 3 (what a mouthful...). - -### Testing a Certain Property of an Object - -Sometimes you want to specify that an object argument has a certain property, -but there is no existing matcher that does this. If you want good error -messages, you should [define a matcher](#NewMatchers). If you want to do it -quick and dirty, you could get away with writing an ordinary function. - -Let's say you have a mock function that takes an object of type `Foo`, which has -an `int bar()` method and an `int baz()` method, and you want to constrain that -the argument's `bar()` value plus its `baz()` value is a given number. Here's -how you can define a matcher to do it: - -```cpp -using ::testing::Matcher; -using ::testing::MatcherInterface; -using ::testing::MatchResultListener; - -class BarPlusBazEqMatcher : public MatcherInterface { - public: - explicit BarPlusBazEqMatcher(int expected_sum) - : expected_sum_(expected_sum) {} - - bool MatchAndExplain(const Foo& foo, - MatchResultListener* /* listener */) const override { - return (foo.bar() + foo.baz()) == expected_sum_; - } - - void DescribeTo(std::ostream* os) const override { - *os << "bar() + baz() equals " << expected_sum_; - } - - void DescribeNegationTo(std::ostream* os) const override { - *os << "bar() + baz() does not equal " << expected_sum_; - } - private: - const int expected_sum_; -}; - -Matcher BarPlusBazEq(int expected_sum) { - return MakeMatcher(new BarPlusBazEqMatcher(expected_sum)); -} - -... - EXPECT_CALL(..., DoThis(BarPlusBazEq(5)))...; -``` - -### Matching Containers - -Sometimes an STL container (e.g. list, vector, map, ...) is passed to a mock -function and you may want to validate it. Since most STL containers support the -`==` operator, you can write `Eq(expected_container)` or simply -`expected_container` to match a container exactly. - -Sometimes, though, you may want to be more flexible (for example, the first -element must be an exact match, but the second element can be any positive -number, and so on). Also, containers used in tests often have a small number of -elements, and having to define the expected container out-of-line is a bit of a -hassle. - -You can use the `ElementsAre()` or `UnorderedElementsAre()` matcher in such -cases: - -```cpp -using ::testing::_; -using ::testing::ElementsAre; -using ::testing::Gt; -... - MOCK_METHOD(void, Foo, (const vector& numbers), (override)); -... - EXPECT_CALL(mock, Foo(ElementsAre(1, Gt(0), _, 5))); -``` - -The above matcher says that the container must have 4 elements, which must be 1, -greater than 0, anything, and 5 respectively. - -If you instead write: - -```cpp -using ::testing::_; -using ::testing::Gt; -using ::testing::UnorderedElementsAre; -... - MOCK_METHOD(void, Foo, (const vector& numbers), (override)); -... - EXPECT_CALL(mock, Foo(UnorderedElementsAre(1, Gt(0), _, 5))); -``` - -It means that the container must have 4 elements, which (under some permutation) -must be 1, greater than 0, anything, and 5 respectively. - -As an alternative you can place the arguments in a C-style array and use -`ElementsAreArray()` or `UnorderedElementsAreArray()` instead: - -```cpp -using ::testing::ElementsAreArray; -... - // ElementsAreArray accepts an array of element values. - const int expected_vector1[] = {1, 5, 2, 4, ...}; - EXPECT_CALL(mock, Foo(ElementsAreArray(expected_vector1))); - - // Or, an array of element matchers. - Matcher expected_vector2[] = {1, Gt(2), _, 3, ...}; - EXPECT_CALL(mock, Foo(ElementsAreArray(expected_vector2))); -``` - -In case the array needs to be dynamically created (and therefore the array size -cannot be inferred by the compiler), you can give `ElementsAreArray()` an -additional argument to specify the array size: - -```cpp -using ::testing::ElementsAreArray; -... - int* const expected_vector3 = new int[count]; - ... fill expected_vector3 with values ... - EXPECT_CALL(mock, Foo(ElementsAreArray(expected_vector3, count))); -``` - -Use `Pair` when comparing maps or other associative containers. - -```cpp -using testing::ElementsAre; -using testing::Pair; -... - std::map m = {{"a", 1}, {"b", 2}, {"c", 3}}; - EXPECT_THAT(m, ElementsAre(Pair("a", 1), Pair("b", 2), Pair("c", 3))); -``` - -**Tips:** - -* `ElementsAre*()` can be used to match *any* container that implements the - STL iterator pattern (i.e. it has a `const_iterator` type and supports - `begin()/end()`), not just the ones defined in STL. It will even work with - container types yet to be written - as long as they follows the above - pattern. -* You can use nested `ElementsAre*()` to match nested (multi-dimensional) - containers. -* If the container is passed by pointer instead of by reference, just write - `Pointee(ElementsAre*(...))`. -* The order of elements *matters* for `ElementsAre*()`. If you are using it - with containers whose element order are undefined (e.g. `hash_map`) you - should use `WhenSorted` around `ElementsAre`. - -### Sharing Matchers - -Under the hood, a gMock matcher object consists of a pointer to a ref-counted -implementation object. Copying matchers is allowed and very efficient, as only -the pointer is copied. When the last matcher that references the implementation -object dies, the implementation object will be deleted. - -Therefore, if you have some complex matcher that you want to use again and -again, there is no need to build it everytime. Just assign it to a matcher -variable and use that variable repeatedly! For example, - -```cpp -using ::testing::AllOf; -using ::testing::Gt; -using ::testing::Le; -using ::testing::Matcher; -... - Matcher in_range = AllOf(Gt(5), Le(10)); - ... use in_range as a matcher in multiple EXPECT_CALLs ... -``` - -### Matchers must have no side-effects {#PureMatchers} - -WARNING: gMock does not guarantee when or how many times a matcher will be -invoked. Therefore, all matchers must be *purely functional*: they cannot have -any side effects, and the match result must not depend on anything other than -the matcher's parameters and the value being matched. - -This requirement must be satisfied no matter how a matcher is defined (e.g., if -it is one of the standard matchers, or a custom matcher). In particular, a -matcher can never call a mock function, as that will affect the state of the -mock object and gMock. - -## Setting Expectations - -### Knowing When to Expect {#UseOnCall} - - - -**`ON_CALL`** is likely the *single most under-utilized construct* in gMock. - -There are basically two constructs for defining the behavior of a mock object: -`ON_CALL` and `EXPECT_CALL`. The difference? `ON_CALL` defines what happens when -a mock method is called, but doesn't imply any expectation on the method -being called. `EXPECT_CALL` not only defines the behavior, but also sets an -expectation that the method will be called with the given arguments, for the -given number of times (and *in the given order* when you specify the order -too). - -Since `EXPECT_CALL` does more, isn't it better than `ON_CALL`? Not really. Every -`EXPECT_CALL` adds a constraint on the behavior of the code under test. Having -more constraints than necessary is *baaad* - even worse than not having enough -constraints. - -This may be counter-intuitive. How could tests that verify more be worse than -tests that verify less? Isn't verification the whole point of tests? - -The answer lies in *what* a test should verify. **A good test verifies the -contract of the code.** If a test over-specifies, it doesn't leave enough -freedom to the implementation. As a result, changing the implementation without -breaking the contract (e.g. refactoring and optimization), which should be -perfectly fine to do, can break such tests. Then you have to spend time fixing -them, only to see them broken again the next time the implementation is changed. - -Keep in mind that one doesn't have to verify more than one property in one test. -In fact, **it's a good style to verify only one thing in one test.** If you do -that, a bug will likely break only one or two tests instead of dozens (which -case would you rather debug?). If you are also in the habit of giving tests -descriptive names that tell what they verify, you can often easily guess what's -wrong just from the test log itself. - -So use `ON_CALL` by default, and only use `EXPECT_CALL` when you actually intend -to verify that the call is made. For example, you may have a bunch of `ON_CALL`s -in your test fixture to set the common mock behavior shared by all tests in the -same group, and write (scarcely) different `EXPECT_CALL`s in different `TEST_F`s -to verify different aspects of the code's behavior. Compared with the style -where each `TEST` has many `EXPECT_CALL`s, this leads to tests that are more -resilient to implementational changes (and thus less likely to require -maintenance) and makes the intent of the tests more obvious (so they are easier -to maintain when you do need to maintain them). - -If you are bothered by the "Uninteresting mock function call" message printed -when a mock method without an `EXPECT_CALL` is called, you may use a `NiceMock` -instead to suppress all such messages for the mock object, or suppress the -message for specific methods by adding `EXPECT_CALL(...).Times(AnyNumber())`. DO -NOT suppress it by blindly adding an `EXPECT_CALL(...)`, or you'll have a test -that's a pain to maintain. - -### Ignoring Uninteresting Calls - -If you are not interested in how a mock method is called, just don't say -anything about it. In this case, if the method is ever called, gMock will -perform its default action to allow the test program to continue. If you are not -happy with the default action taken by gMock, you can override it using -`DefaultValue::Set()` (described [here](#DefaultValue)) or `ON_CALL()`. - -Please note that once you expressed interest in a particular mock method (via -`EXPECT_CALL()`), all invocations to it must match some expectation. If this -function is called but the arguments don't match any `EXPECT_CALL()` statement, -it will be an error. - -### Disallowing Unexpected Calls - -If a mock method shouldn't be called at all, explicitly say so: - -```cpp -using ::testing::_; -... - EXPECT_CALL(foo, Bar(_)) - .Times(0); -``` - -If some calls to the method are allowed, but the rest are not, just list all the -expected calls: - -```cpp -using ::testing::AnyNumber; -using ::testing::Gt; -... - EXPECT_CALL(foo, Bar(5)); - EXPECT_CALL(foo, Bar(Gt(10))) - .Times(AnyNumber()); -``` - -A call to `foo.Bar()` that doesn't match any of the `EXPECT_CALL()` statements -will be an error. - -### Understanding Uninteresting vs Unexpected Calls {#uninteresting-vs-unexpected} - -*Uninteresting* calls and *unexpected* calls are different concepts in gMock. -*Very* different. - -A call `x.Y(...)` is **uninteresting** if there's *not even a single* -`EXPECT_CALL(x, Y(...))` set. In other words, the test isn't interested in the -`x.Y()` method at all, as evident in that the test doesn't care to say anything -about it. - -A call `x.Y(...)` is **unexpected** if there are *some* `EXPECT_CALL(x, -Y(...))`s set, but none of them matches the call. Put another way, the test is -interested in the `x.Y()` method (therefore it explicitly sets some -`EXPECT_CALL` to verify how it's called); however, the verification fails as the -test doesn't expect this particular call to happen. - -**An unexpected call is always an error,** as the code under test doesn't behave -the way the test expects it to behave. - -**By default, an uninteresting call is not an error,** as it violates no -constraint specified by the test. (gMock's philosophy is that saying nothing -means there is no constraint.) However, it leads to a warning, as it *might* -indicate a problem (e.g. the test author might have forgotten to specify a -constraint). - -In gMock, `NiceMock` and `StrictMock` can be used to make a mock class "nice" or -"strict". How does this affect uninteresting calls and unexpected calls? - -A **nice mock** suppresses uninteresting call *warnings*. It is less chatty than -the default mock, but otherwise is the same. If a test fails with a default -mock, it will also fail using a nice mock instead. And vice versa. Don't expect -making a mock nice to change the test's result. - -A **strict mock** turns uninteresting call warnings into errors. So making a -mock strict may change the test's result. - -Let's look at an example: - -```cpp -TEST(...) { - NiceMock mock_registry; - EXPECT_CALL(mock_registry, GetDomainOwner("google.com")) - .WillRepeatedly(Return("Larry Page")); - - // Use mock_registry in code under test. - ... &mock_registry ... -} -``` - -The sole `EXPECT_CALL` here says that all calls to `GetDomainOwner()` must have -`"google.com"` as the argument. If `GetDomainOwner("yahoo.com")` is called, it -will be an unexpected call, and thus an error. *Having a nice mock doesn't -change the severity of an unexpected call.* - -So how do we tell gMock that `GetDomainOwner()` can be called with some other -arguments as well? The standard technique is to add a "catch all" `EXPECT_CALL`: - -```cpp - EXPECT_CALL(mock_registry, GetDomainOwner(_)) - .Times(AnyNumber()); // catches all other calls to this method. - EXPECT_CALL(mock_registry, GetDomainOwner("google.com")) - .WillRepeatedly(Return("Larry Page")); -``` - -Remember that `_` is the wildcard matcher that matches anything. With this, if -`GetDomainOwner("google.com")` is called, it will do what the second -`EXPECT_CALL` says; if it is called with a different argument, it will do what -the first `EXPECT_CALL` says. - -Note that the order of the two `EXPECT_CALL`s is important, as a newer -`EXPECT_CALL` takes precedence over an older one. - -For more on uninteresting calls, nice mocks, and strict mocks, read -["The Nice, the Strict, and the Naggy"](#NiceStrictNaggy). - -### Ignoring Uninteresting Arguments {#ParameterlessExpectations} - -If your test doesn't care about the parameters (it only cares about the number -or order of calls), you can often simply omit the parameter list: - -```cpp - // Expect foo.Bar( ... ) twice with any arguments. - EXPECT_CALL(foo, Bar).Times(2); - - // Delegate to the given method whenever the factory is invoked. - ON_CALL(foo_factory, MakeFoo) - .WillByDefault(&BuildFooForTest); -``` - -This functionality is only available when a method is not overloaded; to prevent -unexpected behavior it is a compilation error to try to set an expectation on a -method where the specific overload is ambiguous. You can work around this by -supplying a [simpler mock interface](#SimplerInterfaces) than the mocked class -provides. - -This pattern is also useful when the arguments are interesting, but match logic -is substantially complex. You can leave the argument list unspecified and use -SaveArg actions to [save the values for later verification](#SaveArgVerify). If -you do that, you can easily differentiate calling the method the wrong number of -times from calling it with the wrong arguments. - -### Expecting Ordered Calls {#OrderedCalls} - -Although an `EXPECT_CALL()` statement defined later takes precedence when gMock -tries to match a function call with an expectation, by default calls don't have -to happen in the order `EXPECT_CALL()` statements are written. For example, if -the arguments match the matchers in the second `EXPECT_CALL()`, but not those in -the first and third, then the second expectation will be used. - -If you would rather have all calls occur in the order of the expectations, put -the `EXPECT_CALL()` statements in a block where you define a variable of type -`InSequence`: - -```cpp -using ::testing::_; -using ::testing::InSequence; - - { - InSequence s; - - EXPECT_CALL(foo, DoThis(5)); - EXPECT_CALL(bar, DoThat(_)) - .Times(2); - EXPECT_CALL(foo, DoThis(6)); - } -``` - -In this example, we expect a call to `foo.DoThis(5)`, followed by two calls to -`bar.DoThat()` where the argument can be anything, which are in turn followed by -a call to `foo.DoThis(6)`. If a call occurred out-of-order, gMock will report an -error. - -### Expecting Partially Ordered Calls {#PartialOrder} - -Sometimes requiring everything to occur in a predetermined order can lead to -brittle tests. For example, we may care about `A` occurring before both `B` and -`C`, but aren't interested in the relative order of `B` and `C`. In this case, -the test should reflect our real intent, instead of being overly constraining. - -gMock allows you to impose an arbitrary DAG (directed acyclic graph) on the -calls. One way to express the DAG is to use the -[After](cheat_sheet.md#AfterClause) clause of `EXPECT_CALL`. - -Another way is via the `InSequence()` clause (not the same as the `InSequence` -class), which we borrowed from jMock 2. It's less flexible than `After()`, but -more convenient when you have long chains of sequential calls, as it doesn't -require you to come up with different names for the expectations in the chains. -Here's how it works: - -If we view `EXPECT_CALL()` statements as nodes in a graph, and add an edge from -node A to node B wherever A must occur before B, we can get a DAG. We use the -term "sequence" to mean a directed path in this DAG. Now, if we decompose the -DAG into sequences, we just need to know which sequences each `EXPECT_CALL()` -belongs to in order to be able to reconstruct the original DAG. - -So, to specify the partial order on the expectations we need to do two things: -first to define some `Sequence` objects, and then for each `EXPECT_CALL()` say -which `Sequence` objects it is part of. - -Expectations in the same sequence must occur in the order they are written. For -example, - -```cpp -using ::testing::Sequence; -... - Sequence s1, s2; - - EXPECT_CALL(foo, A()) - .InSequence(s1, s2); - EXPECT_CALL(bar, B()) - .InSequence(s1); - EXPECT_CALL(bar, C()) - .InSequence(s2); - EXPECT_CALL(foo, D()) - .InSequence(s2); -``` - -specifies the following DAG (where `s1` is `A -> B`, and `s2` is `A -> C -> D`): - -```text - +---> B - | - A ---| - | - +---> C ---> D -``` - -This means that A must occur before B and C, and C must occur before D. There's -no restriction about the order other than these. - -### Controlling When an Expectation Retires - -When a mock method is called, gMock only considers expectations that are still -active. An expectation is active when created, and becomes inactive (aka -*retires*) when a call that has to occur later has occurred. For example, in - -```cpp -using ::testing::_; -using ::testing::Sequence; -... - Sequence s1, s2; - - EXPECT_CALL(log, Log(WARNING, _, "File too large.")) // #1 - .Times(AnyNumber()) - .InSequence(s1, s2); - EXPECT_CALL(log, Log(WARNING, _, "Data set is empty.")) // #2 - .InSequence(s1); - EXPECT_CALL(log, Log(WARNING, _, "User not found.")) // #3 - .InSequence(s2); -``` - -as soon as either #2 or #3 is matched, #1 will retire. If a warning `"File too -large."` is logged after this, it will be an error. - -Note that an expectation doesn't retire automatically when it's saturated. For -example, - -```cpp -using ::testing::_; -... - EXPECT_CALL(log, Log(WARNING, _, _)); // #1 - EXPECT_CALL(log, Log(WARNING, _, "File too large.")); // #2 -``` - -says that there will be exactly one warning with the message `"File too -large."`. If the second warning contains this message too, #2 will match again -and result in an upper-bound-violated error. - -If this is not what you want, you can ask an expectation to retire as soon as it -becomes saturated: - -```cpp -using ::testing::_; -... - EXPECT_CALL(log, Log(WARNING, _, _)); // #1 - EXPECT_CALL(log, Log(WARNING, _, "File too large.")) // #2 - .RetiresOnSaturation(); -``` - -Here #2 can be used only once, so if you have two warnings with the message -`"File too large."`, the first will match #2 and the second will match #1 - -there will be no error. - -## Using Actions - -### Returning References from Mock Methods - -If a mock function's return type is a reference, you need to use `ReturnRef()` -instead of `Return()` to return a result: - -```cpp -using ::testing::ReturnRef; - -class MockFoo : public Foo { - public: - MOCK_METHOD(Bar&, GetBar, (), (override)); -}; -... - MockFoo foo; - Bar bar; - EXPECT_CALL(foo, GetBar()) - .WillOnce(ReturnRef(bar)); -... -``` - -### Returning Live Values from Mock Methods - -The `Return(x)` action saves a copy of `x` when the action is created, and -always returns the same value whenever it's executed. Sometimes you may want to -instead return the *live* value of `x` (i.e. its value at the time when the -action is *executed*.). Use either `ReturnRef()` or `ReturnPointee()` for this -purpose. - -If the mock function's return type is a reference, you can do it using -`ReturnRef(x)`, as shown in the previous recipe ("Returning References from Mock -Methods"). However, gMock doesn't let you use `ReturnRef()` in a mock function -whose return type is not a reference, as doing that usually indicates a user -error. So, what shall you do? - -Though you may be tempted, DO NOT use `std::ref()`: - -```cpp -using testing::Return; - -class MockFoo : public Foo { - public: - MOCK_METHOD(int, GetValue, (), (override)); -}; -... - int x = 0; - MockFoo foo; - EXPECT_CALL(foo, GetValue()) - .WillRepeatedly(Return(std::ref(x))); // Wrong! - x = 42; - EXPECT_EQ(42, foo.GetValue()); -``` - -Unfortunately, it doesn't work here. The above code will fail with error: - -```text -Value of: foo.GetValue() - Actual: 0 -Expected: 42 -``` - -The reason is that `Return(*value*)` converts `value` to the actual return type -of the mock function at the time when the action is *created*, not when it is -*executed*. (This behavior was chosen for the action to be safe when `value` is -a proxy object that references some temporary objects.) As a result, -`std::ref(x)` is converted to an `int` value (instead of a `const int&`) when -the expectation is set, and `Return(std::ref(x))` will always return 0. - -`ReturnPointee(pointer)` was provided to solve this problem specifically. It -returns the value pointed to by `pointer` at the time the action is *executed*: - -```cpp -using testing::ReturnPointee; -... - int x = 0; - MockFoo foo; - EXPECT_CALL(foo, GetValue()) - .WillRepeatedly(ReturnPointee(&x)); // Note the & here. - x = 42; - EXPECT_EQ(42, foo.GetValue()); // This will succeed now. -``` - -### Combining Actions - -Want to do more than one thing when a function is called? That's fine. `DoAll()` -allow you to do sequence of actions every time. Only the return value of the -last action in the sequence will be used. - -```cpp -using ::testing::_; -using ::testing::DoAll; - -class MockFoo : public Foo { - public: - MOCK_METHOD(bool, Bar, (int n), (override)); -}; -... - EXPECT_CALL(foo, Bar(_)) - .WillOnce(DoAll(action_1, - action_2, - ... - action_n)); -``` - -### Verifying Complex Arguments {#SaveArgVerify} - -If you want to verify that a method is called with a particular argument but the -match criteria is complex, it can be difficult to distinguish between -cardinality failures (calling the method the wrong number of times) and argument -match failures. Similarly, if you are matching multiple parameters, it may not -be easy to distinguishing which argument failed to match. For example: - -```cpp - // Not ideal: this could fail because of a problem with arg1 or arg2, or maybe - // just the method wasn't called. - EXPECT_CALL(foo, SendValues(_, ElementsAre(1, 4, 4, 7), EqualsProto( ... ))); -``` - -You can instead save the arguments and test them individually: - -```cpp - EXPECT_CALL(foo, SendValues) - .WillOnce(DoAll(SaveArg<1>(&actual_array), SaveArg<2>(&actual_proto))); - ... run the test - EXPECT_THAT(actual_array, ElementsAre(1, 4, 4, 7)); - EXPECT_THAT(actual_proto, EqualsProto( ... )); -``` - -### Mocking Side Effects {#MockingSideEffects} - -Sometimes a method exhibits its effect not via returning a value but via side -effects. For example, it may change some global state or modify an output -argument. To mock side effects, in general you can define your own action by -implementing `::testing::ActionInterface`. - -If all you need to do is to change an output argument, the built-in -`SetArgPointee()` action is convenient: - -```cpp -using ::testing::_; -using ::testing::SetArgPointee; - -class MockMutator : public Mutator { - public: - MOCK_METHOD(void, Mutate, (bool mutate, int* value), (override)); - ... -} -... - MockMutator mutator; - EXPECT_CALL(mutator, Mutate(true, _)) - .WillOnce(SetArgPointee<1>(5)); -``` - -In this example, when `mutator.Mutate()` is called, we will assign 5 to the -`int` variable pointed to by argument #1 (0-based). - -`SetArgPointee()` conveniently makes an internal copy of the value you pass to -it, removing the need to keep the value in scope and alive. The implication -however is that the value must have a copy constructor and assignment operator. - -If the mock method also needs to return a value as well, you can chain -`SetArgPointee()` with `Return()` using `DoAll()`, remembering to put the -`Return()` statement last: - -```cpp -using ::testing::_; -using ::testing::Return; -using ::testing::SetArgPointee; - -class MockMutator : public Mutator { - public: - ... - MOCK_METHOD(bool, MutateInt, (int* value), (override)); -} -... - MockMutator mutator; - EXPECT_CALL(mutator, MutateInt(_)) - .WillOnce(DoAll(SetArgPointee<0>(5), - Return(true))); -``` - -Note, however, that if you use the `ReturnOKWith()` method, it will override the -values provided by `SetArgPointee()` in the response parameters of your function -call. - -If the output argument is an array, use the `SetArrayArgument(first, last)` -action instead. It copies the elements in source range `[first, last)` to the -array pointed to by the `N`-th (0-based) argument: - -```cpp -using ::testing::NotNull; -using ::testing::SetArrayArgument; - -class MockArrayMutator : public ArrayMutator { - public: - MOCK_METHOD(void, Mutate, (int* values, int num_values), (override)); - ... -} -... - MockArrayMutator mutator; - int values[5] = {1, 2, 3, 4, 5}; - EXPECT_CALL(mutator, Mutate(NotNull(), 5)) - .WillOnce(SetArrayArgument<0>(values, values + 5)); -``` - -This also works when the argument is an output iterator: - -```cpp -using ::testing::_; -using ::testing::SetArrayArgument; - -class MockRolodex : public Rolodex { - public: - MOCK_METHOD(void, GetNames, (std::back_insert_iterator>), - (override)); - ... -} -... - MockRolodex rolodex; - vector names; - names.push_back("George"); - names.push_back("John"); - names.push_back("Thomas"); - EXPECT_CALL(rolodex, GetNames(_)) - .WillOnce(SetArrayArgument<0>(names.begin(), names.end())); -``` - -### Changing a Mock Object's Behavior Based on the State - -If you expect a call to change the behavior of a mock object, you can use -`::testing::InSequence` to specify different behaviors before and after the -call: - -```cpp -using ::testing::InSequence; -using ::testing::Return; - -... - { - InSequence seq; - EXPECT_CALL(my_mock, IsDirty()) - .WillRepeatedly(Return(true)); - EXPECT_CALL(my_mock, Flush()); - EXPECT_CALL(my_mock, IsDirty()) - .WillRepeatedly(Return(false)); - } - my_mock.FlushIfDirty(); -``` - -This makes `my_mock.IsDirty()` return `true` before `my_mock.Flush()` is called -and return `false` afterwards. - -If the behavior change is more complex, you can store the effects in a variable -and make a mock method get its return value from that variable: - -```cpp -using ::testing::_; -using ::testing::SaveArg; -using ::testing::Return; - -ACTION_P(ReturnPointee, p) { return *p; } -... - int previous_value = 0; - EXPECT_CALL(my_mock, GetPrevValue) - .WillRepeatedly(ReturnPointee(&previous_value)); - EXPECT_CALL(my_mock, UpdateValue) - .WillRepeatedly(SaveArg<0>(&previous_value)); - my_mock.DoSomethingToUpdateValue(); -``` - -Here `my_mock.GetPrevValue()` will always return the argument of the last -`UpdateValue()` call. - -### Setting the Default Value for a Return Type {#DefaultValue} - -If a mock method's return type is a built-in C++ type or pointer, by default it -will return 0 when invoked. Also, in C++ 11 and above, a mock method whose -return type has a default constructor will return a default-constructed value by -default. You only need to specify an action if this default value doesn't work -for you. - -Sometimes, you may want to change this default value, or you may want to specify -a default value for types gMock doesn't know about. You can do this using the -`::testing::DefaultValue` class template: - -```cpp -using ::testing::DefaultValue; - -class MockFoo : public Foo { - public: - MOCK_METHOD(Bar, CalculateBar, (), (override)); -}; - - -... - Bar default_bar; - // Sets the default return value for type Bar. - DefaultValue::Set(default_bar); - - MockFoo foo; - - // We don't need to specify an action here, as the default - // return value works for us. - EXPECT_CALL(foo, CalculateBar()); - - foo.CalculateBar(); // This should return default_bar. - - // Unsets the default return value. - DefaultValue::Clear(); -``` - -Please note that changing the default value for a type can make your tests hard -to understand. We recommend you to use this feature judiciously. For example, -you may want to make sure the `Set()` and `Clear()` calls are right next to the -code that uses your mock. - -### Setting the Default Actions for a Mock Method - -You've learned how to change the default value of a given type. However, this -may be too coarse for your purpose: perhaps you have two mock methods with the -same return type and you want them to have different behaviors. The `ON_CALL()` -macro allows you to customize your mock's behavior at the method level: - -```cpp -using ::testing::_; -using ::testing::AnyNumber; -using ::testing::Gt; -using ::testing::Return; -... - ON_CALL(foo, Sign(_)) - .WillByDefault(Return(-1)); - ON_CALL(foo, Sign(0)) - .WillByDefault(Return(0)); - ON_CALL(foo, Sign(Gt(0))) - .WillByDefault(Return(1)); - - EXPECT_CALL(foo, Sign(_)) - .Times(AnyNumber()); - - foo.Sign(5); // This should return 1. - foo.Sign(-9); // This should return -1. - foo.Sign(0); // This should return 0. -``` - -As you may have guessed, when there are more than one `ON_CALL()` statements, -the newer ones in the order take precedence over the older ones. In other words, -the **last** one that matches the function arguments will be used. This matching -order allows you to set up the common behavior in a mock object's constructor or -the test fixture's set-up phase and specialize the mock's behavior later. - -Note that both `ON_CALL` and `EXPECT_CALL` have the same "later statements take -precedence" rule, but they don't interact. That is, `EXPECT_CALL`s have their -own precedence order distinct from the `ON_CALL` precedence order. - -### Using Functions/Methods/Functors/Lambdas as Actions {#FunctionsAsActions} - -If the built-in actions don't suit you, you can use an existing callable -(function, `std::function`, method, functor, lambda) as an action. - - - -```cpp -using ::testing::_; using ::testing::Invoke; - -class MockFoo : public Foo { - public: - MOCK_METHOD(int, Sum, (int x, int y), (override)); - MOCK_METHOD(bool, ComplexJob, (int x), (override)); -}; - -int CalculateSum(int x, int y) { return x + y; } -int Sum3(int x, int y, int z) { return x + y + z; } - -class Helper { - public: - bool ComplexJob(int x); -}; - -... - MockFoo foo; - Helper helper; - EXPECT_CALL(foo, Sum(_, _)) - .WillOnce(&CalculateSum) - .WillRepeatedly(Invoke(NewPermanentCallback(Sum3, 1))); - EXPECT_CALL(foo, ComplexJob(_)) - .WillOnce(Invoke(&helper, &Helper::ComplexJob)) - .WillOnce([] { return true; }) - .WillRepeatedly([](int x) { return x > 0; }); - - foo.Sum(5, 6); // Invokes CalculateSum(5, 6). - foo.Sum(2, 3); // Invokes Sum3(1, 2, 3). - foo.ComplexJob(10); // Invokes helper.ComplexJob(10). - foo.ComplexJob(-1); // Invokes the inline lambda. -``` - -The only requirement is that the type of the function, etc must be *compatible* -with the signature of the mock function, meaning that the latter's arguments (if -it takes any) can be implicitly converted to the corresponding arguments of the -former, and the former's return type can be implicitly converted to that of the -latter. So, you can invoke something whose type is *not* exactly the same as the -mock function, as long as it's safe to do so - nice, huh? - -**`Note:`{.escaped}** - -* The action takes ownership of the callback and will delete it when the - action itself is destructed. -* If the type of a callback is derived from a base callback type `C`, you need - to implicitly cast it to `C` to resolve the overloading, e.g. - - ```cpp - using ::testing::Invoke; - ... - ResultCallback* is_ok = ...; - ... Invoke(is_ok) ...; // This works. - - BlockingClosure* done = new BlockingClosure; - ... Invoke(implicit_cast(done)) ...; // The cast is necessary. - ``` - -### Using Functions with Extra Info as Actions - -The function or functor you call using `Invoke()` must have the same number of -arguments as the mock function you use it for. Sometimes you may have a function -that takes more arguments, and you are willing to pass in the extra arguments -yourself to fill the gap. You can do this in gMock using callbacks with -pre-bound arguments. Here's an example: - -```cpp -using ::testing::Invoke; - -class MockFoo : public Foo { - public: - MOCK_METHOD(char, DoThis, (int n), (override)); -}; - -char SignOfSum(int x, int y) { - const int sum = x + y; - return (sum > 0) ? '+' : (sum < 0) ? '-' : '0'; -} - -TEST_F(FooTest, Test) { - MockFoo foo; - - EXPECT_CALL(foo, DoThis(2)) - .WillOnce(Invoke(NewPermanentCallback(SignOfSum, 5))); - EXPECT_EQ('+', foo.DoThis(2)); // Invokes SignOfSum(5, 2). -} -``` - -### Invoking a Function/Method/Functor/Lambda/Callback Without Arguments - -`Invoke()` passes the mock function's arguments to the function, etc being -invoked such that the callee has the full context of the call to work with. If -the invoked function is not interested in some or all of the arguments, it can -simply ignore them. - -Yet, a common pattern is that a test author wants to invoke a function without -the arguments of the mock function. She could do that using a wrapper function -that throws away the arguments before invoking an underlining nullary function. -Needless to say, this can be tedious and obscures the intent of the test. - -There are two solutions to this problem. First, you can pass any callable of -zero args as an action. Alternatively, use `InvokeWithoutArgs()`, which is like -`Invoke()` except that it doesn't pass the mock function's arguments to the -callee. Here's an example of each: - -```cpp -using ::testing::_; -using ::testing::InvokeWithoutArgs; - -class MockFoo : public Foo { - public: - MOCK_METHOD(bool, ComplexJob, (int n), (override)); -}; - -bool Job1() { ... } -bool Job2(int n, char c) { ... } - -... - MockFoo foo; - EXPECT_CALL(foo, ComplexJob(_)) - .WillOnce([] { Job1(); }); - .WillOnce(InvokeWithoutArgs(NewPermanentCallback(Job2, 5, 'a'))); - - foo.ComplexJob(10); // Invokes Job1(). - foo.ComplexJob(20); // Invokes Job2(5, 'a'). -``` - -**`Note:`{.escaped}** - -* The action takes ownership of the callback and will delete it when the - action itself is destructed. -* If the type of a callback is derived from a base callback type `C`, you need - to implicitly cast it to `C` to resolve the overloading, e.g. - - ```cpp - using ::testing::InvokeWithoutArgs; - ... - ResultCallback* is_ok = ...; - ... InvokeWithoutArgs(is_ok) ...; // This works. - - BlockingClosure* done = ...; - ... InvokeWithoutArgs(implicit_cast(done)) ...; - // The cast is necessary. - ``` - -### Invoking an Argument of the Mock Function - -Sometimes a mock function will receive a function pointer, a functor (in other -words, a "callable") as an argument, e.g. - -```cpp -class MockFoo : public Foo { - public: - MOCK_METHOD(bool, DoThis, (int n, (ResultCallback1* callback)), - (override)); -}; -``` - -and you may want to invoke this callable argument: - -```cpp -using ::testing::_; -... - MockFoo foo; - EXPECT_CALL(foo, DoThis(_, _)) - .WillOnce(...); - // Will execute callback->Run(5), where callback is the - // second argument DoThis() receives. -``` - -NOTE: The section below is legacy documentation from before C++ had lambdas: - -Arghh, you need to refer to a mock function argument but C++ has no lambda -(yet), so you have to define your own action. :-( Or do you really? - -Well, gMock has an action to solve *exactly* this problem: - -```cpp -InvokeArgument(arg_1, arg_2, ..., arg_m) -``` - -will invoke the `N`-th (0-based) argument the mock function receives, with -`arg_1`, `arg_2`, ..., and `arg_m`. No matter if the argument is a function -pointer, a functor, or a callback. gMock handles them all. - -With that, you could write: - -```cpp -using ::testing::_; -using ::testing::InvokeArgument; -... - EXPECT_CALL(foo, DoThis(_, _)) - .WillOnce(InvokeArgument<1>(5)); - // Will execute callback->Run(5), where callback is the - // second argument DoThis() receives. -``` - -What if the callable takes an argument by reference? No problem - just wrap it -inside `std::ref()`: - -```cpp - ... - MOCK_METHOD(bool, Bar, - ((ResultCallback2* callback)), - (override)); - ... - using ::testing::_; - using ::testing::InvokeArgument; - ... - MockFoo foo; - Helper helper; - ... - EXPECT_CALL(foo, Bar(_)) - .WillOnce(InvokeArgument<0>(5, std::ref(helper))); - // std::ref(helper) guarantees that a reference to helper, not a copy of - // it, will be passed to the callback. -``` - -What if the callable takes an argument by reference and we do **not** wrap the -argument in `std::ref()`? Then `InvokeArgument()` will *make a copy* of the -argument, and pass a *reference to the copy*, instead of a reference to the -original value, to the callable. This is especially handy when the argument is a -temporary value: - -```cpp - ... - MOCK_METHOD(bool, DoThat, (bool (*f)(const double& x, const string& s)), - (override)); - ... - using ::testing::_; - using ::testing::InvokeArgument; - ... - MockFoo foo; - ... - EXPECT_CALL(foo, DoThat(_)) - .WillOnce(InvokeArgument<0>(5.0, string("Hi"))); - // Will execute (*f)(5.0, string("Hi")), where f is the function pointer - // DoThat() receives. Note that the values 5.0 and string("Hi") are - // temporary and dead once the EXPECT_CALL() statement finishes. Yet - // it's fine to perform this action later, since a copy of the values - // are kept inside the InvokeArgument action. -``` - -### Ignoring an Action's Result - -Sometimes you have an action that returns *something*, but you need an action -that returns `void` (perhaps you want to use it in a mock function that returns -`void`, or perhaps it needs to be used in `DoAll()` and it's not the last in the -list). `IgnoreResult()` lets you do that. For example: - -```cpp -using ::testing::_; -using ::testing::DoAll; -using ::testing::IgnoreResult; -using ::testing::Return; - -int Process(const MyData& data); -string DoSomething(); - -class MockFoo : public Foo { - public: - MOCK_METHOD(void, Abc, (const MyData& data), (override)); - MOCK_METHOD(bool, Xyz, (), (override)); -}; - - ... - MockFoo foo; - EXPECT_CALL(foo, Abc(_)) - // .WillOnce(Invoke(Process)); - // The above line won't compile as Process() returns int but Abc() needs - // to return void. - .WillOnce(IgnoreResult(Process)); - EXPECT_CALL(foo, Xyz()) - .WillOnce(DoAll(IgnoreResult(DoSomething), - // Ignores the string DoSomething() returns. - Return(true))); -``` - -Note that you **cannot** use `IgnoreResult()` on an action that already returns -`void`. Doing so will lead to ugly compiler errors. - -### Selecting an Action's Arguments {#SelectingArgs} - -Say you have a mock function `Foo()` that takes seven arguments, and you have a -custom action that you want to invoke when `Foo()` is called. Trouble is, the -custom action only wants three arguments: - -```cpp -using ::testing::_; -using ::testing::Invoke; -... - MOCK_METHOD(bool, Foo, - (bool visible, const string& name, int x, int y, - (const map>), double& weight, double min_weight, - double max_wight)); -... -bool IsVisibleInQuadrant1(bool visible, int x, int y) { - return visible && x >= 0 && y >= 0; -} -... - EXPECT_CALL(mock, Foo) - .WillOnce(Invoke(IsVisibleInQuadrant1)); // Uh, won't compile. :-( -``` - -To please the compiler God, you need to define an "adaptor" that has the same -signature as `Foo()` and calls the custom action with the right arguments: - -```cpp -using ::testing::_; -using ::testing::Invoke; -... -bool MyIsVisibleInQuadrant1(bool visible, const string& name, int x, int y, - const map, double>& weight, - double min_weight, double max_wight) { - return IsVisibleInQuadrant1(visible, x, y); -} -... - EXPECT_CALL(mock, Foo) - .WillOnce(Invoke(MyIsVisibleInQuadrant1)); // Now it works. -``` - -But isn't this awkward? - -gMock provides a generic *action adaptor*, so you can spend your time minding -more important business than writing your own adaptors. Here's the syntax: - -```cpp -WithArgs(action) -``` - -creates an action that passes the arguments of the mock function at the given -indices (0-based) to the inner `action` and performs it. Using `WithArgs`, our -original example can be written as: - -```cpp -using ::testing::_; -using ::testing::Invoke; -using ::testing::WithArgs; -... - EXPECT_CALL(mock, Foo) - .WillOnce(WithArgs<0, 2, 3>(Invoke(IsVisibleInQuadrant1))); // No need to define your own adaptor. -``` - -For better readability, gMock also gives you: - -* `WithoutArgs(action)` when the inner `action` takes *no* argument, and -* `WithArg(action)` (no `s` after `Arg`) when the inner `action` takes - *one* argument. - -As you may have realized, `InvokeWithoutArgs(...)` is just syntactic sugar for -`WithoutArgs(Invoke(...))`. - -Here are more tips: - -* The inner action used in `WithArgs` and friends does not have to be - `Invoke()` -- it can be anything. -* You can repeat an argument in the argument list if necessary, e.g. - `WithArgs<2, 3, 3, 5>(...)`. -* You can change the order of the arguments, e.g. `WithArgs<3, 2, 1>(...)`. -* The types of the selected arguments do *not* have to match the signature of - the inner action exactly. It works as long as they can be implicitly - converted to the corresponding arguments of the inner action. For example, - if the 4-th argument of the mock function is an `int` and `my_action` takes - a `double`, `WithArg<4>(my_action)` will work. - -### Ignoring Arguments in Action Functions - -The [selecting-an-action's-arguments](#SelectingArgs) recipe showed us one way -to make a mock function and an action with incompatible argument lists fit -together. The downside is that wrapping the action in `WithArgs<...>()` can get -tedious for people writing the tests. - -If you are defining a function (or method, functor, lambda, callback) to be used -with `Invoke*()`, and you are not interested in some of its arguments, an -alternative to `WithArgs` is to declare the uninteresting arguments as `Unused`. -This makes the definition less cluttered and less fragile in case the types of -the uninteresting arguments change. It could also increase the chance the action -function can be reused. For example, given - -```cpp - public: - MOCK_METHOD(double, Foo, double(const string& label, double x, double y), - (override)); - MOCK_METHOD(double, Bar, (int index, double x, double y), (override)); -``` - -instead of - -```cpp -using ::testing::_; -using ::testing::Invoke; - -double DistanceToOriginWithLabel(const string& label, double x, double y) { - return sqrt(x*x + y*y); -} -double DistanceToOriginWithIndex(int index, double x, double y) { - return sqrt(x*x + y*y); -} -... - EXPECT_CALL(mock, Foo("abc", _, _)) - .WillOnce(Invoke(DistanceToOriginWithLabel)); - EXPECT_CALL(mock, Bar(5, _, _)) - .WillOnce(Invoke(DistanceToOriginWithIndex)); -``` - -you could write - -```cpp -using ::testing::_; -using ::testing::Invoke; -using ::testing::Unused; - -double DistanceToOrigin(Unused, double x, double y) { - return sqrt(x*x + y*y); -} -... - EXPECT_CALL(mock, Foo("abc", _, _)) - .WillOnce(Invoke(DistanceToOrigin)); - EXPECT_CALL(mock, Bar(5, _, _)) - .WillOnce(Invoke(DistanceToOrigin)); -``` - -### Sharing Actions - -Just like matchers, a gMock action object consists of a pointer to a ref-counted -implementation object. Therefore copying actions is also allowed and very -efficient. When the last action that references the implementation object dies, -the implementation object will be deleted. - -If you have some complex action that you want to use again and again, you may -not have to build it from scratch everytime. If the action doesn't have an -internal state (i.e. if it always does the same thing no matter how many times -it has been called), you can assign it to an action variable and use that -variable repeatedly. For example: - -```cpp -using ::testing::Action; -using ::testing::DoAll; -using ::testing::Return; -using ::testing::SetArgPointee; -... - Action set_flag = DoAll(SetArgPointee<0>(5), - Return(true)); - ... use set_flag in .WillOnce() and .WillRepeatedly() ... -``` - -However, if the action has its own state, you may be surprised if you share the -action object. Suppose you have an action factory `IncrementCounter(init)` which -creates an action that increments and returns a counter whose initial value is -`init`, using two actions created from the same expression and using a shared -action will exhibit different behaviors. Example: - -```cpp - EXPECT_CALL(foo, DoThis()) - .WillRepeatedly(IncrementCounter(0)); - EXPECT_CALL(foo, DoThat()) - .WillRepeatedly(IncrementCounter(0)); - foo.DoThis(); // Returns 1. - foo.DoThis(); // Returns 2. - foo.DoThat(); // Returns 1 - Blah() uses a different - // counter than Bar()'s. -``` - -versus - -```cpp -using ::testing::Action; -... - Action increment = IncrementCounter(0); - EXPECT_CALL(foo, DoThis()) - .WillRepeatedly(increment); - EXPECT_CALL(foo, DoThat()) - .WillRepeatedly(increment); - foo.DoThis(); // Returns 1. - foo.DoThis(); // Returns 2. - foo.DoThat(); // Returns 3 - the counter is shared. -``` - -### Testing Asynchronous Behavior - -One oft-encountered problem with gMock is that it can be hard to test -asynchronous behavior. Suppose you had a `EventQueue` class that you wanted to -test, and you created a separate `EventDispatcher` interface so that you could -easily mock it out. However, the implementation of the class fired all the -events on a background thread, which made test timings difficult. You could just -insert `sleep()` statements and hope for the best, but that makes your test -behavior nondeterministic. A better way is to use gMock actions and -`Notification` objects to force your asynchronous test to behave synchronously. - -```cpp -using ::testing::DoAll; -using ::testing::InvokeWithoutArgs; -using ::testing::Return; - -class MockEventDispatcher : public EventDispatcher { - MOCK_METHOD(bool, DispatchEvent, (int32), (override)); -}; - -ACTION_P(Notify, notification) { - notification->Notify(); -} - -TEST(EventQueueTest, EnqueueEventTest) { - MockEventDispatcher mock_event_dispatcher; - EventQueue event_queue(&mock_event_dispatcher); - - const int32 kEventId = 321; - absl::Notification done; - EXPECT_CALL(mock_event_dispatcher, DispatchEvent(kEventId)) - .WillOnce(Notify(&done)); - - event_queue.EnqueueEvent(kEventId); - done.WaitForNotification(); -} -``` - -In the example above, we set our normal gMock expectations, but then add an -additional action to notify the `Notification` object. Now we can just call -`Notification::WaitForNotification()` in the main thread to wait for the -asynchronous call to finish. After that, our test suite is complete and we can -safely exit. - -Note: this example has a downside: namely, if the expectation is not satisfied, -our test will run forever. It will eventually time-out and fail, but it will -take longer and be slightly harder to debug. To alleviate this problem, you can -use `WaitForNotificationWithTimeout(ms)` instead of `WaitForNotification()`. - -## Misc Recipes on Using gMock - -### Mocking Methods That Use Move-Only Types - -C++11 introduced *move-only types*. A move-only-typed value can be moved from -one object to another, but cannot be copied. `std::unique_ptr` is probably -the most commonly used move-only type. - -Mocking a method that takes and/or returns move-only types presents some -challenges, but nothing insurmountable. This recipe shows you how you can do it. -Note that the support for move-only method arguments was only introduced to -gMock in April 2017; in older code, you may find more complex -[workarounds](#LegacyMoveOnly) for lack of this feature. - -Let’s say we are working on a fictional project that lets one post and share -snippets called “buzzes”. Your code uses these types: - -```cpp -enum class AccessLevel { kInternal, kPublic }; - -class Buzz { - public: - explicit Buzz(AccessLevel access) { ... } - ... -}; - -class Buzzer { - public: - virtual ~Buzzer() {} - virtual std::unique_ptr MakeBuzz(StringPiece text) = 0; - virtual bool ShareBuzz(std::unique_ptr buzz, int64_t timestamp) = 0; - ... -}; -``` - -A `Buzz` object represents a snippet being posted. A class that implements the -`Buzzer` interface is capable of creating and sharing `Buzz`es. Methods in -`Buzzer` may return a `unique_ptr` or take a `unique_ptr`. Now we -need to mock `Buzzer` in our tests. - -To mock a method that accepts or returns move-only types, you just use the -familiar `MOCK_METHOD` syntax as usual: - -```cpp -class MockBuzzer : public Buzzer { - public: - MOCK_METHOD(std::unique_ptr, MakeBuzz, (StringPiece text), (override)); - MOCK_METHOD(bool, ShareBuzz, (std::unique_ptr buzz, int64_t timestamp), - (override)); -}; -``` - -Now that we have the mock class defined, we can use it in tests. In the -following code examples, we assume that we have defined a `MockBuzzer` object -named `mock_buzzer_`: - -```cpp - MockBuzzer mock_buzzer_; -``` - -First let’s see how we can set expectations on the `MakeBuzz()` method, which -returns a `unique_ptr`. - -As usual, if you set an expectation without an action (i.e. the `.WillOnce()` or -`.WillRepeatedly()` clause), when that expectation fires, the default action for -that method will be taken. Since `unique_ptr<>` has a default constructor that -returns a null `unique_ptr`, that’s what you’ll get if you don’t specify an -action: - -```cpp - // Use the default action. - EXPECT_CALL(mock_buzzer_, MakeBuzz("hello")); - - // Triggers the previous EXPECT_CALL. - EXPECT_EQ(nullptr, mock_buzzer_.MakeBuzz("hello")); -``` - -If you are not happy with the default action, you can tweak it as usual; see -[Setting Default Actions](#OnCall). - -If you just need to return a pre-defined move-only value, you can use the -`Return(ByMove(...))` action: - -```cpp - // When this fires, the unique_ptr<> specified by ByMove(...) will - // be returned. - EXPECT_CALL(mock_buzzer_, MakeBuzz("world")) - .WillOnce(Return(ByMove(MakeUnique(AccessLevel::kInternal)))); - - EXPECT_NE(nullptr, mock_buzzer_.MakeBuzz("world")); -``` - -Note that `ByMove()` is essential here - if you drop it, the code won’t compile. - -Quiz time! What do you think will happen if a `Return(ByMove(...))` action is -performed more than once (e.g. you write `... -.WillRepeatedly(Return(ByMove(...)));`)? Come think of it, after the first time -the action runs, the source value will be consumed (since it’s a move-only -value), so the next time around, there’s no value to move from -- you’ll get a -run-time error that `Return(ByMove(...))` can only be run once. - -If you need your mock method to do more than just moving a pre-defined value, -remember that you can always use a lambda or a callable object, which can do -pretty much anything you want: - -```cpp - EXPECT_CALL(mock_buzzer_, MakeBuzz("x")) - .WillRepeatedly([](StringPiece text) { - return MakeUnique(AccessLevel::kInternal); - }); - - EXPECT_NE(nullptr, mock_buzzer_.MakeBuzz("x")); - EXPECT_NE(nullptr, mock_buzzer_.MakeBuzz("x")); -``` - -Every time this `EXPECT_CALL` fires, a new `unique_ptr` will be created -and returned. You cannot do this with `Return(ByMove(...))`. - -That covers returning move-only values; but how do we work with methods -accepting move-only arguments? The answer is that they work normally, although -some actions will not compile when any of method's arguments are move-only. You -can always use `Return`, or a [lambda or functor](#FunctionsAsActions): - -```cpp - using ::testing::Unused; - - EXPECT_CALL(mock_buzzer_, ShareBuzz(NotNull(), _)).WillOnce(Return(true)); - EXPECT_TRUE(mock_buzzer_.ShareBuzz(MakeUnique(AccessLevel::kInternal)), - 0); - - EXPECT_CALL(mock_buzzer_, ShareBuzz(_, _)).WillOnce( - [](std::unique_ptr buzz, Unused) { return buzz != nullptr; }); - EXPECT_FALSE(mock_buzzer_.ShareBuzz(nullptr, 0)); -``` - -Many built-in actions (`WithArgs`, `WithoutArgs`,`DeleteArg`, `SaveArg`, ...) -could in principle support move-only arguments, but the support for this is not -implemented yet. If this is blocking you, please file a bug. - -A few actions (e.g. `DoAll`) copy their arguments internally, so they can never -work with non-copyable objects; you'll have to use functors instead. - -#### Legacy workarounds for move-only types {#LegacyMoveOnly} - -Support for move-only function arguments was only introduced to gMock in April -2017. In older code, you may encounter the following workaround for the lack of -this feature (it is no longer necessary - we're including it just for -reference): - -```cpp -class MockBuzzer : public Buzzer { - public: - MOCK_METHOD(bool, DoShareBuzz, (Buzz* buzz, Time timestamp)); - bool ShareBuzz(std::unique_ptr buzz, Time timestamp) override { - return DoShareBuzz(buzz.get(), timestamp); - } -}; -``` - -The trick is to delegate the `ShareBuzz()` method to a mock method (let’s call -it `DoShareBuzz()`) that does not take move-only parameters. Then, instead of -setting expectations on `ShareBuzz()`, you set them on the `DoShareBuzz()` mock -method: - -```cpp - MockBuzzer mock_buzzer_; - EXPECT_CALL(mock_buzzer_, DoShareBuzz(NotNull(), _)); - - // When one calls ShareBuzz() on the MockBuzzer like this, the call is - // forwarded to DoShareBuzz(), which is mocked. Therefore this statement - // will trigger the above EXPECT_CALL. - mock_buzzer_.ShareBuzz(MakeUnique(AccessLevel::kInternal), 0); -``` - -### Making the Compilation Faster - -Believe it or not, the *vast majority* of the time spent on compiling a mock -class is in generating its constructor and destructor, as they perform -non-trivial tasks (e.g. verification of the expectations). What's more, mock -methods with different signatures have different types and thus their -constructors/destructors need to be generated by the compiler separately. As a -result, if you mock many different types of methods, compiling your mock class -can get really slow. - -If you are experiencing slow compilation, you can move the definition of your -mock class' constructor and destructor out of the class body and into a `.cc` -file. This way, even if you `#include` your mock class in N files, the compiler -only needs to generate its constructor and destructor once, resulting in a much -faster compilation. - -Let's illustrate the idea using an example. Here's the definition of a mock -class before applying this recipe: - -```cpp -// File mock_foo.h. -... -class MockFoo : public Foo { - public: - // Since we don't declare the constructor or the destructor, - // the compiler will generate them in every translation unit - // where this mock class is used. - - MOCK_METHOD(int, DoThis, (), (override)); - MOCK_METHOD(bool, DoThat, (const char* str), (override)); - ... more mock methods ... -}; -``` - -After the change, it would look like: - -```cpp -// File mock_foo.h. -... -class MockFoo : public Foo { - public: - // The constructor and destructor are declared, but not defined, here. - MockFoo(); - virtual ~MockFoo(); - - MOCK_METHOD(int, DoThis, (), (override)); - MOCK_METHOD(bool, DoThat, (const char* str), (override)); - ... more mock methods ... -}; -``` - -and - -```cpp -// File mock_foo.cc. -#include "path/to/mock_foo.h" - -// The definitions may appear trivial, but the functions actually do a -// lot of things through the constructors/destructors of the member -// variables used to implement the mock methods. -MockFoo::MockFoo() {} -MockFoo::~MockFoo() {} -``` - -### Forcing a Verification - -When it's being destroyed, your friendly mock object will automatically verify -that all expectations on it have been satisfied, and will generate googletest -failures if not. This is convenient as it leaves you with one less thing to -worry about. That is, unless you are not sure if your mock object will be -destroyed. - -How could it be that your mock object won't eventually be destroyed? Well, it -might be created on the heap and owned by the code you are testing. Suppose -there's a bug in that code and it doesn't delete the mock object properly - you -could end up with a passing test when there's actually a bug. - -Using a heap checker is a good idea and can alleviate the concern, but its -implementation is not 100% reliable. So, sometimes you do want to *force* gMock -to verify a mock object before it is (hopefully) destructed. You can do this -with `Mock::VerifyAndClearExpectations(&mock_object)`: - -```cpp -TEST(MyServerTest, ProcessesRequest) { - using ::testing::Mock; - - MockFoo* const foo = new MockFoo; - EXPECT_CALL(*foo, ...)...; - // ... other expectations ... - - // server now owns foo. - MyServer server(foo); - server.ProcessRequest(...); - - // In case that server's destructor will forget to delete foo, - // this will verify the expectations anyway. - Mock::VerifyAndClearExpectations(foo); -} // server is destroyed when it goes out of scope here. -``` - -**Tip:** The `Mock::VerifyAndClearExpectations()` function returns a `bool` to -indicate whether the verification was successful (`true` for yes), so you can -wrap that function call inside a `ASSERT_TRUE()` if there is no point going -further when the verification has failed. - -### Using Check Points {#UsingCheckPoints} - -Sometimes you may want to "reset" a mock object at various check points in your -test: at each check point, you verify that all existing expectations on the mock -object have been satisfied, and then you set some new expectations on it as if -it's newly created. This allows you to work with a mock object in "phases" whose -sizes are each manageable. - -One such scenario is that in your test's `SetUp()` function, you may want to put -the object you are testing into a certain state, with the help from a mock -object. Once in the desired state, you want to clear all expectations on the -mock, such that in the `TEST_F` body you can set fresh expectations on it. - -As you may have figured out, the `Mock::VerifyAndClearExpectations()` function -we saw in the previous recipe can help you here. Or, if you are using -`ON_CALL()` to set default actions on the mock object and want to clear the -default actions as well, use `Mock::VerifyAndClear(&mock_object)` instead. This -function does what `Mock::VerifyAndClearExpectations(&mock_object)` does and -returns the same `bool`, **plus** it clears the `ON_CALL()` statements on -`mock_object` too. - -Another trick you can use to achieve the same effect is to put the expectations -in sequences and insert calls to a dummy "check-point" function at specific -places. Then you can verify that the mock function calls do happen at the right -time. For example, if you are exercising code: - -```cpp - Foo(1); - Foo(2); - Foo(3); -``` - -and want to verify that `Foo(1)` and `Foo(3)` both invoke `mock.Bar("a")`, but -`Foo(2)` doesn't invoke anything. You can write: - -```cpp -using ::testing::MockFunction; - -TEST(FooTest, InvokesBarCorrectly) { - MyMock mock; - // Class MockFunction has exactly one mock method. It is named - // Call() and has type F. - MockFunction check; - { - InSequence s; - - EXPECT_CALL(mock, Bar("a")); - EXPECT_CALL(check, Call("1")); - EXPECT_CALL(check, Call("2")); - EXPECT_CALL(mock, Bar("a")); - } - Foo(1); - check.Call("1"); - Foo(2); - check.Call("2"); - Foo(3); -} -``` - -The expectation spec says that the first `Bar("a")` must happen before check -point "1", the second `Bar("a")` must happen after check point "2", and nothing -should happen between the two check points. The explicit check points make it -easy to tell which `Bar("a")` is called by which call to `Foo()`. - -### Mocking Destructors - -Sometimes you want to make sure a mock object is destructed at the right time, -e.g. after `bar->A()` is called but before `bar->B()` is called. We already know -that you can specify constraints on the [order](#OrderedCalls) of mock function -calls, so all we need to do is to mock the destructor of the mock function. - -This sounds simple, except for one problem: a destructor is a special function -with special syntax and special semantics, and the `MOCK_METHOD` macro doesn't -work for it: - -```cpp -MOCK_METHOD(void, ~MockFoo, ()); // Won't compile! -``` - -The good news is that you can use a simple pattern to achieve the same effect. -First, add a mock function `Die()` to your mock class and call it in the -destructor, like this: - -```cpp -class MockFoo : public Foo { - ... - // Add the following two lines to the mock class. - MOCK_METHOD(void, Die, ()); - ~MockFoo() override { Die(); } -}; -``` - -(If the name `Die()` clashes with an existing symbol, choose another name.) Now, -we have translated the problem of testing when a `MockFoo` object dies to -testing when its `Die()` method is called: - -```cpp - MockFoo* foo = new MockFoo; - MockBar* bar = new MockBar; - ... - { - InSequence s; - - // Expects *foo to die after bar->A() and before bar->B(). - EXPECT_CALL(*bar, A()); - EXPECT_CALL(*foo, Die()); - EXPECT_CALL(*bar, B()); - } -``` - -And that's that. - -### Using gMock and Threads {#UsingThreads} - -In a **unit** test, it's best if you could isolate and test a piece of code in a -single-threaded context. That avoids race conditions and dead locks, and makes -debugging your test much easier. - -Yet most programs are multi-threaded, and sometimes to test something we need to -pound on it from more than one thread. gMock works for this purpose too. - -Remember the steps for using a mock: - -1. Create a mock object `foo`. -2. Set its default actions and expectations using `ON_CALL()` and - `EXPECT_CALL()`. -3. The code under test calls methods of `foo`. -4. Optionally, verify and reset the mock. -5. Destroy the mock yourself, or let the code under test destroy it. The - destructor will automatically verify it. - -If you follow the following simple rules, your mocks and threads can live -happily together: - -* Execute your *test code* (as opposed to the code being tested) in *one* - thread. This makes your test easy to follow. -* Obviously, you can do step #1 without locking. -* When doing step #2 and #5, make sure no other thread is accessing `foo`. - Obvious too, huh? -* #3 and #4 can be done either in one thread or in multiple threads - anyway - you want. gMock takes care of the locking, so you don't have to do any - - unless required by your test logic. - -If you violate the rules (for example, if you set expectations on a mock while -another thread is calling its methods), you get undefined behavior. That's not -fun, so don't do it. - -gMock guarantees that the action for a mock function is done in the same thread -that called the mock function. For example, in - -```cpp - EXPECT_CALL(mock, Foo(1)) - .WillOnce(action1); - EXPECT_CALL(mock, Foo(2)) - .WillOnce(action2); -``` - -if `Foo(1)` is called in thread 1 and `Foo(2)` is called in thread 2, gMock will -execute `action1` in thread 1 and `action2` in thread 2. - -gMock does *not* impose a sequence on actions performed in different threads -(doing so may create deadlocks as the actions may need to cooperate). This means -that the execution of `action1` and `action2` in the above example *may* -interleave. If this is a problem, you should add proper synchronization logic to -`action1` and `action2` to make the test thread-safe. - -Also, remember that `DefaultValue` is a global resource that potentially -affects *all* living mock objects in your program. Naturally, you won't want to -mess with it from multiple threads or when there still are mocks in action. - -### Controlling How Much Information gMock Prints - -When gMock sees something that has the potential of being an error (e.g. a mock -function with no expectation is called, a.k.a. an uninteresting call, which is -allowed but perhaps you forgot to explicitly ban the call), it prints some -warning messages, including the arguments of the function, the return value, and -the stack trace. Hopefully this will remind you to take a look and see if there -is indeed a problem. - -Sometimes you are confident that your tests are correct and may not appreciate -such friendly messages. Some other times, you are debugging your tests or -learning about the behavior of the code you are testing, and wish you could -observe every mock call that happens (including argument values, the return -value, and the stack trace). Clearly, one size doesn't fit all. - -You can control how much gMock tells you using the `--gmock_verbose=LEVEL` -command-line flag, where `LEVEL` is a string with three possible values: - -* `info`: gMock will print all informational messages, warnings, and errors - (most verbose). At this setting, gMock will also log any calls to the - `ON_CALL/EXPECT_CALL` macros. It will include a stack trace in - "uninteresting call" warnings. -* `warning`: gMock will print both warnings and errors (less verbose); it will - omit the stack traces in "uninteresting call" warnings. This is the default. -* `error`: gMock will print errors only (least verbose). - -Alternatively, you can adjust the value of that flag from within your tests like -so: - -```cpp - ::testing::FLAGS_gmock_verbose = "error"; -``` - -If you find gMock printing too many stack frames with its informational or -warning messages, remember that you can control their amount with the -`--gtest_stack_trace_depth=max_depth` flag. - -Now, judiciously use the right flag to enable gMock serve you better! - -### Gaining Super Vision into Mock Calls - -You have a test using gMock. It fails: gMock tells you some expectations aren't -satisfied. However, you aren't sure why: Is there a typo somewhere in the -matchers? Did you mess up the order of the `EXPECT_CALL`s? Or is the code under -test doing something wrong? How can you find out the cause? - -Won't it be nice if you have X-ray vision and can actually see the trace of all -`EXPECT_CALL`s and mock method calls as they are made? For each call, would you -like to see its actual argument values and which `EXPECT_CALL` gMock thinks it -matches? If you still need some help to figure out who made these calls, how -about being able to see the complete stack trace at each mock call? - -You can unlock this power by running your test with the `--gmock_verbose=info` -flag. For example, given the test program: - -```cpp -#include "gmock/gmock.h" - -using testing::_; -using testing::HasSubstr; -using testing::Return; - -class MockFoo { - public: - MOCK_METHOD(void, F, (const string& x, const string& y)); -}; - -TEST(Foo, Bar) { - MockFoo mock; - EXPECT_CALL(mock, F(_, _)).WillRepeatedly(Return()); - EXPECT_CALL(mock, F("a", "b")); - EXPECT_CALL(mock, F("c", HasSubstr("d"))); - - mock.F("a", "good"); - mock.F("a", "b"); -} -``` - -if you run it with `--gmock_verbose=info`, you will see this output: - -```shell -[ RUN ] Foo.Bar - -foo_test.cc:14: EXPECT_CALL(mock, F(_, _)) invoked -Stack trace: ... - -foo_test.cc:15: EXPECT_CALL(mock, F("a", "b")) invoked -Stack trace: ... - -foo_test.cc:16: EXPECT_CALL(mock, F("c", HasSubstr("d"))) invoked -Stack trace: ... - -foo_test.cc:14: Mock function call matches EXPECT_CALL(mock, F(_, _))... - Function call: F(@0x7fff7c8dad40"a",@0x7fff7c8dad10"good") -Stack trace: ... - -foo_test.cc:15: Mock function call matches EXPECT_CALL(mock, F("a", "b"))... - Function call: F(@0x7fff7c8dada0"a",@0x7fff7c8dad70"b") -Stack trace: ... - -foo_test.cc:16: Failure -Actual function call count doesn't match EXPECT_CALL(mock, F("c", HasSubstr("d")))... - Expected: to be called once - Actual: never called - unsatisfied and active -[ FAILED ] Foo.Bar -``` - -Suppose the bug is that the `"c"` in the third `EXPECT_CALL` is a typo and -should actually be `"a"`. With the above message, you should see that the actual -`F("a", "good")` call is matched by the first `EXPECT_CALL`, not the third as -you thought. From that it should be obvious that the third `EXPECT_CALL` is -written wrong. Case solved. - -If you are interested in the mock call trace but not the stack traces, you can -combine `--gmock_verbose=info` with `--gtest_stack_trace_depth=0` on the test -command line. - - - -### Running Tests in Emacs - -If you build and run your tests in Emacs using the `M-x google-compile` command -(as many googletest users do), the source file locations of gMock and googletest -errors will be highlighted. Just press `` on one of them and you'll be -taken to the offending line. Or, you can just type `C-x`` to jump to the next -error. - -To make it even easier, you can add the following lines to your `~/.emacs` file: - -```text -(global-set-key "\M-m" 'google-compile) ; m is for make -(global-set-key [M-down] 'next-error) -(global-set-key [M-up] '(lambda () (interactive) (next-error -1))) -``` - -Then you can type `M-m` to start a build (if you want to run the test as well, -just make sure `foo_test.run` or `runtests` is in the build command you supply -after typing `M-m`), or `M-up`/`M-down` to move back and forth between errors. - -## Extending gMock - -### Writing New Matchers Quickly {#NewMatchers} - -WARNING: gMock does not guarantee when or how many times a matcher will be -invoked. Therefore, all matchers must be functionally pure. See -[this section](#PureMatchers) for more details. - -The `MATCHER*` family of macros can be used to define custom matchers easily. -The syntax: - -```cpp -MATCHER(name, description_string_expression) { statements; } -``` - -will define a matcher with the given name that executes the statements, which -must return a `bool` to indicate if the match succeeds. Inside the statements, -you can refer to the value being matched by `arg`, and refer to its type by -`arg_type`. - -The *description string* is a `string`-typed expression that documents what the -matcher does, and is used to generate the failure message when the match fails. -It can (and should) reference the special `bool` variable `negation`, and should -evaluate to the description of the matcher when `negation` is `false`, or that -of the matcher's negation when `negation` is `true`. - -For convenience, we allow the description string to be empty (`""`), in which -case gMock will use the sequence of words in the matcher name as the -description. - -For example: - -```cpp -MATCHER(IsDivisibleBy7, "") { return (arg % 7) == 0; } -``` - -allows you to write - -```cpp - // Expects mock_foo.Bar(n) to be called where n is divisible by 7. - EXPECT_CALL(mock_foo, Bar(IsDivisibleBy7())); -``` - -or, - -```cpp - using ::testing::Not; - ... - // Verifies that two values are divisible by 7. - EXPECT_THAT(some_expression, IsDivisibleBy7()); - EXPECT_THAT(some_other_expression, Not(IsDivisibleBy7())); -``` - -If the above assertions fail, they will print something like: - -```shell - Value of: some_expression - Expected: is divisible by 7 - Actual: 27 - ... - Value of: some_other_expression - Expected: not (is divisible by 7) - Actual: 21 -``` - -where the descriptions `"is divisible by 7"` and `"not (is divisible by 7)"` are -automatically calculated from the matcher name `IsDivisibleBy7`. - -As you may have noticed, the auto-generated descriptions (especially those for -the negation) may not be so great. You can always override them with a `string` -expression of your own: - -```cpp -MATCHER(IsDivisibleBy7, - absl::StrCat(negation ? "isn't" : "is", " divisible by 7")) { - return (arg % 7) == 0; -} -``` - -Optionally, you can stream additional information to a hidden argument named -`result_listener` to explain the match result. For example, a better definition -of `IsDivisibleBy7` is: - -```cpp -MATCHER(IsDivisibleBy7, "") { - if ((arg % 7) == 0) - return true; - - *result_listener << "the remainder is " << (arg % 7); - return false; -} -``` - -With this definition, the above assertion will give a better message: - -```shell - Value of: some_expression - Expected: is divisible by 7 - Actual: 27 (the remainder is 6) -``` - -You should let `MatchAndExplain()` print *any additional information* that can -help a user understand the match result. Note that it should explain why the -match succeeds in case of a success (unless it's obvious) - this is useful when -the matcher is used inside `Not()`. There is no need to print the argument value -itself, as gMock already prints it for you. - -NOTE: The type of the value being matched (`arg_type`) is determined by the -context in which you use the matcher and is supplied to you by the compiler, so -you don't need to worry about declaring it (nor can you). This allows the -matcher to be polymorphic. For example, `IsDivisibleBy7()` can be used to match -any type where the value of `(arg % 7) == 0` can be implicitly converted to a -`bool`. In the `Bar(IsDivisibleBy7())` example above, if method `Bar()` takes an -`int`, `arg_type` will be `int`; if it takes an `unsigned long`, `arg_type` will -be `unsigned long`; and so on. - -### Writing New Parameterized Matchers Quickly - -Sometimes you'll want to define a matcher that has parameters. For that you can -use the macro: - -```cpp -MATCHER_P(name, param_name, description_string) { statements; } -``` - -where the description string can be either `""` or a `string` expression that -references `negation` and `param_name`. - -For example: - -```cpp -MATCHER_P(HasAbsoluteValue, value, "") { return abs(arg) == value; } -``` - -will allow you to write: - -```cpp - EXPECT_THAT(Blah("a"), HasAbsoluteValue(n)); -``` - -which may lead to this message (assuming `n` is 10): - -```shell - Value of: Blah("a") - Expected: has absolute value 10 - Actual: -9 -``` - -Note that both the matcher description and its parameter are printed, making the -message human-friendly. - -In the matcher definition body, you can write `foo_type` to reference the type -of a parameter named `foo`. For example, in the body of -`MATCHER_P(HasAbsoluteValue, value)` above, you can write `value_type` to refer -to the type of `value`. - -gMock also provides `MATCHER_P2`, `MATCHER_P3`, ..., up to `MATCHER_P10` to -support multi-parameter matchers: - -```cpp -MATCHER_Pk(name, param_1, ..., param_k, description_string) { statements; } -``` - -Please note that the custom description string is for a particular *instance* of -the matcher, where the parameters have been bound to actual values. Therefore -usually you'll want the parameter values to be part of the description. gMock -lets you do that by referencing the matcher parameters in the description string -expression. - -For example, - -```cpp -using ::testing::PrintToString; -MATCHER_P2(InClosedRange, low, hi, - absl::StrFormat("%s in range [%s, %s]", negation ? "isn't" : "is", - PrintToString(low), PrintToString(hi))) { - return low <= arg && arg <= hi; -} -... -EXPECT_THAT(3, InClosedRange(4, 6)); -``` - -would generate a failure that contains the message: - -```shell - Expected: is in range [4, 6] -``` - -If you specify `""` as the description, the failure message will contain the -sequence of words in the matcher name followed by the parameter values printed -as a tuple. For example, - -```cpp - MATCHER_P2(InClosedRange, low, hi, "") { ... } - ... - EXPECT_THAT(3, InClosedRange(4, 6)); -``` - -would generate a failure that contains the text: - -```shell - Expected: in closed range (4, 6) -``` - -For the purpose of typing, you can view - -```cpp -MATCHER_Pk(Foo, p1, ..., pk, description_string) { ... } -``` - -as shorthand for - -```cpp -template -FooMatcherPk -Foo(p1_type p1, ..., pk_type pk) { ... } -``` - -When you write `Foo(v1, ..., vk)`, the compiler infers the types of the -parameters `v1`, ..., and `vk` for you. If you are not happy with the result of -the type inference, you can specify the types by explicitly instantiating the -template, as in `Foo(5, false)`. As said earlier, you don't get to -(or need to) specify `arg_type` as that's determined by the context in which the -matcher is used. - -You can assign the result of expression `Foo(p1, ..., pk)` to a variable of type -`FooMatcherPk`. This can be useful when composing -matchers. Matchers that don't have a parameter or have only one parameter have -special types: you can assign `Foo()` to a `FooMatcher`-typed variable, and -assign `Foo(p)` to a `FooMatcherP`-typed variable. - -While you can instantiate a matcher template with reference types, passing the -parameters by pointer usually makes your code more readable. If, however, you -still want to pass a parameter by reference, be aware that in the failure -message generated by the matcher you will see the value of the referenced object -but not its address. - -You can overload matchers with different numbers of parameters: - -```cpp -MATCHER_P(Blah, a, description_string_1) { ... } -MATCHER_P2(Blah, a, b, description_string_2) { ... } -``` - -While it's tempting to always use the `MATCHER*` macros when defining a new -matcher, you should also consider implementing `MatcherInterface` or using -`MakePolymorphicMatcher()` instead (see the recipes that follow), especially if -you need to use the matcher a lot. While these approaches require more work, -they give you more control on the types of the value being matched and the -matcher parameters, which in general leads to better compiler error messages -that pay off in the long run. They also allow overloading matchers based on -parameter types (as opposed to just based on the number of parameters). - -### Writing New Monomorphic Matchers - -A matcher of argument type `T` implements `::testing::MatcherInterface` and -does two things: it tests whether a value of type `T` matches the matcher, and -can describe what kind of values it matches. The latter ability is used for -generating readable error messages when expectations are violated. - -The interface looks like this: - -```cpp -class MatchResultListener { - public: - ... - // Streams x to the underlying ostream; does nothing if the ostream - // is NULL. - template - MatchResultListener& operator<<(const T& x); - - // Returns the underlying ostream. - std::ostream* stream(); -}; - -template -class MatcherInterface { - public: - virtual ~MatcherInterface(); - - // Returns true if and only if the matcher matches x; also explains the match - // result to 'listener'. - virtual bool MatchAndExplain(T x, MatchResultListener* listener) const = 0; - - // Describes this matcher to an ostream. - virtual void DescribeTo(std::ostream* os) const = 0; - - // Describes the negation of this matcher to an ostream. - virtual void DescribeNegationTo(std::ostream* os) const; -}; -``` - -If you need a custom matcher but `Truly()` is not a good option (for example, -you may not be happy with the way `Truly(predicate)` describes itself, or you -may want your matcher to be polymorphic as `Eq(value)` is), you can define a -matcher to do whatever you want in two steps: first implement the matcher -interface, and then define a factory function to create a matcher instance. The -second step is not strictly needed but it makes the syntax of using the matcher -nicer. - -For example, you can define a matcher to test whether an `int` is divisible by 7 -and then use it like this: - -```cpp -using ::testing::MakeMatcher; -using ::testing::Matcher; -using ::testing::MatcherInterface; -using ::testing::MatchResultListener; - -class DivisibleBy7Matcher : public MatcherInterface { - public: - bool MatchAndExplain(int n, - MatchResultListener* /* listener */) const override { - return (n % 7) == 0; - } - - void DescribeTo(std::ostream* os) const override { - *os << "is divisible by 7"; - } - - void DescribeNegationTo(std::ostream* os) const override { - *os << "is not divisible by 7"; - } -}; - -Matcher DivisibleBy7() { - return MakeMatcher(new DivisibleBy7Matcher); -} - -... - EXPECT_CALL(foo, Bar(DivisibleBy7())); -``` - -You may improve the matcher message by streaming additional information to the -`listener` argument in `MatchAndExplain()`: - -```cpp -class DivisibleBy7Matcher : public MatcherInterface { - public: - bool MatchAndExplain(int n, - MatchResultListener* listener) const override { - const int remainder = n % 7; - if (remainder != 0) { - *listener << "the remainder is " << remainder; - } - return remainder == 0; - } - ... -}; -``` - -Then, `EXPECT_THAT(x, DivisibleBy7());` may generate a message like this: - -```shell -Value of: x -Expected: is divisible by 7 - Actual: 23 (the remainder is 2) -``` - -### Writing New Polymorphic Matchers - -You've learned how to write your own matchers in the previous recipe. Just one -problem: a matcher created using `MakeMatcher()` only works for one particular -type of arguments. If you want a *polymorphic* matcher that works with arguments -of several types (for instance, `Eq(x)` can be used to match a *`value`* as long -as `value == x` compiles -- *`value`* and `x` don't have to share the same -type), you can learn the trick from `testing/base/public/gmock-matchers.h` but -it's a bit involved. - -Fortunately, most of the time you can define a polymorphic matcher easily with -the help of `MakePolymorphicMatcher()`. Here's how you can define `NotNull()` as -an example: - -```cpp -using ::testing::MakePolymorphicMatcher; -using ::testing::MatchResultListener; -using ::testing::PolymorphicMatcher; - -class NotNullMatcher { - public: - // To implement a polymorphic matcher, first define a COPYABLE class - // that has three members MatchAndExplain(), DescribeTo(), and - // DescribeNegationTo(), like the following. - - // In this example, we want to use NotNull() with any pointer, so - // MatchAndExplain() accepts a pointer of any type as its first argument. - // In general, you can define MatchAndExplain() as an ordinary method or - // a method template, or even overload it. - template - bool MatchAndExplain(T* p, - MatchResultListener* /* listener */) const { - return p != NULL; - } - - // Describes the property of a value matching this matcher. - void DescribeTo(std::ostream* os) const { *os << "is not NULL"; } - - // Describes the property of a value NOT matching this matcher. - void DescribeNegationTo(std::ostream* os) const { *os << "is NULL"; } -}; - -// To construct a polymorphic matcher, pass an instance of the class -// to MakePolymorphicMatcher(). Note the return type. -PolymorphicMatcher NotNull() { - return MakePolymorphicMatcher(NotNullMatcher()); -} - -... - - EXPECT_CALL(foo, Bar(NotNull())); // The argument must be a non-NULL pointer. -``` - -**Note:** Your polymorphic matcher class does **not** need to inherit from -`MatcherInterface` or any other class, and its methods do **not** need to be -virtual. - -Like in a monomorphic matcher, you may explain the match result by streaming -additional information to the `listener` argument in `MatchAndExplain()`. - -### Writing New Cardinalities - -A cardinality is used in `Times()` to tell gMock how many times you expect a -call to occur. It doesn't have to be exact. For example, you can say -`AtLeast(5)` or `Between(2, 4)`. - -If the [built-in set](cheat_sheet.md#CardinalityList) of cardinalities doesn't -suit you, you are free to define your own by implementing the following -interface (in namespace `testing`): - -```cpp -class CardinalityInterface { - public: - virtual ~CardinalityInterface(); - - // Returns true if and only if call_count calls will satisfy this cardinality. - virtual bool IsSatisfiedByCallCount(int call_count) const = 0; - - // Returns true if and only if call_count calls will saturate this - // cardinality. - virtual bool IsSaturatedByCallCount(int call_count) const = 0; - - // Describes self to an ostream. - virtual void DescribeTo(std::ostream* os) const = 0; -}; -``` - -For example, to specify that a call must occur even number of times, you can -write - -```cpp -using ::testing::Cardinality; -using ::testing::CardinalityInterface; -using ::testing::MakeCardinality; - -class EvenNumberCardinality : public CardinalityInterface { - public: - bool IsSatisfiedByCallCount(int call_count) const override { - return (call_count % 2) == 0; - } - - bool IsSaturatedByCallCount(int call_count) const override { - return false; - } - - void DescribeTo(std::ostream* os) const { - *os << "called even number of times"; - } -}; - -Cardinality EvenNumber() { - return MakeCardinality(new EvenNumberCardinality); -} - -... - EXPECT_CALL(foo, Bar(3)) - .Times(EvenNumber()); -``` - -### Writing New Actions Quickly {#QuickNewActions} - -If the built-in actions don't work for you, you can easily define your own one. -Just define a functor class with a (possibly templated) call operator, matching -the signature of your action. - -```cpp -struct Increment { - template - T operator()(T* arg) { - return ++(*arg); - } -} -``` - -The same approach works with stateful functors (or any callable, really): - -``` -struct MultiplyBy { - template - T operator()(T arg) { return arg * multiplier; } - - int multiplier; -} - -// Then use: -// EXPECT_CALL(...).WillOnce(MultiplyBy{7}); -``` - -#### Legacy macro-based Actions - -Before C++11, the functor-based actions were not supported; the old way of -writing actions was through a set of `ACTION*` macros. We suggest to avoid them -in new code; they hide a lot of logic behind the macro, potentially leading to -harder-to-understand compiler errors. Nevertheless, we cover them here for -completeness. - -By writing - -```cpp -ACTION(name) { statements; } -``` - -in a namespace scope (i.e. not inside a class or function), you will define an -action with the given name that executes the statements. The value returned by -`statements` will be used as the return value of the action. Inside the -statements, you can refer to the K-th (0-based) argument of the mock function as -`argK`. For example: - -```cpp -ACTION(IncrementArg1) { return ++(*arg1); } -``` - -allows you to write - -```cpp -... WillOnce(IncrementArg1()); -``` - -Note that you don't need to specify the types of the mock function arguments. -Rest assured that your code is type-safe though: you'll get a compiler error if -`*arg1` doesn't support the `++` operator, or if the type of `++(*arg1)` isn't -compatible with the mock function's return type. - -Another example: - -```cpp -ACTION(Foo) { - (*arg2)(5); - Blah(); - *arg1 = 0; - return arg0; -} -``` - -defines an action `Foo()` that invokes argument #2 (a function pointer) with 5, -calls function `Blah()`, sets the value pointed to by argument #1 to 0, and -returns argument #0. - -For more convenience and flexibility, you can also use the following pre-defined -symbols in the body of `ACTION`: - -`argK_type` | The type of the K-th (0-based) argument of the mock function -:-------------- | :----------------------------------------------------------- -`args` | All arguments of the mock function as a tuple -`args_type` | The type of all arguments of the mock function as a tuple -`return_type` | The return type of the mock function -`function_type` | The type of the mock function - -For example, when using an `ACTION` as a stub action for mock function: - -```cpp -int DoSomething(bool flag, int* ptr); -``` - -we have: - -Pre-defined Symbol | Is Bound To ------------------- | --------------------------------- -`arg0` | the value of `flag` -`arg0_type` | the type `bool` -`arg1` | the value of `ptr` -`arg1_type` | the type `int*` -`args` | the tuple `(flag, ptr)` -`args_type` | the type `std::tuple` -`return_type` | the type `int` -`function_type` | the type `int(bool, int*)` - -#### Legacy macro-based parameterized Actions - -Sometimes you'll want to parameterize an action you define. For that we have -another macro - -```cpp -ACTION_P(name, param) { statements; } -``` - -For example, - -```cpp -ACTION_P(Add, n) { return arg0 + n; } -``` - -will allow you to write - -```cpp -// Returns argument #0 + 5. -... WillOnce(Add(5)); -``` - -For convenience, we use the term *arguments* for the values used to invoke the -mock function, and the term *parameters* for the values used to instantiate an -action. - -Note that you don't need to provide the type of the parameter either. Suppose -the parameter is named `param`, you can also use the gMock-defined symbol -`param_type` to refer to the type of the parameter as inferred by the compiler. -For example, in the body of `ACTION_P(Add, n)` above, you can write `n_type` for -the type of `n`. - -gMock also provides `ACTION_P2`, `ACTION_P3`, and etc to support multi-parameter -actions. For example, - -```cpp -ACTION_P2(ReturnDistanceTo, x, y) { - double dx = arg0 - x; - double dy = arg1 - y; - return sqrt(dx*dx + dy*dy); -} -``` - -lets you write - -```cpp -... WillOnce(ReturnDistanceTo(5.0, 26.5)); -``` - -You can view `ACTION` as a degenerated parameterized action where the number of -parameters is 0. - -You can also easily define actions overloaded on the number of parameters: - -```cpp -ACTION_P(Plus, a) { ... } -ACTION_P2(Plus, a, b) { ... } -``` - -### Restricting the Type of an Argument or Parameter in an ACTION - -For maximum brevity and reusability, the `ACTION*` macros don't ask you to -provide the types of the mock function arguments and the action parameters. -Instead, we let the compiler infer the types for us. - -Sometimes, however, we may want to be more explicit about the types. There are -several tricks to do that. For example: - -```cpp -ACTION(Foo) { - // Makes sure arg0 can be converted to int. - int n = arg0; - ... use n instead of arg0 here ... -} - -ACTION_P(Bar, param) { - // Makes sure the type of arg1 is const char*. - ::testing::StaticAssertTypeEq(); - - // Makes sure param can be converted to bool. - bool flag = param; -} -``` - -where `StaticAssertTypeEq` is a compile-time assertion in googletest that -verifies two types are the same. - -### Writing New Action Templates Quickly - -Sometimes you want to give an action explicit template parameters that cannot be -inferred from its value parameters. `ACTION_TEMPLATE()` supports that and can be -viewed as an extension to `ACTION()` and `ACTION_P*()`. - -The syntax: - -```cpp -ACTION_TEMPLATE(ActionName, - HAS_m_TEMPLATE_PARAMS(kind1, name1, ..., kind_m, name_m), - AND_n_VALUE_PARAMS(p1, ..., p_n)) { statements; } -``` - -defines an action template that takes *m* explicit template parameters and *n* -value parameters, where *m* is in [1, 10] and *n* is in [0, 10]. `name_i` is the -name of the *i*-th template parameter, and `kind_i` specifies whether it's a -`typename`, an integral constant, or a template. `p_i` is the name of the *i*-th -value parameter. - -Example: - -```cpp -// DuplicateArg(output) converts the k-th argument of the mock -// function to type T and copies it to *output. -ACTION_TEMPLATE(DuplicateArg, - // Note the comma between int and k: - HAS_2_TEMPLATE_PARAMS(int, k, typename, T), - AND_1_VALUE_PARAMS(output)) { - *output = T(std::get(args)); -} -``` - -To create an instance of an action template, write: - -```cpp -ActionName(v1, ..., v_n) -``` - -where the `t`s are the template arguments and the `v`s are the value arguments. -The value argument types are inferred by the compiler. For example: - -```cpp -using ::testing::_; -... - int n; - EXPECT_CALL(mock, Foo).WillOnce(DuplicateArg<1, unsigned char>(&n)); -``` - -If you want to explicitly specify the value argument types, you can provide -additional template arguments: - -```cpp -ActionName(v1, ..., v_n) -``` - -where `u_i` is the desired type of `v_i`. - -`ACTION_TEMPLATE` and `ACTION`/`ACTION_P*` can be overloaded on the number of -value parameters, but not on the number of template parameters. Without the -restriction, the meaning of the following is unclear: - -```cpp - OverloadedAction(x); -``` - -Are we using a single-template-parameter action where `bool` refers to the type -of `x`, or a two-template-parameter action where the compiler is asked to infer -the type of `x`? - -### Using the ACTION Object's Type - -If you are writing a function that returns an `ACTION` object, you'll need to -know its type. The type depends on the macro used to define the action and the -parameter types. The rule is relatively simple: - -| Given Definition | Expression | Has Type | -| ----------------------------- | ------------------- | --------------------- | -| `ACTION(Foo)` | `Foo()` | `FooAction` | -| `ACTION_TEMPLATE(Foo,` | `Foo()` : t_m>` : -: `AND_0_VALUE_PARAMS())` : : : -| `ACTION_P(Bar, param)` | `Bar(int_value)` | `BarActionP` | -| `ACTION_TEMPLATE(Bar,` | `Bar` | `FooActionP` : -: `AND_1_VALUE_PARAMS(p1))` : : : -| `ACTION_P2(Baz, p1, p2)` | `Baz(bool_value,` | `BazActionP2` : -| `ACTION_TEMPLATE(Baz,` | `Baz` | `FooActionP2` : -: `AND_2_VALUE_PARAMS(p1, p2))` : `int_value)` : : -| ... | ... | ... | - -Note that we have to pick different suffixes (`Action`, `ActionP`, `ActionP2`, -and etc) for actions with different numbers of value parameters, or the action -definitions cannot be overloaded on the number of them. - -### Writing New Monomorphic Actions {#NewMonoActions} - -While the `ACTION*` macros are very convenient, sometimes they are -inappropriate. For example, despite the tricks shown in the previous recipes, -they don't let you directly specify the types of the mock function arguments and -the action parameters, which in general leads to unoptimized compiler error -messages that can baffle unfamiliar users. They also don't allow overloading -actions based on parameter types without jumping through some hoops. - -An alternative to the `ACTION*` macros is to implement -`::testing::ActionInterface`, where `F` is the type of the mock function in -which the action will be used. For example: - -```cpp -template -class ActionInterface { - public: - virtual ~ActionInterface(); - - // Performs the action. Result is the return type of function type - // F, and ArgumentTuple is the tuple of arguments of F. - // - - // For example, if F is int(bool, const string&), then Result would - // be int, and ArgumentTuple would be std::tuple. - virtual Result Perform(const ArgumentTuple& args) = 0; -}; -``` - -```cpp -using ::testing::_; -using ::testing::Action; -using ::testing::ActionInterface; -using ::testing::MakeAction; - -typedef int IncrementMethod(int*); - -class IncrementArgumentAction : public ActionInterface { - public: - int Perform(const std::tuple& args) override { - int* p = std::get<0>(args); // Grabs the first argument. - return *p++; - } -}; - -Action IncrementArgument() { - return MakeAction(new IncrementArgumentAction); -} - -... - EXPECT_CALL(foo, Baz(_)) - .WillOnce(IncrementArgument()); - - int n = 5; - foo.Baz(&n); // Should return 5 and change n to 6. -``` - -### Writing New Polymorphic Actions {#NewPolyActions} - -The previous recipe showed you how to define your own action. This is all good, -except that you need to know the type of the function in which the action will -be used. Sometimes that can be a problem. For example, if you want to use the -action in functions with *different* types (e.g. like `Return()` and -`SetArgPointee()`). - -If an action can be used in several types of mock functions, we say it's -*polymorphic*. The `MakePolymorphicAction()` function template makes it easy to -define such an action: - -```cpp -namespace testing { -template -PolymorphicAction MakePolymorphicAction(const Impl& impl); -} // namespace testing -``` - -As an example, let's define an action that returns the second argument in the -mock function's argument list. The first step is to define an implementation -class: - -```cpp -class ReturnSecondArgumentAction { - public: - template - Result Perform(const ArgumentTuple& args) const { - // To get the i-th (0-based) argument, use std::get(args). - return std::get<1>(args); - } -}; -``` - -This implementation class does *not* need to inherit from any particular class. -What matters is that it must have a `Perform()` method template. This method -template takes the mock function's arguments as a tuple in a **single** -argument, and returns the result of the action. It can be either `const` or not, -but must be invokable with exactly one template argument, which is the result -type. In other words, you must be able to call `Perform(args)` where `R` is -the mock function's return type and `args` is its arguments in a tuple. - -Next, we use `MakePolymorphicAction()` to turn an instance of the implementation -class into the polymorphic action we need. It will be convenient to have a -wrapper for this: - -```cpp -using ::testing::MakePolymorphicAction; -using ::testing::PolymorphicAction; - -PolymorphicAction ReturnSecondArgument() { - return MakePolymorphicAction(ReturnSecondArgumentAction()); -} -``` - -Now, you can use this polymorphic action the same way you use the built-in ones: - -```cpp -using ::testing::_; - -class MockFoo : public Foo { - public: - MOCK_METHOD(int, DoThis, (bool flag, int n), (override)); - MOCK_METHOD(string, DoThat, (int x, const char* str1, const char* str2), - (override)); -}; - - ... - MockFoo foo; - EXPECT_CALL(foo, DoThis).WillOnce(ReturnSecondArgument()); - EXPECT_CALL(foo, DoThat).WillOnce(ReturnSecondArgument()); - ... - foo.DoThis(true, 5); // Will return 5. - foo.DoThat(1, "Hi", "Bye"); // Will return "Hi". -``` - -### Teaching gMock How to Print Your Values - -When an uninteresting or unexpected call occurs, gMock prints the argument -values and the stack trace to help you debug. Assertion macros like -`EXPECT_THAT` and `EXPECT_EQ` also print the values in question when the -assertion fails. gMock and googletest do this using googletest's user-extensible -value printer. - -This printer knows how to print built-in C++ types, native arrays, STL -containers, and any type that supports the `<<` operator. For other types, it -prints the raw bytes in the value and hopes that you the user can figure it out. -[googletest's advanced guide](../../googletest/docs/advanced.md#teaching-googletest-how-to-print-your-values) -explains how to extend the printer to do a better job at printing your -particular type than to dump the bytes. - -## Useful Mocks Created Using gMock - - - - -### Mock std::function {#MockFunction} - -`std::function` is a general function type introduced in C++11. It is a -preferred way of passing callbacks to new interfaces. Functions are copiable, -and are not usually passed around by pointer, which makes them tricky to mock. -But fear not - `MockFunction` can help you with that. - -`MockFunction` has a mock method `Call()` with the signature: - -```cpp - R Call(T1, ..., Tn); -``` - -It also has a `AsStdFunction()` method, which creates a `std::function` proxy -forwarding to Call: - -```cpp - std::function AsStdFunction(); -``` - -To use `MockFunction`, first create `MockFunction` object and set up -expectations on its `Call` method. Then pass proxy obtained from -`AsStdFunction()` to the code you are testing. For example: - -```cpp -TEST(FooTest, RunsCallbackWithBarArgument) { - // 1. Create a mock object. - MockFunction mock_function; - - // 2. Set expectations on Call() method. - EXPECT_CALL(mock_function, Call("bar")).WillOnce(Return(1)); - - // 3. Exercise code that uses std::function. - Foo(mock_function.AsStdFunction()); - // Foo's signature can be either of: - // void Foo(const std::function& fun); - // void Foo(std::function fun); - - // 4. All expectations will be verified when mock_function - // goes out of scope and is destroyed. -} -``` - -Remember that function objects created with `AsStdFunction()` are just -forwarders. If you create multiple of them, they will share the same set of -expectations. - -Although `std::function` supports unlimited number of arguments, `MockFunction` -implementation is limited to ten. If you ever hit that limit... well, your -callback has bigger problems than being mockable. :-) - - diff --git a/UnitTests_App/GoogleTest/googlemock/docs/for_dummies.md b/UnitTests_App/GoogleTest/googlemock/docs/for_dummies.md deleted file mode 100644 index 8ba164f..0000000 --- a/UnitTests_App/GoogleTest/googlemock/docs/for_dummies.md +++ /dev/null @@ -1,702 +0,0 @@ -# gMock for Dummies {#GMockForDummies} - - - - - -## What Is gMock? - -When you write a prototype or test, often it's not feasible or wise to rely on -real objects entirely. A **mock object** implements the same interface as a real -object (so it can be used as one), but lets you specify at run time how it will -be used and what it should do (which methods will be called? in which order? how -many times? with what arguments? what will they return? etc). - -**Note:** It is easy to confuse the term *fake objects* with mock objects. Fakes -and mocks actually mean very different things in the Test-Driven Development -(TDD) community: - -* **Fake** objects have working implementations, but usually take some - shortcut (perhaps to make the operations less expensive), which makes them - not suitable for production. An in-memory file system would be an example of - a fake. -* **Mocks** are objects pre-programmed with *expectations*, which form a - specification of the calls they are expected to receive. - -If all this seems too abstract for you, don't worry - the most important thing -to remember is that a mock allows you to check the *interaction* between itself -and code that uses it. The difference between fakes and mocks shall become much -clearer once you start to use mocks. - -**gMock** is a library (sometimes we also call it a "framework" to make it sound -cool) for creating mock classes and using them. It does to C++ what -jMock/EasyMock does to Java (well, more or less). - -When using gMock, - -1. first, you use some simple macros to describe the interface you want to - mock, and they will expand to the implementation of your mock class; -2. next, you create some mock objects and specify its expectations and behavior - using an intuitive syntax; -3. then you exercise code that uses the mock objects. gMock will catch any - violation to the expectations as soon as it arises. - -## Why gMock? - -While mock objects help you remove unnecessary dependencies in tests and make -them fast and reliable, using mocks manually in C++ is *hard*: - -* Someone has to implement the mocks. The job is usually tedious and - error-prone. No wonder people go great distance to avoid it. -* The quality of those manually written mocks is a bit, uh, unpredictable. You - may see some really polished ones, but you may also see some that were - hacked up in a hurry and have all sorts of ad hoc restrictions. -* The knowledge you gained from using one mock doesn't transfer to the next - one. - -In contrast, Java and Python programmers have some fine mock frameworks (jMock, -EasyMock, [Mox](http://wtf/mox), etc), which automate the creation of mocks. As -a result, mocking is a proven effective technique and widely adopted practice in -those communities. Having the right tool absolutely makes the difference. - -gMock was built to help C++ programmers. It was inspired by jMock and EasyMock, -but designed with C++'s specifics in mind. It is your friend if any of the -following problems is bothering you: - -* You are stuck with a sub-optimal design and wish you had done more - prototyping before it was too late, but prototyping in C++ is by no means - "rapid". -* Your tests are slow as they depend on too many libraries or use expensive - resources (e.g. a database). -* Your tests are brittle as some resources they use are unreliable (e.g. the - network). -* You want to test how your code handles a failure (e.g. a file checksum - error), but it's not easy to cause one. -* You need to make sure that your module interacts with other modules in the - right way, but it's hard to observe the interaction; therefore you resort to - observing the side effects at the end of the action, but it's awkward at - best. -* You want to "mock out" your dependencies, except that they don't have mock - implementations yet; and, frankly, you aren't thrilled by some of those - hand-written mocks. - -We encourage you to use gMock as - -* a *design* tool, for it lets you experiment with your interface design early - and often. More iterations lead to better designs! -* a *testing* tool to cut your tests' outbound dependencies and probe the - interaction between your module and its collaborators. - -## Getting Started - -gMock is bundled with googletest. - -## A Case for Mock Turtles - -Let's look at an example. Suppose you are developing a graphics program that -relies on a [LOGO](http://en.wikipedia.org/wiki/Logo_programming_language)-like -API for drawing. How would you test that it does the right thing? Well, you can -run it and compare the screen with a golden screen snapshot, but let's admit it: -tests like this are expensive to run and fragile (What if you just upgraded to a -shiny new graphics card that has better anti-aliasing? Suddenly you have to -update all your golden images.). It would be too painful if all your tests are -like this. Fortunately, you learned about -[Dependency Injection](http://en.wikipedia.org/wiki/Dependency_injection) and know the right thing -to do: instead of having your application talk to the system API directly, wrap -the API in an interface (say, `Turtle`) and code to that interface: - -```cpp -class Turtle { - ... - virtual ~Turtle() {} - virtual void PenUp() = 0; - virtual void PenDown() = 0; - virtual void Forward(int distance) = 0; - virtual void Turn(int degrees) = 0; - virtual void GoTo(int x, int y) = 0; - virtual int GetX() const = 0; - virtual int GetY() const = 0; -}; -``` - -(Note that the destructor of `Turtle` **must** be virtual, as is the case for -**all** classes you intend to inherit from - otherwise the destructor of the -derived class will not be called when you delete an object through a base -pointer, and you'll get corrupted program states like memory leaks.) - -You can control whether the turtle's movement will leave a trace using `PenUp()` -and `PenDown()`, and control its movement using `Forward()`, `Turn()`, and -`GoTo()`. Finally, `GetX()` and `GetY()` tell you the current position of the -turtle. - -Your program will normally use a real implementation of this interface. In -tests, you can use a mock implementation instead. This allows you to easily -check what drawing primitives your program is calling, with what arguments, and -in which order. Tests written this way are much more robust (they won't break -because your new machine does anti-aliasing differently), easier to read and -maintain (the intent of a test is expressed in the code, not in some binary -images), and run *much, much faster*. - -## Writing the Mock Class - -If you are lucky, the mocks you need to use have already been implemented by -some nice people. If, however, you find yourself in the position to write a mock -class, relax - gMock turns this task into a fun game! (Well, almost.) - -### How to Define It - -Using the `Turtle` interface as example, here are the simple steps you need to -follow: - -* Derive a class `MockTurtle` from `Turtle`. -* Take a *virtual* function of `Turtle` (while it's possible to - [mock non-virtual methods using templates](cook_book.md#MockingNonVirtualMethods), - it's much more involved). -* In the `public:` section of the child class, write `MOCK_METHOD();` -* Now comes the fun part: you take the function signature, cut-and-paste it - into the macro, and add two commas - one between the return type and the - name, another between the name and the argument list. -* If you're mocking a const method, add a 4th parameter containing `(const)` - (the parentheses are required). -* Since you're overriding a virtual method, we suggest adding the `override` - keyword. For const methods the 4th parameter becomes `(const, override)`, - for non-const methods just `(override)`. This isn't mandatory. -* Repeat until all virtual functions you want to mock are done. (It goes - without saying that *all* pure virtual methods in your abstract class must - be either mocked or overridden.) - -After the process, you should have something like: - -```cpp -#include "gmock/gmock.h" // Brings in gMock. - -class MockTurtle : public Turtle { - public: - ... - MOCK_METHOD(void, PenUp, (), (override)); - MOCK_METHOD(void, PenDown, (), (override)); - MOCK_METHOD(void, Forward, (int distance), (override)); - MOCK_METHOD(void, Turn, (int degrees), (override)); - MOCK_METHOD(void, GoTo, (int x, int y), (override)); - MOCK_METHOD(int, GetX, (), (const, override)); - MOCK_METHOD(int, GetY, (), (const, override)); -}; -``` - -You don't need to define these mock methods somewhere else - the `MOCK_METHOD` -macro will generate the definitions for you. It's that simple! - -### Where to Put It - -When you define a mock class, you need to decide where to put its definition. -Some people put it in a `_test.cc`. This is fine when the interface being mocked -(say, `Foo`) is owned by the same person or team. Otherwise, when the owner of -`Foo` changes it, your test could break. (You can't really expect `Foo`'s -maintainer to fix every test that uses `Foo`, can you?) - -So, the rule of thumb is: if you need to mock `Foo` and it's owned by others, -define the mock class in `Foo`'s package (better, in a `testing` sub-package -such that you can clearly separate production code and testing utilities), put -it in a `.h` and a `cc_library`. Then everyone can reference them from their -tests. If `Foo` ever changes, there is only one copy of `MockFoo` to change, and -only tests that depend on the changed methods need to be fixed. - -Another way to do it: you can introduce a thin layer `FooAdaptor` on top of -`Foo` and code to this new interface. Since you own `FooAdaptor`, you can absorb -changes in `Foo` much more easily. While this is more work initially, carefully -choosing the adaptor interface can make your code easier to write and more -readable (a net win in the long run), as you can choose `FooAdaptor` to fit your -specific domain much better than `Foo` does. - - - -## Using Mocks in Tests - -Once you have a mock class, using it is easy. The typical work flow is: - -1. Import the gMock names from the `testing` namespace such that you can use - them unqualified (You only have to do it once per file). Remember that - namespaces are a good idea. -2. Create some mock objects. -3. Specify your expectations on them (How many times will a method be called? - With what arguments? What should it do? etc.). -4. Exercise some code that uses the mocks; optionally, check the result using - googletest assertions. If a mock method is called more than expected or with - wrong arguments, you'll get an error immediately. -5. When a mock is destructed, gMock will automatically check whether all - expectations on it have been satisfied. - -Here's an example: - -```cpp -#include "path/to/mock-turtle.h" -#include "gmock/gmock.h" -#include "gtest/gtest.h" - -using ::testing::AtLeast; // #1 - -TEST(PainterTest, CanDrawSomething) { - MockTurtle turtle; // #2 - EXPECT_CALL(turtle, PenDown()) // #3 - .Times(AtLeast(1)); - - Painter painter(&turtle); // #4 - - EXPECT_TRUE(painter.DrawCircle(0, 0, 10)); // #5 -} -``` - -As you might have guessed, this test checks that `PenDown()` is called at least -once. If the `painter` object didn't call this method, your test will fail with -a message like this: - -```text -path/to/my_test.cc:119: Failure -Actual function call count doesn't match this expectation: -Actually: never called; -Expected: called at least once. -Stack trace: -... -``` - -**Tip 1:** If you run the test from an Emacs buffer, you can hit `` on -the line number to jump right to the failed expectation. - -**Tip 2:** If your mock objects are never deleted, the final verification won't -happen. Therefore it's a good idea to turn on the heap checker in your tests -when you allocate mocks on the heap. You get that automatically if you use the -`gtest_main` library already. - -**Important note:** gMock requires expectations to be set **before** the mock -functions are called, otherwise the behavior is **undefined**. In particular, -you mustn't interleave `EXPECT_CALL()s` and calls to the mock functions. - -This means `EXPECT_CALL()` should be read as expecting that a call will occur -*in the future*, not that a call has occurred. Why does gMock work like that? -Well, specifying the expectation beforehand allows gMock to report a violation -as soon as it rises, when the context (stack trace, etc) is still available. -This makes debugging much easier. - -Admittedly, this test is contrived and doesn't do much. You can easily achieve -the same effect without using gMock. However, as we shall reveal soon, gMock -allows you to do *so much more* with the mocks. - -## Setting Expectations - -The key to using a mock object successfully is to set the *right expectations* -on it. If you set the expectations too strict, your test will fail as the result -of unrelated changes. If you set them too loose, bugs can slip through. You want -to do it just right such that your test can catch exactly the kind of bugs you -intend it to catch. gMock provides the necessary means for you to do it "just -right." - -### General Syntax - -In gMock we use the `EXPECT_CALL()` macro to set an expectation on a mock -method. The general syntax is: - -```cpp -EXPECT_CALL(mock_object, method(matchers)) - .Times(cardinality) - .WillOnce(action) - .WillRepeatedly(action); -``` - -The macro has two arguments: first the mock object, and then the method and its -arguments. Note that the two are separated by a comma (`,`), not a period (`.`). -(Why using a comma? The answer is that it was necessary for technical reasons.) -If the method is not overloaded, the macro can also be called without matchers: - -```cpp -EXPECT_CALL(mock_object, non-overloaded-method) - .Times(cardinality) - .WillOnce(action) - .WillRepeatedly(action); -``` - -This syntax allows the test writer to specify "called with any arguments" -without explicitly specifying the number or types of arguments. To avoid -unintended ambiguity, this syntax may only be used for methods which are not -overloaded - -Either form of the macro can be followed by some optional *clauses* that provide -more information about the expectation. We'll discuss how each clause works in -the coming sections. - -This syntax is designed to make an expectation read like English. For example, -you can probably guess that - -```cpp -using ::testing::Return; -... -EXPECT_CALL(turtle, GetX()) - .Times(5) - .WillOnce(Return(100)) - .WillOnce(Return(150)) - .WillRepeatedly(Return(200)); -``` - -says that the `turtle` object's `GetX()` method will be called five times, it -will return 100 the first time, 150 the second time, and then 200 every time. -Some people like to call this style of syntax a Domain-Specific Language (DSL). - -**Note:** Why do we use a macro to do this? Well it serves two purposes: first -it makes expectations easily identifiable (either by `gsearch` or by a human -reader), and second it allows gMock to include the source file location of a -failed expectation in messages, making debugging easier. - -### Matchers: What Arguments Do We Expect? - -When a mock function takes arguments, we may specify what arguments we are -expecting, for example: - -```cpp -// Expects the turtle to move forward by 100 units. -EXPECT_CALL(turtle, Forward(100)); -``` - -Oftentimes you do not want to be too specific. Remember that talk about tests -being too rigid? Over specification leads to brittle tests and obscures the -intent of tests. Therefore we encourage you to specify only what's necessary—no -more, no less. If you aren't interested in the value of an argument, write `_` -as the argument, which means "anything goes": - -```cpp -using ::testing::_; -... -// Expects that the turtle jumps to somewhere on the x=50 line. -EXPECT_CALL(turtle, GoTo(50, _)); -``` - -`_` is an instance of what we call **matchers**. A matcher is like a predicate -and can test whether an argument is what we'd expect. You can use a matcher -inside `EXPECT_CALL()` wherever a function argument is expected. `_` is a -convenient way of saying "any value". - -In the above examples, `100` and `50` are also matchers; implicitly, they are -the same as `Eq(100)` and `Eq(50)`, which specify that the argument must be -equal (using `operator==`) to the matcher argument. There are many -[built-in matchers](cheat_sheet.md#MatcherList) for common types (as well as -[custom matchers](cook_book.md#NewMatchers)); for example: - -```cpp -using ::testing::Ge; -... -// Expects the turtle moves forward by at least 100. -EXPECT_CALL(turtle, Forward(Ge(100))); -``` - -If you don't care about *any* arguments, rather than specify `_` for each of -them you may instead omit the parameter list: - -```cpp -// Expects the turtle to move forward. -EXPECT_CALL(turtle, Forward); -// Expects the turtle to jump somewhere. -EXPECT_CALL(turtle, GoTo); -``` - -This works for all non-overloaded methods; if a method is overloaded, you need -to help gMock resolve which overload is expected by specifying the number of -arguments and possibly also the -[types of the arguments](cook_book.md#SelectOverload). - -### Cardinalities: How Many Times Will It Be Called? - -The first clause we can specify following an `EXPECT_CALL()` is `Times()`. We -call its argument a **cardinality** as it tells *how many times* the call should -occur. It allows us to repeat an expectation many times without actually writing -it as many times. More importantly, a cardinality can be "fuzzy", just like a -matcher can be. This allows a user to express the intent of a test exactly. - -An interesting special case is when we say `Times(0)`. You may have guessed - it -means that the function shouldn't be called with the given arguments at all, and -gMock will report a googletest failure whenever the function is (wrongfully) -called. - -We've seen `AtLeast(n)` as an example of fuzzy cardinalities earlier. For the -list of built-in cardinalities you can use, see -[here](cheat_sheet.md#CardinalityList). - -The `Times()` clause can be omitted. **If you omit `Times()`, gMock will infer -the cardinality for you.** The rules are easy to remember: - -* If **neither** `WillOnce()` **nor** `WillRepeatedly()` is in the - `EXPECT_CALL()`, the inferred cardinality is `Times(1)`. -* If there are *n* `WillOnce()`'s but **no** `WillRepeatedly()`, where *n* >= - 1, the cardinality is `Times(n)`. -* If there are *n* `WillOnce()`'s and **one** `WillRepeatedly()`, where *n* >= - 0, the cardinality is `Times(AtLeast(n))`. - -**Quick quiz:** what do you think will happen if a function is expected to be -called twice but actually called four times? - -### Actions: What Should It Do? - -Remember that a mock object doesn't really have a working implementation? We as -users have to tell it what to do when a method is invoked. This is easy in -gMock. - -First, if the return type of a mock function is a built-in type or a pointer, -the function has a **default action** (a `void` function will just return, a -`bool` function will return `false`, and other functions will return 0). In -addition, in C++ 11 and above, a mock function whose return type is -default-constructible (i.e. has a default constructor) has a default action of -returning a default-constructed value. If you don't say anything, this behavior -will be used. - -Second, if a mock function doesn't have a default action, or the default action -doesn't suit you, you can specify the action to be taken each time the -expectation matches using a series of `WillOnce()` clauses followed by an -optional `WillRepeatedly()`. For example, - -```cpp -using ::testing::Return; -... -EXPECT_CALL(turtle, GetX()) - .WillOnce(Return(100)) - .WillOnce(Return(200)) - .WillOnce(Return(300)); -``` - -says that `turtle.GetX()` will be called *exactly three times* (gMock inferred -this from how many `WillOnce()` clauses we've written, since we didn't -explicitly write `Times()`), and will return 100, 200, and 300 respectively. - -```cpp -using ::testing::Return; -... -EXPECT_CALL(turtle, GetY()) - .WillOnce(Return(100)) - .WillOnce(Return(200)) - .WillRepeatedly(Return(300)); -``` - -says that `turtle.GetY()` will be called *at least twice* (gMock knows this as -we've written two `WillOnce()` clauses and a `WillRepeatedly()` while having no -explicit `Times()`), will return 100 and 200 respectively the first two times, -and 300 from the third time on. - -Of course, if you explicitly write a `Times()`, gMock will not try to infer the -cardinality itself. What if the number you specified is larger than there are -`WillOnce()` clauses? Well, after all `WillOnce()`s are used up, gMock will do -the *default* action for the function every time (unless, of course, you have a -`WillRepeatedly()`.). - -What can we do inside `WillOnce()` besides `Return()`? You can return a -reference using `ReturnRef(*variable*)`, or invoke a pre-defined function, among -[others](cook_book.md#using-actions). - -**Important note:** The `EXPECT_CALL()` statement evaluates the action clause -only once, even though the action may be performed many times. Therefore you -must be careful about side effects. The following may not do what you want: - -```cpp -using ::testing::Return; -... -int n = 100; -EXPECT_CALL(turtle, GetX()) - .Times(4) - .WillRepeatedly(Return(n++)); -``` - -Instead of returning 100, 101, 102, ..., consecutively, this mock function will -always return 100 as `n++` is only evaluated once. Similarly, `Return(new Foo)` -will create a new `Foo` object when the `EXPECT_CALL()` is executed, and will -return the same pointer every time. If you want the side effect to happen every -time, you need to define a custom action, which we'll teach in the -[cook book](http://). - -Time for another quiz! What do you think the following means? - -```cpp -using ::testing::Return; -... -EXPECT_CALL(turtle, GetY()) - .Times(4) - .WillOnce(Return(100)); -``` - -Obviously `turtle.GetY()` is expected to be called four times. But if you think -it will return 100 every time, think twice! Remember that one `WillOnce()` -clause will be consumed each time the function is invoked and the default action -will be taken afterwards. So the right answer is that `turtle.GetY()` will -return 100 the first time, but **return 0 from the second time on**, as -returning 0 is the default action for `int` functions. - -### Using Multiple Expectations {#MultiExpectations} - -So far we've only shown examples where you have a single expectation. More -realistically, you'll specify expectations on multiple mock methods which may be -from multiple mock objects. - -By default, when a mock method is invoked, gMock will search the expectations in -the **reverse order** they are defined, and stop when an active expectation that -matches the arguments is found (you can think of it as "newer rules override -older ones."). If the matching expectation cannot take any more calls, you will -get an upper-bound-violated failure. Here's an example: - -```cpp -using ::testing::_; -... -EXPECT_CALL(turtle, Forward(_)); // #1 -EXPECT_CALL(turtle, Forward(10)) // #2 - .Times(2); -``` - -If `Forward(10)` is called three times in a row, the third time it will be an -error, as the last matching expectation (#2) has been saturated. If, however, -the third `Forward(10)` call is replaced by `Forward(20)`, then it would be OK, -as now #1 will be the matching expectation. - -**Note:** Why does gMock search for a match in the *reverse* order of the -expectations? The reason is that this allows a user to set up the default -expectations in a mock object's constructor or the test fixture's set-up phase -and then customize the mock by writing more specific expectations in the test -body. So, if you have two expectations on the same method, you want to put the -one with more specific matchers **after** the other, or the more specific rule -would be shadowed by the more general one that comes after it. - -**Tip:** It is very common to start with a catch-all expectation for a method -and `Times(AnyNumber())` (omitting arguments, or with `_` for all arguments, if -overloaded). This makes any calls to the method expected. This is not necessary -for methods that are not mentioned at all (these are "uninteresting"), but is -useful for methods that have some expectations, but for which other calls are -ok. See -[Understanding Uninteresting vs Unexpected Calls](cook_book.md#uninteresting-vs-unexpected). - -### Ordered vs Unordered Calls {#OrderedCalls} - -By default, an expectation can match a call even though an earlier expectation -hasn't been satisfied. In other words, the calls don't have to occur in the -order the expectations are specified. - -Sometimes, you may want all the expected calls to occur in a strict order. To -say this in gMock is easy: - -```cpp -using ::testing::InSequence; -... -TEST(FooTest, DrawsLineSegment) { - ... - { - InSequence seq; - - EXPECT_CALL(turtle, PenDown()); - EXPECT_CALL(turtle, Forward(100)); - EXPECT_CALL(turtle, PenUp()); - } - Foo(); -} -``` - -By creating an object of type `InSequence`, all expectations in its scope are -put into a *sequence* and have to occur *sequentially*. Since we are just -relying on the constructor and destructor of this object to do the actual work, -its name is really irrelevant. - -In this example, we test that `Foo()` calls the three expected functions in the -order as written. If a call is made out-of-order, it will be an error. - -(What if you care about the relative order of some of the calls, but not all of -them? Can you specify an arbitrary partial order? The answer is ... yes! The -details can be found [here](cook_book.md#OrderedCalls).) - -### All Expectations Are Sticky (Unless Said Otherwise) {#StickyExpectations} - -Now let's do a quick quiz to see how well you can use this mock stuff already. -How would you test that the turtle is asked to go to the origin *exactly twice* -(you want to ignore any other instructions it receives)? - -After you've come up with your answer, take a look at ours and compare notes -(solve it yourself first - don't cheat!): - -```cpp -using ::testing::_; -using ::testing::AnyNumber; -... -EXPECT_CALL(turtle, GoTo(_, _)) // #1 - .Times(AnyNumber()); -EXPECT_CALL(turtle, GoTo(0, 0)) // #2 - .Times(2); -``` - -Suppose `turtle.GoTo(0, 0)` is called three times. In the third time, gMock will -see that the arguments match expectation #2 (remember that we always pick the -last matching expectation). Now, since we said that there should be only two -such calls, gMock will report an error immediately. This is basically what we've -told you in the [Using Multiple Expectations](#MultiExpectations) section above. - -This example shows that **expectations in gMock are "sticky" by default**, in -the sense that they remain active even after we have reached their invocation -upper bounds. This is an important rule to remember, as it affects the meaning -of the spec, and is **different** to how it's done in many other mocking -frameworks (Why'd we do that? Because we think our rule makes the common cases -easier to express and understand.). - -Simple? Let's see if you've really understood it: what does the following code -say? - -```cpp -using ::testing::Return; -... -for (int i = n; i > 0; i--) { - EXPECT_CALL(turtle, GetX()) - .WillOnce(Return(10*i)); -} -``` - -If you think it says that `turtle.GetX()` will be called `n` times and will -return 10, 20, 30, ..., consecutively, think twice! The problem is that, as we -said, expectations are sticky. So, the second time `turtle.GetX()` is called, -the last (latest) `EXPECT_CALL()` statement will match, and will immediately -lead to an "upper bound violated" error - this piece of code is not very useful! - -One correct way of saying that `turtle.GetX()` will return 10, 20, 30, ..., is -to explicitly say that the expectations are *not* sticky. In other words, they -should *retire* as soon as they are saturated: - -```cpp -using ::testing::Return; -... -for (int i = n; i > 0; i--) { - EXPECT_CALL(turtle, GetX()) - .WillOnce(Return(10*i)) - .RetiresOnSaturation(); -} -``` - -And, there's a better way to do it: in this case, we expect the calls to occur -in a specific order, and we line up the actions to match the order. Since the -order is important here, we should make it explicit using a sequence: - -```cpp -using ::testing::InSequence; -using ::testing::Return; -... -{ - InSequence s; - - for (int i = 1; i <= n; i++) { - EXPECT_CALL(turtle, GetX()) - .WillOnce(Return(10*i)) - .RetiresOnSaturation(); - } -} -``` - -By the way, the other situation where an expectation may *not* be sticky is when -it's in a sequence - as soon as another expectation that comes after it in the -sequence has been used, it automatically retires (and will never be used to -match any call). - -### Uninteresting Calls - -A mock object may have many methods, and not all of them are that interesting. -For example, in some tests we may not care about how many times `GetX()` and -`GetY()` get called. - -In gMock, if you are not interested in a method, just don't say anything about -it. If a call to this method occurs, you'll see a warning in the test output, -but it won't be a failure. This is called "naggy" behavior; to change, see -[The Nice, the Strict, and the Naggy](cook_book.md#NiceStrictNaggy). diff --git a/UnitTests_App/GoogleTest/googlemock/docs/gmock_faq.md b/UnitTests_App/GoogleTest/googlemock/docs/gmock_faq.md deleted file mode 100644 index 14acae5..0000000 --- a/UnitTests_App/GoogleTest/googlemock/docs/gmock_faq.md +++ /dev/null @@ -1,398 +0,0 @@ -## Legacy gMock FAQ {#GMockFaq} - - - - - -### When I call a method on my mock object, the method for the real object is invoked instead. What's the problem? - -In order for a method to be mocked, it must be *virtual*, unless you use the -[high-perf dependency injection technique](cook_book.md#MockingNonVirtualMethods). - -### Can I mock a variadic function? - -You cannot mock a variadic function (i.e. a function taking ellipsis (`...`) -arguments) directly in gMock. - -The problem is that in general, there is *no way* for a mock object to know how -many arguments are passed to the variadic method, and what the arguments' types -are. Only the *author of the base class* knows the protocol, and we cannot look -into his or her head. - -Therefore, to mock such a function, the *user* must teach the mock object how to -figure out the number of arguments and their types. One way to do it is to -provide overloaded versions of the function. - -Ellipsis arguments are inherited from C and not really a C++ feature. They are -unsafe to use and don't work with arguments that have constructors or -destructors. Therefore we recommend to avoid them in C++ as much as possible. - -### MSVC gives me warning C4301 or C4373 when I define a mock method with a const parameter. Why? - -If you compile this using Microsoft Visual C++ 2005 SP1: - -```cpp -class Foo { - ... - virtual void Bar(const int i) = 0; -}; - -class MockFoo : public Foo { - ... - MOCK_METHOD(void, Bar, (const int i), (override)); -}; -``` - -You may get the following warning: - -```shell -warning C4301: 'MockFoo::Bar': overriding virtual function only differs from 'Foo::Bar' by const/volatile qualifier -``` - -This is a MSVC bug. The same code compiles fine with gcc, for example. If you -use Visual C++ 2008 SP1, you would get the warning: - -```shell -warning C4373: 'MockFoo::Bar': virtual function overrides 'Foo::Bar', previous versions of the compiler did not override when parameters only differed by const/volatile qualifiers -``` - -In C++, if you *declare* a function with a `const` parameter, the `const` -modifier is ignored. Therefore, the `Foo` base class above is equivalent to: - -```cpp -class Foo { - ... - virtual void Bar(int i) = 0; // int or const int? Makes no difference. -}; -``` - -In fact, you can *declare* `Bar()` with an `int` parameter, and define it with a -`const int` parameter. The compiler will still match them up. - -Since making a parameter `const` is meaningless in the method declaration, we -recommend to remove it in both `Foo` and `MockFoo`. That should workaround the -VC bug. - -Note that we are talking about the *top-level* `const` modifier here. If the -function parameter is passed by pointer or reference, declaring the pointee or -referee as `const` is still meaningful. For example, the following two -declarations are *not* equivalent: - -```cpp -void Bar(int* p); // Neither p nor *p is const. -void Bar(const int* p); // p is not const, but *p is. -``` - - - -### I can't figure out why gMock thinks my expectations are not satisfied. What should I do? - -You might want to run your test with `--gmock_verbose=info`. This flag lets -gMock print a trace of every mock function call it receives. By studying the -trace, you'll gain insights on why the expectations you set are not met. - -If you see the message "The mock function has no default action set, and its -return type has no default value set.", then try -[adding a default action](for_dummies.md#DefaultValue). Due to a known issue, -unexpected calls on mocks without default actions don't print out a detailed -comparison between the actual arguments and the expected arguments. - -### My program crashed and `ScopedMockLog` spit out tons of messages. Is it a gMock bug? - -gMock and `ScopedMockLog` are likely doing the right thing here. - -When a test crashes, the failure signal handler will try to log a lot of -information (the stack trace, and the address map, for example). The messages -are compounded if you have many threads with depth stacks. When `ScopedMockLog` -intercepts these messages and finds that they don't match any expectations, it -prints an error for each of them. - -You can learn to ignore the errors, or you can rewrite your expectations to make -your test more robust, for example, by adding something like: - -```cpp -using ::testing::AnyNumber; -using ::testing::Not; -... - // Ignores any log not done by us. - EXPECT_CALL(log, Log(_, Not(EndsWith("/my_file.cc")), _)) - .Times(AnyNumber()); -``` - -### How can I assert that a function is NEVER called? - -```cpp -using ::testing::_; -... - EXPECT_CALL(foo, Bar(_)) - .Times(0); -``` - - - -### I have a failed test where gMock tells me TWICE that a particular expectation is not satisfied. Isn't this redundant? - -When gMock detects a failure, it prints relevant information (the mock function -arguments, the state of relevant expectations, and etc) to help the user debug. -If another failure is detected, gMock will do the same, including printing the -state of relevant expectations. - -Sometimes an expectation's state didn't change between two failures, and you'll -see the same description of the state twice. They are however *not* redundant, -as they refer to *different points in time*. The fact they are the same *is* -interesting information. - -### I get a heapcheck failure when using a mock object, but using a real object is fine. What can be wrong? - -Does the class (hopefully a pure interface) you are mocking have a virtual -destructor? - -Whenever you derive from a base class, make sure its destructor is virtual. -Otherwise Bad Things will happen. Consider the following code: - -```cpp -class Base { - public: - // Not virtual, but should be. - ~Base() { ... } - ... -}; - -class Derived : public Base { - public: - ... - private: - std::string value_; -}; - -... - Base* p = new Derived; - ... - delete p; // Surprise! ~Base() will be called, but ~Derived() will not - // - value_ is leaked. -``` - -By changing `~Base()` to virtual, `~Derived()` will be correctly called when -`delete p` is executed, and the heap checker will be happy. - -### The "newer expectations override older ones" rule makes writing expectations awkward. Why does gMock do that? - -When people complain about this, often they are referring to code like: - -```cpp -using ::testing::Return; -... - // foo.Bar() should be called twice, return 1 the first time, and return - // 2 the second time. However, I have to write the expectations in the - // reverse order. This sucks big time!!! - EXPECT_CALL(foo, Bar()) - .WillOnce(Return(2)) - .RetiresOnSaturation(); - EXPECT_CALL(foo, Bar()) - .WillOnce(Return(1)) - .RetiresOnSaturation(); -``` - -The problem, is that they didn't pick the **best** way to express the test's -intent. - -By default, expectations don't have to be matched in *any* particular order. If -you want them to match in a certain order, you need to be explicit. This is -gMock's (and jMock's) fundamental philosophy: it's easy to accidentally -over-specify your tests, and we want to make it harder to do so. - -There are two better ways to write the test spec. You could either put the -expectations in sequence: - -```cpp -using ::testing::Return; -... - // foo.Bar() should be called twice, return 1 the first time, and return - // 2 the second time. Using a sequence, we can write the expectations - // in their natural order. - { - InSequence s; - EXPECT_CALL(foo, Bar()) - .WillOnce(Return(1)) - .RetiresOnSaturation(); - EXPECT_CALL(foo, Bar()) - .WillOnce(Return(2)) - .RetiresOnSaturation(); - } -``` - -or you can put the sequence of actions in the same expectation: - -```cpp -using ::testing::Return; -... - // foo.Bar() should be called twice, return 1 the first time, and return - // 2 the second time. - EXPECT_CALL(foo, Bar()) - .WillOnce(Return(1)) - .WillOnce(Return(2)) - .RetiresOnSaturation(); -``` - -Back to the original questions: why does gMock search the expectations (and -`ON_CALL`s) from back to front? Because this allows a user to set up a mock's -behavior for the common case early (e.g. in the mock's constructor or the test -fixture's set-up phase) and customize it with more specific rules later. If -gMock searches from front to back, this very useful pattern won't be possible. - -### gMock prints a warning when a function without EXPECT_CALL is called, even if I have set its behavior using ON_CALL. Would it be reasonable not to show the warning in this case? - -When choosing between being neat and being safe, we lean toward the latter. So -the answer is that we think it's better to show the warning. - -Often people write `ON_CALL`s in the mock object's constructor or `SetUp()`, as -the default behavior rarely changes from test to test. Then in the test body -they set the expectations, which are often different for each test. Having an -`ON_CALL` in the set-up part of a test doesn't mean that the calls are expected. -If there's no `EXPECT_CALL` and the method is called, it's possibly an error. If -we quietly let the call go through without notifying the user, bugs may creep in -unnoticed. - -If, however, you are sure that the calls are OK, you can write - -```cpp -using ::testing::_; -... - EXPECT_CALL(foo, Bar(_)) - .WillRepeatedly(...); -``` - -instead of - -```cpp -using ::testing::_; -... - ON_CALL(foo, Bar(_)) - .WillByDefault(...); -``` - -This tells gMock that you do expect the calls and no warning should be printed. - -Also, you can control the verbosity by specifying `--gmock_verbose=error`. Other -values are `info` and `warning`. If you find the output too noisy when -debugging, just choose a less verbose level. - -### How can I delete the mock function's argument in an action? - -If your mock function takes a pointer argument and you want to delete that -argument, you can use testing::DeleteArg() to delete the N'th (zero-indexed) -argument: - -```cpp -using ::testing::_; - ... - MOCK_METHOD(void, Bar, (X* x, const Y& y)); - ... - EXPECT_CALL(mock_foo_, Bar(_, _)) - .WillOnce(testing::DeleteArg<0>())); -``` - -### How can I perform an arbitrary action on a mock function's argument? - -If you find yourself needing to perform some action that's not supported by -gMock directly, remember that you can define your own actions using -[`MakeAction()`](#NewMonoActions) or -[`MakePolymorphicAction()`](#NewPolyActions), or you can write a stub function -and invoke it using [`Invoke()`](#FunctionsAsActions). - -```cpp -using ::testing::_; -using ::testing::Invoke; - ... - MOCK_METHOD(void, Bar, (X* p)); - ... - EXPECT_CALL(mock_foo_, Bar(_)) - .WillOnce(Invoke(MyAction(...))); -``` - -### My code calls a static/global function. Can I mock it? - -You can, but you need to make some changes. - -In general, if you find yourself needing to mock a static function, it's a sign -that your modules are too tightly coupled (and less flexible, less reusable, -less testable, etc). You are probably better off defining a small interface and -call the function through that interface, which then can be easily mocked. It's -a bit of work initially, but usually pays for itself quickly. - -This Google Testing Blog -[post](https://testing.googleblog.com/2008/06/defeat-static-cling.html) says it -excellently. Check it out. - -### My mock object needs to do complex stuff. It's a lot of pain to specify the actions. gMock sucks! - -I know it's not a question, but you get an answer for free any way. :-) - -With gMock, you can create mocks in C++ easily. And people might be tempted to -use them everywhere. Sometimes they work great, and sometimes you may find them, -well, a pain to use. So, what's wrong in the latter case? - -When you write a test without using mocks, you exercise the code and assert that -it returns the correct value or that the system is in an expected state. This is -sometimes called "state-based testing". - -Mocks are great for what some call "interaction-based" testing: instead of -checking the system state at the very end, mock objects verify that they are -invoked the right way and report an error as soon as it arises, giving you a -handle on the precise context in which the error was triggered. This is often -more effective and economical to do than state-based testing. - -If you are doing state-based testing and using a test double just to simulate -the real object, you are probably better off using a fake. Using a mock in this -case causes pain, as it's not a strong point for mocks to perform complex -actions. If you experience this and think that mocks suck, you are just not -using the right tool for your problem. Or, you might be trying to solve the -wrong problem. :-) - -### I got a warning "Uninteresting function call encountered - default action taken.." Should I panic? - -By all means, NO! It's just an FYI. :-) - -What it means is that you have a mock function, you haven't set any expectations -on it (by gMock's rule this means that you are not interested in calls to this -function and therefore it can be called any number of times), and it is called. -That's OK - you didn't say it's not OK to call the function! - -What if you actually meant to disallow this function to be called, but forgot to -write `EXPECT_CALL(foo, Bar()).Times(0)`? While one can argue that it's the -user's fault, gMock tries to be nice and prints you a note. - -So, when you see the message and believe that there shouldn't be any -uninteresting calls, you should investigate what's going on. To make your life -easier, gMock dumps the stack trace when an uninteresting call is encountered. -From that you can figure out which mock function it is, and how it is called. - -### I want to define a custom action. Should I use Invoke() or implement the ActionInterface interface? - -Either way is fine - you want to choose the one that's more convenient for your -circumstance. - -Usually, if your action is for a particular function type, defining it using -`Invoke()` should be easier; if your action can be used in functions of -different types (e.g. if you are defining `Return(*value*)`), -`MakePolymorphicAction()` is easiest. Sometimes you want precise control on what -types of functions the action can be used in, and implementing `ActionInterface` -is the way to go here. See the implementation of `Return()` in -`testing/base/public/gmock-actions.h` for an example. - -### I use SetArgPointee() in WillOnce(), but gcc complains about "conflicting return type specified". What does it mean? - -You got this error as gMock has no idea what value it should return when the -mock method is called. `SetArgPointee()` says what the side effect is, but -doesn't say what the return value should be. You need `DoAll()` to chain a -`SetArgPointee()` with a `Return()` that provides a value appropriate to the API -being mocked. - -See this [recipe](cook_book.md#mocking-side-effects) for more details and an -example. - -### I have a huge mock class, and Microsoft Visual C++ runs out of memory when compiling it. What can I do? - -We've noticed that when the `/clr` compiler flag is used, Visual C++ uses 5~6 -times as much memory when compiling a mock class. We suggest to avoid `/clr` -when compiling native C++ mocks. diff --git a/UnitTests_App/GoogleTest/googlemock/docs/pump_manual.md b/UnitTests_App/GoogleTest/googlemock/docs/pump_manual.md deleted file mode 100644 index 17fb370..0000000 --- a/UnitTests_App/GoogleTest/googlemock/docs/pump_manual.md +++ /dev/null @@ -1,189 +0,0 @@ -Pump is Useful for Meta Programming. - - - -# The Problem - -Template and macro libraries often need to define many classes, functions, or -macros that vary only (or almost only) in the number of arguments they take. -It's a lot of repetitive, mechanical, and error-prone work. - -Our experience is that it's tedious to write custom scripts, which tend to -reflect the structure of the generated code poorly and are often hard to read -and edit. For example, a small change needed in the generated code may require -some non-intuitive, non-trivial changes in the script. This is especially -painful when experimenting with the code. - -This script may be useful for generating meta code, for example a series of -macros of FOO1, FOO2, etc. Nevertheless, please make it your last resort -technique by favouring C++ template metaprogramming or variadic macros. - -# Our Solution - -Pump (for Pump is Useful for Meta Programming, Pretty Useful for Meta -Programming, or Practical Utility for Meta Programming, whichever you prefer) is -a simple meta-programming tool for C++. The idea is that a programmer writes a -`foo.pump` file which contains C++ code plus meta code that manipulates the C++ -code. The meta code can handle iterations over a range, nested iterations, local -meta variable definitions, simple arithmetic, and conditional expressions. You -can view it as a small Domain-Specific Language. The meta language is designed -to be non-intrusive (s.t. it won't confuse Emacs' C++ mode, for example) and -concise, making Pump code intuitive and easy to maintain. - -## Highlights - -* The implementation is in a single Python script and thus ultra portable: no - build or installation is needed and it works cross platforms. -* Pump tries to be smart with respect to - [Google's style guide](https://github.com/google/styleguide): it breaks long - lines (easy to have when they are generated) at acceptable places to fit - within 80 columns and indent the continuation lines correctly. -* The format is human-readable and more concise than XML. -* The format works relatively well with Emacs' C++ mode. - -## Examples - -The following Pump code (where meta keywords start with `$`, `[[` and `]]` are -meta brackets, and `$$` starts a meta comment that ends with the line): - -``` -$var n = 3 $$ Defines a meta variable n. -$range i 0..n $$ Declares the range of meta iterator i (inclusive). -$for i [[ - $$ Meta loop. -// Foo$i does blah for $i-ary predicates. -$range j 1..i -template -class Foo$i { -$if i == 0 [[ - blah a; -]] $elif i <= 2 [[ - blah b; -]] $else [[ - blah c; -]] -}; - -]] -``` - -will be translated by the Pump compiler to: - -```cpp -// Foo0 does blah for 0-ary predicates. -template -class Foo0 { - blah a; -}; - -// Foo1 does blah for 1-ary predicates. -template -class Foo1 { - blah b; -}; - -// Foo2 does blah for 2-ary predicates. -template -class Foo2 { - blah b; -}; - -// Foo3 does blah for 3-ary predicates. -template -class Foo3 { - blah c; -}; -``` - -In another example, - -``` -$range i 1..n -Func($for i + [[a$i]]); -$$ The text between i and [[ is the separator between iterations. -``` - -will generate one of the following lines (without the comments), depending on -the value of `n`: - -```cpp -Func(); // If n is 0. -Func(a1); // If n is 1. -Func(a1 + a2); // If n is 2. -Func(a1 + a2 + a3); // If n is 3. -// And so on... -``` - -## Constructs - -We support the following meta programming constructs: - -| `$var id = exp` | Defines a named constant value. `$id` is | -: : valid until the end of the current meta : -: : lexical block. : -| :------------------------------- | :--------------------------------------- | -| `$range id exp..exp` | Sets the range of an iteration variable, | -: : which can be reused in multiple loops : -: : later. : -| `$for id sep [[ code ]]` | Iteration. The range of `id` must have | -: : been defined earlier. `$id` is valid in : -: : `code`. : -| `$($)` | Generates a single `$` character. | -| `$id` | Value of the named constant or iteration | -: : variable. : -| `$(exp)` | Value of the expression. | -| `$if exp [[ code ]] else_branch` | Conditional. | -| `[[ code ]]` | Meta lexical block. | -| `cpp_code` | Raw C++ code. | -| `$$ comment` | Meta comment. | - -**Note:** To give the user some freedom in formatting the Pump source code, Pump -ignores a new-line character if it's right after `$for foo` or next to `[[` or -`]]`. Without this rule you'll often be forced to write very long lines to get -the desired output. Therefore sometimes you may need to insert an extra new-line -in such places for a new-line to show up in your output. - -## Grammar - -```ebnf -code ::= atomic_code* -atomic_code ::= $var id = exp - | $var id = [[ code ]] - | $range id exp..exp - | $for id sep [[ code ]] - | $($) - | $id - | $(exp) - | $if exp [[ code ]] else_branch - | [[ code ]] - | cpp_code -sep ::= cpp_code | empty_string -else_branch ::= $else [[ code ]] - | $elif exp [[ code ]] else_branch - | empty_string -exp ::= simple_expression_in_Python_syntax -``` - -## Code - -You can find the source code of Pump in [scripts/pump.py](../scripts/pump.py). -It is still very unpolished and lacks automated tests, although it has been -successfully used many times. If you find a chance to use it in your project, -please let us know what you think! We also welcome help on improving Pump. - -## Real Examples - -You can find real-world applications of Pump in -[Google Test](https://github.com/google/googletest/tree/master/googletest) and -[Google Mock](https://github.com/google/googletest/tree/master/googlemock). The -source file `foo.h.pump` generates `foo.h`. - -## Tips - -* If a meta variable is followed by a letter or digit, you can separate them - using `[[]]`, which inserts an empty string. For example `Foo$j[[]]Helper` - generate `Foo1Helper` when `j` is 1. -* To avoid extra-long Pump source lines, you can break a line anywhere you - want by inserting `[[]]` followed by a new line. Since any new-line - character next to `[[` or `]]` is ignored, the generated code won't contain - this new line. diff --git a/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-actions.h b/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-actions.h deleted file mode 100644 index fb33f7b..0000000 --- a/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-actions.h +++ /dev/null @@ -1,1688 +0,0 @@ -// Copyright 2007, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -// Google Mock - a framework for writing C++ mock classes. -// -// The ACTION* family of macros can be used in a namespace scope to -// define custom actions easily. The syntax: -// -// ACTION(name) { statements; } -// -// will define an action with the given name that executes the -// statements. The value returned by the statements will be used as -// the return value of the action. Inside the statements, you can -// refer to the K-th (0-based) argument of the mock function by -// 'argK', and refer to its type by 'argK_type'. For example: -// -// ACTION(IncrementArg1) { -// arg1_type temp = arg1; -// return ++(*temp); -// } -// -// allows you to write -// -// ...WillOnce(IncrementArg1()); -// -// You can also refer to the entire argument tuple and its type by -// 'args' and 'args_type', and refer to the mock function type and its -// return type by 'function_type' and 'return_type'. -// -// Note that you don't need to specify the types of the mock function -// arguments. However rest assured that your code is still type-safe: -// you'll get a compiler error if *arg1 doesn't support the ++ -// operator, or if the type of ++(*arg1) isn't compatible with the -// mock function's return type, for example. -// -// Sometimes you'll want to parameterize the action. For that you can use -// another macro: -// -// ACTION_P(name, param_name) { statements; } -// -// For example: -// -// ACTION_P(Add, n) { return arg0 + n; } -// -// will allow you to write: -// -// ...WillOnce(Add(5)); -// -// Note that you don't need to provide the type of the parameter -// either. If you need to reference the type of a parameter named -// 'foo', you can write 'foo_type'. For example, in the body of -// ACTION_P(Add, n) above, you can write 'n_type' to refer to the type -// of 'n'. -// -// We also provide ACTION_P2, ACTION_P3, ..., up to ACTION_P10 to support -// multi-parameter actions. -// -// For the purpose of typing, you can view -// -// ACTION_Pk(Foo, p1, ..., pk) { ... } -// -// as shorthand for -// -// template -// FooActionPk Foo(p1_type p1, ..., pk_type pk) { ... } -// -// In particular, you can provide the template type arguments -// explicitly when invoking Foo(), as in Foo(5, false); -// although usually you can rely on the compiler to infer the types -// for you automatically. You can assign the result of expression -// Foo(p1, ..., pk) to a variable of type FooActionPk. This can be useful when composing actions. -// -// You can also overload actions with different numbers of parameters: -// -// ACTION_P(Plus, a) { ... } -// ACTION_P2(Plus, a, b) { ... } -// -// While it's tempting to always use the ACTION* macros when defining -// a new action, you should also consider implementing ActionInterface -// or using MakePolymorphicAction() instead, especially if you need to -// use the action a lot. While these approaches require more work, -// they give you more control on the types of the mock function -// arguments and the action parameters, which in general leads to -// better compiler error messages that pay off in the long run. They -// also allow overloading actions based on parameter types (as opposed -// to just based on the number of parameters). -// -// CAVEAT: -// -// ACTION*() can only be used in a namespace scope as templates cannot be -// declared inside of a local class. -// Users can, however, define any local functors (e.g. a lambda) that -// can be used as actions. -// -// MORE INFORMATION: -// -// To learn more about using these macros, please search for 'ACTION' on -// https://github.com/google/googletest/blob/master/googlemock/docs/cook_book.md - -// GOOGLETEST_CM0002 DO NOT DELETE - -#ifndef GMOCK_INCLUDE_GMOCK_GMOCK_ACTIONS_H_ -#define GMOCK_INCLUDE_GMOCK_GMOCK_ACTIONS_H_ - -#ifndef _WIN32_WCE -# include -#endif - -#include -#include -#include -#include -#include -#include -#include - -#include "gmock/internal/gmock-internal-utils.h" -#include "gmock/internal/gmock-port.h" -#include "gmock/internal/gmock-pp.h" - -#ifdef _MSC_VER -# pragma warning(push) -# pragma warning(disable:4100) -#endif - -namespace testing { - -// To implement an action Foo, define: -// 1. a class FooAction that implements the ActionInterface interface, and -// 2. a factory function that creates an Action object from a -// const FooAction*. -// -// The two-level delegation design follows that of Matcher, providing -// consistency for extension developers. It also eases ownership -// management as Action objects can now be copied like plain values. - -namespace internal { - -// BuiltInDefaultValueGetter::Get() returns a -// default-constructed T value. BuiltInDefaultValueGetter::Get() crashes with an error. -// -// This primary template is used when kDefaultConstructible is true. -template -struct BuiltInDefaultValueGetter { - static T Get() { return T(); } -}; -template -struct BuiltInDefaultValueGetter { - static T Get() { - Assert(false, __FILE__, __LINE__, - "Default action undefined for the function return type."); - return internal::Invalid(); - // The above statement will never be reached, but is required in - // order for this function to compile. - } -}; - -// BuiltInDefaultValue::Get() returns the "built-in" default value -// for type T, which is NULL when T is a raw pointer type, 0 when T is -// a numeric type, false when T is bool, or "" when T is string or -// std::string. In addition, in C++11 and above, it turns a -// default-constructed T value if T is default constructible. For any -// other type T, the built-in default T value is undefined, and the -// function will abort the process. -template -class BuiltInDefaultValue { - public: - // This function returns true if and only if type T has a built-in default - // value. - static bool Exists() { - return ::std::is_default_constructible::value; - } - - static T Get() { - return BuiltInDefaultValueGetter< - T, ::std::is_default_constructible::value>::Get(); - } -}; - -// This partial specialization says that we use the same built-in -// default value for T and const T. -template -class BuiltInDefaultValue { - public: - static bool Exists() { return BuiltInDefaultValue::Exists(); } - static T Get() { return BuiltInDefaultValue::Get(); } -}; - -// This partial specialization defines the default values for pointer -// types. -template -class BuiltInDefaultValue { - public: - static bool Exists() { return true; } - static T* Get() { return nullptr; } -}; - -// The following specializations define the default values for -// specific types we care about. -#define GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(type, value) \ - template <> \ - class BuiltInDefaultValue { \ - public: \ - static bool Exists() { return true; } \ - static type Get() { return value; } \ - } - -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(void, ); // NOLINT -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(::std::string, ""); -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(bool, false); -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(unsigned char, '\0'); -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(signed char, '\0'); -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(char, '\0'); - -// There's no need for a default action for signed wchar_t, as that -// type is the same as wchar_t for gcc, and invalid for MSVC. -// -// There's also no need for a default action for unsigned wchar_t, as -// that type is the same as unsigned int for gcc, and invalid for -// MSVC. -#if GMOCK_WCHAR_T_IS_NATIVE_ -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(wchar_t, 0U); // NOLINT -#endif - -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(unsigned short, 0U); // NOLINT -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(signed short, 0); // NOLINT -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(unsigned int, 0U); -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(signed int, 0); -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(unsigned long, 0UL); // NOLINT -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(signed long, 0L); // NOLINT -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(unsigned long long, 0); // NOLINT -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(signed long long, 0); // NOLINT -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(float, 0); -GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(double, 0); - -#undef GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_ - -// Simple two-arg form of std::disjunction. -template -using disjunction = typename ::std::conditional::type; - -} // namespace internal - -// When an unexpected function call is encountered, Google Mock will -// let it return a default value if the user has specified one for its -// return type, or if the return type has a built-in default value; -// otherwise Google Mock won't know what value to return and will have -// to abort the process. -// -// The DefaultValue class allows a user to specify the -// default value for a type T that is both copyable and publicly -// destructible (i.e. anything that can be used as a function return -// type). The usage is: -// -// // Sets the default value for type T to be foo. -// DefaultValue::Set(foo); -template -class DefaultValue { - public: - // Sets the default value for type T; requires T to be - // copy-constructable and have a public destructor. - static void Set(T x) { - delete producer_; - producer_ = new FixedValueProducer(x); - } - - // Provides a factory function to be called to generate the default value. - // This method can be used even if T is only move-constructible, but it is not - // limited to that case. - typedef T (*FactoryFunction)(); - static void SetFactory(FactoryFunction factory) { - delete producer_; - producer_ = new FactoryValueProducer(factory); - } - - // Unsets the default value for type T. - static void Clear() { - delete producer_; - producer_ = nullptr; - } - - // Returns true if and only if the user has set the default value for type T. - static bool IsSet() { return producer_ != nullptr; } - - // Returns true if T has a default return value set by the user or there - // exists a built-in default value. - static bool Exists() { - return IsSet() || internal::BuiltInDefaultValue::Exists(); - } - - // Returns the default value for type T if the user has set one; - // otherwise returns the built-in default value. Requires that Exists() - // is true, which ensures that the return value is well-defined. - static T Get() { - return producer_ == nullptr ? internal::BuiltInDefaultValue::Get() - : producer_->Produce(); - } - - private: - class ValueProducer { - public: - virtual ~ValueProducer() {} - virtual T Produce() = 0; - }; - - class FixedValueProducer : public ValueProducer { - public: - explicit FixedValueProducer(T value) : value_(value) {} - T Produce() override { return value_; } - - private: - const T value_; - GTEST_DISALLOW_COPY_AND_ASSIGN_(FixedValueProducer); - }; - - class FactoryValueProducer : public ValueProducer { - public: - explicit FactoryValueProducer(FactoryFunction factory) - : factory_(factory) {} - T Produce() override { return factory_(); } - - private: - const FactoryFunction factory_; - GTEST_DISALLOW_COPY_AND_ASSIGN_(FactoryValueProducer); - }; - - static ValueProducer* producer_; -}; - -// This partial specialization allows a user to set default values for -// reference types. -template -class DefaultValue { - public: - // Sets the default value for type T&. - static void Set(T& x) { // NOLINT - address_ = &x; - } - - // Unsets the default value for type T&. - static void Clear() { address_ = nullptr; } - - // Returns true if and only if the user has set the default value for type T&. - static bool IsSet() { return address_ != nullptr; } - - // Returns true if T has a default return value set by the user or there - // exists a built-in default value. - static bool Exists() { - return IsSet() || internal::BuiltInDefaultValue::Exists(); - } - - // Returns the default value for type T& if the user has set one; - // otherwise returns the built-in default value if there is one; - // otherwise aborts the process. - static T& Get() { - return address_ == nullptr ? internal::BuiltInDefaultValue::Get() - : *address_; - } - - private: - static T* address_; -}; - -// This specialization allows DefaultValue::Get() to -// compile. -template <> -class DefaultValue { - public: - static bool Exists() { return true; } - static void Get() {} -}; - -// Points to the user-set default value for type T. -template -typename DefaultValue::ValueProducer* DefaultValue::producer_ = nullptr; - -// Points to the user-set default value for type T&. -template -T* DefaultValue::address_ = nullptr; - -// Implement this interface to define an action for function type F. -template -class ActionInterface { - public: - typedef typename internal::Function::Result Result; - typedef typename internal::Function::ArgumentTuple ArgumentTuple; - - ActionInterface() {} - virtual ~ActionInterface() {} - - // Performs the action. This method is not const, as in general an - // action can have side effects and be stateful. For example, a - // get-the-next-element-from-the-collection action will need to - // remember the current element. - virtual Result Perform(const ArgumentTuple& args) = 0; - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(ActionInterface); -}; - -// An Action is a copyable and IMMUTABLE (except by assignment) -// object that represents an action to be taken when a mock function -// of type F is called. The implementation of Action is just a -// std::shared_ptr to const ActionInterface. Don't inherit from Action! -// You can view an object implementing ActionInterface as a -// concrete action (including its current state), and an Action -// object as a handle to it. -template -class Action { - // Adapter class to allow constructing Action from a legacy ActionInterface. - // New code should create Actions from functors instead. - struct ActionAdapter { - // Adapter must be copyable to satisfy std::function requirements. - ::std::shared_ptr> impl_; - - template - typename internal::Function::Result operator()(Args&&... args) { - return impl_->Perform( - ::std::forward_as_tuple(::std::forward(args)...)); - } - }; - - template - using IsCompatibleFunctor = std::is_constructible, G>; - - public: - typedef typename internal::Function::Result Result; - typedef typename internal::Function::ArgumentTuple ArgumentTuple; - - // Constructs a null Action. Needed for storing Action objects in - // STL containers. - Action() {} - - // Construct an Action from a specified callable. - // This cannot take std::function directly, because then Action would not be - // directly constructible from lambda (it would require two conversions). - template < - typename G, - typename = typename std::enable_if, std::is_constructible, - G>>::value>::type> - Action(G&& fun) { // NOLINT - Init(::std::forward(fun), IsCompatibleFunctor()); - } - - // Constructs an Action from its implementation. - explicit Action(ActionInterface* impl) - : fun_(ActionAdapter{::std::shared_ptr>(impl)}) {} - - // This constructor allows us to turn an Action object into an - // Action, as long as F's arguments can be implicitly converted - // to Func's and Func's return type can be implicitly converted to F's. - template - explicit Action(const Action& action) : fun_(action.fun_) {} - - // Returns true if and only if this is the DoDefault() action. - bool IsDoDefault() const { return fun_ == nullptr; } - - // Performs the action. Note that this method is const even though - // the corresponding method in ActionInterface is not. The reason - // is that a const Action means that it cannot be re-bound to - // another concrete action, not that the concrete action it binds to - // cannot change state. (Think of the difference between a const - // pointer and a pointer to const.) - Result Perform(ArgumentTuple args) const { - if (IsDoDefault()) { - internal::IllegalDoDefault(__FILE__, __LINE__); - } - return internal::Apply(fun_, ::std::move(args)); - } - - private: - template - friend class Action; - - template - void Init(G&& g, ::std::true_type) { - fun_ = ::std::forward(g); - } - - template - void Init(G&& g, ::std::false_type) { - fun_ = IgnoreArgs::type>{::std::forward(g)}; - } - - template - struct IgnoreArgs { - template - Result operator()(const Args&...) const { - return function_impl(); - } - - FunctionImpl function_impl; - }; - - // fun_ is an empty function if and only if this is the DoDefault() action. - ::std::function fun_; -}; - -// The PolymorphicAction class template makes it easy to implement a -// polymorphic action (i.e. an action that can be used in mock -// functions of than one type, e.g. Return()). -// -// To define a polymorphic action, a user first provides a COPYABLE -// implementation class that has a Perform() method template: -// -// class FooAction { -// public: -// template -// Result Perform(const ArgumentTuple& args) const { -// // Processes the arguments and returns a result, using -// // std::get(args) to get the N-th (0-based) argument in the tuple. -// } -// ... -// }; -// -// Then the user creates the polymorphic action using -// MakePolymorphicAction(object) where object has type FooAction. See -// the definition of Return(void) and SetArgumentPointee(value) for -// complete examples. -template -class PolymorphicAction { - public: - explicit PolymorphicAction(const Impl& impl) : impl_(impl) {} - - template - operator Action() const { - return Action(new MonomorphicImpl(impl_)); - } - - private: - template - class MonomorphicImpl : public ActionInterface { - public: - typedef typename internal::Function::Result Result; - typedef typename internal::Function::ArgumentTuple ArgumentTuple; - - explicit MonomorphicImpl(const Impl& impl) : impl_(impl) {} - - Result Perform(const ArgumentTuple& args) override { - return impl_.template Perform(args); - } - - private: - Impl impl_; - }; - - Impl impl_; -}; - -// Creates an Action from its implementation and returns it. The -// created Action object owns the implementation. -template -Action MakeAction(ActionInterface* impl) { - return Action(impl); -} - -// Creates a polymorphic action from its implementation. This is -// easier to use than the PolymorphicAction constructor as it -// doesn't require you to explicitly write the template argument, e.g. -// -// MakePolymorphicAction(foo); -// vs -// PolymorphicAction(foo); -template -inline PolymorphicAction MakePolymorphicAction(const Impl& impl) { - return PolymorphicAction(impl); -} - -namespace internal { - -// Helper struct to specialize ReturnAction to execute a move instead of a copy -// on return. Useful for move-only types, but could be used on any type. -template -struct ByMoveWrapper { - explicit ByMoveWrapper(T value) : payload(std::move(value)) {} - T payload; -}; - -// Implements the polymorphic Return(x) action, which can be used in -// any function that returns the type of x, regardless of the argument -// types. -// -// Note: The value passed into Return must be converted into -// Function::Result when this action is cast to Action rather than -// when that action is performed. This is important in scenarios like -// -// MOCK_METHOD1(Method, T(U)); -// ... -// { -// Foo foo; -// X x(&foo); -// EXPECT_CALL(mock, Method(_)).WillOnce(Return(x)); -// } -// -// In the example above the variable x holds reference to foo which leaves -// scope and gets destroyed. If copying X just copies a reference to foo, -// that copy will be left with a hanging reference. If conversion to T -// makes a copy of foo, the above code is safe. To support that scenario, we -// need to make sure that the type conversion happens inside the EXPECT_CALL -// statement, and conversion of the result of Return to Action is a -// good place for that. -// -// The real life example of the above scenario happens when an invocation -// of gtl::Container() is passed into Return. -// -template -class ReturnAction { - public: - // Constructs a ReturnAction object from the value to be returned. - // 'value' is passed by value instead of by const reference in order - // to allow Return("string literal") to compile. - explicit ReturnAction(R value) : value_(new R(std::move(value))) {} - - // This template type conversion operator allows Return(x) to be - // used in ANY function that returns x's type. - template - operator Action() const { // NOLINT - // Assert statement belongs here because this is the best place to verify - // conditions on F. It produces the clearest error messages - // in most compilers. - // Impl really belongs in this scope as a local class but can't - // because MSVC produces duplicate symbols in different translation units - // in this case. Until MS fixes that bug we put Impl into the class scope - // and put the typedef both here (for use in assert statement) and - // in the Impl class. But both definitions must be the same. - typedef typename Function::Result Result; - GTEST_COMPILE_ASSERT_( - !std::is_reference::value, - use_ReturnRef_instead_of_Return_to_return_a_reference); - static_assert(!std::is_void::value, - "Can't use Return() on an action expected to return `void`."); - return Action(new Impl(value_)); - } - - private: - // Implements the Return(x) action for a particular function type F. - template - class Impl : public ActionInterface { - public: - typedef typename Function::Result Result; - typedef typename Function::ArgumentTuple ArgumentTuple; - - // The implicit cast is necessary when Result has more than one - // single-argument constructor (e.g. Result is std::vector) and R - // has a type conversion operator template. In that case, value_(value) - // won't compile as the compiler doesn't known which constructor of - // Result to call. ImplicitCast_ forces the compiler to convert R to - // Result without considering explicit constructors, thus resolving the - // ambiguity. value_ is then initialized using its copy constructor. - explicit Impl(const std::shared_ptr& value) - : value_before_cast_(*value), - value_(ImplicitCast_(value_before_cast_)) {} - - Result Perform(const ArgumentTuple&) override { return value_; } - - private: - GTEST_COMPILE_ASSERT_(!std::is_reference::value, - Result_cannot_be_a_reference_type); - // We save the value before casting just in case it is being cast to a - // wrapper type. - R value_before_cast_; - Result value_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(Impl); - }; - - // Partially specialize for ByMoveWrapper. This version of ReturnAction will - // move its contents instead. - template - class Impl, F> : public ActionInterface { - public: - typedef typename Function::Result Result; - typedef typename Function::ArgumentTuple ArgumentTuple; - - explicit Impl(const std::shared_ptr& wrapper) - : performed_(false), wrapper_(wrapper) {} - - Result Perform(const ArgumentTuple&) override { - GTEST_CHECK_(!performed_) - << "A ByMove() action should only be performed once."; - performed_ = true; - return std::move(wrapper_->payload); - } - - private: - bool performed_; - const std::shared_ptr wrapper_; - }; - - const std::shared_ptr value_; -}; - -// Implements the ReturnNull() action. -class ReturnNullAction { - public: - // Allows ReturnNull() to be used in any pointer-returning function. In C++11 - // this is enforced by returning nullptr, and in non-C++11 by asserting a - // pointer type on compile time. - template - static Result Perform(const ArgumentTuple&) { - return nullptr; - } -}; - -// Implements the Return() action. -class ReturnVoidAction { - public: - // Allows Return() to be used in any void-returning function. - template - static void Perform(const ArgumentTuple&) { - static_assert(std::is_void::value, "Result should be void."); - } -}; - -// Implements the polymorphic ReturnRef(x) action, which can be used -// in any function that returns a reference to the type of x, -// regardless of the argument types. -template -class ReturnRefAction { - public: - // Constructs a ReturnRefAction object from the reference to be returned. - explicit ReturnRefAction(T& ref) : ref_(ref) {} // NOLINT - - // This template type conversion operator allows ReturnRef(x) to be - // used in ANY function that returns a reference to x's type. - template - operator Action() const { - typedef typename Function::Result Result; - // Asserts that the function return type is a reference. This - // catches the user error of using ReturnRef(x) when Return(x) - // should be used, and generates some helpful error message. - GTEST_COMPILE_ASSERT_(std::is_reference::value, - use_Return_instead_of_ReturnRef_to_return_a_value); - return Action(new Impl(ref_)); - } - - private: - // Implements the ReturnRef(x) action for a particular function type F. - template - class Impl : public ActionInterface { - public: - typedef typename Function::Result Result; - typedef typename Function::ArgumentTuple ArgumentTuple; - - explicit Impl(T& ref) : ref_(ref) {} // NOLINT - - Result Perform(const ArgumentTuple&) override { return ref_; } - - private: - T& ref_; - }; - - T& ref_; -}; - -// Implements the polymorphic ReturnRefOfCopy(x) action, which can be -// used in any function that returns a reference to the type of x, -// regardless of the argument types. -template -class ReturnRefOfCopyAction { - public: - // Constructs a ReturnRefOfCopyAction object from the reference to - // be returned. - explicit ReturnRefOfCopyAction(const T& value) : value_(value) {} // NOLINT - - // This template type conversion operator allows ReturnRefOfCopy(x) to be - // used in ANY function that returns a reference to x's type. - template - operator Action() const { - typedef typename Function::Result Result; - // Asserts that the function return type is a reference. This - // catches the user error of using ReturnRefOfCopy(x) when Return(x) - // should be used, and generates some helpful error message. - GTEST_COMPILE_ASSERT_( - std::is_reference::value, - use_Return_instead_of_ReturnRefOfCopy_to_return_a_value); - return Action(new Impl(value_)); - } - - private: - // Implements the ReturnRefOfCopy(x) action for a particular function type F. - template - class Impl : public ActionInterface { - public: - typedef typename Function::Result Result; - typedef typename Function::ArgumentTuple ArgumentTuple; - - explicit Impl(const T& value) : value_(value) {} // NOLINT - - Result Perform(const ArgumentTuple&) override { return value_; } - - private: - T value_; - }; - - const T value_; -}; - -// Implements the polymorphic ReturnRoundRobin(v) action, which can be -// used in any function that returns the element_type of v. -template -class ReturnRoundRobinAction { - public: - explicit ReturnRoundRobinAction(std::vector values) { - GTEST_CHECK_(!values.empty()) - << "ReturnRoundRobin requires at least one element."; - state_->values = std::move(values); - } - - template - T operator()(Args&&...) const { - return state_->Next(); - } - - private: - struct State { - T Next() { - T ret_val = values[i++]; - if (i == values.size()) i = 0; - return ret_val; - } - - std::vector values; - size_t i = 0; - }; - std::shared_ptr state_ = std::make_shared(); -}; - -// Implements the polymorphic DoDefault() action. -class DoDefaultAction { - public: - // This template type conversion operator allows DoDefault() to be - // used in any function. - template - operator Action() const { return Action(); } // NOLINT -}; - -// Implements the Assign action to set a given pointer referent to a -// particular value. -template -class AssignAction { - public: - AssignAction(T1* ptr, T2 value) : ptr_(ptr), value_(value) {} - - template - void Perform(const ArgumentTuple& /* args */) const { - *ptr_ = value_; - } - - private: - T1* const ptr_; - const T2 value_; -}; - -#if !GTEST_OS_WINDOWS_MOBILE - -// Implements the SetErrnoAndReturn action to simulate return from -// various system calls and libc functions. -template -class SetErrnoAndReturnAction { - public: - SetErrnoAndReturnAction(int errno_value, T result) - : errno_(errno_value), - result_(result) {} - template - Result Perform(const ArgumentTuple& /* args */) const { - errno = errno_; - return result_; - } - - private: - const int errno_; - const T result_; -}; - -#endif // !GTEST_OS_WINDOWS_MOBILE - -// Implements the SetArgumentPointee(x) action for any function -// whose N-th argument (0-based) is a pointer to x's type. -template -struct SetArgumentPointeeAction { - A value; - - template - void operator()(const Args&... args) const { - *::std::get(std::tie(args...)) = value; - } -}; - -// Implements the Invoke(object_ptr, &Class::Method) action. -template -struct InvokeMethodAction { - Class* const obj_ptr; - const MethodPtr method_ptr; - - template - auto operator()(Args&&... args) const - -> decltype((obj_ptr->*method_ptr)(std::forward(args)...)) { - return (obj_ptr->*method_ptr)(std::forward(args)...); - } -}; - -// Implements the InvokeWithoutArgs(f) action. The template argument -// FunctionImpl is the implementation type of f, which can be either a -// function pointer or a functor. InvokeWithoutArgs(f) can be used as an -// Action as long as f's type is compatible with F. -template -struct InvokeWithoutArgsAction { - FunctionImpl function_impl; - - // Allows InvokeWithoutArgs(f) to be used as any action whose type is - // compatible with f. - template - auto operator()(const Args&...) -> decltype(function_impl()) { - return function_impl(); - } -}; - -// Implements the InvokeWithoutArgs(object_ptr, &Class::Method) action. -template -struct InvokeMethodWithoutArgsAction { - Class* const obj_ptr; - const MethodPtr method_ptr; - - using ReturnType = - decltype((std::declval()->*std::declval())()); - - template - ReturnType operator()(const Args&...) const { - return (obj_ptr->*method_ptr)(); - } -}; - -// Implements the IgnoreResult(action) action. -template -class IgnoreResultAction { - public: - explicit IgnoreResultAction(const A& action) : action_(action) {} - - template - operator Action() const { - // Assert statement belongs here because this is the best place to verify - // conditions on F. It produces the clearest error messages - // in most compilers. - // Impl really belongs in this scope as a local class but can't - // because MSVC produces duplicate symbols in different translation units - // in this case. Until MS fixes that bug we put Impl into the class scope - // and put the typedef both here (for use in assert statement) and - // in the Impl class. But both definitions must be the same. - typedef typename internal::Function::Result Result; - - // Asserts at compile time that F returns void. - static_assert(std::is_void::value, "Result type should be void."); - - return Action(new Impl(action_)); - } - - private: - template - class Impl : public ActionInterface { - public: - typedef typename internal::Function::Result Result; - typedef typename internal::Function::ArgumentTuple ArgumentTuple; - - explicit Impl(const A& action) : action_(action) {} - - void Perform(const ArgumentTuple& args) override { - // Performs the action and ignores its result. - action_.Perform(args); - } - - private: - // Type OriginalFunction is the same as F except that its return - // type is IgnoredValue. - typedef typename internal::Function::MakeResultIgnoredValue - OriginalFunction; - - const Action action_; - }; - - const A action_; -}; - -template -struct WithArgsAction { - InnerAction action; - - // The inner action could be anything convertible to Action. - // We use the conversion operator to detect the signature of the inner Action. - template - operator Action() const { // NOLINT - using TupleType = std::tuple; - Action::type...)> - converted(action); - - return [converted](Args... args) -> R { - return converted.Perform(std::forward_as_tuple( - std::get(std::forward_as_tuple(std::forward(args)...))...)); - }; - } -}; - -template -struct DoAllAction { - private: - template - using NonFinalType = - typename std::conditional::value, T, const T&>::type; - - template - std::vector Convert(IndexSequence) const { - return {ActionT(std::get(actions))...}; - } - - public: - std::tuple actions; - - template - operator Action() const { // NOLINT - struct Op { - std::vector...)>> converted; - Action last; - R operator()(Args... args) const { - auto tuple_args = std::forward_as_tuple(std::forward(args)...); - for (auto& a : converted) { - a.Perform(tuple_args); - } - return last.Perform(std::move(tuple_args)); - } - }; - return Op{Convert...)>>( - MakeIndexSequence()), - std::get(actions)}; - } -}; - -template -struct ReturnNewAction { - T* operator()() const { - return internal::Apply( - [](const Params&... unpacked_params) { - return new T(unpacked_params...); - }, - params); - } - std::tuple params; -}; - -template -struct ReturnArgAction { - template - auto operator()(const Args&... args) const -> - typename std::tuple_element>::type { - return std::get(std::tie(args...)); - } -}; - -template -struct SaveArgAction { - Ptr pointer; - - template - void operator()(const Args&... args) const { - *pointer = std::get(std::tie(args...)); - } -}; - -template -struct SaveArgPointeeAction { - Ptr pointer; - - template - void operator()(const Args&... args) const { - *pointer = *std::get(std::tie(args...)); - } -}; - -template -struct SetArgRefereeAction { - T value; - - template - void operator()(Args&&... args) const { - using argk_type = - typename ::std::tuple_element>::type; - static_assert(std::is_lvalue_reference::value, - "Argument must be a reference type."); - std::get(std::tie(args...)) = value; - } -}; - -template -struct SetArrayArgumentAction { - I1 first; - I2 last; - - template - void operator()(const Args&... args) const { - auto value = std::get(std::tie(args...)); - for (auto it = first; it != last; ++it, (void)++value) { - *value = *it; - } - } -}; - -template -struct DeleteArgAction { - template - void operator()(const Args&... args) const { - delete std::get(std::tie(args...)); - } -}; - -template -struct ReturnPointeeAction { - Ptr pointer; - template - auto operator()(const Args&...) const -> decltype(*pointer) { - return *pointer; - } -}; - -#if GTEST_HAS_EXCEPTIONS -template -struct ThrowAction { - T exception; - // We use a conversion operator to adapt to any return type. - template - operator Action() const { // NOLINT - T copy = exception; - return [copy](Args...) -> R { throw copy; }; - } -}; -#endif // GTEST_HAS_EXCEPTIONS - -} // namespace internal - -// An Unused object can be implicitly constructed from ANY value. -// This is handy when defining actions that ignore some or all of the -// mock function arguments. For example, given -// -// MOCK_METHOD3(Foo, double(const string& label, double x, double y)); -// MOCK_METHOD3(Bar, double(int index, double x, double y)); -// -// instead of -// -// double DistanceToOriginWithLabel(const string& label, double x, double y) { -// return sqrt(x*x + y*y); -// } -// double DistanceToOriginWithIndex(int index, double x, double y) { -// return sqrt(x*x + y*y); -// } -// ... -// EXPECT_CALL(mock, Foo("abc", _, _)) -// .WillOnce(Invoke(DistanceToOriginWithLabel)); -// EXPECT_CALL(mock, Bar(5, _, _)) -// .WillOnce(Invoke(DistanceToOriginWithIndex)); -// -// you could write -// -// // We can declare any uninteresting argument as Unused. -// double DistanceToOrigin(Unused, double x, double y) { -// return sqrt(x*x + y*y); -// } -// ... -// EXPECT_CALL(mock, Foo("abc", _, _)).WillOnce(Invoke(DistanceToOrigin)); -// EXPECT_CALL(mock, Bar(5, _, _)).WillOnce(Invoke(DistanceToOrigin)); -typedef internal::IgnoredValue Unused; - -// Creates an action that does actions a1, a2, ..., sequentially in -// each invocation. All but the last action will have a readonly view of the -// arguments. -template -internal::DoAllAction::type...> DoAll( - Action&&... action) { - return {std::forward_as_tuple(std::forward(action)...)}; -} - -// WithArg(an_action) creates an action that passes the k-th -// (0-based) argument of the mock function to an_action and performs -// it. It adapts an action accepting one argument to one that accepts -// multiple arguments. For convenience, we also provide -// WithArgs(an_action) (defined below) as a synonym. -template -internal::WithArgsAction::type, k> -WithArg(InnerAction&& action) { - return {std::forward(action)}; -} - -// WithArgs(an_action) creates an action that passes -// the selected arguments of the mock function to an_action and -// performs it. It serves as an adaptor between actions with -// different argument lists. -template -internal::WithArgsAction::type, k, ks...> -WithArgs(InnerAction&& action) { - return {std::forward(action)}; -} - -// WithoutArgs(inner_action) can be used in a mock function with a -// non-empty argument list to perform inner_action, which takes no -// argument. In other words, it adapts an action accepting no -// argument to one that accepts (and ignores) arguments. -template -internal::WithArgsAction::type> -WithoutArgs(InnerAction&& action) { - return {std::forward(action)}; -} - -// Creates an action that returns 'value'. 'value' is passed by value -// instead of const reference - otherwise Return("string literal") -// will trigger a compiler error about using array as initializer. -template -internal::ReturnAction Return(R value) { - return internal::ReturnAction(std::move(value)); -} - -// Creates an action that returns NULL. -inline PolymorphicAction ReturnNull() { - return MakePolymorphicAction(internal::ReturnNullAction()); -} - -// Creates an action that returns from a void function. -inline PolymorphicAction Return() { - return MakePolymorphicAction(internal::ReturnVoidAction()); -} - -// Creates an action that returns the reference to a variable. -template -inline internal::ReturnRefAction ReturnRef(R& x) { // NOLINT - return internal::ReturnRefAction(x); -} - -// Prevent using ReturnRef on reference to temporary. -template -internal::ReturnRefAction ReturnRef(R&&) = delete; - -// Creates an action that returns the reference to a copy of the -// argument. The copy is created when the action is constructed and -// lives as long as the action. -template -inline internal::ReturnRefOfCopyAction ReturnRefOfCopy(const R& x) { - return internal::ReturnRefOfCopyAction(x); -} - -// Modifies the parent action (a Return() action) to perform a move of the -// argument instead of a copy. -// Return(ByMove()) actions can only be executed once and will assert this -// invariant. -template -internal::ByMoveWrapper ByMove(R x) { - return internal::ByMoveWrapper(std::move(x)); -} - -// Creates an action that returns an element of `vals`. Calling this action will -// repeatedly return the next value from `vals` until it reaches the end and -// will restart from the beginning. -template -internal::ReturnRoundRobinAction ReturnRoundRobin(std::vector vals) { - return internal::ReturnRoundRobinAction(std::move(vals)); -} - -// Creates an action that returns an element of `vals`. Calling this action will -// repeatedly return the next value from `vals` until it reaches the end and -// will restart from the beginning. -template -internal::ReturnRoundRobinAction ReturnRoundRobin( - std::initializer_list vals) { - return internal::ReturnRoundRobinAction(std::vector(vals)); -} - -// Creates an action that does the default action for the give mock function. -inline internal::DoDefaultAction DoDefault() { - return internal::DoDefaultAction(); -} - -// Creates an action that sets the variable pointed by the N-th -// (0-based) function argument to 'value'. -template -internal::SetArgumentPointeeAction SetArgPointee(T value) { - return {std::move(value)}; -} - -// The following version is DEPRECATED. -template -internal::SetArgumentPointeeAction SetArgumentPointee(T value) { - return {std::move(value)}; -} - -// Creates an action that sets a pointer referent to a given value. -template -PolymorphicAction > Assign(T1* ptr, T2 val) { - return MakePolymorphicAction(internal::AssignAction(ptr, val)); -} - -#if !GTEST_OS_WINDOWS_MOBILE - -// Creates an action that sets errno and returns the appropriate error. -template -PolymorphicAction > -SetErrnoAndReturn(int errval, T result) { - return MakePolymorphicAction( - internal::SetErrnoAndReturnAction(errval, result)); -} - -#endif // !GTEST_OS_WINDOWS_MOBILE - -// Various overloads for Invoke(). - -// Legacy function. -// Actions can now be implicitly constructed from callables. No need to create -// wrapper objects. -// This function exists for backwards compatibility. -template -typename std::decay::type Invoke(FunctionImpl&& function_impl) { - return std::forward(function_impl); -} - -// Creates an action that invokes the given method on the given object -// with the mock function's arguments. -template -internal::InvokeMethodAction Invoke(Class* obj_ptr, - MethodPtr method_ptr) { - return {obj_ptr, method_ptr}; -} - -// Creates an action that invokes 'function_impl' with no argument. -template -internal::InvokeWithoutArgsAction::type> -InvokeWithoutArgs(FunctionImpl function_impl) { - return {std::move(function_impl)}; -} - -// Creates an action that invokes the given method on the given object -// with no argument. -template -internal::InvokeMethodWithoutArgsAction InvokeWithoutArgs( - Class* obj_ptr, MethodPtr method_ptr) { - return {obj_ptr, method_ptr}; -} - -// Creates an action that performs an_action and throws away its -// result. In other words, it changes the return type of an_action to -// void. an_action MUST NOT return void, or the code won't compile. -template -inline internal::IgnoreResultAction IgnoreResult(const A& an_action) { - return internal::IgnoreResultAction(an_action); -} - -// Creates a reference wrapper for the given L-value. If necessary, -// you can explicitly specify the type of the reference. For example, -// suppose 'derived' is an object of type Derived, ByRef(derived) -// would wrap a Derived&. If you want to wrap a const Base& instead, -// where Base is a base class of Derived, just write: -// -// ByRef(derived) -// -// N.B. ByRef is redundant with std::ref, std::cref and std::reference_wrapper. -// However, it may still be used for consistency with ByMove(). -template -inline ::std::reference_wrapper ByRef(T& l_value) { // NOLINT - return ::std::reference_wrapper(l_value); -} - -// The ReturnNew(a1, a2, ..., a_k) action returns a pointer to a new -// instance of type T, constructed on the heap with constructor arguments -// a1, a2, ..., and a_k. The caller assumes ownership of the returned value. -template -internal::ReturnNewAction::type...> ReturnNew( - Params&&... params) { - return {std::forward_as_tuple(std::forward(params)...)}; -} - -// Action ReturnArg() returns the k-th argument of the mock function. -template -internal::ReturnArgAction ReturnArg() { - return {}; -} - -// Action SaveArg(pointer) saves the k-th (0-based) argument of the -// mock function to *pointer. -template -internal::SaveArgAction SaveArg(Ptr pointer) { - return {pointer}; -} - -// Action SaveArgPointee(pointer) saves the value pointed to -// by the k-th (0-based) argument of the mock function to *pointer. -template -internal::SaveArgPointeeAction SaveArgPointee(Ptr pointer) { - return {pointer}; -} - -// Action SetArgReferee(value) assigns 'value' to the variable -// referenced by the k-th (0-based) argument of the mock function. -template -internal::SetArgRefereeAction::type> SetArgReferee( - T&& value) { - return {std::forward(value)}; -} - -// Action SetArrayArgument(first, last) copies the elements in -// source range [first, last) to the array pointed to by the k-th -// (0-based) argument, which can be either a pointer or an -// iterator. The action does not take ownership of the elements in the -// source range. -template -internal::SetArrayArgumentAction SetArrayArgument(I1 first, - I2 last) { - return {first, last}; -} - -// Action DeleteArg() deletes the k-th (0-based) argument of the mock -// function. -template -internal::DeleteArgAction DeleteArg() { - return {}; -} - -// This action returns the value pointed to by 'pointer'. -template -internal::ReturnPointeeAction ReturnPointee(Ptr pointer) { - return {pointer}; -} - -// Action Throw(exception) can be used in a mock function of any type -// to throw the given exception. Any copyable value can be thrown. -#if GTEST_HAS_EXCEPTIONS -template -internal::ThrowAction::type> Throw(T&& exception) { - return {std::forward(exception)}; -} -#endif // GTEST_HAS_EXCEPTIONS - -namespace internal { - -// A macro from the ACTION* family (defined later in gmock-generated-actions.h) -// defines an action that can be used in a mock function. Typically, -// these actions only care about a subset of the arguments of the mock -// function. For example, if such an action only uses the second -// argument, it can be used in any mock function that takes >= 2 -// arguments where the type of the second argument is compatible. -// -// Therefore, the action implementation must be prepared to take more -// arguments than it needs. The ExcessiveArg type is used to -// represent those excessive arguments. In order to keep the compiler -// error messages tractable, we define it in the testing namespace -// instead of testing::internal. However, this is an INTERNAL TYPE -// and subject to change without notice, so a user MUST NOT USE THIS -// TYPE DIRECTLY. -struct ExcessiveArg {}; - -// Builds an implementation of an Action<> for some particular signature, using -// a class defined by an ACTION* macro. -template struct ActionImpl; - -template -struct ImplBase { - struct Holder { - // Allows each copy of the Action<> to get to the Impl. - explicit operator const Impl&() const { return *ptr; } - std::shared_ptr ptr; - }; - using type = typename std::conditional::value, - Impl, Holder>::type; -}; - -template -struct ActionImpl : ImplBase::type { - using Base = typename ImplBase::type; - using function_type = R(Args...); - using args_type = std::tuple; - - ActionImpl() = default; // Only defined if appropriate for Base. - explicit ActionImpl(std::shared_ptr impl) : Base{std::move(impl)} { } - - R operator()(Args&&... arg) const { - static constexpr size_t kMaxArgs = - sizeof...(Args) <= 10 ? sizeof...(Args) : 10; - return Apply(MakeIndexSequence{}, - MakeIndexSequence<10 - kMaxArgs>{}, - args_type{std::forward(arg)...}); - } - - template - R Apply(IndexSequence, IndexSequence, - const args_type& args) const { - // Impl need not be specific to the signature of action being implemented; - // only the implementing function body needs to have all of the specific - // types instantiated. Up to 10 of the args that are provided by the - // args_type get passed, followed by a dummy of unspecified type for the - // remainder up to 10 explicit args. - static const ExcessiveArg kExcessArg; - return static_cast(*this).template gmock_PerformImpl< - /*function_type=*/function_type, /*return_type=*/R, - /*args_type=*/args_type, - /*argN_type=*/typename std::tuple_element::type...>( - /*args=*/args, std::get(args)..., - ((void)excess_id, kExcessArg)...); - } -}; - -// Stores a default-constructed Impl as part of the Action<>'s -// std::function<>. The Impl should be trivial to copy. -template -::testing::Action MakeAction() { - return ::testing::Action(ActionImpl()); -} - -// Stores just the one given instance of Impl. -template -::testing::Action MakeAction(std::shared_ptr impl) { - return ::testing::Action(ActionImpl(std::move(impl))); -} - -#define GMOCK_INTERNAL_ARG_UNUSED(i, data, el) \ - , const arg##i##_type& arg##i GTEST_ATTRIBUTE_UNUSED_ -#define GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_ \ - const args_type& args GTEST_ATTRIBUTE_UNUSED_ GMOCK_PP_REPEAT( \ - GMOCK_INTERNAL_ARG_UNUSED, , 10) - -#define GMOCK_INTERNAL_ARG(i, data, el) , const arg##i##_type& arg##i -#define GMOCK_ACTION_ARG_TYPES_AND_NAMES_ \ - const args_type& args GMOCK_PP_REPEAT(GMOCK_INTERNAL_ARG, , 10) - -#define GMOCK_INTERNAL_TEMPLATE_ARG(i, data, el) , typename arg##i##_type -#define GMOCK_ACTION_TEMPLATE_ARGS_NAMES_ \ - GMOCK_PP_TAIL(GMOCK_PP_REPEAT(GMOCK_INTERNAL_TEMPLATE_ARG, , 10)) - -#define GMOCK_INTERNAL_TYPENAME_PARAM(i, data, param) , typename param##_type -#define GMOCK_ACTION_TYPENAME_PARAMS_(params) \ - GMOCK_PP_TAIL(GMOCK_PP_FOR_EACH(GMOCK_INTERNAL_TYPENAME_PARAM, , params)) - -#define GMOCK_INTERNAL_TYPE_PARAM(i, data, param) , param##_type -#define GMOCK_ACTION_TYPE_PARAMS_(params) \ - GMOCK_PP_TAIL(GMOCK_PP_FOR_EACH(GMOCK_INTERNAL_TYPE_PARAM, , params)) - -#define GMOCK_INTERNAL_TYPE_GVALUE_PARAM(i, data, param) \ - , param##_type gmock_p##i -#define GMOCK_ACTION_TYPE_GVALUE_PARAMS_(params) \ - GMOCK_PP_TAIL(GMOCK_PP_FOR_EACH(GMOCK_INTERNAL_TYPE_GVALUE_PARAM, , params)) - -#define GMOCK_INTERNAL_GVALUE_PARAM(i, data, param) \ - , std::forward(gmock_p##i) -#define GMOCK_ACTION_GVALUE_PARAMS_(params) \ - GMOCK_PP_TAIL(GMOCK_PP_FOR_EACH(GMOCK_INTERNAL_GVALUE_PARAM, , params)) - -#define GMOCK_INTERNAL_INIT_PARAM(i, data, param) \ - , param(::std::forward(gmock_p##i)) -#define GMOCK_ACTION_INIT_PARAMS_(params) \ - GMOCK_PP_TAIL(GMOCK_PP_FOR_EACH(GMOCK_INTERNAL_INIT_PARAM, , params)) - -#define GMOCK_INTERNAL_FIELD_PARAM(i, data, param) param##_type param; -#define GMOCK_ACTION_FIELD_PARAMS_(params) \ - GMOCK_PP_FOR_EACH(GMOCK_INTERNAL_FIELD_PARAM, , params) - -#define GMOCK_INTERNAL_ACTION(name, full_name, params) \ - template \ - class full_name { \ - public: \ - explicit full_name(GMOCK_ACTION_TYPE_GVALUE_PARAMS_(params)) \ - : impl_(std::make_shared( \ - GMOCK_ACTION_GVALUE_PARAMS_(params))) { } \ - full_name(const full_name&) = default; \ - full_name(full_name&&) noexcept = default; \ - template \ - operator ::testing::Action() const { \ - return ::testing::internal::MakeAction(impl_); \ - } \ - private: \ - class gmock_Impl { \ - public: \ - explicit gmock_Impl(GMOCK_ACTION_TYPE_GVALUE_PARAMS_(params)) \ - : GMOCK_ACTION_INIT_PARAMS_(params) {} \ - template \ - return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const; \ - GMOCK_ACTION_FIELD_PARAMS_(params) \ - }; \ - std::shared_ptr impl_; \ - }; \ - template \ - inline full_name name( \ - GMOCK_ACTION_TYPE_GVALUE_PARAMS_(params)) { \ - return full_name( \ - GMOCK_ACTION_GVALUE_PARAMS_(params)); \ - } \ - template \ - template \ - return_type full_name::gmock_Impl:: \ - gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const - -} // namespace internal - -// Similar to GMOCK_INTERNAL_ACTION, but no bound parameters are stored. -#define ACTION(name) \ - class name##Action { \ - public: \ - explicit name##Action() noexcept {} \ - name##Action(const name##Action&) noexcept {} \ - template \ - operator ::testing::Action() const { \ - return ::testing::internal::MakeAction(); \ - } \ - private: \ - class gmock_Impl { \ - public: \ - template \ - return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const; \ - }; \ - }; \ - inline name##Action name() GTEST_MUST_USE_RESULT_; \ - inline name##Action name() { return name##Action(); } \ - template \ - return_type name##Action::gmock_Impl::gmock_PerformImpl( \ - GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const - -#define ACTION_P(name, ...) \ - GMOCK_INTERNAL_ACTION(name, name##ActionP, (__VA_ARGS__)) - -#define ACTION_P2(name, ...) \ - GMOCK_INTERNAL_ACTION(name, name##ActionP2, (__VA_ARGS__)) - -#define ACTION_P3(name, ...) \ - GMOCK_INTERNAL_ACTION(name, name##ActionP3, (__VA_ARGS__)) - -#define ACTION_P4(name, ...) \ - GMOCK_INTERNAL_ACTION(name, name##ActionP4, (__VA_ARGS__)) - -#define ACTION_P5(name, ...) \ - GMOCK_INTERNAL_ACTION(name, name##ActionP5, (__VA_ARGS__)) - -#define ACTION_P6(name, ...) \ - GMOCK_INTERNAL_ACTION(name, name##ActionP6, (__VA_ARGS__)) - -#define ACTION_P7(name, ...) \ - GMOCK_INTERNAL_ACTION(name, name##ActionP7, (__VA_ARGS__)) - -#define ACTION_P8(name, ...) \ - GMOCK_INTERNAL_ACTION(name, name##ActionP8, (__VA_ARGS__)) - -#define ACTION_P9(name, ...) \ - GMOCK_INTERNAL_ACTION(name, name##ActionP9, (__VA_ARGS__)) - -#define ACTION_P10(name, ...) \ - GMOCK_INTERNAL_ACTION(name, name##ActionP10, (__VA_ARGS__)) - -} // namespace testing - -#ifdef _MSC_VER -# pragma warning(pop) -#endif - - -#endif // GMOCK_INCLUDE_GMOCK_GMOCK_ACTIONS_H_ diff --git a/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-cardinalities.h b/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-cardinalities.h deleted file mode 100644 index 46e01e1..0000000 --- a/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-cardinalities.h +++ /dev/null @@ -1,157 +0,0 @@ -// Copyright 2007, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -// Google Mock - a framework for writing C++ mock classes. -// -// This file implements some commonly used cardinalities. More -// cardinalities can be defined by the user implementing the -// CardinalityInterface interface if necessary. - -// GOOGLETEST_CM0002 DO NOT DELETE - -#ifndef GMOCK_INCLUDE_GMOCK_GMOCK_CARDINALITIES_H_ -#define GMOCK_INCLUDE_GMOCK_GMOCK_CARDINALITIES_H_ - -#include -#include -#include // NOLINT -#include "gmock/internal/gmock-port.h" -#include "gtest/gtest.h" - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -namespace testing { - -// To implement a cardinality Foo, define: -// 1. a class FooCardinality that implements the -// CardinalityInterface interface, and -// 2. a factory function that creates a Cardinality object from a -// const FooCardinality*. -// -// The two-level delegation design follows that of Matcher, providing -// consistency for extension developers. It also eases ownership -// management as Cardinality objects can now be copied like plain values. - -// The implementation of a cardinality. -class CardinalityInterface { - public: - virtual ~CardinalityInterface() {} - - // Conservative estimate on the lower/upper bound of the number of - // calls allowed. - virtual int ConservativeLowerBound() const { return 0; } - virtual int ConservativeUpperBound() const { return INT_MAX; } - - // Returns true if and only if call_count calls will satisfy this - // cardinality. - virtual bool IsSatisfiedByCallCount(int call_count) const = 0; - - // Returns true if and only if call_count calls will saturate this - // cardinality. - virtual bool IsSaturatedByCallCount(int call_count) const = 0; - - // Describes self to an ostream. - virtual void DescribeTo(::std::ostream* os) const = 0; -}; - -// A Cardinality is a copyable and IMMUTABLE (except by assignment) -// object that specifies how many times a mock function is expected to -// be called. The implementation of Cardinality is just a std::shared_ptr -// to const CardinalityInterface. Don't inherit from Cardinality! -class GTEST_API_ Cardinality { - public: - // Constructs a null cardinality. Needed for storing Cardinality - // objects in STL containers. - Cardinality() {} - - // Constructs a Cardinality from its implementation. - explicit Cardinality(const CardinalityInterface* impl) : impl_(impl) {} - - // Conservative estimate on the lower/upper bound of the number of - // calls allowed. - int ConservativeLowerBound() const { return impl_->ConservativeLowerBound(); } - int ConservativeUpperBound() const { return impl_->ConservativeUpperBound(); } - - // Returns true if and only if call_count calls will satisfy this - // cardinality. - bool IsSatisfiedByCallCount(int call_count) const { - return impl_->IsSatisfiedByCallCount(call_count); - } - - // Returns true if and only if call_count calls will saturate this - // cardinality. - bool IsSaturatedByCallCount(int call_count) const { - return impl_->IsSaturatedByCallCount(call_count); - } - - // Returns true if and only if call_count calls will over-saturate this - // cardinality, i.e. exceed the maximum number of allowed calls. - bool IsOverSaturatedByCallCount(int call_count) const { - return impl_->IsSaturatedByCallCount(call_count) && - !impl_->IsSatisfiedByCallCount(call_count); - } - - // Describes self to an ostream - void DescribeTo(::std::ostream* os) const { impl_->DescribeTo(os); } - - // Describes the given actual call count to an ostream. - static void DescribeActualCallCountTo(int actual_call_count, - ::std::ostream* os); - - private: - std::shared_ptr impl_; -}; - -// Creates a cardinality that allows at least n calls. -GTEST_API_ Cardinality AtLeast(int n); - -// Creates a cardinality that allows at most n calls. -GTEST_API_ Cardinality AtMost(int n); - -// Creates a cardinality that allows any number of calls. -GTEST_API_ Cardinality AnyNumber(); - -// Creates a cardinality that allows between min and max calls. -GTEST_API_ Cardinality Between(int min, int max); - -// Creates a cardinality that allows exactly n calls. -GTEST_API_ Cardinality Exactly(int n); - -// Creates a cardinality from its implementation. -inline Cardinality MakeCardinality(const CardinalityInterface* c) { - return Cardinality(c); -} - -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -#endif // GMOCK_INCLUDE_GMOCK_GMOCK_CARDINALITIES_H_ diff --git a/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-function-mocker.h b/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-function-mocker.h deleted file mode 100644 index f592d86..0000000 --- a/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-function-mocker.h +++ /dev/null @@ -1,479 +0,0 @@ -// Copyright 2007, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// Google Mock - a framework for writing C++ mock classes. -// -// This file implements MOCK_METHOD. - -// GOOGLETEST_CM0002 DO NOT DELETE - -#ifndef THIRD_PARTY_GOOGLETEST_GOOGLEMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_FUNCTION_MOCKER_H_ // NOLINT -#define THIRD_PARTY_GOOGLETEST_GOOGLEMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_FUNCTION_MOCKER_H_ // NOLINT - -#include // IWYU pragma: keep -#include // IWYU pragma: keep - -#include "gmock/gmock-spec-builders.h" -#include "gmock/internal/gmock-internal-utils.h" -#include "gmock/internal/gmock-pp.h" - -namespace testing { -namespace internal { -template -using identity_t = T; - -template -struct ThisRefAdjuster { - template - using AdjustT = typename std::conditional< - std::is_const::type>::value, - typename std::conditional::value, - const T&, const T&&>::type, - typename std::conditional::value, T&, - T&&>::type>::type; - - template - static AdjustT Adjust(const MockType& mock) { - return static_cast>(const_cast(mock)); - } -}; - -} // namespace internal - -// The style guide prohibits "using" statements in a namespace scope -// inside a header file. However, the FunctionMocker class template -// is meant to be defined in the ::testing namespace. The following -// line is just a trick for working around a bug in MSVC 8.0, which -// cannot handle it if we define FunctionMocker in ::testing. -using internal::FunctionMocker; -} // namespace testing - -#define MOCK_METHOD(...) \ - GMOCK_PP_VARIADIC_CALL(GMOCK_INTERNAL_MOCK_METHOD_ARG_, __VA_ARGS__) - -#define GMOCK_INTERNAL_MOCK_METHOD_ARG_1(...) \ - GMOCK_INTERNAL_WRONG_ARITY(__VA_ARGS__) - -#define GMOCK_INTERNAL_MOCK_METHOD_ARG_2(...) \ - GMOCK_INTERNAL_WRONG_ARITY(__VA_ARGS__) - -#define GMOCK_INTERNAL_MOCK_METHOD_ARG_3(_Ret, _MethodName, _Args) \ - GMOCK_INTERNAL_MOCK_METHOD_ARG_4(_Ret, _MethodName, _Args, ()) - -#define GMOCK_INTERNAL_MOCK_METHOD_ARG_4(_Ret, _MethodName, _Args, _Spec) \ - GMOCK_INTERNAL_ASSERT_PARENTHESIS(_Args); \ - GMOCK_INTERNAL_ASSERT_PARENTHESIS(_Spec); \ - GMOCK_INTERNAL_ASSERT_VALID_SIGNATURE( \ - GMOCK_PP_NARG0 _Args, GMOCK_INTERNAL_SIGNATURE(_Ret, _Args)); \ - GMOCK_INTERNAL_ASSERT_VALID_SPEC(_Spec) \ - GMOCK_INTERNAL_MOCK_METHOD_IMPL( \ - GMOCK_PP_NARG0 _Args, _MethodName, GMOCK_INTERNAL_HAS_CONST(_Spec), \ - GMOCK_INTERNAL_HAS_OVERRIDE(_Spec), GMOCK_INTERNAL_HAS_FINAL(_Spec), \ - GMOCK_INTERNAL_GET_NOEXCEPT_SPEC(_Spec), \ - GMOCK_INTERNAL_GET_CALLTYPE(_Spec), GMOCK_INTERNAL_GET_REF_SPEC(_Spec), \ - (GMOCK_INTERNAL_SIGNATURE(_Ret, _Args))) - -#define GMOCK_INTERNAL_MOCK_METHOD_ARG_5(...) \ - GMOCK_INTERNAL_WRONG_ARITY(__VA_ARGS__) - -#define GMOCK_INTERNAL_MOCK_METHOD_ARG_6(...) \ - GMOCK_INTERNAL_WRONG_ARITY(__VA_ARGS__) - -#define GMOCK_INTERNAL_MOCK_METHOD_ARG_7(...) \ - GMOCK_INTERNAL_WRONG_ARITY(__VA_ARGS__) - -#define GMOCK_INTERNAL_WRONG_ARITY(...) \ - static_assert( \ - false, \ - "MOCK_METHOD must be called with 3 or 4 arguments. _Ret, " \ - "_MethodName, _Args and optionally _Spec. _Args and _Spec must be " \ - "enclosed in parentheses. If _Ret is a type with unprotected commas, " \ - "it must also be enclosed in parentheses.") - -#define GMOCK_INTERNAL_ASSERT_PARENTHESIS(_Tuple) \ - static_assert( \ - GMOCK_PP_IS_ENCLOSED_PARENS(_Tuple), \ - GMOCK_PP_STRINGIZE(_Tuple) " should be enclosed in parentheses.") - -#define GMOCK_INTERNAL_ASSERT_VALID_SIGNATURE(_N, ...) \ - static_assert( \ - std::is_function<__VA_ARGS__>::value, \ - "Signature must be a function type, maybe return type contains " \ - "unprotected comma."); \ - static_assert( \ - ::testing::tuple_size::ArgumentTuple>::value == _N, \ - "This method does not take " GMOCK_PP_STRINGIZE( \ - _N) " arguments. Parenthesize all types with unprotected commas.") - -#define GMOCK_INTERNAL_ASSERT_VALID_SPEC(_Spec) \ - GMOCK_PP_FOR_EACH(GMOCK_INTERNAL_ASSERT_VALID_SPEC_ELEMENT, ~, _Spec) - -#define GMOCK_INTERNAL_MOCK_METHOD_IMPL(_N, _MethodName, _Constness, \ - _Override, _Final, _NoexceptSpec, \ - _CallType, _RefSpec, _Signature) \ - typename ::testing::internal::Function::Result \ - GMOCK_INTERNAL_EXPAND(_CallType) \ - _MethodName(GMOCK_PP_REPEAT(GMOCK_INTERNAL_PARAMETER, _Signature, _N)) \ - GMOCK_PP_IF(_Constness, const, ) _RefSpec _NoexceptSpec \ - GMOCK_PP_IF(_Override, override, ) GMOCK_PP_IF(_Final, final, ) { \ - GMOCK_MOCKER_(_N, _Constness, _MethodName) \ - .SetOwnerAndName(this, #_MethodName); \ - return GMOCK_MOCKER_(_N, _Constness, _MethodName) \ - .Invoke(GMOCK_PP_REPEAT(GMOCK_INTERNAL_FORWARD_ARG, _Signature, _N)); \ - } \ - ::testing::MockSpec gmock_##_MethodName( \ - GMOCK_PP_REPEAT(GMOCK_INTERNAL_MATCHER_PARAMETER, _Signature, _N)) \ - GMOCK_PP_IF(_Constness, const, ) _RefSpec { \ - GMOCK_MOCKER_(_N, _Constness, _MethodName).RegisterOwner(this); \ - return GMOCK_MOCKER_(_N, _Constness, _MethodName) \ - .With(GMOCK_PP_REPEAT(GMOCK_INTERNAL_MATCHER_ARGUMENT, , _N)); \ - } \ - ::testing::MockSpec gmock_##_MethodName( \ - const ::testing::internal::WithoutMatchers&, \ - GMOCK_PP_IF(_Constness, const, )::testing::internal::Function< \ - GMOCK_PP_REMOVE_PARENS(_Signature)>*) const _RefSpec _NoexceptSpec { \ - return ::testing::internal::ThisRefAdjuster::Adjust(*this) \ - .gmock_##_MethodName(GMOCK_PP_REPEAT( \ - GMOCK_INTERNAL_A_MATCHER_ARGUMENT, _Signature, _N)); \ - } \ - mutable ::testing::FunctionMocker \ - GMOCK_MOCKER_(_N, _Constness, _MethodName) - -#define GMOCK_INTERNAL_EXPAND(...) __VA_ARGS__ - -// Five Valid modifiers. -#define GMOCK_INTERNAL_HAS_CONST(_Tuple) \ - GMOCK_PP_HAS_COMMA(GMOCK_PP_FOR_EACH(GMOCK_INTERNAL_DETECT_CONST, ~, _Tuple)) - -#define GMOCK_INTERNAL_HAS_OVERRIDE(_Tuple) \ - GMOCK_PP_HAS_COMMA( \ - GMOCK_PP_FOR_EACH(GMOCK_INTERNAL_DETECT_OVERRIDE, ~, _Tuple)) - -#define GMOCK_INTERNAL_HAS_FINAL(_Tuple) \ - GMOCK_PP_HAS_COMMA(GMOCK_PP_FOR_EACH(GMOCK_INTERNAL_DETECT_FINAL, ~, _Tuple)) - -#define GMOCK_INTERNAL_GET_NOEXCEPT_SPEC(_Tuple) \ - GMOCK_PP_FOR_EACH(GMOCK_INTERNAL_NOEXCEPT_SPEC_IF_NOEXCEPT, ~, _Tuple) - -#define GMOCK_INTERNAL_NOEXCEPT_SPEC_IF_NOEXCEPT(_i, _, _elem) \ - GMOCK_PP_IF( \ - GMOCK_PP_HAS_COMMA(GMOCK_INTERNAL_DETECT_NOEXCEPT(_i, _, _elem)), \ - _elem, ) - -#define GMOCK_INTERNAL_GET_REF_SPEC(_Tuple) \ - GMOCK_PP_FOR_EACH(GMOCK_INTERNAL_REF_SPEC_IF_REF, ~, _Tuple) - -#define GMOCK_INTERNAL_REF_SPEC_IF_REF(_i, _, _elem) \ - GMOCK_PP_IF(GMOCK_PP_HAS_COMMA(GMOCK_INTERNAL_DETECT_REF(_i, _, _elem)), \ - GMOCK_PP_CAT(GMOCK_INTERNAL_UNPACK_, _elem), ) - -#define GMOCK_INTERNAL_GET_CALLTYPE(_Tuple) \ - GMOCK_PP_FOR_EACH(GMOCK_INTERNAL_GET_CALLTYPE_IMPL, ~, _Tuple) - -#define GMOCK_INTERNAL_ASSERT_VALID_SPEC_ELEMENT(_i, _, _elem) \ - static_assert( \ - (GMOCK_PP_HAS_COMMA(GMOCK_INTERNAL_DETECT_CONST(_i, _, _elem)) + \ - GMOCK_PP_HAS_COMMA(GMOCK_INTERNAL_DETECT_OVERRIDE(_i, _, _elem)) + \ - GMOCK_PP_HAS_COMMA(GMOCK_INTERNAL_DETECT_FINAL(_i, _, _elem)) + \ - GMOCK_PP_HAS_COMMA(GMOCK_INTERNAL_DETECT_NOEXCEPT(_i, _, _elem)) + \ - GMOCK_PP_HAS_COMMA(GMOCK_INTERNAL_DETECT_REF(_i, _, _elem)) + \ - GMOCK_INTERNAL_IS_CALLTYPE(_elem)) == 1, \ - GMOCK_PP_STRINGIZE( \ - _elem) " cannot be recognized as a valid specification modifier."); - -// Modifiers implementation. -#define GMOCK_INTERNAL_DETECT_CONST(_i, _, _elem) \ - GMOCK_PP_CAT(GMOCK_INTERNAL_DETECT_CONST_I_, _elem) - -#define GMOCK_INTERNAL_DETECT_CONST_I_const , - -#define GMOCK_INTERNAL_DETECT_OVERRIDE(_i, _, _elem) \ - GMOCK_PP_CAT(GMOCK_INTERNAL_DETECT_OVERRIDE_I_, _elem) - -#define GMOCK_INTERNAL_DETECT_OVERRIDE_I_override , - -#define GMOCK_INTERNAL_DETECT_FINAL(_i, _, _elem) \ - GMOCK_PP_CAT(GMOCK_INTERNAL_DETECT_FINAL_I_, _elem) - -#define GMOCK_INTERNAL_DETECT_FINAL_I_final , - -#define GMOCK_INTERNAL_DETECT_NOEXCEPT(_i, _, _elem) \ - GMOCK_PP_CAT(GMOCK_INTERNAL_DETECT_NOEXCEPT_I_, _elem) - -#define GMOCK_INTERNAL_DETECT_NOEXCEPT_I_noexcept , - -#define GMOCK_INTERNAL_DETECT_REF(_i, _, _elem) \ - GMOCK_PP_CAT(GMOCK_INTERNAL_DETECT_REF_I_, _elem) - -#define GMOCK_INTERNAL_DETECT_REF_I_ref , - -#define GMOCK_INTERNAL_UNPACK_ref(x) x - -#define GMOCK_INTERNAL_GET_CALLTYPE_IMPL(_i, _, _elem) \ - GMOCK_PP_IF(GMOCK_INTERNAL_IS_CALLTYPE(_elem), \ - GMOCK_INTERNAL_GET_VALUE_CALLTYPE, GMOCK_PP_EMPTY) \ - (_elem) - -// TODO(iserna): GMOCK_INTERNAL_IS_CALLTYPE and -// GMOCK_INTERNAL_GET_VALUE_CALLTYPE needed more expansions to work on windows -// maybe they can be simplified somehow. -#define GMOCK_INTERNAL_IS_CALLTYPE(_arg) \ - GMOCK_INTERNAL_IS_CALLTYPE_I( \ - GMOCK_PP_CAT(GMOCK_INTERNAL_IS_CALLTYPE_HELPER_, _arg)) -#define GMOCK_INTERNAL_IS_CALLTYPE_I(_arg) GMOCK_PP_IS_ENCLOSED_PARENS(_arg) - -#define GMOCK_INTERNAL_GET_VALUE_CALLTYPE(_arg) \ - GMOCK_INTERNAL_GET_VALUE_CALLTYPE_I( \ - GMOCK_PP_CAT(GMOCK_INTERNAL_IS_CALLTYPE_HELPER_, _arg)) -#define GMOCK_INTERNAL_GET_VALUE_CALLTYPE_I(_arg) \ - GMOCK_PP_IDENTITY _arg - -#define GMOCK_INTERNAL_IS_CALLTYPE_HELPER_Calltype - -// Note: The use of `identity_t` here allows _Ret to represent return types that -// would normally need to be specified in a different way. For example, a method -// returning a function pointer must be written as -// -// fn_ptr_return_t (*method(method_args_t...))(fn_ptr_args_t...) -// -// But we only support placing the return type at the beginning. To handle this, -// we wrap all calls in identity_t, so that a declaration will be expanded to -// -// identity_t method(method_args_t...) -// -// This allows us to work around the syntactic oddities of function/method -// types. -#define GMOCK_INTERNAL_SIGNATURE(_Ret, _Args) \ - ::testing::internal::identity_t( \ - GMOCK_PP_FOR_EACH(GMOCK_INTERNAL_GET_TYPE, _, _Args)) - -#define GMOCK_INTERNAL_GET_TYPE(_i, _, _elem) \ - GMOCK_PP_COMMA_IF(_i) \ - GMOCK_PP_IF(GMOCK_PP_IS_BEGIN_PARENS(_elem), GMOCK_PP_REMOVE_PARENS, \ - GMOCK_PP_IDENTITY) \ - (_elem) - -#define GMOCK_INTERNAL_PARAMETER(_i, _Signature, _) \ - GMOCK_PP_COMMA_IF(_i) \ - GMOCK_INTERNAL_ARG_O(_i, GMOCK_PP_REMOVE_PARENS(_Signature)) \ - gmock_a##_i - -#define GMOCK_INTERNAL_FORWARD_ARG(_i, _Signature, _) \ - GMOCK_PP_COMMA_IF(_i) \ - ::std::forward(gmock_a##_i) - -#define GMOCK_INTERNAL_MATCHER_PARAMETER(_i, _Signature, _) \ - GMOCK_PP_COMMA_IF(_i) \ - GMOCK_INTERNAL_MATCHER_O(_i, GMOCK_PP_REMOVE_PARENS(_Signature)) \ - gmock_a##_i - -#define GMOCK_INTERNAL_MATCHER_ARGUMENT(_i, _1, _2) \ - GMOCK_PP_COMMA_IF(_i) \ - gmock_a##_i - -#define GMOCK_INTERNAL_A_MATCHER_ARGUMENT(_i, _Signature, _) \ - GMOCK_PP_COMMA_IF(_i) \ - ::testing::A() - -#define GMOCK_INTERNAL_ARG_O(_i, ...) \ - typename ::testing::internal::Function<__VA_ARGS__>::template Arg<_i>::type - -#define GMOCK_INTERNAL_MATCHER_O(_i, ...) \ - const ::testing::Matcher::template Arg<_i>::type>& - -#define MOCK_METHOD0(m, ...) GMOCK_INTERNAL_MOCK_METHODN(, , m, 0, __VA_ARGS__) -#define MOCK_METHOD1(m, ...) GMOCK_INTERNAL_MOCK_METHODN(, , m, 1, __VA_ARGS__) -#define MOCK_METHOD2(m, ...) GMOCK_INTERNAL_MOCK_METHODN(, , m, 2, __VA_ARGS__) -#define MOCK_METHOD3(m, ...) GMOCK_INTERNAL_MOCK_METHODN(, , m, 3, __VA_ARGS__) -#define MOCK_METHOD4(m, ...) GMOCK_INTERNAL_MOCK_METHODN(, , m, 4, __VA_ARGS__) -#define MOCK_METHOD5(m, ...) GMOCK_INTERNAL_MOCK_METHODN(, , m, 5, __VA_ARGS__) -#define MOCK_METHOD6(m, ...) GMOCK_INTERNAL_MOCK_METHODN(, , m, 6, __VA_ARGS__) -#define MOCK_METHOD7(m, ...) GMOCK_INTERNAL_MOCK_METHODN(, , m, 7, __VA_ARGS__) -#define MOCK_METHOD8(m, ...) GMOCK_INTERNAL_MOCK_METHODN(, , m, 8, __VA_ARGS__) -#define MOCK_METHOD9(m, ...) GMOCK_INTERNAL_MOCK_METHODN(, , m, 9, __VA_ARGS__) -#define MOCK_METHOD10(m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(, , m, 10, __VA_ARGS__) - -#define MOCK_CONST_METHOD0(m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, , m, 0, __VA_ARGS__) -#define MOCK_CONST_METHOD1(m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, , m, 1, __VA_ARGS__) -#define MOCK_CONST_METHOD2(m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, , m, 2, __VA_ARGS__) -#define MOCK_CONST_METHOD3(m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, , m, 3, __VA_ARGS__) -#define MOCK_CONST_METHOD4(m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, , m, 4, __VA_ARGS__) -#define MOCK_CONST_METHOD5(m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, , m, 5, __VA_ARGS__) -#define MOCK_CONST_METHOD6(m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, , m, 6, __VA_ARGS__) -#define MOCK_CONST_METHOD7(m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, , m, 7, __VA_ARGS__) -#define MOCK_CONST_METHOD8(m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, , m, 8, __VA_ARGS__) -#define MOCK_CONST_METHOD9(m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, , m, 9, __VA_ARGS__) -#define MOCK_CONST_METHOD10(m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, , m, 10, __VA_ARGS__) - -#define MOCK_METHOD0_T(m, ...) MOCK_METHOD0(m, __VA_ARGS__) -#define MOCK_METHOD1_T(m, ...) MOCK_METHOD1(m, __VA_ARGS__) -#define MOCK_METHOD2_T(m, ...) MOCK_METHOD2(m, __VA_ARGS__) -#define MOCK_METHOD3_T(m, ...) MOCK_METHOD3(m, __VA_ARGS__) -#define MOCK_METHOD4_T(m, ...) MOCK_METHOD4(m, __VA_ARGS__) -#define MOCK_METHOD5_T(m, ...) MOCK_METHOD5(m, __VA_ARGS__) -#define MOCK_METHOD6_T(m, ...) MOCK_METHOD6(m, __VA_ARGS__) -#define MOCK_METHOD7_T(m, ...) MOCK_METHOD7(m, __VA_ARGS__) -#define MOCK_METHOD8_T(m, ...) MOCK_METHOD8(m, __VA_ARGS__) -#define MOCK_METHOD9_T(m, ...) MOCK_METHOD9(m, __VA_ARGS__) -#define MOCK_METHOD10_T(m, ...) MOCK_METHOD10(m, __VA_ARGS__) - -#define MOCK_CONST_METHOD0_T(m, ...) MOCK_CONST_METHOD0(m, __VA_ARGS__) -#define MOCK_CONST_METHOD1_T(m, ...) MOCK_CONST_METHOD1(m, __VA_ARGS__) -#define MOCK_CONST_METHOD2_T(m, ...) MOCK_CONST_METHOD2(m, __VA_ARGS__) -#define MOCK_CONST_METHOD3_T(m, ...) MOCK_CONST_METHOD3(m, __VA_ARGS__) -#define MOCK_CONST_METHOD4_T(m, ...) MOCK_CONST_METHOD4(m, __VA_ARGS__) -#define MOCK_CONST_METHOD5_T(m, ...) MOCK_CONST_METHOD5(m, __VA_ARGS__) -#define MOCK_CONST_METHOD6_T(m, ...) MOCK_CONST_METHOD6(m, __VA_ARGS__) -#define MOCK_CONST_METHOD7_T(m, ...) MOCK_CONST_METHOD7(m, __VA_ARGS__) -#define MOCK_CONST_METHOD8_T(m, ...) MOCK_CONST_METHOD8(m, __VA_ARGS__) -#define MOCK_CONST_METHOD9_T(m, ...) MOCK_CONST_METHOD9(m, __VA_ARGS__) -#define MOCK_CONST_METHOD10_T(m, ...) MOCK_CONST_METHOD10(m, __VA_ARGS__) - -#define MOCK_METHOD0_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(, ct, m, 0, __VA_ARGS__) -#define MOCK_METHOD1_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(, ct, m, 1, __VA_ARGS__) -#define MOCK_METHOD2_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(, ct, m, 2, __VA_ARGS__) -#define MOCK_METHOD3_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(, ct, m, 3, __VA_ARGS__) -#define MOCK_METHOD4_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(, ct, m, 4, __VA_ARGS__) -#define MOCK_METHOD5_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(, ct, m, 5, __VA_ARGS__) -#define MOCK_METHOD6_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(, ct, m, 6, __VA_ARGS__) -#define MOCK_METHOD7_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(, ct, m, 7, __VA_ARGS__) -#define MOCK_METHOD8_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(, ct, m, 8, __VA_ARGS__) -#define MOCK_METHOD9_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(, ct, m, 9, __VA_ARGS__) -#define MOCK_METHOD10_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(, ct, m, 10, __VA_ARGS__) - -#define MOCK_CONST_METHOD0_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, ct, m, 0, __VA_ARGS__) -#define MOCK_CONST_METHOD1_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, ct, m, 1, __VA_ARGS__) -#define MOCK_CONST_METHOD2_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, ct, m, 2, __VA_ARGS__) -#define MOCK_CONST_METHOD3_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, ct, m, 3, __VA_ARGS__) -#define MOCK_CONST_METHOD4_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, ct, m, 4, __VA_ARGS__) -#define MOCK_CONST_METHOD5_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, ct, m, 5, __VA_ARGS__) -#define MOCK_CONST_METHOD6_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, ct, m, 6, __VA_ARGS__) -#define MOCK_CONST_METHOD7_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, ct, m, 7, __VA_ARGS__) -#define MOCK_CONST_METHOD8_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, ct, m, 8, __VA_ARGS__) -#define MOCK_CONST_METHOD9_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, ct, m, 9, __VA_ARGS__) -#define MOCK_CONST_METHOD10_WITH_CALLTYPE(ct, m, ...) \ - GMOCK_INTERNAL_MOCK_METHODN(const, ct, m, 10, __VA_ARGS__) - -#define MOCK_METHOD0_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_METHOD0_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_METHOD1_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_METHOD1_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_METHOD2_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_METHOD2_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_METHOD3_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_METHOD3_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_METHOD4_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_METHOD4_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_METHOD5_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_METHOD5_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_METHOD6_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_METHOD6_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_METHOD7_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_METHOD7_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_METHOD8_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_METHOD8_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_METHOD9_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_METHOD9_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_METHOD10_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_METHOD10_WITH_CALLTYPE(ct, m, __VA_ARGS__) - -#define MOCK_CONST_METHOD0_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_CONST_METHOD0_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_CONST_METHOD1_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_CONST_METHOD1_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_CONST_METHOD2_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_CONST_METHOD2_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_CONST_METHOD3_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_CONST_METHOD3_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_CONST_METHOD4_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_CONST_METHOD4_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_CONST_METHOD5_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_CONST_METHOD5_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_CONST_METHOD6_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_CONST_METHOD6_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_CONST_METHOD7_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_CONST_METHOD7_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_CONST_METHOD8_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_CONST_METHOD8_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_CONST_METHOD9_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_CONST_METHOD9_WITH_CALLTYPE(ct, m, __VA_ARGS__) -#define MOCK_CONST_METHOD10_T_WITH_CALLTYPE(ct, m, ...) \ - MOCK_CONST_METHOD10_WITH_CALLTYPE(ct, m, __VA_ARGS__) - -#define GMOCK_INTERNAL_MOCK_METHODN(constness, ct, Method, args_num, ...) \ - GMOCK_INTERNAL_ASSERT_VALID_SIGNATURE( \ - args_num, ::testing::internal::identity_t<__VA_ARGS__>); \ - GMOCK_INTERNAL_MOCK_METHOD_IMPL( \ - args_num, Method, GMOCK_PP_NARG0(constness), 0, 0, , ct, , \ - (::testing::internal::identity_t<__VA_ARGS__>)) - -#define GMOCK_MOCKER_(arity, constness, Method) \ - GTEST_CONCAT_TOKEN_(gmock##constness##arity##_##Method##_, __LINE__) - -#endif // THIRD_PARTY_GOOGLETEST_GOOGLEMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_FUNCTION_MOCKER_H_ diff --git a/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-generated-actions.h b/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-generated-actions.h deleted file mode 100644 index 62909ea..0000000 --- a/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-generated-actions.h +++ /dev/null @@ -1,577 +0,0 @@ -// This file was GENERATED by command: -// pump.py gmock-generated-actions.h.pump -// DO NOT EDIT BY HAND!!! - -// Copyright 2007, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -// Google Mock - a framework for writing C++ mock classes. -// -// This file implements some commonly used variadic actions. - -// GOOGLETEST_CM0002 DO NOT DELETE - -#ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ -#define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ - -#include -#include - -#include "gmock/gmock-actions.h" -#include "gmock/internal/gmock-port.h" - -// Include any custom callback actions added by the local installation. -#include "gmock/internal/custom/gmock-generated-actions.h" - -// Sometimes you want to give an action explicit template parameters -// that cannot be inferred from its value parameters. ACTION() and -// ACTION_P*() don't support that. ACTION_TEMPLATE() remedies that -// and can be viewed as an extension to ACTION() and ACTION_P*(). -// -// The syntax: -// -// ACTION_TEMPLATE(ActionName, -// HAS_m_TEMPLATE_PARAMS(kind1, name1, ..., kind_m, name_m), -// AND_n_VALUE_PARAMS(p1, ..., p_n)) { statements; } -// -// defines an action template that takes m explicit template -// parameters and n value parameters. name_i is the name of the i-th -// template parameter, and kind_i specifies whether it's a typename, -// an integral constant, or a template. p_i is the name of the i-th -// value parameter. -// -// Example: -// -// // DuplicateArg(output) converts the k-th argument of the mock -// // function to type T and copies it to *output. -// ACTION_TEMPLATE(DuplicateArg, -// HAS_2_TEMPLATE_PARAMS(int, k, typename, T), -// AND_1_VALUE_PARAMS(output)) { -// *output = T(::std::get(args)); -// } -// ... -// int n; -// EXPECT_CALL(mock, Foo(_, _)) -// .WillOnce(DuplicateArg<1, unsigned char>(&n)); -// -// To create an instance of an action template, write: -// -// ActionName(v1, ..., v_n) -// -// where the ts are the template arguments and the vs are the value -// arguments. The value argument types are inferred by the compiler. -// If you want to explicitly specify the value argument types, you can -// provide additional template arguments: -// -// ActionName(v1, ..., v_n) -// -// where u_i is the desired type of v_i. -// -// ACTION_TEMPLATE and ACTION/ACTION_P* can be overloaded on the -// number of value parameters, but not on the number of template -// parameters. Without the restriction, the meaning of the following -// is unclear: -// -// OverloadedAction(x); -// -// Are we using a single-template-parameter action where 'bool' refers -// to the type of x, or are we using a two-template-parameter action -// where the compiler is asked to infer the type of x? -// -// Implementation notes: -// -// GMOCK_INTERNAL_*_HAS_m_TEMPLATE_PARAMS and -// GMOCK_INTERNAL_*_AND_n_VALUE_PARAMS are internal macros for -// implementing ACTION_TEMPLATE. The main trick we use is to create -// new macro invocations when expanding a macro. For example, we have -// -// #define ACTION_TEMPLATE(name, template_params, value_params) -// ... GMOCK_INTERNAL_DECL_##template_params ... -// -// which causes ACTION_TEMPLATE(..., HAS_1_TEMPLATE_PARAMS(typename, T), ...) -// to expand to -// -// ... GMOCK_INTERNAL_DECL_HAS_1_TEMPLATE_PARAMS(typename, T) ... -// -// Since GMOCK_INTERNAL_DECL_HAS_1_TEMPLATE_PARAMS is a macro, the -// preprocessor will continue to expand it to -// -// ... typename T ... -// -// This technique conforms to the C++ standard and is portable. It -// allows us to implement action templates using O(N) code, where N is -// the maximum number of template/value parameters supported. Without -// using it, we'd have to devote O(N^2) amount of code to implement all -// combinations of m and n. - -// Declares the template parameters. -#define GMOCK_INTERNAL_DECL_HAS_1_TEMPLATE_PARAMS(kind0, name0) kind0 name0 -#define GMOCK_INTERNAL_DECL_HAS_2_TEMPLATE_PARAMS(kind0, name0, kind1, \ - name1) kind0 name0, kind1 name1 -#define GMOCK_INTERNAL_DECL_HAS_3_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ - kind2, name2) kind0 name0, kind1 name1, kind2 name2 -#define GMOCK_INTERNAL_DECL_HAS_4_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ - kind2, name2, kind3, name3) kind0 name0, kind1 name1, kind2 name2, \ - kind3 name3 -#define GMOCK_INTERNAL_DECL_HAS_5_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ - kind2, name2, kind3, name3, kind4, name4) kind0 name0, kind1 name1, \ - kind2 name2, kind3 name3, kind4 name4 -#define GMOCK_INTERNAL_DECL_HAS_6_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ - kind2, name2, kind3, name3, kind4, name4, kind5, name5) kind0 name0, \ - kind1 name1, kind2 name2, kind3 name3, kind4 name4, kind5 name5 -#define GMOCK_INTERNAL_DECL_HAS_7_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ - kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \ - name6) kind0 name0, kind1 name1, kind2 name2, kind3 name3, kind4 name4, \ - kind5 name5, kind6 name6 -#define GMOCK_INTERNAL_DECL_HAS_8_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ - kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \ - kind7, name7) kind0 name0, kind1 name1, kind2 name2, kind3 name3, \ - kind4 name4, kind5 name5, kind6 name6, kind7 name7 -#define GMOCK_INTERNAL_DECL_HAS_9_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ - kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \ - kind7, name7, kind8, name8) kind0 name0, kind1 name1, kind2 name2, \ - kind3 name3, kind4 name4, kind5 name5, kind6 name6, kind7 name7, \ - kind8 name8 -#define GMOCK_INTERNAL_DECL_HAS_10_TEMPLATE_PARAMS(kind0, name0, kind1, \ - name1, kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \ - name6, kind7, name7, kind8, name8, kind9, name9) kind0 name0, \ - kind1 name1, kind2 name2, kind3 name3, kind4 name4, kind5 name5, \ - kind6 name6, kind7 name7, kind8 name8, kind9 name9 - -// Lists the template parameters. -#define GMOCK_INTERNAL_LIST_HAS_1_TEMPLATE_PARAMS(kind0, name0) name0 -#define GMOCK_INTERNAL_LIST_HAS_2_TEMPLATE_PARAMS(kind0, name0, kind1, \ - name1) name0, name1 -#define GMOCK_INTERNAL_LIST_HAS_3_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ - kind2, name2) name0, name1, name2 -#define GMOCK_INTERNAL_LIST_HAS_4_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ - kind2, name2, kind3, name3) name0, name1, name2, name3 -#define GMOCK_INTERNAL_LIST_HAS_5_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ - kind2, name2, kind3, name3, kind4, name4) name0, name1, name2, name3, \ - name4 -#define GMOCK_INTERNAL_LIST_HAS_6_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ - kind2, name2, kind3, name3, kind4, name4, kind5, name5) name0, name1, \ - name2, name3, name4, name5 -#define GMOCK_INTERNAL_LIST_HAS_7_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ - kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \ - name6) name0, name1, name2, name3, name4, name5, name6 -#define GMOCK_INTERNAL_LIST_HAS_8_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ - kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \ - kind7, name7) name0, name1, name2, name3, name4, name5, name6, name7 -#define GMOCK_INTERNAL_LIST_HAS_9_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ - kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \ - kind7, name7, kind8, name8) name0, name1, name2, name3, name4, name5, \ - name6, name7, name8 -#define GMOCK_INTERNAL_LIST_HAS_10_TEMPLATE_PARAMS(kind0, name0, kind1, \ - name1, kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \ - name6, kind7, name7, kind8, name8, kind9, name9) name0, name1, name2, \ - name3, name4, name5, name6, name7, name8, name9 - -// Declares the types of value parameters. -#define GMOCK_INTERNAL_DECL_TYPE_AND_0_VALUE_PARAMS() -#define GMOCK_INTERNAL_DECL_TYPE_AND_1_VALUE_PARAMS(p0) , typename p0##_type -#define GMOCK_INTERNAL_DECL_TYPE_AND_2_VALUE_PARAMS(p0, p1) , \ - typename p0##_type, typename p1##_type -#define GMOCK_INTERNAL_DECL_TYPE_AND_3_VALUE_PARAMS(p0, p1, p2) , \ - typename p0##_type, typename p1##_type, typename p2##_type -#define GMOCK_INTERNAL_DECL_TYPE_AND_4_VALUE_PARAMS(p0, p1, p2, p3) , \ - typename p0##_type, typename p1##_type, typename p2##_type, \ - typename p3##_type -#define GMOCK_INTERNAL_DECL_TYPE_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) , \ - typename p0##_type, typename p1##_type, typename p2##_type, \ - typename p3##_type, typename p4##_type -#define GMOCK_INTERNAL_DECL_TYPE_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) , \ - typename p0##_type, typename p1##_type, typename p2##_type, \ - typename p3##_type, typename p4##_type, typename p5##_type -#define GMOCK_INTERNAL_DECL_TYPE_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ - p6) , typename p0##_type, typename p1##_type, typename p2##_type, \ - typename p3##_type, typename p4##_type, typename p5##_type, \ - typename p6##_type -#define GMOCK_INTERNAL_DECL_TYPE_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ - p6, p7) , typename p0##_type, typename p1##_type, typename p2##_type, \ - typename p3##_type, typename p4##_type, typename p5##_type, \ - typename p6##_type, typename p7##_type -#define GMOCK_INTERNAL_DECL_TYPE_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ - p6, p7, p8) , typename p0##_type, typename p1##_type, typename p2##_type, \ - typename p3##_type, typename p4##_type, typename p5##_type, \ - typename p6##_type, typename p7##_type, typename p8##_type -#define GMOCK_INTERNAL_DECL_TYPE_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ - p6, p7, p8, p9) , typename p0##_type, typename p1##_type, \ - typename p2##_type, typename p3##_type, typename p4##_type, \ - typename p5##_type, typename p6##_type, typename p7##_type, \ - typename p8##_type, typename p9##_type - -// Initializes the value parameters. -#define GMOCK_INTERNAL_INIT_AND_0_VALUE_PARAMS()\ - () -#define GMOCK_INTERNAL_INIT_AND_1_VALUE_PARAMS(p0)\ - (p0##_type gmock_p0) : p0(::std::move(gmock_p0)) -#define GMOCK_INTERNAL_INIT_AND_2_VALUE_PARAMS(p0, p1)\ - (p0##_type gmock_p0, p1##_type gmock_p1) : p0(::std::move(gmock_p0)), \ - p1(::std::move(gmock_p1)) -#define GMOCK_INTERNAL_INIT_AND_3_VALUE_PARAMS(p0, p1, p2)\ - (p0##_type gmock_p0, p1##_type gmock_p1, \ - p2##_type gmock_p2) : p0(::std::move(gmock_p0)), \ - p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)) -#define GMOCK_INTERNAL_INIT_AND_4_VALUE_PARAMS(p0, p1, p2, p3)\ - (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ - p3##_type gmock_p3) : p0(::std::move(gmock_p0)), \ - p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ - p3(::std::move(gmock_p3)) -#define GMOCK_INTERNAL_INIT_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4)\ - (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ - p3##_type gmock_p3, p4##_type gmock_p4) : p0(::std::move(gmock_p0)), \ - p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ - p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)) -#define GMOCK_INTERNAL_INIT_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5)\ - (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ - p3##_type gmock_p3, p4##_type gmock_p4, \ - p5##_type gmock_p5) : p0(::std::move(gmock_p0)), \ - p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ - p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ - p5(::std::move(gmock_p5)) -#define GMOCK_INTERNAL_INIT_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6)\ - (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ - p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ - p6##_type gmock_p6) : p0(::std::move(gmock_p0)), \ - p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ - p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ - p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)) -#define GMOCK_INTERNAL_INIT_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7)\ - (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ - p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ - p6##_type gmock_p6, p7##_type gmock_p7) : p0(::std::move(gmock_p0)), \ - p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ - p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ - p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)), \ - p7(::std::move(gmock_p7)) -#define GMOCK_INTERNAL_INIT_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ - p7, p8)\ - (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ - p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ - p6##_type gmock_p6, p7##_type gmock_p7, \ - p8##_type gmock_p8) : p0(::std::move(gmock_p0)), \ - p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ - p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ - p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)), \ - p7(::std::move(gmock_p7)), p8(::std::move(gmock_p8)) -#define GMOCK_INTERNAL_INIT_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ - p7, p8, p9)\ - (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ - p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ - p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \ - p9##_type gmock_p9) : p0(::std::move(gmock_p0)), \ - p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ - p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ - p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)), \ - p7(::std::move(gmock_p7)), p8(::std::move(gmock_p8)), \ - p9(::std::move(gmock_p9)) - -// Defines the copy constructor -#define GMOCK_INTERNAL_DEFN_COPY_AND_0_VALUE_PARAMS() \ - noexcept {} // Avoid https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82134 -#define GMOCK_INTERNAL_DEFN_COPY_AND_1_VALUE_PARAMS(...) = default; -#define GMOCK_INTERNAL_DEFN_COPY_AND_2_VALUE_PARAMS(...) = default; -#define GMOCK_INTERNAL_DEFN_COPY_AND_3_VALUE_PARAMS(...) = default; -#define GMOCK_INTERNAL_DEFN_COPY_AND_4_VALUE_PARAMS(...) = default; -#define GMOCK_INTERNAL_DEFN_COPY_AND_5_VALUE_PARAMS(...) = default; -#define GMOCK_INTERNAL_DEFN_COPY_AND_6_VALUE_PARAMS(...) = default; -#define GMOCK_INTERNAL_DEFN_COPY_AND_7_VALUE_PARAMS(...) = default; -#define GMOCK_INTERNAL_DEFN_COPY_AND_8_VALUE_PARAMS(...) = default; -#define GMOCK_INTERNAL_DEFN_COPY_AND_9_VALUE_PARAMS(...) = default; -#define GMOCK_INTERNAL_DEFN_COPY_AND_10_VALUE_PARAMS(...) = default; - -// Declares the fields for storing the value parameters. -#define GMOCK_INTERNAL_DEFN_AND_0_VALUE_PARAMS() -#define GMOCK_INTERNAL_DEFN_AND_1_VALUE_PARAMS(p0) p0##_type p0; -#define GMOCK_INTERNAL_DEFN_AND_2_VALUE_PARAMS(p0, p1) p0##_type p0; \ - p1##_type p1; -#define GMOCK_INTERNAL_DEFN_AND_3_VALUE_PARAMS(p0, p1, p2) p0##_type p0; \ - p1##_type p1; p2##_type p2; -#define GMOCK_INTERNAL_DEFN_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0##_type p0; \ - p1##_type p1; p2##_type p2; p3##_type p3; -#define GMOCK_INTERNAL_DEFN_AND_5_VALUE_PARAMS(p0, p1, p2, p3, \ - p4) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; -#define GMOCK_INTERNAL_DEFN_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, \ - p5) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \ - p5##_type p5; -#define GMOCK_INTERNAL_DEFN_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ - p6) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \ - p5##_type p5; p6##_type p6; -#define GMOCK_INTERNAL_DEFN_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ - p7) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \ - p5##_type p5; p6##_type p6; p7##_type p7; -#define GMOCK_INTERNAL_DEFN_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ - p7, p8) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; \ - p4##_type p4; p5##_type p5; p6##_type p6; p7##_type p7; p8##_type p8; -#define GMOCK_INTERNAL_DEFN_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ - p7, p8, p9) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; \ - p4##_type p4; p5##_type p5; p6##_type p6; p7##_type p7; p8##_type p8; \ - p9##_type p9; - -// Lists the value parameters. -#define GMOCK_INTERNAL_LIST_AND_0_VALUE_PARAMS() -#define GMOCK_INTERNAL_LIST_AND_1_VALUE_PARAMS(p0) p0 -#define GMOCK_INTERNAL_LIST_AND_2_VALUE_PARAMS(p0, p1) p0, p1 -#define GMOCK_INTERNAL_LIST_AND_3_VALUE_PARAMS(p0, p1, p2) p0, p1, p2 -#define GMOCK_INTERNAL_LIST_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0, p1, p2, p3 -#define GMOCK_INTERNAL_LIST_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) p0, p1, \ - p2, p3, p4 -#define GMOCK_INTERNAL_LIST_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) p0, \ - p1, p2, p3, p4, p5 -#define GMOCK_INTERNAL_LIST_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ - p6) p0, p1, p2, p3, p4, p5, p6 -#define GMOCK_INTERNAL_LIST_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ - p7) p0, p1, p2, p3, p4, p5, p6, p7 -#define GMOCK_INTERNAL_LIST_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ - p7, p8) p0, p1, p2, p3, p4, p5, p6, p7, p8 -#define GMOCK_INTERNAL_LIST_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ - p7, p8, p9) p0, p1, p2, p3, p4, p5, p6, p7, p8, p9 - -// Lists the value parameter types. -#define GMOCK_INTERNAL_LIST_TYPE_AND_0_VALUE_PARAMS() -#define GMOCK_INTERNAL_LIST_TYPE_AND_1_VALUE_PARAMS(p0) , p0##_type -#define GMOCK_INTERNAL_LIST_TYPE_AND_2_VALUE_PARAMS(p0, p1) , p0##_type, \ - p1##_type -#define GMOCK_INTERNAL_LIST_TYPE_AND_3_VALUE_PARAMS(p0, p1, p2) , p0##_type, \ - p1##_type, p2##_type -#define GMOCK_INTERNAL_LIST_TYPE_AND_4_VALUE_PARAMS(p0, p1, p2, p3) , \ - p0##_type, p1##_type, p2##_type, p3##_type -#define GMOCK_INTERNAL_LIST_TYPE_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) , \ - p0##_type, p1##_type, p2##_type, p3##_type, p4##_type -#define GMOCK_INTERNAL_LIST_TYPE_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) , \ - p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, p5##_type -#define GMOCK_INTERNAL_LIST_TYPE_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ - p6) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, p5##_type, \ - p6##_type -#define GMOCK_INTERNAL_LIST_TYPE_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ - p6, p7) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ - p5##_type, p6##_type, p7##_type -#define GMOCK_INTERNAL_LIST_TYPE_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ - p6, p7, p8) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ - p5##_type, p6##_type, p7##_type, p8##_type -#define GMOCK_INTERNAL_LIST_TYPE_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ - p6, p7, p8, p9) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ - p5##_type, p6##_type, p7##_type, p8##_type, p9##_type - -// Declares the value parameters. -#define GMOCK_INTERNAL_DECL_AND_0_VALUE_PARAMS() -#define GMOCK_INTERNAL_DECL_AND_1_VALUE_PARAMS(p0) p0##_type p0 -#define GMOCK_INTERNAL_DECL_AND_2_VALUE_PARAMS(p0, p1) p0##_type p0, \ - p1##_type p1 -#define GMOCK_INTERNAL_DECL_AND_3_VALUE_PARAMS(p0, p1, p2) p0##_type p0, \ - p1##_type p1, p2##_type p2 -#define GMOCK_INTERNAL_DECL_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0##_type p0, \ - p1##_type p1, p2##_type p2, p3##_type p3 -#define GMOCK_INTERNAL_DECL_AND_5_VALUE_PARAMS(p0, p1, p2, p3, \ - p4) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4 -#define GMOCK_INTERNAL_DECL_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, \ - p5) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \ - p5##_type p5 -#define GMOCK_INTERNAL_DECL_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ - p6) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \ - p5##_type p5, p6##_type p6 -#define GMOCK_INTERNAL_DECL_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ - p7) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \ - p5##_type p5, p6##_type p6, p7##_type p7 -#define GMOCK_INTERNAL_DECL_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ - p7, p8) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ - p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8 -#define GMOCK_INTERNAL_DECL_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ - p7, p8, p9) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ - p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8, \ - p9##_type p9 - -// The suffix of the class template implementing the action template. -#define GMOCK_INTERNAL_COUNT_AND_0_VALUE_PARAMS() -#define GMOCK_INTERNAL_COUNT_AND_1_VALUE_PARAMS(p0) P -#define GMOCK_INTERNAL_COUNT_AND_2_VALUE_PARAMS(p0, p1) P2 -#define GMOCK_INTERNAL_COUNT_AND_3_VALUE_PARAMS(p0, p1, p2) P3 -#define GMOCK_INTERNAL_COUNT_AND_4_VALUE_PARAMS(p0, p1, p2, p3) P4 -#define GMOCK_INTERNAL_COUNT_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) P5 -#define GMOCK_INTERNAL_COUNT_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) P6 -#define GMOCK_INTERNAL_COUNT_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6) P7 -#define GMOCK_INTERNAL_COUNT_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ - p7) P8 -#define GMOCK_INTERNAL_COUNT_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ - p7, p8) P9 -#define GMOCK_INTERNAL_COUNT_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ - p7, p8, p9) P10 - -// The name of the class template implementing the action template. -#define GMOCK_ACTION_CLASS_(name, value_params)\ - GTEST_CONCAT_TOKEN_(name##Action, GMOCK_INTERNAL_COUNT_##value_params) - -#define ACTION_TEMPLATE(name, template_params, value_params) \ - template \ - class GMOCK_ACTION_CLASS_(name, value_params) { \ - public: \ - explicit GMOCK_ACTION_CLASS_(name, value_params)( \ - GMOCK_INTERNAL_DECL_##value_params) \ - GMOCK_PP_IF(GMOCK_PP_IS_EMPTY(GMOCK_INTERNAL_COUNT_##value_params), \ - = default; , \ - : impl_(std::make_shared( \ - GMOCK_INTERNAL_LIST_##value_params)) { }) \ - GMOCK_ACTION_CLASS_(name, value_params)( \ - const GMOCK_ACTION_CLASS_(name, value_params)&) \ - GMOCK_INTERNAL_DEFN_COPY_##value_params \ - GMOCK_ACTION_CLASS_(name, value_params)( \ - GMOCK_ACTION_CLASS_(name, value_params)&&) \ - GMOCK_INTERNAL_DEFN_COPY_##value_params \ - template \ - operator ::testing::Action() const { \ - return GMOCK_PP_IF( \ - GMOCK_PP_IS_EMPTY(GMOCK_INTERNAL_COUNT_##value_params), \ - (::testing::internal::MakeAction()), \ - (::testing::internal::MakeAction(impl_))); \ - } \ - private: \ - class gmock_Impl { \ - public: \ - explicit gmock_Impl GMOCK_INTERNAL_INIT_##value_params {} \ - template \ - return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const; \ - GMOCK_INTERNAL_DEFN_##value_params \ - }; \ - GMOCK_PP_IF(GMOCK_PP_IS_EMPTY(GMOCK_INTERNAL_COUNT_##value_params), \ - , std::shared_ptr impl_;) \ - }; \ - template \ - GMOCK_ACTION_CLASS_(name, value_params)< \ - GMOCK_INTERNAL_LIST_##template_params \ - GMOCK_INTERNAL_LIST_TYPE_##value_params> name( \ - GMOCK_INTERNAL_DECL_##value_params) GTEST_MUST_USE_RESULT_; \ - template \ - inline GMOCK_ACTION_CLASS_(name, value_params)< \ - GMOCK_INTERNAL_LIST_##template_params \ - GMOCK_INTERNAL_LIST_TYPE_##value_params> name( \ - GMOCK_INTERNAL_DECL_##value_params) { \ - return GMOCK_ACTION_CLASS_(name, value_params)< \ - GMOCK_INTERNAL_LIST_##template_params \ - GMOCK_INTERNAL_LIST_TYPE_##value_params>( \ - GMOCK_INTERNAL_LIST_##value_params); \ - } \ - template \ - template \ - return_type GMOCK_ACTION_CLASS_(name, value_params)< \ - GMOCK_INTERNAL_LIST_##template_params \ - GMOCK_INTERNAL_LIST_TYPE_##value_params>::gmock_Impl::gmock_PerformImpl( \ - GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const - -namespace testing { - -// The ACTION*() macros trigger warning C4100 (unreferenced formal -// parameter) in MSVC with -W4. Unfortunately they cannot be fixed in -// the macro definition, as the warnings are generated when the macro -// is expanded and macro expansion cannot contain #pragma. Therefore -// we suppress them here. -#ifdef _MSC_VER -# pragma warning(push) -# pragma warning(disable:4100) -#endif - -namespace internal { - -// internal::InvokeArgument - a helper for InvokeArgument action. -// The basic overloads are provided here for generic functors. -// Overloads for other custom-callables are provided in the -// internal/custom/gmock-generated-actions.h header. -template -auto InvokeArgument(F f, Args... args) -> decltype(f(args...)) { - return f(args...); -} - -template -struct InvokeArgumentAction { - template - auto operator()(Args&&... args) const -> decltype(internal::InvokeArgument( - std::get(std::forward_as_tuple(std::forward(args)...)), - std::declval()...)) { - internal::FlatTuple args_tuple(FlatTupleConstructTag{}, - std::forward(args)...); - return params.Apply([&](const Params&... unpacked_params) { - auto&& callable = args_tuple.template Get(); - return internal::InvokeArgument( - std::forward(callable), unpacked_params...); - }); - } - - internal::FlatTuple params; -}; - -} // namespace internal - -// The InvokeArgument(a1, a2, ..., a_k) action invokes the N-th -// (0-based) argument, which must be a k-ary callable, of the mock -// function, with arguments a1, a2, ..., a_k. -// -// Notes: -// -// 1. The arguments are passed by value by default. If you need to -// pass an argument by reference, wrap it inside std::ref(). For -// example, -// -// InvokeArgument<1>(5, string("Hello"), std::ref(foo)) -// -// passes 5 and string("Hello") by value, and passes foo by -// reference. -// -// 2. If the callable takes an argument by reference but std::ref() is -// not used, it will receive the reference to a copy of the value, -// instead of the original value. For example, when the 0-th -// argument of the mock function takes a const string&, the action -// -// InvokeArgument<0>(string("Hello")) -// -// makes a copy of the temporary string("Hello") object and passes a -// reference of the copy, instead of the original temporary object, -// to the callable. This makes it easy for a user to define an -// InvokeArgument action from temporary values and have it performed -// later. -template -internal::InvokeArgumentAction::type...> -InvokeArgument(Params&&... params) { - return {internal::FlatTuple::type...>( - internal::FlatTupleConstructTag{}, std::forward(params)...)}; -} - -#ifdef _MSC_VER -# pragma warning(pop) -#endif - -} // namespace testing - -#endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ diff --git a/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-generated-actions.h.pump b/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-generated-actions.h.pump deleted file mode 100644 index 982caf9..0000000 --- a/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-generated-actions.h.pump +++ /dev/null @@ -1,390 +0,0 @@ -$$ -*- mode: c++; -*- -$$ This is a Pump source file. Please use Pump to convert it to -$$ gmock-generated-actions.h. -$$ -$var n = 10 $$ The maximum arity we support. -$$}} This meta comment fixes auto-indentation in editors. -// Copyright 2007, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -// Google Mock - a framework for writing C++ mock classes. -// -// This file implements some commonly used variadic actions. - -// GOOGLETEST_CM0002 DO NOT DELETE - -#ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ -#define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ - -#include -#include - -#include "gmock/gmock-actions.h" -#include "gmock/internal/gmock-port.h" - -// Include any custom callback actions added by the local installation. -#include "gmock/internal/custom/gmock-generated-actions.h" - -$range i 0..n -$range k 0..n-1 - -// Sometimes you want to give an action explicit template parameters -// that cannot be inferred from its value parameters. ACTION() and -// ACTION_P*() don't support that. ACTION_TEMPLATE() remedies that -// and can be viewed as an extension to ACTION() and ACTION_P*(). -// -// The syntax: -// -// ACTION_TEMPLATE(ActionName, -// HAS_m_TEMPLATE_PARAMS(kind1, name1, ..., kind_m, name_m), -// AND_n_VALUE_PARAMS(p1, ..., p_n)) { statements; } -// -// defines an action template that takes m explicit template -// parameters and n value parameters. name_i is the name of the i-th -// template parameter, and kind_i specifies whether it's a typename, -// an integral constant, or a template. p_i is the name of the i-th -// value parameter. -// -// Example: -// -// // DuplicateArg(output) converts the k-th argument of the mock -// // function to type T and copies it to *output. -// ACTION_TEMPLATE(DuplicateArg, -// HAS_2_TEMPLATE_PARAMS(int, k, typename, T), -// AND_1_VALUE_PARAMS(output)) { -// *output = T(::std::get(args)); -// } -// ... -// int n; -// EXPECT_CALL(mock, Foo(_, _)) -// .WillOnce(DuplicateArg<1, unsigned char>(&n)); -// -// To create an instance of an action template, write: -// -// ActionName(v1, ..., v_n) -// -// where the ts are the template arguments and the vs are the value -// arguments. The value argument types are inferred by the compiler. -// If you want to explicitly specify the value argument types, you can -// provide additional template arguments: -// -// ActionName(v1, ..., v_n) -// -// where u_i is the desired type of v_i. -// -// ACTION_TEMPLATE and ACTION/ACTION_P* can be overloaded on the -// number of value parameters, but not on the number of template -// parameters. Without the restriction, the meaning of the following -// is unclear: -// -// OverloadedAction(x); -// -// Are we using a single-template-parameter action where 'bool' refers -// to the type of x, or are we using a two-template-parameter action -// where the compiler is asked to infer the type of x? -// -// Implementation notes: -// -// GMOCK_INTERNAL_*_HAS_m_TEMPLATE_PARAMS and -// GMOCK_INTERNAL_*_AND_n_VALUE_PARAMS are internal macros for -// implementing ACTION_TEMPLATE. The main trick we use is to create -// new macro invocations when expanding a macro. For example, we have -// -// #define ACTION_TEMPLATE(name, template_params, value_params) -// ... GMOCK_INTERNAL_DECL_##template_params ... -// -// which causes ACTION_TEMPLATE(..., HAS_1_TEMPLATE_PARAMS(typename, T), ...) -// to expand to -// -// ... GMOCK_INTERNAL_DECL_HAS_1_TEMPLATE_PARAMS(typename, T) ... -// -// Since GMOCK_INTERNAL_DECL_HAS_1_TEMPLATE_PARAMS is a macro, the -// preprocessor will continue to expand it to -// -// ... typename T ... -// -// This technique conforms to the C++ standard and is portable. It -// allows us to implement action templates using O(N) code, where N is -// the maximum number of template/value parameters supported. Without -// using it, we'd have to devote O(N^2) amount of code to implement all -// combinations of m and n. - -// Declares the template parameters. - -$range j 1..n -$for j [[ -$range m 0..j-1 -#define GMOCK_INTERNAL_DECL_HAS_$j[[]] -_TEMPLATE_PARAMS($for m, [[kind$m, name$m]]) $for m, [[kind$m name$m]] - - -]] - -// Lists the template parameters. - -$for j [[ -$range m 0..j-1 -#define GMOCK_INTERNAL_LIST_HAS_$j[[]] -_TEMPLATE_PARAMS($for m, [[kind$m, name$m]]) $for m, [[name$m]] - - -]] - -// Declares the types of value parameters. - -$for i [[ -$range j 0..i-1 -#define GMOCK_INTERNAL_DECL_TYPE_AND_$i[[]] -_VALUE_PARAMS($for j, [[p$j]]) $for j [[, typename p$j##_type]] - - -]] - -// Initializes the value parameters. - -$for i [[ -$range j 0..i-1 -#define GMOCK_INTERNAL_INIT_AND_$i[[]]_VALUE_PARAMS($for j, [[p$j]])\ - ($for j, [[p$j##_type gmock_p$j]])$if i>0 [[ : ]]$for j, [[p$j(::std::move(gmock_p$j))]] - - -]] - -// Defines the copy constructor - -$for i [[ -#define GMOCK_INTERNAL_DEFN_COPY_AND_$i[[]]_VALUE_PARAMS$if i == 0[[() \ - noexcept {} // Avoid https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82134 -]] $else [[(...) = default;]] - - -]] - -// Declares the fields for storing the value parameters. - -$for i [[ -$range j 0..i-1 -#define GMOCK_INTERNAL_DEFN_AND_$i[[]] -_VALUE_PARAMS($for j, [[p$j]]) $for j [[p$j##_type p$j; ]] - - -]] - -// Lists the value parameters. - -$for i [[ -$range j 0..i-1 -#define GMOCK_INTERNAL_LIST_AND_$i[[]] -_VALUE_PARAMS($for j, [[p$j]]) $for j, [[p$j]] - - -]] - -// Lists the value parameter types. - -$for i [[ -$range j 0..i-1 -#define GMOCK_INTERNAL_LIST_TYPE_AND_$i[[]] -_VALUE_PARAMS($for j, [[p$j]]) $for j [[, p$j##_type]] - - -]] - -// Declares the value parameters. - -$for i [[ -$range j 0..i-1 -#define GMOCK_INTERNAL_DECL_AND_$i[[]]_VALUE_PARAMS($for j, [[p$j]]) [[]] -$for j, [[p$j##_type p$j]] - - -]] - -// The suffix of the class template implementing the action template. -$for i [[ - - -$range j 0..i-1 -#define GMOCK_INTERNAL_COUNT_AND_$i[[]]_VALUE_PARAMS($for j, [[p$j]]) [[]] -$if i==1 [[P]] $elif i>=2 [[P$i]] -]] - - -// The name of the class template implementing the action template. -#define GMOCK_ACTION_CLASS_(name, value_params)\ - GTEST_CONCAT_TOKEN_(name##Action, GMOCK_INTERNAL_COUNT_##value_params) - -$range k 0..n-1 - -#define ACTION_TEMPLATE(name, template_params, value_params) \ - template \ - class GMOCK_ACTION_CLASS_(name, value_params) { \ - public: \ - explicit GMOCK_ACTION_CLASS_(name, value_params)( \ - GMOCK_INTERNAL_DECL_##value_params) \ - GMOCK_PP_IF(GMOCK_PP_IS_EMPTY(GMOCK_INTERNAL_COUNT_##value_params), \ - = default; , \ - : impl_(std::make_shared( \ - GMOCK_INTERNAL_LIST_##value_params)) { }) \ - GMOCK_ACTION_CLASS_(name, value_params)( \ - const GMOCK_ACTION_CLASS_(name, value_params)&) \ - GMOCK_INTERNAL_DEFN_COPY_##value_params \ - GMOCK_ACTION_CLASS_(name, value_params)( \ - GMOCK_ACTION_CLASS_(name, value_params)&&) \ - GMOCK_INTERNAL_DEFN_COPY_##value_params \ - template \ - operator ::testing::Action() const { \ - return GMOCK_PP_IF( \ - GMOCK_PP_IS_EMPTY(GMOCK_INTERNAL_COUNT_##value_params), \ - (::testing::internal::MakeAction()), \ - (::testing::internal::MakeAction(impl_))); \ - } \ - private: \ - class gmock_Impl { \ - public: \ - explicit gmock_Impl GMOCK_INTERNAL_INIT_##value_params {} \ - template \ - return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const; \ - GMOCK_INTERNAL_DEFN_##value_params \ - }; \ - GMOCK_PP_IF(GMOCK_PP_IS_EMPTY(GMOCK_INTERNAL_COUNT_##value_params), \ - , std::shared_ptr impl_;) \ - }; \ - template \ - GMOCK_ACTION_CLASS_(name, value_params)< \ - GMOCK_INTERNAL_LIST_##template_params \ - GMOCK_INTERNAL_LIST_TYPE_##value_params> name( \ - GMOCK_INTERNAL_DECL_##value_params) GTEST_MUST_USE_RESULT_; \ - template \ - inline GMOCK_ACTION_CLASS_(name, value_params)< \ - GMOCK_INTERNAL_LIST_##template_params \ - GMOCK_INTERNAL_LIST_TYPE_##value_params> name( \ - GMOCK_INTERNAL_DECL_##value_params) { \ - return GMOCK_ACTION_CLASS_(name, value_params)< \ - GMOCK_INTERNAL_LIST_##template_params \ - GMOCK_INTERNAL_LIST_TYPE_##value_params>( \ - GMOCK_INTERNAL_LIST_##value_params); \ - } \ - template \ - template \ - return_type GMOCK_ACTION_CLASS_(name, value_params)< \ - GMOCK_INTERNAL_LIST_##template_params \ - GMOCK_INTERNAL_LIST_TYPE_##value_params>::gmock_Impl::gmock_PerformImpl( \ - GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const - -namespace testing { - -// The ACTION*() macros trigger warning C4100 (unreferenced formal -// parameter) in MSVC with -W4. Unfortunately they cannot be fixed in -// the macro definition, as the warnings are generated when the macro -// is expanded and macro expansion cannot contain #pragma. Therefore -// we suppress them here. -#ifdef _MSC_VER -# pragma warning(push) -# pragma warning(disable:4100) -#endif - -namespace internal { - -// internal::InvokeArgument - a helper for InvokeArgument action. -// The basic overloads are provided here for generic functors. -// Overloads for other custom-callables are provided in the -// internal/custom/gmock-generated-actions.h header. -template -auto InvokeArgument(F f, Args... args) -> decltype(f(args...)) { - return f(args...); -} - -template -struct InvokeArgumentAction { - template - auto operator()(Args&&... args) const -> decltype(internal::InvokeArgument( - std::get(std::forward_as_tuple(std::forward(args)...)), - std::declval()...)) { - internal::FlatTuple args_tuple(std::forward(args)...); - return params.Apply([&](const Params&... unpacked_params) { - auto&& callable = args_tuple.template Get(); - return internal::InvokeArgument( - std::forward(callable), unpacked_params...); - }); - } - - internal::FlatTuple params; -}; - -} // namespace internal - -// The InvokeArgument(a1, a2, ..., a_k) action invokes the N-th -// (0-based) argument, which must be a k-ary callable, of the mock -// function, with arguments a1, a2, ..., a_k. -// -// Notes: -// -// 1. The arguments are passed by value by default. If you need to -// pass an argument by reference, wrap it inside std::ref(). For -// example, -// -// InvokeArgument<1>(5, string("Hello"), std::ref(foo)) -// -// passes 5 and string("Hello") by value, and passes foo by -// reference. -// -// 2. If the callable takes an argument by reference but std::ref() is -// not used, it will receive the reference to a copy of the value, -// instead of the original value. For example, when the 0-th -// argument of the mock function takes a const string&, the action -// -// InvokeArgument<0>(string("Hello")) -// -// makes a copy of the temporary string("Hello") object and passes a -// reference of the copy, instead of the original temporary object, -// to the callable. This makes it easy for a user to define an -// InvokeArgument action from temporary values and have it performed -// later. -template -internal::InvokeArgumentAction::type...> -InvokeArgument(Params&&... params) { - return {internal::FlatTuple::type...>( - std::forward(params)...)}; -} - -#ifdef _MSC_VER -# pragma warning(pop) -#endif - -} // namespace testing - -#endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ diff --git a/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-matchers.h b/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-matchers.h deleted file mode 100644 index 9641ed4..0000000 --- a/UnitTests_App/GoogleTest/googlemock/include/gmock/gmock-matchers.h +++ /dev/null @@ -1,5394 +0,0 @@ -// Copyright 2007, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -// Google Mock - a framework for writing C++ mock classes. -// -// The MATCHER* family of macros can be used in a namespace scope to -// define custom matchers easily. -// -// Basic Usage -// =========== -// -// The syntax -// -// MATCHER(name, description_string) { statements; } -// -// defines a matcher with the given name that executes the statements, -// which must return a bool to indicate if the match succeeds. Inside -// the statements, you can refer to the value being matched by 'arg', -// and refer to its type by 'arg_type'. -// -// The description string documents what the matcher does, and is used -// to generate the failure message when the match fails. Since a -// MATCHER() is usually defined in a header file shared by multiple -// C++ source files, we require the description to be a C-string -// literal to avoid possible side effects. It can be empty, in which -// case we'll use the sequence of words in the matcher name as the -// description. -// -// For example: -// -// MATCHER(IsEven, "") { return (arg % 2) == 0; } -// -// allows you to write -// -// // Expects mock_foo.Bar(n) to be called where n is even. -// EXPECT_CALL(mock_foo, Bar(IsEven())); -// -// or, -// -// // Verifies that the value of some_expression is even. -// EXPECT_THAT(some_expression, IsEven()); -// -// If the above assertion fails, it will print something like: -// -// Value of: some_expression -// Expected: is even -// Actual: 7 -// -// where the description "is even" is automatically calculated from the -// matcher name IsEven. -// -// Argument Type -// ============= -// -// Note that the type of the value being matched (arg_type) is -// determined by the context in which you use the matcher and is -// supplied to you by the compiler, so you don't need to worry about -// declaring it (nor can you). This allows the matcher to be -// polymorphic. For example, IsEven() can be used to match any type -// where the value of "(arg % 2) == 0" can be implicitly converted to -// a bool. In the "Bar(IsEven())" example above, if method Bar() -// takes an int, 'arg_type' will be int; if it takes an unsigned long, -// 'arg_type' will be unsigned long; and so on. -// -// Parameterizing Matchers -// ======================= -// -// Sometimes you'll want to parameterize the matcher. For that you -// can use another macro: -// -// MATCHER_P(name, param_name, description_string) { statements; } -// -// For example: -// -// MATCHER_P(HasAbsoluteValue, value, "") { return abs(arg) == value; } -// -// will allow you to write: -// -// EXPECT_THAT(Blah("a"), HasAbsoluteValue(n)); -// -// which may lead to this message (assuming n is 10): -// -// Value of: Blah("a") -// Expected: has absolute value 10 -// Actual: -9 -// -// Note that both the matcher description and its parameter are -// printed, making the message human-friendly. -// -// In the matcher definition body, you can write 'foo_type' to -// reference the type of a parameter named 'foo'. For example, in the -// body of MATCHER_P(HasAbsoluteValue, value) above, you can write -// 'value_type' to refer to the type of 'value'. -// -// We also provide MATCHER_P2, MATCHER_P3, ..., up to MATCHER_P$n to -// support multi-parameter matchers. -// -// Describing Parameterized Matchers -// ================================= -// -// The last argument to MATCHER*() is a string-typed expression. The -// expression can reference all of the matcher's parameters and a -// special bool-typed variable named 'negation'. When 'negation' is -// false, the expression should evaluate to the matcher's description; -// otherwise it should evaluate to the description of the negation of -// the matcher. For example, -// -// using testing::PrintToString; -// -// MATCHER_P2(InClosedRange, low, hi, -// std::string(negation ? "is not" : "is") + " in range [" + -// PrintToString(low) + ", " + PrintToString(hi) + "]") { -// return low <= arg && arg <= hi; -// } -// ... -// EXPECT_THAT(3, InClosedRange(4, 6)); -// EXPECT_THAT(3, Not(InClosedRange(2, 4))); -// -// would generate two failures that contain the text: -// -// Expected: is in range [4, 6] -// ... -// Expected: is not in range [2, 4] -// -// If you specify "" as the description, the failure message will -// contain the sequence of words in the matcher name followed by the -// parameter values printed as a tuple. For example, -// -// MATCHER_P2(InClosedRange, low, hi, "") { ... } -// ... -// EXPECT_THAT(3, InClosedRange(4, 6)); -// EXPECT_THAT(3, Not(InClosedRange(2, 4))); -// -// would generate two failures that contain the text: -// -// Expected: in closed range (4, 6) -// ... -// Expected: not (in closed range (2, 4)) -// -// Types of Matcher Parameters -// =========================== -// -// For the purpose of typing, you can view -// -// MATCHER_Pk(Foo, p1, ..., pk, description_string) { ... } -// -// as shorthand for -// -// template -// FooMatcherPk -// Foo(p1_type p1, ..., pk_type pk) { ... } -// -// When you write Foo(v1, ..., vk), the compiler infers the types of -// the parameters v1, ..., and vk for you. If you are not happy with -// the result of the type inference, you can specify the types by -// explicitly instantiating the template, as in Foo(5, -// false). As said earlier, you don't get to (or need to) specify -// 'arg_type' as that's determined by the context in which the matcher -// is used. You can assign the result of expression Foo(p1, ..., pk) -// to a variable of type FooMatcherPk. This -// can be useful when composing matchers. -// -// While you can instantiate a matcher template with reference types, -// passing the parameters by pointer usually makes your code more -// readable. If, however, you still want to pass a parameter by -// reference, be aware that in the failure message generated by the -// matcher you will see the value of the referenced object but not its -// address. -// -// Explaining Match Results -// ======================== -// -// Sometimes the matcher description alone isn't enough to explain why -// the match has failed or succeeded. For example, when expecting a -// long string, it can be very helpful to also print the diff between -// the expected string and the actual one. To achieve that, you can -// optionally stream additional information to a special variable -// named result_listener, whose type is a pointer to class -// MatchResultListener: -// -// MATCHER_P(EqualsLongString, str, "") { -// if (arg == str) return true; -// -// *result_listener << "the difference: " -/// << DiffStrings(str, arg); -// return false; -// } -// -// Overloading Matchers -// ==================== -// -// You can overload matchers with different numbers of parameters: -// -// MATCHER_P(Blah, a, description_string1) { ... } -// MATCHER_P2(Blah, a, b, description_string2) { ... } -// -// Caveats -// ======= -// -// When defining a new matcher, you should also consider implementing -// MatcherInterface or using MakePolymorphicMatcher(). These -// approaches require more work than the MATCHER* macros, but also -// give you more control on the types of the value being matched and -// the matcher parameters, which may leads to better compiler error -// messages when the matcher is used wrong. They also allow -// overloading matchers based on parameter types (as opposed to just -// based on the number of parameters). -// -// MATCHER*() can only be used in a namespace scope as templates cannot be -// declared inside of a local class. -// -// More Information -// ================ -// -// To learn more about using these macros, please search for 'MATCHER' -// on -// https://github.com/google/googletest/blob/master/googlemock/docs/cook_book.md -// -// This file also implements some commonly used argument matchers. More -// matchers can be defined by the user implementing the -// MatcherInterface interface if necessary. -// -// See googletest/include/gtest/gtest-matchers.h for the definition of class -// Matcher, class MatcherInterface, and others. - -// GOOGLETEST_CM0002 DO NOT DELETE - -#ifndef GMOCK_INCLUDE_GMOCK_GMOCK_MATCHERS_H_ -#define GMOCK_INCLUDE_GMOCK_GMOCK_MATCHERS_H_ - -#include -#include -#include -#include -#include -#include -#include // NOLINT -#include -#include -#include -#include -#include - -#include "gmock/internal/gmock-internal-utils.h" -#include "gmock/internal/gmock-port.h" -#include "gmock/internal/gmock-pp.h" -#include "gtest/gtest.h" - -// MSVC warning C5046 is new as of VS2017 version 15.8. -#if defined(_MSC_VER) && _MSC_VER >= 1915 -#define GMOCK_MAYBE_5046_ 5046 -#else -#define GMOCK_MAYBE_5046_ -#endif - -GTEST_DISABLE_MSC_WARNINGS_PUSH_( - 4251 GMOCK_MAYBE_5046_ /* class A needs to have dll-interface to be used by - clients of class B */ - /* Symbol involving type with internal linkage not defined */) - -namespace testing { - -// To implement a matcher Foo for type T, define: -// 1. a class FooMatcherImpl that implements the -// MatcherInterface interface, and -// 2. a factory function that creates a Matcher object from a -// FooMatcherImpl*. -// -// The two-level delegation design makes it possible to allow a user -// to write "v" instead of "Eq(v)" where a Matcher is expected, which -// is impossible if we pass matchers by pointers. It also eases -// ownership management as Matcher objects can now be copied like -// plain values. - -// A match result listener that stores the explanation in a string. -class StringMatchResultListener : public MatchResultListener { - public: - StringMatchResultListener() : MatchResultListener(&ss_) {} - - // Returns the explanation accumulated so far. - std::string str() const { return ss_.str(); } - - // Clears the explanation accumulated so far. - void Clear() { ss_.str(""); } - - private: - ::std::stringstream ss_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(StringMatchResultListener); -}; - -// Anything inside the 'internal' namespace IS INTERNAL IMPLEMENTATION -// and MUST NOT BE USED IN USER CODE!!! -namespace internal { - -// The MatcherCastImpl class template is a helper for implementing -// MatcherCast(). We need this helper in order to partially -// specialize the implementation of MatcherCast() (C++ allows -// class/struct templates to be partially specialized, but not -// function templates.). - -// This general version is used when MatcherCast()'s argument is a -// polymorphic matcher (i.e. something that can be converted to a -// Matcher but is not one yet; for example, Eq(value)) or a value (for -// example, "hello"). -template -class MatcherCastImpl { - public: - static Matcher Cast(const M& polymorphic_matcher_or_value) { - // M can be a polymorphic matcher, in which case we want to use - // its conversion operator to create Matcher. Or it can be a value - // that should be passed to the Matcher's constructor. - // - // We can't call Matcher(polymorphic_matcher_or_value) when M is a - // polymorphic matcher because it'll be ambiguous if T has an implicit - // constructor from M (this usually happens when T has an implicit - // constructor from any type). - // - // It won't work to unconditionally implict_cast - // polymorphic_matcher_or_value to Matcher because it won't trigger - // a user-defined conversion from M to T if one exists (assuming M is - // a value). - return CastImpl(polymorphic_matcher_or_value, - std::is_convertible>{}, - std::is_convertible{}); - } - - private: - template - static Matcher CastImpl(const M& polymorphic_matcher_or_value, - std::true_type /* convertible_to_matcher */, - std::integral_constant) { - // M is implicitly convertible to Matcher, which means that either - // M is a polymorphic matcher or Matcher has an implicit constructor - // from M. In both cases using the implicit conversion will produce a - // matcher. - // - // Even if T has an implicit constructor from M, it won't be called because - // creating Matcher would require a chain of two user-defined conversions - // (first to create T from M and then to create Matcher from T). - return polymorphic_matcher_or_value; - } - - // M can't be implicitly converted to Matcher, so M isn't a polymorphic - // matcher. It's a value of a type implicitly convertible to T. Use direct - // initialization to create a matcher. - static Matcher CastImpl(const M& value, - std::false_type /* convertible_to_matcher */, - std::true_type /* convertible_to_T */) { - return Matcher(ImplicitCast_(value)); - } - - // M can't be implicitly converted to either Matcher or T. Attempt to use - // polymorphic matcher Eq(value) in this case. - // - // Note that we first attempt to perform an implicit cast on the value and - // only fall back to the polymorphic Eq() matcher afterwards because the - // latter calls bool operator==(const Lhs& lhs, const Rhs& rhs) in the end - // which might be undefined even when Rhs is implicitly convertible to Lhs - // (e.g. std::pair vs. std::pair). - // - // We don't define this method inline as we need the declaration of Eq(). - static Matcher CastImpl(const M& value, - std::false_type /* convertible_to_matcher */, - std::false_type /* convertible_to_T */); -}; - -// This more specialized version is used when MatcherCast()'s argument -// is already a Matcher. This only compiles when type T can be -// statically converted to type U. -template -class MatcherCastImpl > { - public: - static Matcher Cast(const Matcher& source_matcher) { - return Matcher(new Impl(source_matcher)); - } - - private: - class Impl : public MatcherInterface { - public: - explicit Impl(const Matcher& source_matcher) - : source_matcher_(source_matcher) {} - - // We delegate the matching logic to the source matcher. - bool MatchAndExplain(T x, MatchResultListener* listener) const override { - using FromType = typename std::remove_cv::type>::type>::type; - using ToType = typename std::remove_cv::type>::type>::type; - // Do not allow implicitly converting base*/& to derived*/&. - static_assert( - // Do not trigger if only one of them is a pointer. That implies a - // regular conversion and not a down_cast. - (std::is_pointer::type>::value != - std::is_pointer::type>::value) || - std::is_same::value || - !std::is_base_of::value, - "Can't implicitly convert from to "); - - // Do the cast to `U` explicitly if necessary. - // Otherwise, let implicit conversions do the trick. - using CastType = - typename std::conditional::value, - T&, U>::type; - - return source_matcher_.MatchAndExplain(static_cast(x), - listener); - } - - void DescribeTo(::std::ostream* os) const override { - source_matcher_.DescribeTo(os); - } - - void DescribeNegationTo(::std::ostream* os) const override { - source_matcher_.DescribeNegationTo(os); - } - - private: - const Matcher source_matcher_; - }; -}; - -// This even more specialized version is used for efficiently casting -// a matcher to its own type. -template -class MatcherCastImpl > { - public: - static Matcher Cast(const Matcher& matcher) { return matcher; } -}; - -// Template specialization for parameterless Matcher. -template -class MatcherBaseImpl { - public: - MatcherBaseImpl() = default; - - template - operator ::testing::Matcher() const { // NOLINT(runtime/explicit) - return ::testing::Matcher(new - typename Derived::template gmock_Impl()); - } -}; - -// Template specialization for Matcher with parameters. -template

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%0AaMBhYj)h{I9DU8 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