diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..13566b81b018ad684f3a35fee301741b2734c8f4
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/GleamDB.iml b/.idea/GleamDB.iml
new file mode 100644
index 0000000000000000000000000000000000000000..f08604bb65b25149b195f9e9f282f9683a428592
--- /dev/null
+++ b/.idea/GleamDB.iml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module classpath="CMake" type="CPP_MODULE" version="4" />
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..79b3c94830bab93d40d0770f2765540fe24ed423
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" />
+</project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0b08f1d3eee3685cd362906db1e095e35e5b38e3
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/GleamDB.iml" filepath="$PROJECT_DIR$/.idea/GleamDB.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..35eb1ddfbbc029bcab630581847471d7f238ec53
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git "a/2024\346\225\260\346\215\256\345\272\223\347\256\241\347\220\206\347\263\273\347\273\237\350\256\276\350\256\241\350\265\233\346\212\245\345\220\215\345\217\212\346\217\220\344\272\244\346\214\207\345\215\227.pdf" "b/2024\346\225\260\346\215\256\345\272\223\347\256\241\347\220\206\347\263\273\347\273\237\350\256\276\350\256\241\350\265\233\346\212\245\345\220\215\345\217\212\346\217\220\344\272\244\346\214\207\345\215\227.pdf"
deleted file mode 100644
index 2766525b51f65ebe65ab24197ce2c3ecb66f6a84..0000000000000000000000000000000000000000
Binary files "a/2024\346\225\260\346\215\256\345\272\223\347\256\241\347\220\206\347\263\273\347\273\237\350\256\276\350\256\241\350\265\233\346\212\245\345\220\215\345\217\212\346\217\220\344\272\244\346\214\207\345\215\227.pdf" and /dev/null differ
diff --git "a/2024\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237\350\256\276\350\256\241\350\265\233\346\212\200\346\234\257\346\226\271\346\241\210V3.0.pdf" "b/2024\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237\350\256\276\350\256\241\350\265\233\346\212\200\346\234\257\346\226\271\346\241\210V3.0.pdf"
deleted file mode 100644
index 1347ea0192e679c43d88d3cd9c40c72eb241c16a..0000000000000000000000000000000000000000
Binary files "a/2024\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237\350\256\276\350\256\241\350\265\233\346\212\200\346\234\257\346\226\271\346\241\210V3.0.pdf" and /dev/null differ
diff --git "a/2024\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237\350\256\276\350\256\241\350\265\233\347\253\240\347\250\213V3.0.pdf" "b/2024\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237\350\256\276\350\256\241\350\265\233\347\253\240\347\250\213V3.0.pdf"
deleted file mode 100644
index ecaca1a327fdccf37a4f6cb1f4a50cc87fa4bbb4..0000000000000000000000000000000000000000
Binary files "a/2024\346\225\260\346\215\256\345\272\223\347\263\273\347\273\237\350\256\276\350\256\241\350\265\233\347\253\240\347\250\213V3.0.pdf" and /dev/null differ
diff --git a/rmdb/CMakeLists.txt b/CMakeLists.txt
similarity index 100%
rename from rmdb/CMakeLists.txt
rename to CMakeLists.txt
diff --git a/rmdb/License b/License
similarity index 100%
rename from rmdb/License
rename to License
diff --git a/README.md b/README.md
index 2187f2dc022e431d467288287413618f36c90490..141b0cafc0a5de9c8dcb7f3c9fdec45032d665b3 100644
--- a/README.md
+++ b/README.md
@@ -1,96 +1,44 @@
-<<<<<<< HEAD
-# GleamDB
+<div align="center">
+<img src="RMDB.jpg"  width=25%  /> 
+</div>
 
 
 
-## Getting started
+全国大学生计算机系统能力大赛数据库管理系统赛道,以培养学生“数据库管理系统内核实现”能力为目标。本次比赛为参赛队伍提供数据库管理系统代码框架RMDB,参赛队伍在RMDB的基础上,设计和实现一个完整的关系型数据库管理系统,该系统要求具备运行TPC-C基准测试(TPC-C是一个面向联机事务处理的测试基准)常用负载的能力。
 
-To make it easy for you to get started with GitLab, here's a list of recommended next steps.
+RMDB由中国人民大学数据库教学团队开发,同时得到教育部-华为”智能基座”项目的支持,平台、赛题和测试用例等得到了全国大学生计算机系统能力大赛数据库管理系统赛道技术委员会的支持和审核。系统能力大赛专家组和[101计划数据库系统课程](http://101.pku.edu.cn/courseDetails?id=DC767C683D697417E0555943CA7634DE)工作组给予了指导。
 
-Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
+## 实验环境:
+- 操作系统:Ubuntu 18.04 及以上(64位)
+- 编译器:GCC
+- 编程语言:C++17
+- 管理工具:cmake
+- 推荐编辑器:VScode
 
-## Add your files
+### 依赖环境库配置:
+- gcc 7.1及以上版本(要求完全支持C++17)
+- cmake 3.16及以上版本
+- flex
+- bison
+- readline
 
-- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
-- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
+欲查看有关依赖运行库和编译工具的更多信息,以及如何运行的说明,请查阅[RMDB使用文档](RMDB使用文档.pdf)
 
-```
-cd existing_repo
-git remote add origin https://gitlab.eduxiji.net/T202410614993392/gleamdb.git
-git branch -M main
-git push -uf origin main
-```
+欲了解如何在非Linux系统PC上部署实验环境的指导,请查阅[RMDB环境配置文档](RMDB环境配置文档.pdf)
 
-## Integrate with your tools
+### 项目说明文档
 
-- [ ] [Set up project integrations](https://gitlab.eduxiji.net/T202410614993392/gleamdb/-/settings/integrations)
+- [RMDB环境配置文档](RMDB环境配置文档.pdf)
+- [RMDB使用文档](RMDB使用文档.pdf)
+- [RMDB项目结构](RMDB项目结构.pdf)
+- [测试说明文档](测试说明文档.pdf)
 
-## Collaborate with your team
+## 推荐参考资料
 
-- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
-- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
-- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
-- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
-- [ ] [Automatically merge when pipeline succeeds](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
-
-## Test and Deploy
-
-Use the built-in continuous integration in GitLab.
-
-- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html)
-- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing(SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
-- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
-- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
-- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
-
-***
-
-# Editing this README
-
-When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thank you to [makeareadme.com](https://www.makeareadme.com/) for this template.
-
-## Suggestions for a good README
-Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
-
-## Name
-Choose a self-explaining name for your project.
-
-## Description
-Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
-
-## Badges
-On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
-
-## Visuals
-Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
-
-## Installation
-Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
-
-## Usage
-Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
-
-## Support
-Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
-
-## Roadmap
-If you have ideas for releases in the future, it is a good idea to list them in the README.
-
-## Contributing
-State if you are open to contributions and what your requirements are for accepting them.
-
-For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
-
-You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
-
-## Authors and acknowledgment
-Show your appreciation to those who have contributed to the project.
+- [**Database System Concepts** (***Seventh Edition***)](https://db-book.com/)
+- [PostgreSQL 数据库内核分析](https://book.douban.com/subject/6971366//)
+- [数据库系统实现](https://book.douban.com/subject/4838430/)
+- [数据库系统概论(第5版)](http://chinadb.ruc.edu.cn/second/url/2)
 
 ## License
-For open source projects, say how it is licensed.
-
-## Project status
-If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
-=======
-2024年全国大学生计算机系统能力大赛-数据库管理系统设计赛
->>>>>>> public/main
+RMDB采用[木兰宽松许可证,第2版](https://license.coscl.org.cn/MulanPSL2),可以自由拷贝和使用源码, 当做修改或分发时, 请遵守[木兰宽松许可证,第2版](https://license.coscl.org.cn/MulanPSL2).
\ No newline at end of file
diff --git a/rmdb/RMDB.jpg b/RMDB.jpg
similarity index 100%
rename from rmdb/RMDB.jpg
rename to RMDB.jpg
diff --git "a/rmdb/RMDB\344\275\277\347\224\250\346\226\207\346\241\243.pdf" "b/RMDB\344\275\277\347\224\250\346\226\207\346\241\243.pdf"
similarity index 100%
rename from "rmdb/RMDB\344\275\277\347\224\250\346\226\207\346\241\243.pdf"
rename to "RMDB\344\275\277\347\224\250\346\226\207\346\241\243.pdf"
diff --git "a/rmdb/RMDB\347\216\257\345\242\203\351\205\215\347\275\256\346\226\207\346\241\243.pdf" "b/RMDB\347\216\257\345\242\203\351\205\215\347\275\256\346\226\207\346\241\243.pdf"
similarity index 100%
rename from "rmdb/RMDB\347\216\257\345\242\203\351\205\215\347\275\256\346\226\207\346\241\243.pdf"
rename to "RMDB\347\216\257\345\242\203\351\205\215\347\275\256\346\226\207\346\241\243.pdf"
diff --git "a/rmdb/RMDB\351\241\271\347\233\256\347\273\223\346\236\204.pdf" "b/RMDB\351\241\271\347\233\256\347\273\223\346\236\204.pdf"
similarity index 100%
rename from "rmdb/RMDB\351\241\271\347\233\256\347\273\223\346\236\204.pdf"
rename to "RMDB\351\241\271\347\233\256\347\273\223\346\236\204.pdf"
diff --git a/rmdb/deps/CMakeLists.txt b/deps/CMakeLists.txt
similarity index 100%
rename from rmdb/deps/CMakeLists.txt
rename to deps/CMakeLists.txt
diff --git a/rmdb/deps/googletest/.clang-format b/deps/googletest/.clang-format
similarity index 100%
rename from rmdb/deps/googletest/.clang-format
rename to deps/googletest/.clang-format
diff --git a/rmdb/deps/googletest/.github/ISSUE_TEMPLATE/00-bug_report.md b/deps/googletest/.github/ISSUE_TEMPLATE/00-bug_report.md
similarity index 100%
rename from rmdb/deps/googletest/.github/ISSUE_TEMPLATE/00-bug_report.md
rename to deps/googletest/.github/ISSUE_TEMPLATE/00-bug_report.md
diff --git a/rmdb/deps/googletest/.github/ISSUE_TEMPLATE/10-feature_request.md b/deps/googletest/.github/ISSUE_TEMPLATE/10-feature_request.md
similarity index 100%
rename from rmdb/deps/googletest/.github/ISSUE_TEMPLATE/10-feature_request.md
rename to deps/googletest/.github/ISSUE_TEMPLATE/10-feature_request.md
diff --git a/rmdb/deps/googletest/.github/ISSUE_TEMPLATE/config.yml b/deps/googletest/.github/ISSUE_TEMPLATE/config.yml
similarity index 100%
rename from rmdb/deps/googletest/.github/ISSUE_TEMPLATE/config.yml
rename to deps/googletest/.github/ISSUE_TEMPLATE/config.yml
diff --git a/rmdb/deps/googletest/.github/workflows/gtest-ci.yml b/deps/googletest/.github/workflows/gtest-ci.yml
similarity index 100%
rename from rmdb/deps/googletest/.github/workflows/gtest-ci.yml
rename to deps/googletest/.github/workflows/gtest-ci.yml
diff --git a/rmdb/deps/googletest/.gitignore b/deps/googletest/.gitignore
similarity index 100%
rename from rmdb/deps/googletest/.gitignore
rename to deps/googletest/.gitignore
diff --git a/rmdb/deps/googletest/BUILD.bazel b/deps/googletest/BUILD.bazel
similarity index 100%
rename from rmdb/deps/googletest/BUILD.bazel
rename to deps/googletest/BUILD.bazel
diff --git a/rmdb/deps/googletest/CMakeLists.txt b/deps/googletest/CMakeLists.txt
similarity index 100%
rename from rmdb/deps/googletest/CMakeLists.txt
rename to deps/googletest/CMakeLists.txt
diff --git a/rmdb/deps/googletest/CONTRIBUTING.md b/deps/googletest/CONTRIBUTING.md
similarity index 100%
rename from rmdb/deps/googletest/CONTRIBUTING.md
rename to deps/googletest/CONTRIBUTING.md
diff --git a/rmdb/deps/googletest/CONTRIBUTORS b/deps/googletest/CONTRIBUTORS
similarity index 100%
rename from rmdb/deps/googletest/CONTRIBUTORS
rename to deps/googletest/CONTRIBUTORS
diff --git a/rmdb/deps/googletest/LICENSE b/deps/googletest/LICENSE
similarity index 100%
rename from rmdb/deps/googletest/LICENSE
rename to deps/googletest/LICENSE
diff --git a/rmdb/deps/googletest/README.md b/deps/googletest/README.md
similarity index 100%
rename from rmdb/deps/googletest/README.md
rename to deps/googletest/README.md
diff --git a/rmdb/deps/googletest/WORKSPACE b/deps/googletest/WORKSPACE
similarity index 100%
rename from rmdb/deps/googletest/WORKSPACE
rename to deps/googletest/WORKSPACE
diff --git a/rmdb/deps/googletest/ci/linux-presubmit.sh b/deps/googletest/ci/linux-presubmit.sh
similarity index 100%
rename from rmdb/deps/googletest/ci/linux-presubmit.sh
rename to deps/googletest/ci/linux-presubmit.sh
diff --git a/rmdb/deps/googletest/ci/macos-presubmit.sh b/deps/googletest/ci/macos-presubmit.sh
similarity index 100%
rename from rmdb/deps/googletest/ci/macos-presubmit.sh
rename to deps/googletest/ci/macos-presubmit.sh
diff --git a/rmdb/deps/googletest/docs/_config.yml b/deps/googletest/docs/_config.yml
similarity index 100%
rename from rmdb/deps/googletest/docs/_config.yml
rename to deps/googletest/docs/_config.yml
diff --git a/rmdb/deps/googletest/docs/_data/navigation.yml b/deps/googletest/docs/_data/navigation.yml
similarity index 100%
rename from rmdb/deps/googletest/docs/_data/navigation.yml
rename to deps/googletest/docs/_data/navigation.yml
diff --git a/rmdb/deps/googletest/docs/_layouts/default.html b/deps/googletest/docs/_layouts/default.html
similarity index 100%
rename from rmdb/deps/googletest/docs/_layouts/default.html
rename to deps/googletest/docs/_layouts/default.html
diff --git a/rmdb/deps/googletest/docs/_sass/main.scss b/deps/googletest/docs/_sass/main.scss
similarity index 100%
rename from rmdb/deps/googletest/docs/_sass/main.scss
rename to deps/googletest/docs/_sass/main.scss
diff --git a/rmdb/deps/googletest/docs/advanced.md b/deps/googletest/docs/advanced.md
similarity index 100%
rename from rmdb/deps/googletest/docs/advanced.md
rename to deps/googletest/docs/advanced.md
diff --git a/rmdb/deps/googletest/docs/assets/css/style.scss b/deps/googletest/docs/assets/css/style.scss
similarity index 100%
rename from rmdb/deps/googletest/docs/assets/css/style.scss
rename to deps/googletest/docs/assets/css/style.scss
diff --git a/rmdb/deps/googletest/docs/community_created_documentation.md b/deps/googletest/docs/community_created_documentation.md
similarity index 100%
rename from rmdb/deps/googletest/docs/community_created_documentation.md
rename to deps/googletest/docs/community_created_documentation.md
diff --git a/rmdb/deps/googletest/docs/faq.md b/deps/googletest/docs/faq.md
similarity index 100%
rename from rmdb/deps/googletest/docs/faq.md
rename to deps/googletest/docs/faq.md
diff --git a/rmdb/deps/googletest/docs/gmock_cheat_sheet.md b/deps/googletest/docs/gmock_cheat_sheet.md
similarity index 100%
rename from rmdb/deps/googletest/docs/gmock_cheat_sheet.md
rename to deps/googletest/docs/gmock_cheat_sheet.md
diff --git a/rmdb/deps/googletest/docs/gmock_cook_book.md b/deps/googletest/docs/gmock_cook_book.md
similarity index 100%
rename from rmdb/deps/googletest/docs/gmock_cook_book.md
rename to deps/googletest/docs/gmock_cook_book.md
diff --git a/rmdb/deps/googletest/docs/gmock_faq.md b/deps/googletest/docs/gmock_faq.md
similarity index 100%
rename from rmdb/deps/googletest/docs/gmock_faq.md
rename to deps/googletest/docs/gmock_faq.md
diff --git a/rmdb/deps/googletest/docs/gmock_for_dummies.md b/deps/googletest/docs/gmock_for_dummies.md
similarity index 100%
rename from rmdb/deps/googletest/docs/gmock_for_dummies.md
rename to deps/googletest/docs/gmock_for_dummies.md
diff --git a/rmdb/deps/googletest/docs/index.md b/deps/googletest/docs/index.md
similarity index 100%
rename from rmdb/deps/googletest/docs/index.md
rename to deps/googletest/docs/index.md
diff --git a/rmdb/deps/googletest/docs/pkgconfig.md b/deps/googletest/docs/pkgconfig.md
similarity index 100%
rename from rmdb/deps/googletest/docs/pkgconfig.md
rename to deps/googletest/docs/pkgconfig.md
diff --git a/rmdb/deps/googletest/docs/platforms.md b/deps/googletest/docs/platforms.md
similarity index 100%
rename from rmdb/deps/googletest/docs/platforms.md
rename to deps/googletest/docs/platforms.md
diff --git a/rmdb/deps/googletest/docs/primer.md b/deps/googletest/docs/primer.md
similarity index 100%
rename from rmdb/deps/googletest/docs/primer.md
rename to deps/googletest/docs/primer.md
diff --git a/rmdb/deps/googletest/docs/quickstart-bazel.md b/deps/googletest/docs/quickstart-bazel.md
similarity index 100%
rename from rmdb/deps/googletest/docs/quickstart-bazel.md
rename to deps/googletest/docs/quickstart-bazel.md
diff --git a/rmdb/deps/googletest/docs/quickstart-cmake.md b/deps/googletest/docs/quickstart-cmake.md
similarity index 100%
rename from rmdb/deps/googletest/docs/quickstart-cmake.md
rename to deps/googletest/docs/quickstart-cmake.md
diff --git a/rmdb/deps/googletest/docs/reference/actions.md b/deps/googletest/docs/reference/actions.md
similarity index 100%
rename from rmdb/deps/googletest/docs/reference/actions.md
rename to deps/googletest/docs/reference/actions.md
diff --git a/rmdb/deps/googletest/docs/reference/assertions.md b/deps/googletest/docs/reference/assertions.md
similarity index 100%
rename from rmdb/deps/googletest/docs/reference/assertions.md
rename to deps/googletest/docs/reference/assertions.md
diff --git a/rmdb/deps/googletest/docs/reference/matchers.md b/deps/googletest/docs/reference/matchers.md
similarity index 100%
rename from rmdb/deps/googletest/docs/reference/matchers.md
rename to deps/googletest/docs/reference/matchers.md
diff --git a/rmdb/deps/googletest/docs/reference/mocking.md b/deps/googletest/docs/reference/mocking.md
similarity index 100%
rename from rmdb/deps/googletest/docs/reference/mocking.md
rename to deps/googletest/docs/reference/mocking.md
diff --git a/rmdb/deps/googletest/docs/reference/testing.md b/deps/googletest/docs/reference/testing.md
similarity index 100%
rename from rmdb/deps/googletest/docs/reference/testing.md
rename to deps/googletest/docs/reference/testing.md
diff --git a/rmdb/deps/googletest/docs/samples.md b/deps/googletest/docs/samples.md
similarity index 100%
rename from rmdb/deps/googletest/docs/samples.md
rename to deps/googletest/docs/samples.md
diff --git a/rmdb/deps/googletest/googlemock/CMakeLists.txt b/deps/googletest/googlemock/CMakeLists.txt
similarity index 100%
rename from rmdb/deps/googletest/googlemock/CMakeLists.txt
rename to deps/googletest/googlemock/CMakeLists.txt
diff --git a/rmdb/deps/googletest/googlemock/README.md b/deps/googletest/googlemock/README.md
similarity index 100%
rename from rmdb/deps/googletest/googlemock/README.md
rename to deps/googletest/googlemock/README.md
diff --git a/rmdb/deps/googletest/googlemock/cmake/gmock.pc.in b/deps/googletest/googlemock/cmake/gmock.pc.in
similarity index 100%
rename from rmdb/deps/googletest/googlemock/cmake/gmock.pc.in
rename to deps/googletest/googlemock/cmake/gmock.pc.in
diff --git a/rmdb/deps/googletest/googlemock/cmake/gmock_main.pc.in b/deps/googletest/googlemock/cmake/gmock_main.pc.in
similarity index 100%
rename from rmdb/deps/googletest/googlemock/cmake/gmock_main.pc.in
rename to deps/googletest/googlemock/cmake/gmock_main.pc.in
diff --git a/rmdb/deps/googletest/googlemock/docs/README.md b/deps/googletest/googlemock/docs/README.md
similarity index 100%
rename from rmdb/deps/googletest/googlemock/docs/README.md
rename to deps/googletest/googlemock/docs/README.md
diff --git a/rmdb/deps/googletest/googlemock/include/gmock/gmock-actions.h b/deps/googletest/googlemock/include/gmock/gmock-actions.h
similarity index 100%
rename from rmdb/deps/googletest/googlemock/include/gmock/gmock-actions.h
rename to deps/googletest/googlemock/include/gmock/gmock-actions.h
diff --git a/rmdb/deps/googletest/googlemock/include/gmock/gmock-cardinalities.h b/deps/googletest/googlemock/include/gmock/gmock-cardinalities.h
similarity index 100%
rename from rmdb/deps/googletest/googlemock/include/gmock/gmock-cardinalities.h
rename to deps/googletest/googlemock/include/gmock/gmock-cardinalities.h
diff --git a/rmdb/deps/googletest/googlemock/include/gmock/gmock-function-mocker.h b/deps/googletest/googlemock/include/gmock/gmock-function-mocker.h
similarity index 100%
rename from rmdb/deps/googletest/googlemock/include/gmock/gmock-function-mocker.h
rename to deps/googletest/googlemock/include/gmock/gmock-function-mocker.h
diff --git a/rmdb/deps/googletest/googlemock/include/gmock/gmock-matchers.h b/deps/googletest/googlemock/include/gmock/gmock-matchers.h
similarity index 100%
rename from rmdb/deps/googletest/googlemock/include/gmock/gmock-matchers.h
rename to deps/googletest/googlemock/include/gmock/gmock-matchers.h
diff --git a/rmdb/deps/googletest/googlemock/include/gmock/gmock-more-actions.h b/deps/googletest/googlemock/include/gmock/gmock-more-actions.h
similarity index 100%
rename from rmdb/deps/googletest/googlemock/include/gmock/gmock-more-actions.h
rename to deps/googletest/googlemock/include/gmock/gmock-more-actions.h
diff --git a/rmdb/deps/googletest/googlemock/include/gmock/gmock-more-matchers.h b/deps/googletest/googlemock/include/gmock/gmock-more-matchers.h
similarity index 100%
rename from rmdb/deps/googletest/googlemock/include/gmock/gmock-more-matchers.h
rename to deps/googletest/googlemock/include/gmock/gmock-more-matchers.h
diff --git a/rmdb/deps/googletest/googlemock/include/gmock/gmock-nice-strict.h b/deps/googletest/googlemock/include/gmock/gmock-nice-strict.h
similarity index 100%
rename from rmdb/deps/googletest/googlemock/include/gmock/gmock-nice-strict.h
rename to deps/googletest/googlemock/include/gmock/gmock-nice-strict.h
diff --git a/rmdb/deps/googletest/googlemock/include/gmock/gmock-spec-builders.h b/deps/googletest/googlemock/include/gmock/gmock-spec-builders.h
similarity index 100%
rename from rmdb/deps/googletest/googlemock/include/gmock/gmock-spec-builders.h
rename to deps/googletest/googlemock/include/gmock/gmock-spec-builders.h
diff --git a/rmdb/deps/googletest/googlemock/include/gmock/gmock.h b/deps/googletest/googlemock/include/gmock/gmock.h
similarity index 100%
rename from rmdb/deps/googletest/googlemock/include/gmock/gmock.h
rename to deps/googletest/googlemock/include/gmock/gmock.h
diff --git a/rmdb/deps/googletest/googlemock/include/gmock/internal/custom/README.md b/deps/googletest/googlemock/include/gmock/internal/custom/README.md
similarity index 100%
rename from rmdb/deps/googletest/googlemock/include/gmock/internal/custom/README.md
rename to deps/googletest/googlemock/include/gmock/internal/custom/README.md
diff --git a/rmdb/deps/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h b/deps/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h
similarity index 100%
rename from rmdb/deps/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h
rename to deps/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h
diff --git a/rmdb/deps/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h b/deps/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h
similarity index 100%
rename from rmdb/deps/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h
rename to deps/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h
diff --git a/rmdb/deps/googletest/googlemock/include/gmock/internal/custom/gmock-port.h b/deps/googletest/googlemock/include/gmock/internal/custom/gmock-port.h
similarity index 100%
rename from rmdb/deps/googletest/googlemock/include/gmock/internal/custom/gmock-port.h
rename to deps/googletest/googlemock/include/gmock/internal/custom/gmock-port.h
diff --git a/rmdb/deps/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h b/deps/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h
similarity index 100%
rename from rmdb/deps/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h
rename to deps/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h
diff --git a/rmdb/deps/googletest/googlemock/include/gmock/internal/gmock-port.h b/deps/googletest/googlemock/include/gmock/internal/gmock-port.h
similarity index 100%
rename from rmdb/deps/googletest/googlemock/include/gmock/internal/gmock-port.h
rename to deps/googletest/googlemock/include/gmock/internal/gmock-port.h
diff --git a/rmdb/deps/googletest/googlemock/include/gmock/internal/gmock-pp.h b/deps/googletest/googlemock/include/gmock/internal/gmock-pp.h
similarity index 100%
rename from rmdb/deps/googletest/googlemock/include/gmock/internal/gmock-pp.h
rename to deps/googletest/googlemock/include/gmock/internal/gmock-pp.h
diff --git a/rmdb/deps/googletest/googlemock/src/gmock-all.cc b/deps/googletest/googlemock/src/gmock-all.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/src/gmock-all.cc
rename to deps/googletest/googlemock/src/gmock-all.cc
diff --git a/rmdb/deps/googletest/googlemock/src/gmock-cardinalities.cc b/deps/googletest/googlemock/src/gmock-cardinalities.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/src/gmock-cardinalities.cc
rename to deps/googletest/googlemock/src/gmock-cardinalities.cc
diff --git a/rmdb/deps/googletest/googlemock/src/gmock-internal-utils.cc b/deps/googletest/googlemock/src/gmock-internal-utils.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/src/gmock-internal-utils.cc
rename to deps/googletest/googlemock/src/gmock-internal-utils.cc
diff --git a/rmdb/deps/googletest/googlemock/src/gmock-matchers.cc b/deps/googletest/googlemock/src/gmock-matchers.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/src/gmock-matchers.cc
rename to deps/googletest/googlemock/src/gmock-matchers.cc
diff --git a/rmdb/deps/googletest/googlemock/src/gmock-spec-builders.cc b/deps/googletest/googlemock/src/gmock-spec-builders.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/src/gmock-spec-builders.cc
rename to deps/googletest/googlemock/src/gmock-spec-builders.cc
diff --git a/rmdb/deps/googletest/googlemock/src/gmock.cc b/deps/googletest/googlemock/src/gmock.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/src/gmock.cc
rename to deps/googletest/googlemock/src/gmock.cc
diff --git a/rmdb/deps/googletest/googlemock/src/gmock_main.cc b/deps/googletest/googlemock/src/gmock_main.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/src/gmock_main.cc
rename to deps/googletest/googlemock/src/gmock_main.cc
diff --git a/rmdb/deps/googletest/googlemock/test/BUILD.bazel b/deps/googletest/googlemock/test/BUILD.bazel
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/BUILD.bazel
rename to deps/googletest/googlemock/test/BUILD.bazel
diff --git a/rmdb/deps/googletest/googlemock/test/gmock-actions_test.cc b/deps/googletest/googlemock/test/gmock-actions_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock-actions_test.cc
rename to deps/googletest/googlemock/test/gmock-actions_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock-cardinalities_test.cc b/deps/googletest/googlemock/test/gmock-cardinalities_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock-cardinalities_test.cc
rename to deps/googletest/googlemock/test/gmock-cardinalities_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock-function-mocker_test.cc b/deps/googletest/googlemock/test/gmock-function-mocker_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock-function-mocker_test.cc
rename to deps/googletest/googlemock/test/gmock-function-mocker_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock-internal-utils_test.cc b/deps/googletest/googlemock/test/gmock-internal-utils_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock-internal-utils_test.cc
rename to deps/googletest/googlemock/test/gmock-internal-utils_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock-matchers_test.cc b/deps/googletest/googlemock/test/gmock-matchers_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock-matchers_test.cc
rename to deps/googletest/googlemock/test/gmock-matchers_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock-more-actions_test.cc b/deps/googletest/googlemock/test/gmock-more-actions_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock-more-actions_test.cc
rename to deps/googletest/googlemock/test/gmock-more-actions_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock-nice-strict_test.cc b/deps/googletest/googlemock/test/gmock-nice-strict_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock-nice-strict_test.cc
rename to deps/googletest/googlemock/test/gmock-nice-strict_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock-port_test.cc b/deps/googletest/googlemock/test/gmock-port_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock-port_test.cc
rename to deps/googletest/googlemock/test/gmock-port_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock-pp-string_test.cc b/deps/googletest/googlemock/test/gmock-pp-string_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock-pp-string_test.cc
rename to deps/googletest/googlemock/test/gmock-pp-string_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock-pp_test.cc b/deps/googletest/googlemock/test/gmock-pp_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock-pp_test.cc
rename to deps/googletest/googlemock/test/gmock-pp_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock-spec-builders_test.cc b/deps/googletest/googlemock/test/gmock-spec-builders_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock-spec-builders_test.cc
rename to deps/googletest/googlemock/test/gmock-spec-builders_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock_all_test.cc b/deps/googletest/googlemock/test/gmock_all_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock_all_test.cc
rename to deps/googletest/googlemock/test/gmock_all_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock_ex_test.cc b/deps/googletest/googlemock/test/gmock_ex_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock_ex_test.cc
rename to deps/googletest/googlemock/test/gmock_ex_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock_leak_test.py b/deps/googletest/googlemock/test/gmock_leak_test.py
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock_leak_test.py
rename to deps/googletest/googlemock/test/gmock_leak_test.py
diff --git a/rmdb/deps/googletest/googlemock/test/gmock_leak_test_.cc b/deps/googletest/googlemock/test/gmock_leak_test_.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock_leak_test_.cc
rename to deps/googletest/googlemock/test/gmock_leak_test_.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock_link2_test.cc b/deps/googletest/googlemock/test/gmock_link2_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock_link2_test.cc
rename to deps/googletest/googlemock/test/gmock_link2_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock_link_test.cc b/deps/googletest/googlemock/test/gmock_link_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock_link_test.cc
rename to deps/googletest/googlemock/test/gmock_link_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock_link_test.h b/deps/googletest/googlemock/test/gmock_link_test.h
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock_link_test.h
rename to deps/googletest/googlemock/test/gmock_link_test.h
diff --git a/rmdb/deps/googletest/googlemock/test/gmock_output_test.py b/deps/googletest/googlemock/test/gmock_output_test.py
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock_output_test.py
rename to deps/googletest/googlemock/test/gmock_output_test.py
diff --git a/rmdb/deps/googletest/googlemock/test/gmock_output_test_.cc b/deps/googletest/googlemock/test/gmock_output_test_.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock_output_test_.cc
rename to deps/googletest/googlemock/test/gmock_output_test_.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock_output_test_golden.txt b/deps/googletest/googlemock/test/gmock_output_test_golden.txt
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock_output_test_golden.txt
rename to deps/googletest/googlemock/test/gmock_output_test_golden.txt
diff --git a/rmdb/deps/googletest/googlemock/test/gmock_stress_test.cc b/deps/googletest/googlemock/test/gmock_stress_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock_stress_test.cc
rename to deps/googletest/googlemock/test/gmock_stress_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock_test.cc b/deps/googletest/googlemock/test/gmock_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock_test.cc
rename to deps/googletest/googlemock/test/gmock_test.cc
diff --git a/rmdb/deps/googletest/googlemock/test/gmock_test_utils.py b/deps/googletest/googlemock/test/gmock_test_utils.py
similarity index 100%
rename from rmdb/deps/googletest/googlemock/test/gmock_test_utils.py
rename to deps/googletest/googlemock/test/gmock_test_utils.py
diff --git a/rmdb/deps/googletest/googletest/CMakeLists.txt b/deps/googletest/googletest/CMakeLists.txt
similarity index 100%
rename from rmdb/deps/googletest/googletest/CMakeLists.txt
rename to deps/googletest/googletest/CMakeLists.txt
diff --git a/rmdb/deps/googletest/googletest/README.md b/deps/googletest/googletest/README.md
similarity index 100%
rename from rmdb/deps/googletest/googletest/README.md
rename to deps/googletest/googletest/README.md
diff --git a/rmdb/deps/googletest/googletest/cmake/Config.cmake.in b/deps/googletest/googletest/cmake/Config.cmake.in
similarity index 100%
rename from rmdb/deps/googletest/googletest/cmake/Config.cmake.in
rename to deps/googletest/googletest/cmake/Config.cmake.in
diff --git a/rmdb/deps/googletest/googletest/cmake/gtest.pc.in b/deps/googletest/googletest/cmake/gtest.pc.in
similarity index 100%
rename from rmdb/deps/googletest/googletest/cmake/gtest.pc.in
rename to deps/googletest/googletest/cmake/gtest.pc.in
diff --git a/rmdb/deps/googletest/googletest/cmake/gtest_main.pc.in b/deps/googletest/googletest/cmake/gtest_main.pc.in
similarity index 100%
rename from rmdb/deps/googletest/googletest/cmake/gtest_main.pc.in
rename to deps/googletest/googletest/cmake/gtest_main.pc.in
diff --git a/rmdb/deps/googletest/googletest/cmake/internal_utils.cmake b/deps/googletest/googletest/cmake/internal_utils.cmake
similarity index 100%
rename from rmdb/deps/googletest/googletest/cmake/internal_utils.cmake
rename to deps/googletest/googletest/cmake/internal_utils.cmake
diff --git a/rmdb/deps/googletest/googletest/cmake/libgtest.la.in b/deps/googletest/googletest/cmake/libgtest.la.in
similarity index 100%
rename from rmdb/deps/googletest/googletest/cmake/libgtest.la.in
rename to deps/googletest/googletest/cmake/libgtest.la.in
diff --git a/rmdb/deps/googletest/googletest/docs/README.md b/deps/googletest/googletest/docs/README.md
similarity index 100%
rename from rmdb/deps/googletest/googletest/docs/README.md
rename to deps/googletest/googletest/docs/README.md
diff --git a/rmdb/deps/googletest/googletest/googletest/generated/GTestConfig.cmake b/deps/googletest/googletest/googletest/generated/GTestConfig.cmake
similarity index 100%
rename from rmdb/deps/googletest/googletest/googletest/generated/GTestConfig.cmake
rename to deps/googletest/googletest/googletest/generated/GTestConfig.cmake
diff --git a/rmdb/deps/googletest/googletest/googletest/generated/GTestConfigVersion.cmake b/deps/googletest/googletest/googletest/generated/GTestConfigVersion.cmake
similarity index 100%
rename from rmdb/deps/googletest/googletest/googletest/generated/GTestConfigVersion.cmake
rename to deps/googletest/googletest/googletest/generated/GTestConfigVersion.cmake
diff --git a/rmdb/deps/googletest/googletest/googletest/generated/gmock.pc b/deps/googletest/googletest/googletest/generated/gmock.pc
similarity index 100%
rename from rmdb/deps/googletest/googletest/googletest/generated/gmock.pc
rename to deps/googletest/googletest/googletest/generated/gmock.pc
diff --git a/rmdb/deps/googletest/googletest/googletest/generated/gmock_main.pc b/deps/googletest/googletest/googletest/generated/gmock_main.pc
similarity index 100%
rename from rmdb/deps/googletest/googletest/googletest/generated/gmock_main.pc
rename to deps/googletest/googletest/googletest/generated/gmock_main.pc
diff --git a/rmdb/deps/googletest/googletest/googletest/generated/gtest.pc b/deps/googletest/googletest/googletest/generated/gtest.pc
similarity index 100%
rename from rmdb/deps/googletest/googletest/googletest/generated/gtest.pc
rename to deps/googletest/googletest/googletest/generated/gtest.pc
diff --git a/rmdb/deps/googletest/googletest/googletest/generated/gtest_main.pc b/deps/googletest/googletest/googletest/generated/gtest_main.pc
similarity index 100%
rename from rmdb/deps/googletest/googletest/googletest/generated/gtest_main.pc
rename to deps/googletest/googletest/googletest/generated/gtest_main.pc
diff --git a/rmdb/deps/googletest/googletest/include/gtest/gtest-assertion-result.h b/deps/googletest/googletest/include/gtest/gtest-assertion-result.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/gtest-assertion-result.h
rename to deps/googletest/googletest/include/gtest/gtest-assertion-result.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/gtest-death-test.h b/deps/googletest/googletest/include/gtest/gtest-death-test.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/gtest-death-test.h
rename to deps/googletest/googletest/include/gtest/gtest-death-test.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/gtest-matchers.h b/deps/googletest/googletest/include/gtest/gtest-matchers.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/gtest-matchers.h
rename to deps/googletest/googletest/include/gtest/gtest-matchers.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/gtest-message.h b/deps/googletest/googletest/include/gtest/gtest-message.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/gtest-message.h
rename to deps/googletest/googletest/include/gtest/gtest-message.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/gtest-param-test.h b/deps/googletest/googletest/include/gtest/gtest-param-test.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/gtest-param-test.h
rename to deps/googletest/googletest/include/gtest/gtest-param-test.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/gtest-printers.h b/deps/googletest/googletest/include/gtest/gtest-printers.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/gtest-printers.h
rename to deps/googletest/googletest/include/gtest/gtest-printers.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/gtest-spi.h b/deps/googletest/googletest/include/gtest/gtest-spi.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/gtest-spi.h
rename to deps/googletest/googletest/include/gtest/gtest-spi.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/gtest-test-part.h b/deps/googletest/googletest/include/gtest/gtest-test-part.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/gtest-test-part.h
rename to deps/googletest/googletest/include/gtest/gtest-test-part.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/gtest-typed-test.h b/deps/googletest/googletest/include/gtest/gtest-typed-test.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/gtest-typed-test.h
rename to deps/googletest/googletest/include/gtest/gtest-typed-test.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/gtest.h b/deps/googletest/googletest/include/gtest/gtest.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/gtest.h
rename to deps/googletest/googletest/include/gtest/gtest.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/gtest_pred_impl.h b/deps/googletest/googletest/include/gtest/gtest_pred_impl.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/gtest_pred_impl.h
rename to deps/googletest/googletest/include/gtest/gtest_pred_impl.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/gtest_prod.h b/deps/googletest/googletest/include/gtest/gtest_prod.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/gtest_prod.h
rename to deps/googletest/googletest/include/gtest/gtest_prod.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/internal/custom/README.md b/deps/googletest/googletest/include/gtest/internal/custom/README.md
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/internal/custom/README.md
rename to deps/googletest/googletest/include/gtest/internal/custom/README.md
diff --git a/rmdb/deps/googletest/googletest/include/gtest/internal/custom/gtest-port.h b/deps/googletest/googletest/include/gtest/internal/custom/gtest-port.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/internal/custom/gtest-port.h
rename to deps/googletest/googletest/include/gtest/internal/custom/gtest-port.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/internal/custom/gtest-printers.h b/deps/googletest/googletest/include/gtest/internal/custom/gtest-printers.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/internal/custom/gtest-printers.h
rename to deps/googletest/googletest/include/gtest/internal/custom/gtest-printers.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/internal/custom/gtest.h b/deps/googletest/googletest/include/gtest/internal/custom/gtest.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/internal/custom/gtest.h
rename to deps/googletest/googletest/include/gtest/internal/custom/gtest.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h b/deps/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h
rename to deps/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/internal/gtest-filepath.h b/deps/googletest/googletest/include/gtest/internal/gtest-filepath.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/internal/gtest-filepath.h
rename to deps/googletest/googletest/include/gtest/internal/gtest-filepath.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/internal/gtest-internal.h b/deps/googletest/googletest/include/gtest/internal/gtest-internal.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/internal/gtest-internal.h
rename to deps/googletest/googletest/include/gtest/internal/gtest-internal.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/internal/gtest-param-util.h b/deps/googletest/googletest/include/gtest/internal/gtest-param-util.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/internal/gtest-param-util.h
rename to deps/googletest/googletest/include/gtest/internal/gtest-param-util.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/internal/gtest-port-arch.h b/deps/googletest/googletest/include/gtest/internal/gtest-port-arch.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/internal/gtest-port-arch.h
rename to deps/googletest/googletest/include/gtest/internal/gtest-port-arch.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/internal/gtest-port.h b/deps/googletest/googletest/include/gtest/internal/gtest-port.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/internal/gtest-port.h
rename to deps/googletest/googletest/include/gtest/internal/gtest-port.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/internal/gtest-string.h b/deps/googletest/googletest/include/gtest/internal/gtest-string.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/internal/gtest-string.h
rename to deps/googletest/googletest/include/gtest/internal/gtest-string.h
diff --git a/rmdb/deps/googletest/googletest/include/gtest/internal/gtest-type-util.h b/deps/googletest/googletest/include/gtest/internal/gtest-type-util.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/include/gtest/internal/gtest-type-util.h
rename to deps/googletest/googletest/include/gtest/internal/gtest-type-util.h
diff --git a/rmdb/deps/googletest/googletest/samples/prime_tables.h b/deps/googletest/googletest/samples/prime_tables.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/prime_tables.h
rename to deps/googletest/googletest/samples/prime_tables.h
diff --git a/rmdb/deps/googletest/googletest/samples/sample1.cc b/deps/googletest/googletest/samples/sample1.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample1.cc
rename to deps/googletest/googletest/samples/sample1.cc
diff --git a/rmdb/deps/googletest/googletest/samples/sample1.h b/deps/googletest/googletest/samples/sample1.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample1.h
rename to deps/googletest/googletest/samples/sample1.h
diff --git a/rmdb/deps/googletest/googletest/samples/sample10_unittest.cc b/deps/googletest/googletest/samples/sample10_unittest.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample10_unittest.cc
rename to deps/googletest/googletest/samples/sample10_unittest.cc
diff --git a/rmdb/deps/googletest/googletest/samples/sample1_unittest.cc b/deps/googletest/googletest/samples/sample1_unittest.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample1_unittest.cc
rename to deps/googletest/googletest/samples/sample1_unittest.cc
diff --git a/rmdb/deps/googletest/googletest/samples/sample2.cc b/deps/googletest/googletest/samples/sample2.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample2.cc
rename to deps/googletest/googletest/samples/sample2.cc
diff --git a/rmdb/deps/googletest/googletest/samples/sample2.h b/deps/googletest/googletest/samples/sample2.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample2.h
rename to deps/googletest/googletest/samples/sample2.h
diff --git a/rmdb/deps/googletest/googletest/samples/sample2_unittest.cc b/deps/googletest/googletest/samples/sample2_unittest.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample2_unittest.cc
rename to deps/googletest/googletest/samples/sample2_unittest.cc
diff --git a/rmdb/deps/googletest/googletest/samples/sample3-inl.h b/deps/googletest/googletest/samples/sample3-inl.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample3-inl.h
rename to deps/googletest/googletest/samples/sample3-inl.h
diff --git a/rmdb/deps/googletest/googletest/samples/sample3_unittest.cc b/deps/googletest/googletest/samples/sample3_unittest.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample3_unittest.cc
rename to deps/googletest/googletest/samples/sample3_unittest.cc
diff --git a/rmdb/deps/googletest/googletest/samples/sample4.cc b/deps/googletest/googletest/samples/sample4.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample4.cc
rename to deps/googletest/googletest/samples/sample4.cc
diff --git a/rmdb/deps/googletest/googletest/samples/sample4.h b/deps/googletest/googletest/samples/sample4.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample4.h
rename to deps/googletest/googletest/samples/sample4.h
diff --git a/rmdb/deps/googletest/googletest/samples/sample4_unittest.cc b/deps/googletest/googletest/samples/sample4_unittest.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample4_unittest.cc
rename to deps/googletest/googletest/samples/sample4_unittest.cc
diff --git a/rmdb/deps/googletest/googletest/samples/sample5_unittest.cc b/deps/googletest/googletest/samples/sample5_unittest.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample5_unittest.cc
rename to deps/googletest/googletest/samples/sample5_unittest.cc
diff --git a/rmdb/deps/googletest/googletest/samples/sample6_unittest.cc b/deps/googletest/googletest/samples/sample6_unittest.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample6_unittest.cc
rename to deps/googletest/googletest/samples/sample6_unittest.cc
diff --git a/rmdb/deps/googletest/googletest/samples/sample7_unittest.cc b/deps/googletest/googletest/samples/sample7_unittest.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample7_unittest.cc
rename to deps/googletest/googletest/samples/sample7_unittest.cc
diff --git a/rmdb/deps/googletest/googletest/samples/sample8_unittest.cc b/deps/googletest/googletest/samples/sample8_unittest.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample8_unittest.cc
rename to deps/googletest/googletest/samples/sample8_unittest.cc
diff --git a/rmdb/deps/googletest/googletest/samples/sample9_unittest.cc b/deps/googletest/googletest/samples/sample9_unittest.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/samples/sample9_unittest.cc
rename to deps/googletest/googletest/samples/sample9_unittest.cc
diff --git a/rmdb/deps/googletest/googletest/src/gtest-all.cc b/deps/googletest/googletest/src/gtest-all.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/src/gtest-all.cc
rename to deps/googletest/googletest/src/gtest-all.cc
diff --git a/rmdb/deps/googletest/googletest/src/gtest-assertion-result.cc b/deps/googletest/googletest/src/gtest-assertion-result.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/src/gtest-assertion-result.cc
rename to deps/googletest/googletest/src/gtest-assertion-result.cc
diff --git a/rmdb/deps/googletest/googletest/src/gtest-death-test.cc b/deps/googletest/googletest/src/gtest-death-test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/src/gtest-death-test.cc
rename to deps/googletest/googletest/src/gtest-death-test.cc
diff --git a/rmdb/deps/googletest/googletest/src/gtest-filepath.cc b/deps/googletest/googletest/src/gtest-filepath.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/src/gtest-filepath.cc
rename to deps/googletest/googletest/src/gtest-filepath.cc
diff --git a/rmdb/deps/googletest/googletest/src/gtest-internal-inl.h b/deps/googletest/googletest/src/gtest-internal-inl.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/src/gtest-internal-inl.h
rename to deps/googletest/googletest/src/gtest-internal-inl.h
diff --git a/rmdb/deps/googletest/googletest/src/gtest-matchers.cc b/deps/googletest/googletest/src/gtest-matchers.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/src/gtest-matchers.cc
rename to deps/googletest/googletest/src/gtest-matchers.cc
diff --git a/rmdb/deps/googletest/googletest/src/gtest-port.cc b/deps/googletest/googletest/src/gtest-port.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/src/gtest-port.cc
rename to deps/googletest/googletest/src/gtest-port.cc
diff --git a/rmdb/deps/googletest/googletest/src/gtest-printers.cc b/deps/googletest/googletest/src/gtest-printers.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/src/gtest-printers.cc
rename to deps/googletest/googletest/src/gtest-printers.cc
diff --git a/rmdb/deps/googletest/googletest/src/gtest-test-part.cc b/deps/googletest/googletest/src/gtest-test-part.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/src/gtest-test-part.cc
rename to deps/googletest/googletest/src/gtest-test-part.cc
diff --git a/rmdb/deps/googletest/googletest/src/gtest-typed-test.cc b/deps/googletest/googletest/src/gtest-typed-test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/src/gtest-typed-test.cc
rename to deps/googletest/googletest/src/gtest-typed-test.cc
diff --git a/rmdb/deps/googletest/googletest/src/gtest.cc b/deps/googletest/googletest/src/gtest.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/src/gtest.cc
rename to deps/googletest/googletest/src/gtest.cc
diff --git a/rmdb/deps/googletest/googletest/src/gtest_main.cc b/deps/googletest/googletest/src/gtest_main.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/src/gtest_main.cc
rename to deps/googletest/googletest/src/gtest_main.cc
diff --git a/rmdb/deps/googletest/googletest/test/BUILD.bazel b/deps/googletest/googletest/test/BUILD.bazel
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/BUILD.bazel
rename to deps/googletest/googletest/test/BUILD.bazel
diff --git a/rmdb/deps/googletest/googletest/test/googletest-break-on-failure-unittest.py b/deps/googletest/googletest/test/googletest-break-on-failure-unittest.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-break-on-failure-unittest.py
rename to deps/googletest/googletest/test/googletest-break-on-failure-unittest.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-break-on-failure-unittest_.cc b/deps/googletest/googletest/test/googletest-break-on-failure-unittest_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-break-on-failure-unittest_.cc
rename to deps/googletest/googletest/test/googletest-break-on-failure-unittest_.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-catch-exceptions-test.py b/deps/googletest/googletest/test/googletest-catch-exceptions-test.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-catch-exceptions-test.py
rename to deps/googletest/googletest/test/googletest-catch-exceptions-test.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-catch-exceptions-test_.cc b/deps/googletest/googletest/test/googletest-catch-exceptions-test_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-catch-exceptions-test_.cc
rename to deps/googletest/googletest/test/googletest-catch-exceptions-test_.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-color-test.py b/deps/googletest/googletest/test/googletest-color-test.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-color-test.py
rename to deps/googletest/googletest/test/googletest-color-test.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-color-test_.cc b/deps/googletest/googletest/test/googletest-color-test_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-color-test_.cc
rename to deps/googletest/googletest/test/googletest-color-test_.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-death-test-test.cc b/deps/googletest/googletest/test/googletest-death-test-test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-death-test-test.cc
rename to deps/googletest/googletest/test/googletest-death-test-test.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-death-test_ex_test.cc b/deps/googletest/googletest/test/googletest-death-test_ex_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-death-test_ex_test.cc
rename to deps/googletest/googletest/test/googletest-death-test_ex_test.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-env-var-test.py b/deps/googletest/googletest/test/googletest-env-var-test.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-env-var-test.py
rename to deps/googletest/googletest/test/googletest-env-var-test.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-env-var-test_.cc b/deps/googletest/googletest/test/googletest-env-var-test_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-env-var-test_.cc
rename to deps/googletest/googletest/test/googletest-env-var-test_.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-failfast-unittest.py b/deps/googletest/googletest/test/googletest-failfast-unittest.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-failfast-unittest.py
rename to deps/googletest/googletest/test/googletest-failfast-unittest.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-failfast-unittest_.cc b/deps/googletest/googletest/test/googletest-failfast-unittest_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-failfast-unittest_.cc
rename to deps/googletest/googletest/test/googletest-failfast-unittest_.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-filepath-test.cc b/deps/googletest/googletest/test/googletest-filepath-test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-filepath-test.cc
rename to deps/googletest/googletest/test/googletest-filepath-test.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-filter-unittest.py b/deps/googletest/googletest/test/googletest-filter-unittest.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-filter-unittest.py
rename to deps/googletest/googletest/test/googletest-filter-unittest.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-filter-unittest_.cc b/deps/googletest/googletest/test/googletest-filter-unittest_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-filter-unittest_.cc
rename to deps/googletest/googletest/test/googletest-filter-unittest_.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-global-environment-unittest.py b/deps/googletest/googletest/test/googletest-global-environment-unittest.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-global-environment-unittest.py
rename to deps/googletest/googletest/test/googletest-global-environment-unittest.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-global-environment-unittest_.cc b/deps/googletest/googletest/test/googletest-global-environment-unittest_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-global-environment-unittest_.cc
rename to deps/googletest/googletest/test/googletest-global-environment-unittest_.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-json-outfiles-test.py b/deps/googletest/googletest/test/googletest-json-outfiles-test.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-json-outfiles-test.py
rename to deps/googletest/googletest/test/googletest-json-outfiles-test.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-json-output-unittest.py b/deps/googletest/googletest/test/googletest-json-output-unittest.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-json-output-unittest.py
rename to deps/googletest/googletest/test/googletest-json-output-unittest.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-list-tests-unittest.py b/deps/googletest/googletest/test/googletest-list-tests-unittest.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-list-tests-unittest.py
rename to deps/googletest/googletest/test/googletest-list-tests-unittest.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-list-tests-unittest_.cc b/deps/googletest/googletest/test/googletest-list-tests-unittest_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-list-tests-unittest_.cc
rename to deps/googletest/googletest/test/googletest-list-tests-unittest_.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-listener-test.cc b/deps/googletest/googletest/test/googletest-listener-test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-listener-test.cc
rename to deps/googletest/googletest/test/googletest-listener-test.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-message-test.cc b/deps/googletest/googletest/test/googletest-message-test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-message-test.cc
rename to deps/googletest/googletest/test/googletest-message-test.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-options-test.cc b/deps/googletest/googletest/test/googletest-options-test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-options-test.cc
rename to deps/googletest/googletest/test/googletest-options-test.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-output-test-golden-lin.txt b/deps/googletest/googletest/test/googletest-output-test-golden-lin.txt
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-output-test-golden-lin.txt
rename to deps/googletest/googletest/test/googletest-output-test-golden-lin.txt
diff --git a/rmdb/deps/googletest/googletest/test/googletest-output-test.py b/deps/googletest/googletest/test/googletest-output-test.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-output-test.py
rename to deps/googletest/googletest/test/googletest-output-test.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-output-test_.cc b/deps/googletest/googletest/test/googletest-output-test_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-output-test_.cc
rename to deps/googletest/googletest/test/googletest-output-test_.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-param-test-invalid-name1-test.py b/deps/googletest/googletest/test/googletest-param-test-invalid-name1-test.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-param-test-invalid-name1-test.py
rename to deps/googletest/googletest/test/googletest-param-test-invalid-name1-test.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-param-test-invalid-name1-test_.cc b/deps/googletest/googletest/test/googletest-param-test-invalid-name1-test_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-param-test-invalid-name1-test_.cc
rename to deps/googletest/googletest/test/googletest-param-test-invalid-name1-test_.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-param-test-invalid-name2-test.py b/deps/googletest/googletest/test/googletest-param-test-invalid-name2-test.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-param-test-invalid-name2-test.py
rename to deps/googletest/googletest/test/googletest-param-test-invalid-name2-test.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-param-test-invalid-name2-test_.cc b/deps/googletest/googletest/test/googletest-param-test-invalid-name2-test_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-param-test-invalid-name2-test_.cc
rename to deps/googletest/googletest/test/googletest-param-test-invalid-name2-test_.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-param-test-test.cc b/deps/googletest/googletest/test/googletest-param-test-test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-param-test-test.cc
rename to deps/googletest/googletest/test/googletest-param-test-test.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-param-test-test.h b/deps/googletest/googletest/test/googletest-param-test-test.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-param-test-test.h
rename to deps/googletest/googletest/test/googletest-param-test-test.h
diff --git a/rmdb/deps/googletest/googletest/test/googletest-param-test2-test.cc b/deps/googletest/googletest/test/googletest-param-test2-test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-param-test2-test.cc
rename to deps/googletest/googletest/test/googletest-param-test2-test.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-port-test.cc b/deps/googletest/googletest/test/googletest-port-test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-port-test.cc
rename to deps/googletest/googletest/test/googletest-port-test.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-printers-test.cc b/deps/googletest/googletest/test/googletest-printers-test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-printers-test.cc
rename to deps/googletest/googletest/test/googletest-printers-test.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-setuptestsuite-test.py b/deps/googletest/googletest/test/googletest-setuptestsuite-test.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-setuptestsuite-test.py
rename to deps/googletest/googletest/test/googletest-setuptestsuite-test.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-setuptestsuite-test_.cc b/deps/googletest/googletest/test/googletest-setuptestsuite-test_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-setuptestsuite-test_.cc
rename to deps/googletest/googletest/test/googletest-setuptestsuite-test_.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-shuffle-test.py b/deps/googletest/googletest/test/googletest-shuffle-test.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-shuffle-test.py
rename to deps/googletest/googletest/test/googletest-shuffle-test.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-shuffle-test_.cc b/deps/googletest/googletest/test/googletest-shuffle-test_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-shuffle-test_.cc
rename to deps/googletest/googletest/test/googletest-shuffle-test_.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-test-part-test.cc b/deps/googletest/googletest/test/googletest-test-part-test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-test-part-test.cc
rename to deps/googletest/googletest/test/googletest-test-part-test.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-throw-on-failure-test.py b/deps/googletest/googletest/test/googletest-throw-on-failure-test.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-throw-on-failure-test.py
rename to deps/googletest/googletest/test/googletest-throw-on-failure-test.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-throw-on-failure-test_.cc b/deps/googletest/googletest/test/googletest-throw-on-failure-test_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-throw-on-failure-test_.cc
rename to deps/googletest/googletest/test/googletest-throw-on-failure-test_.cc
diff --git a/rmdb/deps/googletest/googletest/test/googletest-uninitialized-test.py b/deps/googletest/googletest/test/googletest-uninitialized-test.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-uninitialized-test.py
rename to deps/googletest/googletest/test/googletest-uninitialized-test.py
diff --git a/rmdb/deps/googletest/googletest/test/googletest-uninitialized-test_.cc b/deps/googletest/googletest/test/googletest-uninitialized-test_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/googletest-uninitialized-test_.cc
rename to deps/googletest/googletest/test/googletest-uninitialized-test_.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest-typed-test2_test.cc b/deps/googletest/googletest/test/gtest-typed-test2_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest-typed-test2_test.cc
rename to deps/googletest/googletest/test/gtest-typed-test2_test.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest-typed-test_test.cc b/deps/googletest/googletest/test/gtest-typed-test_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest-typed-test_test.cc
rename to deps/googletest/googletest/test/gtest-typed-test_test.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest-typed-test_test.h b/deps/googletest/googletest/test/gtest-typed-test_test.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest-typed-test_test.h
rename to deps/googletest/googletest/test/gtest-typed-test_test.h
diff --git a/rmdb/deps/googletest/googletest/test/gtest-unittest-api_test.cc b/deps/googletest/googletest/test/gtest-unittest-api_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest-unittest-api_test.cc
rename to deps/googletest/googletest/test/gtest-unittest-api_test.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_all_test.cc b/deps/googletest/googletest/test/gtest_all_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_all_test.cc
rename to deps/googletest/googletest/test/gtest_all_test.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_assert_by_exception_test.cc b/deps/googletest/googletest/test/gtest_assert_by_exception_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_assert_by_exception_test.cc
rename to deps/googletest/googletest/test/gtest_assert_by_exception_test.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_environment_test.cc b/deps/googletest/googletest/test/gtest_environment_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_environment_test.cc
rename to deps/googletest/googletest/test/gtest_environment_test.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_help_test.py b/deps/googletest/googletest/test/gtest_help_test.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_help_test.py
rename to deps/googletest/googletest/test/gtest_help_test.py
diff --git a/rmdb/deps/googletest/googletest/test/gtest_help_test_.cc b/deps/googletest/googletest/test/gtest_help_test_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_help_test_.cc
rename to deps/googletest/googletest/test/gtest_help_test_.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_json_test_utils.py b/deps/googletest/googletest/test/gtest_json_test_utils.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_json_test_utils.py
rename to deps/googletest/googletest/test/gtest_json_test_utils.py
diff --git a/rmdb/deps/googletest/googletest/test/gtest_list_output_unittest.py b/deps/googletest/googletest/test/gtest_list_output_unittest.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_list_output_unittest.py
rename to deps/googletest/googletest/test/gtest_list_output_unittest.py
diff --git a/rmdb/deps/googletest/googletest/test/gtest_list_output_unittest_.cc b/deps/googletest/googletest/test/gtest_list_output_unittest_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_list_output_unittest_.cc
rename to deps/googletest/googletest/test/gtest_list_output_unittest_.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_main_unittest.cc b/deps/googletest/googletest/test/gtest_main_unittest.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_main_unittest.cc
rename to deps/googletest/googletest/test/gtest_main_unittest.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_no_test_unittest.cc b/deps/googletest/googletest/test/gtest_no_test_unittest.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_no_test_unittest.cc
rename to deps/googletest/googletest/test/gtest_no_test_unittest.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_pred_impl_unittest.cc b/deps/googletest/googletest/test/gtest_pred_impl_unittest.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_pred_impl_unittest.cc
rename to deps/googletest/googletest/test/gtest_pred_impl_unittest.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_premature_exit_test.cc b/deps/googletest/googletest/test/gtest_premature_exit_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_premature_exit_test.cc
rename to deps/googletest/googletest/test/gtest_premature_exit_test.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_prod_test.cc b/deps/googletest/googletest/test/gtest_prod_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_prod_test.cc
rename to deps/googletest/googletest/test/gtest_prod_test.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_repeat_test.cc b/deps/googletest/googletest/test/gtest_repeat_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_repeat_test.cc
rename to deps/googletest/googletest/test/gtest_repeat_test.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_skip_check_output_test.py b/deps/googletest/googletest/test/gtest_skip_check_output_test.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_skip_check_output_test.py
rename to deps/googletest/googletest/test/gtest_skip_check_output_test.py
diff --git a/rmdb/deps/googletest/googletest/test/gtest_skip_environment_check_output_test.py b/deps/googletest/googletest/test/gtest_skip_environment_check_output_test.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_skip_environment_check_output_test.py
rename to deps/googletest/googletest/test/gtest_skip_environment_check_output_test.py
diff --git a/rmdb/deps/googletest/googletest/test/gtest_skip_in_environment_setup_test.cc b/deps/googletest/googletest/test/gtest_skip_in_environment_setup_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_skip_in_environment_setup_test.cc
rename to deps/googletest/googletest/test/gtest_skip_in_environment_setup_test.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_skip_test.cc b/deps/googletest/googletest/test/gtest_skip_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_skip_test.cc
rename to deps/googletest/googletest/test/gtest_skip_test.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_sole_header_test.cc b/deps/googletest/googletest/test/gtest_sole_header_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_sole_header_test.cc
rename to deps/googletest/googletest/test/gtest_sole_header_test.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_stress_test.cc b/deps/googletest/googletest/test/gtest_stress_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_stress_test.cc
rename to deps/googletest/googletest/test/gtest_stress_test.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_test_macro_stack_footprint_test.cc b/deps/googletest/googletest/test/gtest_test_macro_stack_footprint_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_test_macro_stack_footprint_test.cc
rename to deps/googletest/googletest/test/gtest_test_macro_stack_footprint_test.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_test_utils.py b/deps/googletest/googletest/test/gtest_test_utils.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_test_utils.py
rename to deps/googletest/googletest/test/gtest_test_utils.py
diff --git a/rmdb/deps/googletest/googletest/test/gtest_testbridge_test.py b/deps/googletest/googletest/test/gtest_testbridge_test.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_testbridge_test.py
rename to deps/googletest/googletest/test/gtest_testbridge_test.py
diff --git a/rmdb/deps/googletest/googletest/test/gtest_testbridge_test_.cc b/deps/googletest/googletest/test/gtest_testbridge_test_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_testbridge_test_.cc
rename to deps/googletest/googletest/test/gtest_testbridge_test_.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_throw_on_failure_ex_test.cc b/deps/googletest/googletest/test/gtest_throw_on_failure_ex_test.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_throw_on_failure_ex_test.cc
rename to deps/googletest/googletest/test/gtest_throw_on_failure_ex_test.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_unittest.cc b/deps/googletest/googletest/test/gtest_unittest.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_unittest.cc
rename to deps/googletest/googletest/test/gtest_unittest.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_xml_outfile1_test_.cc b/deps/googletest/googletest/test/gtest_xml_outfile1_test_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_xml_outfile1_test_.cc
rename to deps/googletest/googletest/test/gtest_xml_outfile1_test_.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_xml_outfile2_test_.cc b/deps/googletest/googletest/test/gtest_xml_outfile2_test_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_xml_outfile2_test_.cc
rename to deps/googletest/googletest/test/gtest_xml_outfile2_test_.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_xml_outfiles_test.py b/deps/googletest/googletest/test/gtest_xml_outfiles_test.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_xml_outfiles_test.py
rename to deps/googletest/googletest/test/gtest_xml_outfiles_test.py
diff --git a/rmdb/deps/googletest/googletest/test/gtest_xml_output_unittest.py b/deps/googletest/googletest/test/gtest_xml_output_unittest.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_xml_output_unittest.py
rename to deps/googletest/googletest/test/gtest_xml_output_unittest.py
diff --git a/rmdb/deps/googletest/googletest/test/gtest_xml_output_unittest_.cc b/deps/googletest/googletest/test/gtest_xml_output_unittest_.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_xml_output_unittest_.cc
rename to deps/googletest/googletest/test/gtest_xml_output_unittest_.cc
diff --git a/rmdb/deps/googletest/googletest/test/gtest_xml_test_utils.py b/deps/googletest/googletest/test/gtest_xml_test_utils.py
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/gtest_xml_test_utils.py
rename to deps/googletest/googletest/test/gtest_xml_test_utils.py
diff --git a/rmdb/deps/googletest/googletest/test/production.cc b/deps/googletest/googletest/test/production.cc
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/production.cc
rename to deps/googletest/googletest/test/production.cc
diff --git a/rmdb/deps/googletest/googletest/test/production.h b/deps/googletest/googletest/test/production.h
similarity index 100%
rename from rmdb/deps/googletest/googletest/test/production.h
rename to deps/googletest/googletest/test/production.h
diff --git a/rmdb/deps/googletest/install_manifest.txt b/deps/googletest/install_manifest.txt
similarity index 100%
rename from rmdb/deps/googletest/install_manifest.txt
rename to deps/googletest/install_manifest.txt
diff --git a/rmdb/.idea/.gitignore b/rmdb/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..13566b81b018ad684f3a35fee301741b2734c8f4
--- /dev/null
+++ b/rmdb/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/rmdb/.idea/.name b/rmdb/.idea/.name
new file mode 100644
index 0000000000000000000000000000000000000000..43d07ae167d35e14dec47a31fd56a193eb61ea14
--- /dev/null
+++ b/rmdb/.idea/.name
@@ -0,0 +1 @@
+RMDB
\ No newline at end of file
diff --git a/rmdb/.idea/misc.xml b/rmdb/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..79b3c94830bab93d40d0770f2765540fe24ed423
--- /dev/null
+++ b/rmdb/.idea/misc.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" />
+</project>
\ No newline at end of file
diff --git a/rmdb/.idea/modules.xml b/rmdb/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5907bc3760b23d193ebc63030da4db013008a49d
--- /dev/null
+++ b/rmdb/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/rmdb.iml" filepath="$PROJECT_DIR$/.idea/rmdb.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/rmdb/.idea/rmdb.iml b/rmdb/.idea/rmdb.iml
new file mode 100644
index 0000000000000000000000000000000000000000..f08604bb65b25149b195f9e9f282f9683a428592
--- /dev/null
+++ b/rmdb/.idea/rmdb.iml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module classpath="CMake" type="CPP_MODULE" version="4" />
\ No newline at end of file
diff --git a/rmdb/.idea/vcs.xml b/rmdb/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6c0b8635858dc7ad44b93df54b762707ce49eefc
--- /dev/null
+++ b/rmdb/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/rmdb/README.md b/rmdb/README.md
deleted file mode 100644
index 141b0cafc0a5de9c8dcb7f3c9fdec45032d665b3..0000000000000000000000000000000000000000
--- a/rmdb/README.md
+++ /dev/null
@@ -1,44 +0,0 @@
-<div align="center">
-<img src="RMDB.jpg"  width=25%  /> 
-</div>
-
-
-
-全国大学生计算机系统能力大赛数据库管理系统赛道,以培养学生“数据库管理系统内核实现”能力为目标。本次比赛为参赛队伍提供数据库管理系统代码框架RMDB,参赛队伍在RMDB的基础上,设计和实现一个完整的关系型数据库管理系统,该系统要求具备运行TPC-C基准测试(TPC-C是一个面向联机事务处理的测试基准)常用负载的能力。
-
-RMDB由中国人民大学数据库教学团队开发,同时得到教育部-华为”智能基座”项目的支持,平台、赛题和测试用例等得到了全国大学生计算机系统能力大赛数据库管理系统赛道技术委员会的支持和审核。系统能力大赛专家组和[101计划数据库系统课程](http://101.pku.edu.cn/courseDetails?id=DC767C683D697417E0555943CA7634DE)工作组给予了指导。
-
-## 实验环境:
-- 操作系统:Ubuntu 18.04 及以上(64位)
-- 编译器:GCC
-- 编程语言:C++17
-- 管理工具:cmake
-- 推荐编辑器:VScode
-
-### 依赖环境库配置:
-- gcc 7.1及以上版本(要求完全支持C++17)
-- cmake 3.16及以上版本
-- flex
-- bison
-- readline
-
-欲查看有关依赖运行库和编译工具的更多信息,以及如何运行的说明,请查阅[RMDB使用文档](RMDB使用文档.pdf)
-
-欲了解如何在非Linux系统PC上部署实验环境的指导,请查阅[RMDB环境配置文档](RMDB环境配置文档.pdf)
-
-### 项目说明文档
-
-- [RMDB环境配置文档](RMDB环境配置文档.pdf)
-- [RMDB使用文档](RMDB使用文档.pdf)
-- [RMDB项目结构](RMDB项目结构.pdf)
-- [测试说明文档](测试说明文档.pdf)
-
-## 推荐参考资料
-
-- [**Database System Concepts** (***Seventh Edition***)](https://db-book.com/)
-- [PostgreSQL 数据库内核分析](https://book.douban.com/subject/6971366//)
-- [数据库系统实现](https://book.douban.com/subject/4838430/)
-- [数据库系统概论(第5版)](http://chinadb.ruc.edu.cn/second/url/2)
-
-## License
-RMDB采用[木兰宽松许可证,第2版](https://license.coscl.org.cn/MulanPSL2),可以自由拷贝和使用源码, 当做修改或分发时, 请遵守[木兰宽松许可证,第2版](https://license.coscl.org.cn/MulanPSL2).
\ No newline at end of file
diff --git a/rmdb/rmdb_client/.DS_Store b/rmdb_client/.DS_Store
similarity index 100%
rename from rmdb/rmdb_client/.DS_Store
rename to rmdb_client/.DS_Store
diff --git a/rmdb/rmdb_client/CMakeLists.txt b/rmdb_client/CMakeLists.txt
similarity index 100%
rename from rmdb/rmdb_client/CMakeLists.txt
rename to rmdb_client/CMakeLists.txt
diff --git a/rmdb_client/build/CMakeCache.txt b/rmdb_client/build/CMakeCache.txt
new file mode 100644
index 0000000000000000000000000000000000000000..99c4be6ae6bdb74464aa0fa88d2136f15946cc60
--- /dev/null
+++ b/rmdb_client/build/CMakeCache.txt
@@ -0,0 +1,375 @@
+# This is the CMakeCache file.
+# For build in directory: /home/pepephant/GleamDB/rmdb/rmdb_client/build
+# It was generated by CMake: /usr/bin/cmake
+# 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
+########################
+
+//Path to a program.
+CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line
+
+//Path to a program.
+CMAKE_AR:FILEPATH=/usr/bin/ar
+
+//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++
+
+//A wrapper around 'ar' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-11
+
+//A wrapper around 'ranlib' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-11
+
+//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-11
+
+//A wrapper around 'ranlib' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-11
+
+//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=CMAKE_DLLTOOL-NOTFOUND
+
+//Flags used by the linker during all build types.
+CMAKE_EXE_LINKER_FLAGS:STRING=
+
+//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=
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=/usr/local
+
+//Path to a program.
+CMAKE_LINKER:FILEPATH=/usr/bin/ld
+
+//Path to a program.
+CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake
+
+//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
+
+//Path to a program.
+CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
+
+//Path to a program.
+CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
+
+//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=rmdb_client
+
+//Path to a program.
+CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
+
+//Path to a program.
+CMAKE_READELF:FILEPATH=/usr/bin/readelf
+
+//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
+
+//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
+
+//Value Computed by CMake
+rmdb_client_BINARY_DIR:STATIC=/home/pepephant/GleamDB/rmdb/rmdb_client/build
+
+//Value Computed by CMake
+rmdb_client_IS_TOP_LEVEL:STATIC=ON
+
+//Value Computed by CMake
+rmdb_client_SOURCE_DIR:STATIC=/home/pepephant/GleamDB/rmdb/rmdb_client
+
+
+########################
+# 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=/home/pepephant/GleamDB/rmdb/rmdb_client/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=22
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=1
+//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
+CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
+//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
+//Executable file format
+CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
+//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=/home/pepephant/GleamDB/rmdb/rmdb_client
+//Install .so files without execute permission.
+CMAKE_INSTALL_SO_NO_EXE: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=1
+//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_READELF
+CMAKE_READELF-ADVANCED:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.22
+//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
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+//Details about finding Threads
+FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()]
+
diff --git a/rmdb_client/build/CMakeFiles/3.22.1/CMakeCCompiler.cmake b/rmdb_client/build/CMakeFiles/3.22.1/CMakeCCompiler.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..488ad37510279ee3a1dc535c7ccd5a2cf9a69d5b
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/3.22.1/CMakeCCompiler.cmake
@@ -0,0 +1,72 @@
+set(CMAKE_C_COMPILER "/usr/bin/cc")
+set(CMAKE_C_COMPILER_ARG1 "")
+set(CMAKE_C_COMPILER_ID "GNU")
+set(CMAKE_C_COMPILER_VERSION "11.4.0")
+set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_C_COMPILER_WRAPPER "")
+set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17")
+set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON")
+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;c_std_17;c_std_23")
+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_C17_COMPILE_FEATURES "c_std_17")
+set(CMAKE_C23_COMPILE_FEATURES "c_std_23")
+
+set(CMAKE_C_PLATFORM_ID "Linux")
+set(CMAKE_C_SIMULATE_ID "")
+set(CMAKE_C_COMPILER_FRONTEND_VARIANT "")
+set(CMAKE_C_SIMULATE_VERSION "")
+
+
+
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-11")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-11")
+set(CMAKE_LINKER "/usr/bin/ld")
+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_C_COMPILER_ENV_VAR "CC")
+
+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 "ELF")
+set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN")
+set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+
+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 "x86_64-linux-gnu")
+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-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include")
+set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")
+set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
+set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/rmdb_client/build/CMakeFiles/3.22.1/CMakeCXXCompiler.cmake b/rmdb_client/build/CMakeFiles/3.22.1/CMakeCXXCompiler.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..345e9307d98d4da7a2cb8a1cad976671f62ac568
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/3.22.1/CMakeCXXCompiler.cmake
@@ -0,0 +1,83 @@
+set(CMAKE_CXX_COMPILER "/usr/bin/c++")
+set(CMAKE_CXX_COMPILER_ARG1 "")
+set(CMAKE_CXX_COMPILER_ID "GNU")
+set(CMAKE_CXX_COMPILER_VERSION "11.4.0")
+set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_CXX_COMPILER_WRAPPER "")
+set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17")
+set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON")
+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;cxx_std_23")
+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_CXX23_COMPILE_FEATURES "cxx_std_23")
+
+set(CMAKE_CXX_PLATFORM_ID "Linux")
+set(CMAKE_CXX_SIMULATE_ID "")
+set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "")
+set(CMAKE_CXX_SIMULATE_VERSION "")
+
+
+
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-11")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-11")
+set(CMAKE_LINKER "/usr/bin/ld")
+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_CXX_COMPILER_ENV_VAR "CXX")
+
+set(CMAKE_CXX_COMPILER_ID_RUN 1)
+set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm)
+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 "ELF")
+set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN")
+set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+
+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 "x86_64-linux-gnu")
+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/include/c++/11;/usr/include/x86_64-linux-gnu/c++/11;/usr/include/c++/11/backward;/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include")
+set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc")
+set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
+set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/rmdb_client/build/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_C.bin b/rmdb_client/build/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_C.bin
new file mode 100755
index 0000000000000000000000000000000000000000..a4691337f66c7201fb0c354daa924d93cb69ee7e
Binary files /dev/null and b/rmdb_client/build/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_C.bin differ
diff --git a/rmdb_client/build/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_CXX.bin b/rmdb_client/build/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_CXX.bin
new file mode 100755
index 0000000000000000000000000000000000000000..15e6e3f257c3b28cc05e33f293ce25b498a4f570
Binary files /dev/null and b/rmdb_client/build/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_CXX.bin differ
diff --git a/rmdb_client/build/CMakeFiles/3.22.1/CMakeSystem.cmake b/rmdb_client/build/CMakeFiles/3.22.1/CMakeSystem.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..66976ee4960db9112fb969b5176929b8bae3c9de
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/3.22.1/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Linux-5.15.146.1-microsoft-standard-WSL2")
+set(CMAKE_HOST_SYSTEM_NAME "Linux")
+set(CMAKE_HOST_SYSTEM_VERSION "5.15.146.1-microsoft-standard-WSL2")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
+
+
+
+set(CMAKE_SYSTEM "Linux-5.15.146.1-microsoft-standard-WSL2")
+set(CMAKE_SYSTEM_NAME "Linux")
+set(CMAKE_SYSTEM_VERSION "5.15.146.1-microsoft-standard-WSL2")
+set(CMAKE_SYSTEM_PROCESSOR "x86_64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/rmdb_client/build/CMakeFiles/3.22.1/CompilerIdC/CMakeCCompilerId.c b/rmdb_client/build/CMakeFiles/3.22.1/CompilerIdC/CMakeCCompilerId.c
new file mode 100644
index 0000000000000000000000000000000000000000..41b99d7783c1e447962d3183b641863e61a8edd0
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/3.22.1/CompilerIdC/CMakeCCompilerId.c
@@ -0,0 +1,803 @@
+#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
+
+#if !defined(__has_include)
+/* If the compiler does not have __has_include, pretend the answer is
+   always no.  */
+#  define __has_include(x) 0
+#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 prior to 2021, and then VVVV for 2021 and later,
+     except that a few beta releases use the old format with V=2021.  */
+# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
+#  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
+# else
+#  define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
+#  define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
+   /* The third version component from --version is an update index,
+      but no macro is provided for it.  */
+#  define COMPILER_VERSION_PATCH DEC(0)
+# 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(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
+# define COMPILER_ID "IntelLLVM"
+#if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+#endif
+/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
+ * later.  Look for 6 digit vs. 8 digit version number to decide encoding.
+ * VVVV is no smaller than the current year when a version is released.
+ */
+#if __INTEL_LLVM_COMPILER < 1000000L
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER    % 10)
+#else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER     % 100)
+#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(__NVCOMPILER)
+# define COMPILER_ID "NVHPC"
+# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
+# if defined(__NVCOMPILER_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
+# endif
+
+#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(__CLANG_FUJITSU)
+# define COMPILER_ID "FujitsuClang"
+# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(__FUJITSU)
+# define COMPILER_ID "Fujitsu"
+# if defined(__FCC_version__)
+#   define COMPILER_VERSION __FCC_version__
+# elif defined(__FCC_major__)
+#   define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+#   define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+#   define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# endif
+# if defined(__fcc_version)
+#   define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
+# elif defined(__FCC_VERSION)
+#   define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
+# endif
+
+
+#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__) || defined(__ICCSTM8__))
+#  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(__CRAYXT_COMPUTE_LINUX_TARGET)
+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(__MSYS__)
+# define PLATFORM_ID "MSYS"
+
+#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"
+
+# elif defined(__VXWORKS__)
+#  define PLATFORM_ID "VxWorks"
+
+# 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_ARM64EC)
+#  define ARCHITECTURE_ID "ARM64EC"
+
+# 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"
+
+# elif defined(__ICCSTM8__)
+#  define ARCHITECTURE_ID "STM8"
+
+# 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
+
+#elif defined(__TI_COMPILER_VERSION__)
+# if defined(__TI_ARM__)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(__MSP430__)
+#  define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__TMS320C28XX__)
+#  define ARCHITECTURE_ID "TMS320C28x"
+
+# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
+#  define ARCHITECTURE_ID "TMS320C6x"
+
+# 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. */
+#ifdef COMPILER_VERSION
+char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
+
+/* Construct a string literal encoding the version number components. */
+#elif defined(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'};
+#elif defined(COMPILER_VERSION_INTERNAL_STR)
+char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
+#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__) && !defined(__clang__)
+# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)
+#  define C_VERSION "90"
+# else
+#  define C_VERSION
+# endif
+#elif __STDC_VERSION__ > 201710L
+# define C_VERSION "23"
+#elif __STDC_VERSION__ >= 201710L
+# define C_VERSION "17"
+#elif __STDC_VERSION__ >= 201000L
+# define C_VERSION "11"
+#elif __STDC_VERSION__ >= 199901L
+# define C_VERSION "99"
+#else
+# define C_VERSION "90"
+#endif
+const char* info_language_standard_default =
+  "INFO" ":" "standard_default[" C_VERSION "]";
+
+const char* info_language_extensions_default = "INFO" ":" "extensions_default["
+/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */
+#if (defined(__clang__) || defined(__GNUC__) ||                               \
+     defined(__TI_COMPILER_VERSION__)) &&                                     \
+  !defined(__STRICT_ANSI__) && !defined(_MSC_VER)
+  "ON"
+#else
+  "OFF"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+#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(__CRAYXT_COMPUTE_LINUX_TARGET)
+  require += info_cray[argc];
+#endif
+  require += info_language_standard_default[argc];
+  require += info_language_extensions_default[argc];
+  (void)argv;
+  return require;
+}
+#endif
diff --git a/rmdb_client/build/CMakeFiles/3.22.1/CompilerIdC/a.out b/rmdb_client/build/CMakeFiles/3.22.1/CompilerIdC/a.out
new file mode 100755
index 0000000000000000000000000000000000000000..c786756abbd10a6ac500dd20933efa409d328d0c
Binary files /dev/null and b/rmdb_client/build/CMakeFiles/3.22.1/CompilerIdC/a.out differ
diff --git a/rmdb_client/build/CMakeFiles/3.22.1/CompilerIdCXX/CMakeCXXCompilerId.cpp b/rmdb_client/build/CMakeFiles/3.22.1/CompilerIdCXX/CMakeCXXCompilerId.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..25c62a8c3cb40764ac539370df9ec347bdd99b79
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/3.22.1/CompilerIdCXX/CMakeCXXCompilerId.cpp
@@ -0,0 +1,791 @@
+/* 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
+
+#if !defined(__has_include)
+/* If the compiler does not have __has_include, pretend the answer is
+   always no.  */
+#  define __has_include(x) 0
+#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 prior to 2021, and then VVVV for 2021 and later,
+     except that a few beta releases use the old format with V=2021.  */
+# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
+#  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
+# else
+#  define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
+#  define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
+   /* The third version component from --version is an update index,
+      but no macro is provided for it.  */
+#  define COMPILER_VERSION_PATCH DEC(0)
+# 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(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
+# define COMPILER_ID "IntelLLVM"
+#if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+#endif
+/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
+ * later.  Look for 6 digit vs. 8 digit version number to decide encoding.
+ * VVVV is no smaller than the current year when a version is released.
+ */
+#if __INTEL_LLVM_COMPILER < 1000000L
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER    % 10)
+#else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER     % 100)
+#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(__NVCOMPILER)
+# define COMPILER_ID "NVHPC"
+# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
+# if defined(__NVCOMPILER_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
+# endif
+
+#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(__CLANG_FUJITSU)
+# define COMPILER_ID "FujitsuClang"
+# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(__FUJITSU)
+# define COMPILER_ID "Fujitsu"
+# if defined(__FCC_version__)
+#   define COMPILER_VERSION __FCC_version__
+# elif defined(__FCC_major__)
+#   define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+#   define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+#   define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# endif
+# if defined(__fcc_version)
+#   define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
+# elif defined(__FCC_VERSION)
+#   define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
+# endif
+
+
+#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__) || defined(__ICCSTM8__))
+#  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(__CRAYXT_COMPUTE_LINUX_TARGET)
+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(__MSYS__)
+# define PLATFORM_ID "MSYS"
+
+#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"
+
+# elif defined(__VXWORKS__)
+#  define PLATFORM_ID "VxWorks"
+
+# 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_ARM64EC)
+#  define ARCHITECTURE_ID "ARM64EC"
+
+# 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"
+
+# elif defined(__ICCSTM8__)
+#  define ARCHITECTURE_ID "STM8"
+
+# 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
+
+#elif defined(__TI_COMPILER_VERSION__)
+# if defined(__TI_ARM__)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(__MSP430__)
+#  define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__TMS320C28XX__)
+#  define ARCHITECTURE_ID "TMS320C28x"
+
+# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
+#  define ARCHITECTURE_ID "TMS320C6x"
+
+# 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. */
+#ifdef COMPILER_VERSION
+char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
+
+/* Construct a string literal encoding the version number components. */
+#elif defined(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'};
+#elif defined(COMPILER_VERSION_INTERNAL_STR)
+char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
+#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_standard_default = "INFO" ":" "standard_default["
+#if CXX_STD > 202002L
+  "23"
+#elif CXX_STD > 201703L
+  "20"
+#elif CXX_STD >= 201703L
+  "17"
+#elif CXX_STD >= 201402L
+  "14"
+#elif CXX_STD >= 201103L
+  "11"
+#else
+  "98"
+#endif
+"]";
+
+const char* info_language_extensions_default = "INFO" ":" "extensions_default["
+/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */
+#if (defined(__clang__) || defined(__GNUC__) ||                               \
+     defined(__TI_COMPILER_VERSION__)) &&                                     \
+  !defined(__STRICT_ANSI__) && !defined(_MSC_VER)
+  "ON"
+#else
+  "OFF"
+#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(__CRAYXT_COMPUTE_LINUX_TARGET)
+  require += info_cray[argc];
+#endif
+  require += info_language_standard_default[argc];
+  require += info_language_extensions_default[argc];
+  (void)argv;
+  return require;
+}
diff --git a/rmdb_client/build/CMakeFiles/3.22.1/CompilerIdCXX/a.out b/rmdb_client/build/CMakeFiles/3.22.1/CompilerIdCXX/a.out
new file mode 100755
index 0000000000000000000000000000000000000000..9944be481759fba2110a3ba6af6d9c647c7ea1a9
Binary files /dev/null and b/rmdb_client/build/CMakeFiles/3.22.1/CompilerIdCXX/a.out differ
diff --git a/rmdb_client/build/CMakeFiles/CMakeDirectoryInformation.cmake b/rmdb_client/build/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..abf8fd3043d8f07c97cfefef8c9bfcb3df43e618
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/pepephant/GleamDB/rmdb/rmdb_client")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/pepephant/GleamDB/rmdb/rmdb_client/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/rmdb_client/build/CMakeFiles/CMakeOutput.log b/rmdb_client/build/CMakeFiles/CMakeOutput.log
new file mode 100644
index 0000000000000000000000000000000000000000..224a5340caa1221f808fded31c32f69ec941c40e
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/CMakeOutput.log
@@ -0,0 +1,497 @@
+The system is: Linux - 5.15.146.1-microsoft-standard-WSL2 - 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.out"
+
+The C compiler identification is GNU, found in "/home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/3.22.1/CompilerIdC/a.out"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: /usr/bin/c++ 
+Build flags: 
+Id flags:  
+
+The output was:
+0
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
+
+The CXX compiler identification is GNU, found in "/home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/3.22.1/CompilerIdCXX/a.out"
+
+Detecting C compiler ABI info compiled with the following output:
+Change Dir: /home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_17199/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_17199.dir/build.make CMakeFiles/cmTC_17199.dir/build
+gmake[1]: Entering directory '/home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o
+/usr/bin/cc   -v -o CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c
+Using built-in specs.
+COLLECT_GCC=/usr/bin/cc
+OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_17199.dir/'
+ /usr/lib/gcc/x86_64-linux-gnu/11/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_17199.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccKen4sm.s
+GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)
+	compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
+
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
+ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"
+ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /usr/lib/gcc/x86_64-linux-gnu/11/include
+ /usr/local/include
+ /usr/include/x86_64-linux-gnu
+ /usr/include
+End of search list.
+GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)
+	compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
+
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+Compiler executable checksum: 50eaa2331df977b8016186198deb2d18
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_17199.dir/'
+ as -v --64 -o CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o /tmp/ccKen4sm.s
+GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.'
+Linking C executable cmTC_17199
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_17199.dir/link.txt --verbose=1
+/usr/bin/cc  -v CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o -o cmTC_17199 
+Using built-in specs.
+COLLECT_GCC=/usr/bin/cc
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper
+OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_17199' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_17199.'
+ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cctYejl8.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_17199 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_17199' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_17199.'
+gmake[1]: Leaving directory '/home/pepephant/GleamDB/rmdb/rmdb_client/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-linux-gnu/11/include]
+    add: [/usr/local/include]
+    add: [/usr/include/x86_64-linux-gnu]
+    add: [/usr/include]
+  end of search list found
+  collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/11/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/11/include]
+  collapse include dir [/usr/local/include] ==> [/usr/local/include]
+  collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu]
+  collapse include dir [/usr/include] ==> [/usr/include]
+  implicit include dirs: [/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include]
+
+
+Parsed C implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_17199/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_17199.dir/build.make CMakeFiles/cmTC_17199.dir/build]
+  ignore line: [gmake[1]: Entering directory '/home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/CMakeTmp']
+  ignore line: [Building C object CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o]
+  ignore line: [/usr/bin/cc   -v -o CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/cc]
+  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
+  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
+  ignore line: [Target: x86_64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2]
+  ignore line: [Thread model: posix]
+  ignore line: [Supported LTO compression algorithms: zlib zstd]
+  ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_17199.dir/']
+  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_17199.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccKen4sm.s]
+  ignore line: [GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)]
+  ignore line: [	compiled by GNU C version 11.4.0  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
+  ignore line: []
+  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
+  ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"]
+  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"]
+  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"]
+  ignore line: [#include "..." search starts here:]
+  ignore line: [#include <...> search starts here:]
+  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/include]
+  ignore line: [ /usr/local/include]
+  ignore line: [ /usr/include/x86_64-linux-gnu]
+  ignore line: [ /usr/include]
+  ignore line: [End of search list.]
+  ignore line: [GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)]
+  ignore line: [	compiled by GNU C version 11.4.0  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
+  ignore line: []
+  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
+  ignore line: [Compiler executable checksum: 50eaa2331df977b8016186198deb2d18]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_17199.dir/']
+  ignore line: [ as -v --64 -o CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o /tmp/ccKen4sm.s]
+  ignore line: [GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.']
+  ignore line: [Linking C executable cmTC_17199]
+  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_17199.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/cc  -v CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o -o cmTC_17199 ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/cc]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper]
+  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
+  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
+  ignore line: [Target: x86_64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2]
+  ignore line: [Thread model: posix]
+  ignore line: [Supported LTO compression algorithms: zlib zstd]
+  ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_17199' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_17199.']
+  link line: [ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cctYejl8.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_17199 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/11/collect2] ==> ignore
+    arg [-plugin] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so] ==> ignore
+    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] ==> ignore
+    arg [-plugin-opt=-fresolution=/tmp/cctYejl8.res] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [-m] ==> ignore
+    arg [elf_x86_64] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+    arg [-pie] ==> ignore
+    arg [-znow] ==> ignore
+    arg [-zrelro] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTC_17199] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/11] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib]
+    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
+    arg [-L/lib/../lib] ==> dir [/lib/../lib]
+    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
+    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..]
+    arg [CMakeFiles/cmTC_17199.dir/CMakeCCompilerABI.c.o] ==> ignore
+    arg [-lgcc] ==> lib [gcc]
+    arg [--push-state] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--pop-state] ==> ignore
+    arg [-lc] ==> lib [c]
+    arg [-lgcc] ==> lib [gcc]
+    arg [--push-state] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--pop-state] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
+  collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o]
+  collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o]
+  collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11] ==> [/usr/lib/gcc/x86_64-linux-gnu/11]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> [/usr/lib]
+  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
+  collapse library dir [/lib/../lib] ==> [/lib]
+  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> [/usr/lib]
+  implicit libs: [gcc;gcc_s;c;gcc;gcc_s]
+  implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o]
+  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
+  implicit fwks: []
+
+
+Detecting CXX compiler ABI info compiled with the following output:
+Change Dir: /home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_67c58/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_67c58.dir/build.make CMakeFiles/cmTC_67c58.dir/build
+gmake[1]: Entering directory '/home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o
+/usr/bin/c++   -v -o CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp
+Using built-in specs.
+COLLECT_GCC=/usr/bin/c++
+OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_67c58.dir/'
+ /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_67c58.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccwIlxpK.s
+GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)
+	compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
+
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11"
+ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
+ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"
+ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /usr/include/c++/11
+ /usr/include/x86_64-linux-gnu/c++/11
+ /usr/include/c++/11/backward
+ /usr/lib/gcc/x86_64-linux-gnu/11/include
+ /usr/local/include
+ /usr/include/x86_64-linux-gnu
+ /usr/include
+End of search list.
+GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)
+	compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
+
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+Compiler executable checksum: d591828bb4d392ae8b7b160e5bb0b95f
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_67c58.dir/'
+ as -v --64 -o CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccwIlxpK.s
+GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.'
+Linking CXX executable cmTC_67c58
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_67c58.dir/link.txt --verbose=1
+/usr/bin/c++  -v CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_67c58 
+Using built-in specs.
+COLLECT_GCC=/usr/bin/c++
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper
+OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_67c58' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_67c58.'
+ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccRScOWw.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_67c58 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_67c58' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_67c58.'
+gmake[1]: Leaving directory '/home/pepephant/GleamDB/rmdb/rmdb_client/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/include/c++/11]
+    add: [/usr/include/x86_64-linux-gnu/c++/11]
+    add: [/usr/include/c++/11/backward]
+    add: [/usr/lib/gcc/x86_64-linux-gnu/11/include]
+    add: [/usr/local/include]
+    add: [/usr/include/x86_64-linux-gnu]
+    add: [/usr/include]
+  end of search list found
+  collapse include dir [/usr/include/c++/11] ==> [/usr/include/c++/11]
+  collapse include dir [/usr/include/x86_64-linux-gnu/c++/11] ==> [/usr/include/x86_64-linux-gnu/c++/11]
+  collapse include dir [/usr/include/c++/11/backward] ==> [/usr/include/c++/11/backward]
+  collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/11/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/11/include]
+  collapse include dir [/usr/local/include] ==> [/usr/local/include]
+  collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu]
+  collapse include dir [/usr/include] ==> [/usr/include]
+  implicit include dirs: [/usr/include/c++/11;/usr/include/x86_64-linux-gnu/c++/11;/usr/include/c++/11/backward;/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include]
+
+
+Parsed CXX implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_67c58/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_67c58.dir/build.make CMakeFiles/cmTC_67c58.dir/build]
+  ignore line: [gmake[1]: Entering directory '/home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/CMakeTmp']
+  ignore line: [Building CXX object CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o]
+  ignore line: [/usr/bin/c++   -v -o CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/c++]
+  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
+  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
+  ignore line: [Target: x86_64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2]
+  ignore line: [Thread model: posix]
+  ignore line: [Supported LTO compression algorithms: zlib zstd]
+  ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_67c58.dir/']
+  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_67c58.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccwIlxpK.s]
+  ignore line: [GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)]
+  ignore line: [	compiled by GNU C version 11.4.0  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
+  ignore line: []
+  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
+  ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11"]
+  ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"]
+  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"]
+  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"]
+  ignore line: [#include "..." search starts here:]
+  ignore line: [#include <...> search starts here:]
+  ignore line: [ /usr/include/c++/11]
+  ignore line: [ /usr/include/x86_64-linux-gnu/c++/11]
+  ignore line: [ /usr/include/c++/11/backward]
+  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/include]
+  ignore line: [ /usr/local/include]
+  ignore line: [ /usr/include/x86_64-linux-gnu]
+  ignore line: [ /usr/include]
+  ignore line: [End of search list.]
+  ignore line: [GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)]
+  ignore line: [	compiled by GNU C version 11.4.0  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
+  ignore line: []
+  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
+  ignore line: [Compiler executable checksum: d591828bb4d392ae8b7b160e5bb0b95f]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_67c58.dir/']
+  ignore line: [ as -v --64 -o CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccwIlxpK.s]
+  ignore line: [GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.']
+  ignore line: [Linking CXX executable cmTC_67c58]
+  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_67c58.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/c++  -v CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_67c58 ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/c++]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper]
+  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
+  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
+  ignore line: [Target: x86_64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2]
+  ignore line: [Thread model: posix]
+  ignore line: [Supported LTO compression algorithms: zlib zstd]
+  ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_67c58' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_67c58.']
+  link line: [ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccRScOWw.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_67c58 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/11/collect2] ==> ignore
+    arg [-plugin] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so] ==> ignore
+    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] ==> ignore
+    arg [-plugin-opt=-fresolution=/tmp/ccRScOWw.res] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [-m] ==> ignore
+    arg [elf_x86_64] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+    arg [-pie] ==> ignore
+    arg [-znow] ==> ignore
+    arg [-zrelro] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTC_67c58] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/11] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib]
+    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
+    arg [-L/lib/../lib] ==> dir [/lib/../lib]
+    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
+    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..]
+    arg [CMakeFiles/cmTC_67c58.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
+    arg [-lstdc++] ==> lib [stdc++]
+    arg [-lm] ==> lib [m]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [-lc] ==> lib [c]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
+  collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o]
+  collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o]
+  collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11] ==> [/usr/lib/gcc/x86_64-linux-gnu/11]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> [/usr/lib]
+  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
+  collapse library dir [/lib/../lib] ==> [/lib]
+  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> [/usr/lib]
+  implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc]
+  implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o]
+  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
+  implicit fwks: []
+
+
+Determining if the include file pthread.h exists passed with the following output:
+Change Dir: /home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_0598f/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_0598f.dir/build.make CMakeFiles/cmTC_0598f.dir/build
+gmake[1]: Entering directory '/home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_0598f.dir/CheckIncludeFile.c.o
+/usr/bin/cc    -o CMakeFiles/cmTC_0598f.dir/CheckIncludeFile.c.o -c /home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_0598f
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0598f.dir/link.txt --verbose=1
+/usr/bin/cc CMakeFiles/cmTC_0598f.dir/CheckIncludeFile.c.o -o cmTC_0598f 
+gmake[1]: Leaving directory '/home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/CMakeTmp'
+
+
+
+Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD succeeded with the following output:
+Change Dir: /home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_a9afa/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_a9afa.dir/build.make CMakeFiles/cmTC_a9afa.dir/build
+gmake[1]: Entering directory '/home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_a9afa.dir/src.c.o
+/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD   -o CMakeFiles/cmTC_a9afa.dir/src.c.o -c /home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/CMakeTmp/src.c
+Linking C executable cmTC_a9afa
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a9afa.dir/link.txt --verbose=1
+/usr/bin/cc CMakeFiles/cmTC_a9afa.dir/src.c.o -o cmTC_a9afa 
+gmake[1]: Leaving directory '/home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/CMakeTmp'
+
+
+Source file was:
+#include <pthread.h>
+
+static 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/rmdb_client/build/CMakeFiles/Makefile.cmake b/rmdb_client/build/CMakeFiles/Makefile.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..6fcfb7fd3f9c05137a022f659ec6ca00f877635c
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/Makefile.cmake
@@ -0,0 +1,130 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+
+# 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.22.1/CMakeCCompiler.cmake"
+  "CMakeFiles/3.22.1/CMakeCXXCompiler.cmake"
+  "CMakeFiles/3.22.1/CMakeSystem.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in"
+  "/usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c"
+  "/usr/share/cmake-3.22/Modules/CMakeCInformation.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in"
+  "/usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp"
+  "/usr/share/cmake-3.22/Modules/CMakeCXXInformation.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeGenericSystem.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeSystem.cmake.in"
+  "/usr/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake"
+  "/usr/share/cmake-3.22/Modules/CMakeUnixFindMake.cmake"
+  "/usr/share/cmake-3.22/Modules/CheckCSourceCompiles.cmake"
+  "/usr/share/cmake-3.22/Modules/CheckIncludeFile.c.in"
+  "/usr/share/cmake-3.22/Modules/CheckIncludeFile.cmake"
+  "/usr/share/cmake-3.22/Modules/CheckLibraryExists.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/GNU-C.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/GNU-CXX.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/GNU-FindBinUtils.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/GNU.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
+  "/usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake"
+  "/usr/share/cmake-3.22/Modules/FindPackageMessage.cmake"
+  "/usr/share/cmake-3.22/Modules/FindThreads.cmake"
+  "/usr/share/cmake-3.22/Modules/Internal/CheckSourceCompiles.cmake"
+  "/usr/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake"
+  "/usr/share/cmake-3.22/Modules/Platform/Linux-Determine-CXX.cmake"
+  "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU-C.cmake"
+  "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU-CXX.cmake"
+  "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU.cmake"
+  "/usr/share/cmake-3.22/Modules/Platform/Linux.cmake"
+  "/usr/share/cmake-3.22/Modules/Platform/UnixPaths.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.22.1/CMakeSystem.cmake"
+  "CMakeFiles/3.22.1/CMakeCCompiler.cmake"
+  "CMakeFiles/3.22.1/CMakeCXXCompiler.cmake"
+  "CMakeFiles/3.22.1/CMakeCCompiler.cmake"
+  "CMakeFiles/3.22.1/CMakeCXXCompiler.cmake"
+  "CMakeFiles/CMakeDirectoryInformation.cmake"
+  )
+
+# Dependency information for all targets:
+set(CMAKE_DEPEND_INFO_FILES
+  "CMakeFiles/rmdb_client.dir/DependInfo.cmake"
+  )
diff --git a/rmdb_client/build/CMakeFiles/Makefile2 b/rmdb_client/build/CMakeFiles/Makefile2
new file mode 100644
index 0000000000000000000000000000000000000000..0bbaef53ab6f2e0dab144c1b69a28d84fea69052
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/Makefile2
@@ -0,0 +1,112 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+
+# 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
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E rm -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/pepephant/GleamDB/rmdb/rmdb_client
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/pepephant/GleamDB/rmdb/rmdb_client/build
+
+#=============================================================================
+# Directory level rules for the build root directory
+
+# The main recursive "all" target.
+all: CMakeFiles/rmdb_client.dir/all
+.PHONY : all
+
+# The main recursive "preinstall" target.
+preinstall:
+.PHONY : preinstall
+
+# The main recursive "clean" target.
+clean: CMakeFiles/rmdb_client.dir/clean
+.PHONY : clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/rmdb_client.dir
+
+# All Build rule for target.
+CMakeFiles/rmdb_client.dir/all:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/rmdb_client.dir/build.make CMakeFiles/rmdb_client.dir/depend
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/rmdb_client.dir/build.make CMakeFiles/rmdb_client.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles --progress-num=1,2 "Built target rmdb_client"
+.PHONY : CMakeFiles/rmdb_client.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/rmdb_client.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles 2
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/rmdb_client.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles 0
+.PHONY : CMakeFiles/rmdb_client.dir/rule
+
+# Convenience name for target.
+rmdb_client: CMakeFiles/rmdb_client.dir/rule
+.PHONY : rmdb_client
+
+# clean rule for target.
+CMakeFiles/rmdb_client.dir/clean:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/rmdb_client.dir/build.make CMakeFiles/rmdb_client.dir/clean
+.PHONY : CMakeFiles/rmdb_client.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/rmdb_client/build/CMakeFiles/TargetDirectories.txt b/rmdb_client/build/CMakeFiles/TargetDirectories.txt
new file mode 100644
index 0000000000000000000000000000000000000000..aa7b184f6e3e86e124d6a661090dfbc113e1f00d
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/TargetDirectories.txt
@@ -0,0 +1,3 @@
+/home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/rmdb_client.dir
+/home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/edit_cache.dir
+/home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/rebuild_cache.dir
diff --git a/rmdb_client/build/CMakeFiles/cmake.check_cache b/rmdb_client/build/CMakeFiles/cmake.check_cache
new file mode 100644
index 0000000000000000000000000000000000000000..3dccd731726d7faa8b29d8d7dba3b981a53ca497
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/cmake.check_cache
@@ -0,0 +1 @@
+# This file is generated by cmake for dependency checking of the CMakeCache.txt file
diff --git a/rmdb_client/build/CMakeFiles/progress.marks b/rmdb_client/build/CMakeFiles/progress.marks
new file mode 100644
index 0000000000000000000000000000000000000000..0cfbf08886fca9a91cb753ec8734c84fcbe52c9f
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+2
diff --git a/rmdb_client/build/CMakeFiles/rmdb_client.dir/DependInfo.cmake b/rmdb_client/build/CMakeFiles/rmdb_client.dir/DependInfo.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..9dea1b6caf89070a4ce1824933ebe35aa43f418c
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/rmdb_client.dir/DependInfo.cmake
@@ -0,0 +1,19 @@
+
+# Consider dependencies only in project.
+set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
+
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+
+# The set of dependency files which are needed:
+set(CMAKE_DEPENDS_DEPENDENCY_FILES
+  "/home/pepephant/GleamDB/rmdb/rmdb_client/main.cpp" "CMakeFiles/rmdb_client.dir/main.cpp.o" "gcc" "CMakeFiles/rmdb_client.dir/main.cpp.o.d"
+  )
+
+# 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/rmdb_client/build/CMakeFiles/rmdb_client.dir/build.make b/rmdb_client/build/CMakeFiles/rmdb_client.dir/build.make
new file mode 100644
index 0000000000000000000000000000000000000000..35e280dd36e06901abe636987fd993247b4ce647
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/rmdb_client.dir/build.make
@@ -0,0 +1,110 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+
+# 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
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E rm -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/pepephant/GleamDB/rmdb/rmdb_client
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/pepephant/GleamDB/rmdb/rmdb_client/build
+
+# Include any dependencies generated for this target.
+include CMakeFiles/rmdb_client.dir/depend.make
+# Include any dependencies generated by the compiler for this target.
+include CMakeFiles/rmdb_client.dir/compiler_depend.make
+
+# Include the progress variables for this target.
+include CMakeFiles/rmdb_client.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include CMakeFiles/rmdb_client.dir/flags.make
+
+CMakeFiles/rmdb_client.dir/main.cpp.o: CMakeFiles/rmdb_client.dir/flags.make
+CMakeFiles/rmdb_client.dir/main.cpp.o: ../main.cpp
+CMakeFiles/rmdb_client.dir/main.cpp.o: CMakeFiles/rmdb_client.dir/compiler_depend.ts
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/rmdb_client.dir/main.cpp.o"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/rmdb_client.dir/main.cpp.o -MF CMakeFiles/rmdb_client.dir/main.cpp.o.d -o CMakeFiles/rmdb_client.dir/main.cpp.o -c /home/pepephant/GleamDB/rmdb/rmdb_client/main.cpp
+
+CMakeFiles/rmdb_client.dir/main.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/rmdb_client.dir/main.cpp.i"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/pepephant/GleamDB/rmdb/rmdb_client/main.cpp > CMakeFiles/rmdb_client.dir/main.cpp.i
+
+CMakeFiles/rmdb_client.dir/main.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/rmdb_client.dir/main.cpp.s"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/pepephant/GleamDB/rmdb/rmdb_client/main.cpp -o CMakeFiles/rmdb_client.dir/main.cpp.s
+
+# Object files for target rmdb_client
+rmdb_client_OBJECTS = \
+"CMakeFiles/rmdb_client.dir/main.cpp.o"
+
+# External object files for target rmdb_client
+rmdb_client_EXTERNAL_OBJECTS =
+
+rmdb_client: CMakeFiles/rmdb_client.dir/main.cpp.o
+rmdb_client: CMakeFiles/rmdb_client.dir/build.make
+rmdb_client: CMakeFiles/rmdb_client.dir/link.txt
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable rmdb_client"
+	$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/rmdb_client.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+CMakeFiles/rmdb_client.dir/build: rmdb_client
+.PHONY : CMakeFiles/rmdb_client.dir/build
+
+CMakeFiles/rmdb_client.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/rmdb_client.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/rmdb_client.dir/clean
+
+CMakeFiles/rmdb_client.dir/depend:
+	cd /home/pepephant/GleamDB/rmdb/rmdb_client/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/pepephant/GleamDB/rmdb/rmdb_client /home/pepephant/GleamDB/rmdb/rmdb_client /home/pepephant/GleamDB/rmdb/rmdb_client/build /home/pepephant/GleamDB/rmdb/rmdb_client/build /home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles/rmdb_client.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/rmdb_client.dir/depend
+
diff --git a/rmdb_client/build/CMakeFiles/rmdb_client.dir/cmake_clean.cmake b/rmdb_client/build/CMakeFiles/rmdb_client.dir/cmake_clean.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..c8778993ca4613f37fd537d4306a70f9489f045c
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/rmdb_client.dir/cmake_clean.cmake
@@ -0,0 +1,11 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/rmdb_client.dir/main.cpp.o"
+  "CMakeFiles/rmdb_client.dir/main.cpp.o.d"
+  "rmdb_client"
+  "rmdb_client.pdb"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang CXX)
+  include(CMakeFiles/rmdb_client.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/rmdb_client/build/CMakeFiles/rmdb_client.dir/compiler_depend.make b/rmdb_client/build/CMakeFiles/rmdb_client.dir/compiler_depend.make
new file mode 100644
index 0000000000000000000000000000000000000000..3370b6a490d824c7111872665f8af4eb86104df0
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/rmdb_client.dir/compiler_depend.make
@@ -0,0 +1,2 @@
+# Empty compiler generated dependencies file for rmdb_client.
+# This may be replaced when dependencies are built.
diff --git a/rmdb_client/build/CMakeFiles/rmdb_client.dir/compiler_depend.ts b/rmdb_client/build/CMakeFiles/rmdb_client.dir/compiler_depend.ts
new file mode 100644
index 0000000000000000000000000000000000000000..dffcdcf923463597a897ab6901aedbf2c85ea16d
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/rmdb_client.dir/compiler_depend.ts
@@ -0,0 +1,2 @@
+# CMAKE generated file: DO NOT EDIT!
+# Timestamp file for compiler generated dependencies management for rmdb_client.
diff --git a/rmdb_client/build/CMakeFiles/rmdb_client.dir/depend.make b/rmdb_client/build/CMakeFiles/rmdb_client.dir/depend.make
new file mode 100644
index 0000000000000000000000000000000000000000..31250751e52ea9fec93c14ba7402f370c1b7d4f8
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/rmdb_client.dir/depend.make
@@ -0,0 +1,2 @@
+# Empty dependencies file for rmdb_client.
+# This may be replaced when dependencies are built.
diff --git a/rmdb_client/build/CMakeFiles/rmdb_client.dir/flags.make b/rmdb_client/build/CMakeFiles/rmdb_client.dir/flags.make
new file mode 100644
index 0000000000000000000000000000000000000000..9143ece3e746d6ad15a965cd5118bd38669815e0
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/rmdb_client.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+
+# compile CXX with /usr/bin/c++
+CXX_DEFINES = 
+
+CXX_INCLUDES = 
+
+CXX_FLAGS = -std=gnu++20
+
diff --git a/rmdb_client/build/CMakeFiles/rmdb_client.dir/link.txt b/rmdb_client/build/CMakeFiles/rmdb_client.dir/link.txt
new file mode 100644
index 0000000000000000000000000000000000000000..79419fc7b83440f7ff2b302c9f32ecdaf36b7cb0
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/rmdb_client.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/c++ CMakeFiles/rmdb_client.dir/main.cpp.o -o rmdb_client  -lpthread -lreadline 
diff --git a/rmdb_client/build/CMakeFiles/rmdb_client.dir/main.cpp.o b/rmdb_client/build/CMakeFiles/rmdb_client.dir/main.cpp.o
new file mode 100644
index 0000000000000000000000000000000000000000..221a6a7a1eb75d0282af1b6c07a9931c19e5f8ea
Binary files /dev/null and b/rmdb_client/build/CMakeFiles/rmdb_client.dir/main.cpp.o differ
diff --git a/rmdb_client/build/CMakeFiles/rmdb_client.dir/main.cpp.o.d b/rmdb_client/build/CMakeFiles/rmdb_client.dir/main.cpp.o.d
new file mode 100644
index 0000000000000000000000000000000000000000..655e35b6bf419284dc1c57a756717fadbb539fa1
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/rmdb_client.dir/main.cpp.o.d
@@ -0,0 +1,242 @@
+CMakeFiles/rmdb_client.dir/main.cpp.o: \
+ /home/pepephant/GleamDB/rmdb/rmdb_client/main.cpp \
+ /usr/include/stdc-predef.h /usr/include/netdb.h /usr/include/features.h \
+ /usr/include/features-time64.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/timesize.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h /usr/include/netinet/in.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/time64.h \
+ /usr/include/x86_64-linux-gnu/sys/socket.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \
+ /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/socket.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endianness.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
+ /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
+ /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \
+ /usr/include/x86_64-linux-gnu/bits/socket_type.h \
+ /usr/include/x86_64-linux-gnu/bits/sockaddr.h \
+ /usr/include/x86_64-linux-gnu/asm/socket.h \
+ /usr/include/asm-generic/socket.h /usr/include/linux/posix_types.h \
+ /usr/include/linux/stddef.h \
+ /usr/include/x86_64-linux-gnu/asm/posix_types.h \
+ /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \
+ /usr/include/asm-generic/posix_types.h \
+ /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \
+ /usr/include/asm-generic/bitsperlong.h \
+ /usr/include/x86_64-linux-gnu/asm/sockios.h \
+ /usr/include/asm-generic/sockios.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h \
+ /usr/include/x86_64-linux-gnu/bits/in.h /usr/include/rpc/netdb.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h \
+ /usr/include/x86_64-linux-gnu/bits/netdb.h \
+ /usr/include/readline/history.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn-common.h \
+ /usr/include/readline/rlstdc.h /usr/include/readline/rltypedefs.h \
+ /usr/include/readline/readline.h /usr/include/readline/keymaps.h \
+ /usr/include/readline/chardefs.h /usr/include/ctype.h \
+ /usr/include/string.h /usr/include/strings.h \
+ /usr/include/readline/tilde.h /usr/include/x86_64-linux-gnu/sys/time.h \
+ /usr/include/x86_64-linux-gnu/sys/un.h /usr/include/termios.h \
+ /usr/include/x86_64-linux-gnu/bits/termios.h \
+ /usr/include/x86_64-linux-gnu/bits/termios-struct.h \
+ /usr/include/x86_64-linux-gnu/bits/termios-c_cc.h \
+ /usr/include/x86_64-linux-gnu/bits/termios-c_iflag.h \
+ /usr/include/x86_64-linux-gnu/bits/termios-c_oflag.h \
+ /usr/include/x86_64-linux-gnu/bits/termios-baud.h \
+ /usr/include/x86_64-linux-gnu/bits/termios-c_cflag.h \
+ /usr/include/x86_64-linux-gnu/bits/termios-c_lflag.h \
+ /usr/include/x86_64-linux-gnu/bits/termios-tcflow.h \
+ /usr/include/x86_64-linux-gnu/bits/termios-misc.h \
+ /usr/include/x86_64-linux-gnu/sys/ttydefaults.h /usr/include/unistd.h \
+ /usr/include/x86_64-linux-gnu/bits/posix_opt.h \
+ /usr/include/x86_64-linux-gnu/bits/environments.h \
+ /usr/include/x86_64-linux-gnu/bits/confname.h \
+ /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \
+ /usr/include/x86_64-linux-gnu/bits/getopt_core.h \
+ /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \
+ /usr/include/linux/close_range.h /usr/include/c++/11/cassert \
+ /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \
+ /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \
+ /usr/include/c++/11/pstl/pstl_config.h /usr/include/assert.h \
+ /usr/include/c++/11/iostream /usr/include/c++/11/ostream \
+ /usr/include/c++/11/ios /usr/include/c++/11/iosfwd \
+ /usr/include/c++/11/bits/stringfwd.h \
+ /usr/include/c++/11/bits/memoryfwd.h /usr/include/c++/11/bits/postypes.h \
+ /usr/include/c++/11/cwchar /usr/include/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/c++/11/exception /usr/include/c++/11/bits/exception.h \
+ /usr/include/c++/11/bits/exception_ptr.h \
+ /usr/include/c++/11/bits/exception_defines.h \
+ /usr/include/c++/11/bits/cxxabi_init_exception.h \
+ /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/hash_bytes.h \
+ /usr/include/c++/11/new /usr/include/c++/11/bits/move.h \
+ /usr/include/c++/11/type_traits \
+ /usr/include/c++/11/bits/nested_exception.h \
+ /usr/include/c++/11/bits/char_traits.h \
+ /usr/include/c++/11/bits/stl_algobase.h \
+ /usr/include/c++/11/bits/functexcept.h \
+ /usr/include/c++/11/bits/cpp_type_traits.h \
+ /usr/include/c++/11/ext/type_traits.h \
+ /usr/include/c++/11/ext/numeric_traits.h \
+ /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/compare \
+ /usr/include/c++/11/concepts \
+ /usr/include/c++/11/bits/stl_iterator_base_types.h \
+ /usr/include/c++/11/bits/iterator_concepts.h \
+ /usr/include/c++/11/bits/ptr_traits.h \
+ /usr/include/c++/11/bits/ranges_cmp.h \
+ /usr/include/c++/11/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/11/bits/concept_check.h \
+ /usr/include/c++/11/debug/assertions.h \
+ /usr/include/c++/11/bits/stl_iterator.h \
+ /usr/include/c++/11/bits/stl_construct.h \
+ /usr/include/c++/11/debug/debug.h \
+ /usr/include/c++/11/bits/predefined_ops.h /usr/include/c++/11/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \
+ /usr/include/c++/11/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \
+ /usr/include/c++/11/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/cctype \
+ /usr/include/c++/11/bits/ios_base.h /usr/include/c++/11/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \
+ /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \
+ /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \
+ /usr/include/x86_64-linux-gnu/sys/single_threaded.h \
+ /usr/include/c++/11/bits/locale_classes.h /usr/include/c++/11/string \
+ /usr/include/c++/11/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \
+ /usr/include/c++/11/ext/new_allocator.h \
+ /usr/include/c++/11/bits/ostream_insert.h \
+ /usr/include/c++/11/bits/cxxabi_forced.h \
+ /usr/include/c++/11/bits/stl_function.h \
+ /usr/include/c++/11/backward/binders.h \
+ /usr/include/c++/11/bits/stl_algo.h /usr/include/c++/11/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/c++/11/bits/std_abs.h \
+ /usr/include/c++/11/bits/algorithmfwd.h \
+ /usr/include/c++/11/initializer_list /usr/include/c++/11/bits/stl_heap.h \
+ /usr/include/c++/11/bits/stl_tempbuf.h \
+ /usr/include/c++/11/bits/uniform_int_dist.h \
+ /usr/include/c++/11/bits/range_access.h \
+ /usr/include/c++/11/bits/basic_string.h \
+ /usr/include/c++/11/ext/alloc_traits.h \
+ /usr/include/c++/11/bits/alloc_traits.h /usr/include/c++/11/string_view \
+ /usr/include/c++/11/bits/functional_hash.h \
+ /usr/include/c++/11/bits/ranges_base.h \
+ /usr/include/c++/11/bits/max_size_type.h /usr/include/c++/11/numbers \
+ /usr/include/c++/11/bits/string_view.tcc \
+ /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdio \
+ /usr/include/c++/11/cerrno /usr/include/errno.h \
+ /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
+ /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/x86_64-linux-gnu/bits/types/error_t.h \
+ /usr/include/c++/11/bits/charconv.h \
+ /usr/include/c++/11/bits/basic_string.tcc \
+ /usr/include/c++/11/bits/locale_classes.tcc \
+ /usr/include/c++/11/system_error \
+ /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \
+ /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \
+ /usr/include/c++/11/bits/streambuf.tcc \
+ /usr/include/c++/11/bits/basic_ios.h \
+ /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \
+ /usr/include/c++/11/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \
+ /usr/include/c++/11/bits/locale_facets.tcc \
+ /usr/include/c++/11/bits/basic_ios.tcc \
+ /usr/include/c++/11/bits/ostream.tcc /usr/include/c++/11/istream \
+ /usr/include/c++/11/bits/istream.tcc /usr/include/c++/11/memory \
+ /usr/include/c++/11/bits/stl_uninitialized.h \
+ /usr/include/c++/11/bits/stl_raw_storage_iter.h \
+ /usr/include/c++/11/bits/align.h /usr/include/c++/11/bit \
+ /usr/include/c++/11/bits/uses_allocator.h \
+ /usr/include/c++/11/bits/unique_ptr.h /usr/include/c++/11/utility \
+ /usr/include/c++/11/bits/stl_relops.h /usr/include/c++/11/tuple \
+ /usr/include/c++/11/array /usr/include/c++/11/bits/invoke.h \
+ /usr/include/c++/11/bits/shared_ptr.h \
+ /usr/include/c++/11/bits/shared_ptr_base.h \
+ /usr/include/c++/11/bits/allocated_ptr.h \
+ /usr/include/c++/11/bits/refwrap.h \
+ /usr/include/c++/11/ext/aligned_buffer.h \
+ /usr/include/c++/11/ext/concurrence.h \
+ /usr/include/c++/11/bits/shared_ptr_atomic.h \
+ /usr/include/c++/11/bits/atomic_base.h \
+ /usr/include/c++/11/bits/atomic_lockfree_defines.h \
+ /usr/include/c++/11/bits/atomic_wait.h /usr/include/c++/11/climits \
+ /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h /usr/include/syscall.h \
+ /usr/include/x86_64-linux-gnu/sys/syscall.h \
+ /usr/include/x86_64-linux-gnu/asm/unistd.h \
+ /usr/include/x86_64-linux-gnu/asm/unistd_64.h \
+ /usr/include/x86_64-linux-gnu/bits/syscall.h \
+ /usr/include/c++/11/bits/std_mutex.h \
+ /usr/include/c++/11/backward/auto_ptr.h \
+ /usr/include/c++/11/bits/ranges_uninitialized.h \
+ /usr/include/c++/11/bits/ranges_algobase.h /usr/include/c++/11/iterator \
+ /usr/include/c++/11/bits/stream_iterator.h \
+ /usr/include/c++/11/bits/uses_allocator_args.h \
+ /usr/include/c++/11/pstl/glue_memory_defs.h \
+ /usr/include/c++/11/pstl/execution_defs.h
diff --git a/rmdb_client/build/CMakeFiles/rmdb_client.dir/progress.make b/rmdb_client/build/CMakeFiles/rmdb_client.dir/progress.make
new file mode 100644
index 0000000000000000000000000000000000000000..abadeb0c3abaa81d622026fcd3ae096d03dd29b7
--- /dev/null
+++ b/rmdb_client/build/CMakeFiles/rmdb_client.dir/progress.make
@@ -0,0 +1,3 @@
+CMAKE_PROGRESS_1 = 1
+CMAKE_PROGRESS_2 = 2
+
diff --git a/rmdb_client/build/Makefile b/rmdb_client/build/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..02887bd1d74dc0859afa832c59d196d4083bd0bc
--- /dev/null
+++ b/rmdb_client/build/Makefile
@@ -0,0 +1,181 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.22
+
+# 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
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E rm -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/pepephant/GleamDB/rmdb/rmdb_client
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/pepephant/GleamDB/rmdb/rmdb_client/build
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+	/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+.PHONY : edit_cache/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 --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
+
+# The main all target
+all: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/pepephant/GleamDB/rmdb/rmdb_client/build/CMakeFiles /home/pepephant/GleamDB/rmdb/rmdb_client/build//CMakeFiles/progress.marks
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/pepephant/GleamDB/rmdb/rmdb_client/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 rmdb_client
+
+# Build rule for target.
+rmdb_client: cmake_check_build_system
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 rmdb_client
+.PHONY : rmdb_client
+
+# fast build rule for target.
+rmdb_client/fast:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/rmdb_client.dir/build.make CMakeFiles/rmdb_client.dir/build
+.PHONY : rmdb_client/fast
+
+main.o: main.cpp.o
+.PHONY : main.o
+
+# target to build an object file
+main.cpp.o:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/rmdb_client.dir/build.make CMakeFiles/rmdb_client.dir/main.cpp.o
+.PHONY : main.cpp.o
+
+main.i: main.cpp.i
+.PHONY : main.i
+
+# target to preprocess a source file
+main.cpp.i:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/rmdb_client.dir/build.make CMakeFiles/rmdb_client.dir/main.cpp.i
+.PHONY : main.cpp.i
+
+main.s: main.cpp.s
+.PHONY : main.s
+
+# target to generate assembly for a file
+main.cpp.s:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/rmdb_client.dir/build.make CMakeFiles/rmdb_client.dir/main.cpp.s
+.PHONY : main.cpp.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 "... rebuild_cache"
+	@echo "... rmdb_client"
+	@echo "... main.o"
+	@echo "... main.i"
+	@echo "... 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:
+	$(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/rmdb_client/build/cmake_install.cmake b/rmdb_client/build/cmake_install.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..52fb6336f32feb5596b793d56f3a85096ec7398b
--- /dev/null
+++ b/rmdb_client/build/cmake_install.cmake
@@ -0,0 +1,54 @@
+# Install script for directory: /home/pepephant/GleamDB/rmdb/rmdb_client
+
+# 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()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+# Set default install directory permissions.
+if(NOT DEFINED CMAKE_OBJDUMP)
+  set(CMAKE_OBJDUMP "/usr/bin/objdump")
+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 "/home/pepephant/GleamDB/rmdb/rmdb_client/build/${CMAKE_INSTALL_MANIFEST}"
+     "${CMAKE_INSTALL_MANIFEST_CONTENT}")
diff --git a/rmdb_client/build/rmdb_client b/rmdb_client/build/rmdb_client
new file mode 100755
index 0000000000000000000000000000000000000000..998a19c8da3b0db8792843d5d107231711637110
Binary files /dev/null and b/rmdb_client/build/rmdb_client differ
diff --git a/rmdb/rmdb_client/main.cpp b/rmdb_client/main.cpp
similarity index 100%
rename from rmdb/rmdb_client/main.cpp
rename to rmdb_client/main.cpp
diff --git a/rmdb/src/.DS_Store b/src/.DS_Store
similarity index 100%
rename from rmdb/src/.DS_Store
rename to src/.DS_Store
diff --git a/rmdb/src/CMakeLists.txt b/src/CMakeLists.txt
similarity index 100%
rename from rmdb/src/CMakeLists.txt
rename to src/CMakeLists.txt
diff --git a/rmdb/src/analyze/CMakeLists.txt b/src/analyze/CMakeLists.txt
similarity index 100%
rename from rmdb/src/analyze/CMakeLists.txt
rename to src/analyze/CMakeLists.txt
diff --git a/rmdb/src/analyze/analyze.cpp b/src/analyze/analyze.cpp
similarity index 100%
rename from rmdb/src/analyze/analyze.cpp
rename to src/analyze/analyze.cpp
diff --git a/rmdb/src/analyze/analyze.h b/src/analyze/analyze.h
similarity index 100%
rename from rmdb/src/analyze/analyze.h
rename to src/analyze/analyze.h
diff --git a/rmdb/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
similarity index 100%
rename from rmdb/src/common/CMakeLists.txt
rename to src/common/CMakeLists.txt
diff --git a/rmdb/src/common/common.h b/src/common/common.h
similarity index 100%
rename from rmdb/src/common/common.h
rename to src/common/common.h
diff --git a/rmdb/src/common/config.h b/src/common/config.h
similarity index 100%
rename from rmdb/src/common/config.h
rename to src/common/config.h
diff --git a/rmdb/src/common/context.h b/src/common/context.h
similarity index 100%
rename from rmdb/src/common/context.h
rename to src/common/context.h
diff --git a/rmdb/src/defs.h b/src/defs.h
similarity index 100%
rename from rmdb/src/defs.h
rename to src/defs.h
diff --git a/rmdb/src/errors.h b/src/errors.h
similarity index 100%
rename from rmdb/src/errors.h
rename to src/errors.h
diff --git a/rmdb/src/execution/CMakeLists.txt b/src/execution/CMakeLists.txt
similarity index 100%
rename from rmdb/src/execution/CMakeLists.txt
rename to src/execution/CMakeLists.txt
diff --git a/rmdb/src/execution/execution.h b/src/execution/execution.h
similarity index 100%
rename from rmdb/src/execution/execution.h
rename to src/execution/execution.h
diff --git a/rmdb/src/execution/execution_defs.h b/src/execution/execution_defs.h
similarity index 100%
rename from rmdb/src/execution/execution_defs.h
rename to src/execution/execution_defs.h
diff --git a/rmdb/src/execution/execution_manager.cpp b/src/execution/execution_manager.cpp
similarity index 100%
rename from rmdb/src/execution/execution_manager.cpp
rename to src/execution/execution_manager.cpp
diff --git a/rmdb/src/execution/execution_manager.h b/src/execution/execution_manager.h
similarity index 100%
rename from rmdb/src/execution/execution_manager.h
rename to src/execution/execution_manager.h
diff --git a/rmdb/src/execution/execution_sort.h b/src/execution/execution_sort.h
similarity index 100%
rename from rmdb/src/execution/execution_sort.h
rename to src/execution/execution_sort.h
diff --git a/rmdb/src/execution/executor_abstract.h b/src/execution/executor_abstract.h
similarity index 100%
rename from rmdb/src/execution/executor_abstract.h
rename to src/execution/executor_abstract.h
diff --git a/rmdb/src/execution/executor_delete.h b/src/execution/executor_delete.h
similarity index 100%
rename from rmdb/src/execution/executor_delete.h
rename to src/execution/executor_delete.h
diff --git a/rmdb/src/execution/executor_index_scan.h b/src/execution/executor_index_scan.h
similarity index 100%
rename from rmdb/src/execution/executor_index_scan.h
rename to src/execution/executor_index_scan.h
diff --git a/rmdb/src/execution/executor_insert.h b/src/execution/executor_insert.h
similarity index 100%
rename from rmdb/src/execution/executor_insert.h
rename to src/execution/executor_insert.h
diff --git a/rmdb/src/execution/executor_nestedloop_join.h b/src/execution/executor_nestedloop_join.h
similarity index 100%
rename from rmdb/src/execution/executor_nestedloop_join.h
rename to src/execution/executor_nestedloop_join.h
diff --git a/rmdb/src/execution/executor_projection.h b/src/execution/executor_projection.h
similarity index 100%
rename from rmdb/src/execution/executor_projection.h
rename to src/execution/executor_projection.h
diff --git a/rmdb/src/execution/executor_seq_scan.h b/src/execution/executor_seq_scan.h
similarity index 100%
rename from rmdb/src/execution/executor_seq_scan.h
rename to src/execution/executor_seq_scan.h
diff --git a/rmdb/src/execution/executor_update.h b/src/execution/executor_update.h
similarity index 100%
rename from rmdb/src/execution/executor_update.h
rename to src/execution/executor_update.h
diff --git a/rmdb/src/index/CMakeLists.txt b/src/index/CMakeLists.txt
similarity index 100%
rename from rmdb/src/index/CMakeLists.txt
rename to src/index/CMakeLists.txt
diff --git a/rmdb/src/index/ix.h b/src/index/ix.h
similarity index 100%
rename from rmdb/src/index/ix.h
rename to src/index/ix.h
diff --git a/rmdb/src/index/ix_defs.h b/src/index/ix_defs.h
similarity index 100%
rename from rmdb/src/index/ix_defs.h
rename to src/index/ix_defs.h
diff --git a/rmdb/src/index/ix_index_handle.cpp b/src/index/ix_index_handle.cpp
similarity index 100%
rename from rmdb/src/index/ix_index_handle.cpp
rename to src/index/ix_index_handle.cpp
diff --git a/rmdb/src/index/ix_index_handle.h b/src/index/ix_index_handle.h
similarity index 100%
rename from rmdb/src/index/ix_index_handle.h
rename to src/index/ix_index_handle.h
diff --git a/rmdb/src/index/ix_manager.h b/src/index/ix_manager.h
similarity index 100%
rename from rmdb/src/index/ix_manager.h
rename to src/index/ix_manager.h
diff --git a/rmdb/src/index/ix_scan.cpp b/src/index/ix_scan.cpp
similarity index 100%
rename from rmdb/src/index/ix_scan.cpp
rename to src/index/ix_scan.cpp
diff --git a/rmdb/src/index/ix_scan.h b/src/index/ix_scan.h
similarity index 100%
rename from rmdb/src/index/ix_scan.h
rename to src/index/ix_scan.h
diff --git a/rmdb/src/optimizer/CMakeLists.txt b/src/optimizer/CMakeLists.txt
similarity index 100%
rename from rmdb/src/optimizer/CMakeLists.txt
rename to src/optimizer/CMakeLists.txt
diff --git a/rmdb/src/optimizer/optimizer.h b/src/optimizer/optimizer.h
similarity index 100%
rename from rmdb/src/optimizer/optimizer.h
rename to src/optimizer/optimizer.h
diff --git a/rmdb/src/optimizer/plan.h b/src/optimizer/plan.h
similarity index 100%
rename from rmdb/src/optimizer/plan.h
rename to src/optimizer/plan.h
diff --git a/rmdb/src/optimizer/planner.cpp b/src/optimizer/planner.cpp
similarity index 100%
rename from rmdb/src/optimizer/planner.cpp
rename to src/optimizer/planner.cpp
diff --git a/rmdb/src/optimizer/planner.h b/src/optimizer/planner.h
similarity index 100%
rename from rmdb/src/optimizer/planner.h
rename to src/optimizer/planner.h
diff --git a/rmdb/src/parser/CMakeLists.txt b/src/parser/CMakeLists.txt
similarity index 100%
rename from rmdb/src/parser/CMakeLists.txt
rename to src/parser/CMakeLists.txt
diff --git a/rmdb/src/parser/ast.cpp b/src/parser/ast.cpp
similarity index 100%
rename from rmdb/src/parser/ast.cpp
rename to src/parser/ast.cpp
diff --git a/rmdb/src/parser/ast.h b/src/parser/ast.h
similarity index 100%
rename from rmdb/src/parser/ast.h
rename to src/parser/ast.h
diff --git a/rmdb/src/parser/ast_printer.h b/src/parser/ast_printer.h
similarity index 100%
rename from rmdb/src/parser/ast_printer.h
rename to src/parser/ast_printer.h
diff --git a/rmdb/src/parser/lex.l b/src/parser/lex.l
similarity index 100%
rename from rmdb/src/parser/lex.l
rename to src/parser/lex.l
diff --git a/rmdb/src/parser/lex.yy.c b/src/parser/lex.yy.c
similarity index 100%
rename from rmdb/src/parser/lex.yy.c
rename to src/parser/lex.yy.c
diff --git a/rmdb/src/parser/lex.yy.cpp b/src/parser/lex.yy.cpp
similarity index 100%
rename from rmdb/src/parser/lex.yy.cpp
rename to src/parser/lex.yy.cpp
diff --git a/rmdb/src/parser/lex.yy.cpp~origin_master b/src/parser/lex.yy.cpp~origin_master
similarity index 100%
rename from rmdb/src/parser/lex.yy.cpp~origin_master
rename to src/parser/lex.yy.cpp~origin_master
diff --git a/rmdb/src/parser/lex.yy.hpp b/src/parser/lex.yy.hpp
similarity index 100%
rename from rmdb/src/parser/lex.yy.hpp
rename to src/parser/lex.yy.hpp
diff --git a/rmdb/src/parser/parse_node.h b/src/parser/parse_node.h
similarity index 100%
rename from rmdb/src/parser/parse_node.h
rename to src/parser/parse_node.h
diff --git a/rmdb/src/parser/parser.h b/src/parser/parser.h
similarity index 100%
rename from rmdb/src/parser/parser.h
rename to src/parser/parser.h
diff --git a/rmdb/src/parser/parser_defs.h b/src/parser/parser_defs.h
similarity index 100%
rename from rmdb/src/parser/parser_defs.h
rename to src/parser/parser_defs.h
diff --git a/rmdb/src/parser/test_parser.cpp b/src/parser/test_parser.cpp
similarity index 100%
rename from rmdb/src/parser/test_parser.cpp
rename to src/parser/test_parser.cpp
diff --git a/rmdb/src/parser/yacc.tab.c b/src/parser/yacc.tab.c
similarity index 100%
rename from rmdb/src/parser/yacc.tab.c
rename to src/parser/yacc.tab.c
diff --git a/rmdb/src/parser/yacc.tab.cpp b/src/parser/yacc.tab.cpp
similarity index 100%
rename from rmdb/src/parser/yacc.tab.cpp
rename to src/parser/yacc.tab.cpp
diff --git a/rmdb/src/parser/yacc.tab.cpp~origin_master b/src/parser/yacc.tab.cpp~origin_master
similarity index 100%
rename from rmdb/src/parser/yacc.tab.cpp~origin_master
rename to src/parser/yacc.tab.cpp~origin_master
diff --git a/rmdb/src/parser/yacc.tab.h b/src/parser/yacc.tab.h
similarity index 100%
rename from rmdb/src/parser/yacc.tab.h
rename to src/parser/yacc.tab.h
diff --git a/rmdb/src/parser/yacc.tab.hpp b/src/parser/yacc.tab.hpp
similarity index 100%
rename from rmdb/src/parser/yacc.tab.hpp
rename to src/parser/yacc.tab.hpp
diff --git a/rmdb/src/parser/yacc.tab.h~origin_master b/src/parser/yacc.tab.h~origin_master
similarity index 100%
rename from rmdb/src/parser/yacc.tab.h~origin_master
rename to src/parser/yacc.tab.h~origin_master
diff --git a/rmdb/src/parser/yacc.y b/src/parser/yacc.y
similarity index 100%
rename from rmdb/src/parser/yacc.y
rename to src/parser/yacc.y
diff --git a/rmdb/src/portal.h b/src/portal.h
similarity index 100%
rename from rmdb/src/portal.h
rename to src/portal.h
diff --git a/rmdb/src/record/CMakeLists.txt b/src/record/CMakeLists.txt
similarity index 100%
rename from rmdb/src/record/CMakeLists.txt
rename to src/record/CMakeLists.txt
diff --git a/rmdb/src/record/bitmap.h b/src/record/bitmap.h
similarity index 100%
rename from rmdb/src/record/bitmap.h
rename to src/record/bitmap.h
diff --git a/rmdb/src/record/rm.h b/src/record/rm.h
similarity index 100%
rename from rmdb/src/record/rm.h
rename to src/record/rm.h
diff --git a/rmdb/src/record/rm_defs.h b/src/record/rm_defs.h
similarity index 100%
rename from rmdb/src/record/rm_defs.h
rename to src/record/rm_defs.h
diff --git a/rmdb/src/record/rm_file_handle.cpp b/src/record/rm_file_handle.cpp
similarity index 97%
rename from rmdb/src/record/rm_file_handle.cpp
rename to src/record/rm_file_handle.cpp
index 4ef04e4551b2c6a370f13726b9d79163ead3de7b..f01987cdf24f171f06fd05664cba37f131cc1b55 100644
--- a/rmdb/src/record/rm_file_handle.cpp
+++ b/src/record/rm_file_handle.cpp
@@ -1,133 +1,133 @@
-/* Copyright (c) 2023 Renmin University of China
-RMDB is licensed under Mulan PSL v2.
-You can use this software according to the terms and conditions of the Mulan PSL v2.
-You may obtain a copy of Mulan PSL v2 at:
-        http://license.coscl.org.cn/MulanPSL2
-THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
-EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
-MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
-See the Mulan PSL v2 for more details. */
-
-#include "rm_file_handle.h"
-
-/**
- * @description: 获取当前表中记录号为rid的记录
- * @param {Rid&} rid 记录号,指定记录的位置
- * @param {Context*} context
- * @return {unique_ptr<RmRecord>} rid对应的记录对象指针
- */
-std::unique_ptr<RmRecord> RmFileHandle::get_record(const Rid& rid, Context* context) const {
-    // Todo:
-    // 1. 获取指定记录所在的page handle
-    // 2. 初始化一个指向RmRecord的指针(赋值其内部的data和size)
-
-    return nullptr;
-}
-
-/**
- * @description: 在当前表中插入一条记录,不指定插入位置
- * @param {char*} buf 要插入的记录的数据
- * @param {Context*} context
- * @return {Rid} 插入的记录的记录号(位置)
- */
-Rid RmFileHandle::insert_record(char* buf, Context* context) {
-    // Todo:
-    // 1. 获取当前未满的page handle
-    // 2. 在page handle中找到空闲slot位置
-    // 3. 将buf复制到空闲slot位置
-    // 4. 更新page_handle.page_hdr中的数据结构
-    // 注意考虑插入一条记录后页面已满的情况,需要更新file_hdr_.first_free_page_no
-
-    return Rid{-1, -1};
-}
-
-/**
- * @description: 在当前表中的指定位置插入一条记录
- * @param {Rid&} rid 要插入记录的位置
- * @param {char*} buf 要插入记录的数据
- */
-void RmFileHandle::insert_record(const Rid& rid, char* buf) {
-    
-}
-
-/**
- * @description: 删除记录文件中记录号为rid的记录
- * @param {Rid&} rid 要删除的记录的记录号(位置)
- * @param {Context*} context
- */
-void RmFileHandle::delete_record(const Rid& rid, Context* context) {
-    // Todo:
-    // 1. 获取指定记录所在的page handle
-    // 2. 更新page_handle.page_hdr中的数据结构
-    // 注意考虑删除一条记录后页面未满的情况,需要调用release_page_handle()
-}
-
-
-/**
- * @description: 更新记录文件中记录号为rid的记录
- * @param {Rid&} rid 要更新的记录的记录号(位置)
- * @param {char*} buf 新记录的数据
- * @param {Context*} context
- */
-void RmFileHandle::update_record(const Rid& rid, char* buf, Context* context) {
-    // Todo:
-    // 1. 获取指定记录所在的page handle
-    // 2. 更新记录
-
-}
-
-/**
- * 以下函数为辅助函数,仅提供参考,可以选择完成如下函数,也可以删除如下函数,在单元测试中不涉及如下函数接口的直接调用
-*/
-/**
- * @description: 获取指定页面的页面句柄
- * @param {int} page_no 页面号
- * @return {RmPageHandle} 指定页面的句柄
- */
-RmPageHandle RmFileHandle::fetch_page_handle(int page_no) const {
-    // Todo:
-    // 使用缓冲池获取指定页面,并生成page_handle返回给上层
-    // if page_no is invalid, throw PageNotExistError exception
-
-    return RmPageHandle(&file_hdr_, nullptr);
-}
-
-/**
- * @description: 创建一个新的page handle
- * @return {RmPageHandle} 新的PageHandle
- */
-RmPageHandle RmFileHandle::create_new_page_handle() {
-    // Todo:
-    // 1.使用缓冲池来创建一个新page
-    // 2.更新page handle中的相关信息
-    // 3.æ›´æ–°file_hdr_
-
-    return RmPageHandle(&file_hdr_, nullptr);
-}
-
-/**
- * @brief 创建或获取一个空闲的page handle
- *
- * @return RmPageHandle 返回生成的空闲page handle
- * @note pin the page, remember to unpin it outside!
- */
-RmPageHandle RmFileHandle::create_page_handle() {
-    // Todo:
-    // 1. 判断file_hdr_中是否还有空闲页
-    //     1.1 没有空闲页:使用缓冲池来创建一个新page;可直接调用create_new_page_handle()
-    //     1.2 有空闲页:直接获取第一个空闲页
-    // 2. 生成page handle并返回给上层
-
-    return RmPageHandle(&file_hdr_, nullptr);
-}
-
-/**
- * @description: 当一个页面从没有空闲空间的状态变为有空闲空间状态时,更新文件头和页头中空闲页面相关的元数据
- */
-void RmFileHandle::release_page_handle(RmPageHandle&page_handle) {
-    // Todo:
-    // 当page从已满变成未满,考虑如何更新:
-    // 1. page_handle.page_hdr->next_free_page_no
-    // 2. file_hdr_.first_free_page_no
-    
+/* Copyright (c) 2023 Renmin University of China
+RMDB is licensed under Mulan PSL v2.
+You can use this software according to the terms and conditions of the Mulan PSL v2.
+You may obtain a copy of Mulan PSL v2 at:
+        http://license.coscl.org.cn/MulanPSL2
+THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
+EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
+MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
+See the Mulan PSL v2 for more details. */
+
+#include "rm_file_handle.h"
+
+/**
+ * @description: 获取当前表中记录号为rid的记录
+ * @param {Rid&} rid 记录号,指定记录的位置
+ * @param {Context*} context
+ * @return {unique_ptr<RmRecord>} rid对应的记录对象指针
+ */
+std::unique_ptr<RmRecord> RmFileHandle::get_record(const Rid& rid, Context* context) const {
+    // Todo:
+    // 1. 获取指定记录所在的page handle
+    // 2. 初始化一个指向RmRecord的指针(赋值其内部的data和size)
+
+    return nullptr;
+}
+
+/**
+ * @description: 在当前表中插入一条记录,不指定插入位置
+ * @param {char*} buf 要插入的记录的数据
+ * @param {Context*} context
+ * @return {Rid} 插入的记录的记录号(位置)
+ */
+Rid RmFileHandle::insert_record(char* buf, Context* context) {
+    // Todo:
+    // 1. 获取当前未满的page handle
+    // 2. 在page handle中找到空闲slot位置
+    // 3. 将buf复制到空闲slot位置
+    // 4. 更新page_handle.page_hdr中的数据结构
+    // 注意考虑插入一条记录后页面已满的情况,需要更新file_hdr_.first_free_page_no
+
+    return Rid{-1, -1};
+}
+
+/**
+ * @description: 在当前表中的指定位置插入一条记录
+ * @param {Rid&} rid 要插入记录的位置
+ * @param {char*} buf 要插入记录的数据
+ */
+void RmFileHandle::insert_record(const Rid& rid, char* buf) {
+    
+}
+
+/**
+ * @description: 删除记录文件中记录号为rid的记录
+ * @param {Rid&} rid 要删除的记录的记录号(位置)
+ * @param {Context*} context
+ */
+void RmFileHandle::delete_record(const Rid& rid, Context* context) {
+    // Todo:
+    // 1. 获取指定记录所在的page handle
+    // 2. 更新page_handle.page_hdr中的数据结构
+    // 注意考虑删除一条记录后页面未满的情况,需要调用release_page_handle()
+}
+
+
+/**
+ * @description: 更新记录文件中记录号为rid的记录
+ * @param {Rid&} rid 要更新的记录的记录号(位置)
+ * @param {char*} buf 新记录的数据
+ * @param {Context*} context
+ */
+void RmFileHandle::update_record(const Rid& rid, char* buf, Context* context) {
+    // Todo:
+    // 1. 获取指定记录所在的page handle
+    // 2. 更新记录
+
+}
+
+/**
+ * 以下函数为辅助函数,仅提供参考,可以选择完成如下函数,也可以删除如下函数,在单元测试中不涉及如下函数接口的直接调用
+*/
+/**
+ * @description: 获取指定页面的页面句柄
+ * @param {int} page_no 页面号
+ * @return {RmPageHandle} 指定页面的句柄
+ */
+RmPageHandle RmFileHandle::fetch_page_handle(int page_no) const {
+    // Todo:
+    // 使用缓冲池获取指定页面,并生成page_handle返回给上层
+    // if page_no is invalid, throw PageNotExistError exception
+
+    return RmPageHandle(&file_hdr_, nullptr);
+}
+
+/**
+ * @description: 创建一个新的page handle
+ * @return {RmPageHandle} 新的PageHandle
+ */
+RmPageHandle RmFileHandle::create_new_page_handle() {
+    // Todo:
+    // 1.使用缓冲池来创建一个新page
+    // 2.更新page handle中的相关信息
+    // 3.æ›´æ–°file_hdr_
+
+    return RmPageHandle(&file_hdr_, nullptr);
+}
+
+/**
+ * @brief 创建或获取一个空闲的page handle
+ *
+ * @return RmPageHandle 返回生成的空闲page handle
+ * @note pin the page, remember to unpin it outside!
+ */
+RmPageHandle RmFileHandle::create_page_handle() {
+    // Todo:
+    // 1. 判断file_hdr_中是否还有空闲页
+    //     1.1 没有空闲页:使用缓冲池来创建一个新page;可直接调用create_new_page_handle()
+    //     1.2 有空闲页:直接获取第一个空闲页
+    // 2. 生成page handle并返回给上层
+
+    return RmPageHandle(&file_hdr_, nullptr);
+}
+
+/**
+ * @description: 当一个页面从没有空闲空间的状态变为有空闲空间状态时,更新文件头和页头中空闲页面相关的元数据
+ */
+void RmFileHandle::release_page_handle(RmPageHandle&page_handle) {
+    // Todo:
+    // 当page从已满变成未满,考虑如何更新:
+    // 1. page_handle.page_hdr->next_free_page_no
+    // 2. file_hdr_.first_free_page_no
+    
 }
\ No newline at end of file
diff --git a/rmdb/src/record/rm_file_handle.h b/src/record/rm_file_handle.h
similarity index 97%
rename from rmdb/src/record/rm_file_handle.h
rename to src/record/rm_file_handle.h
index 75345bc123cae4e0cd724798b38771cc04e3bd0e..541aa8df9b85e4daf4eb850e8dfbbd6a4d63d773 100644
--- a/rmdb/src/record/rm_file_handle.h
+++ b/src/record/rm_file_handle.h
@@ -1,92 +1,92 @@
-/* Copyright (c) 2023 Renmin University of China
-RMDB is licensed under Mulan PSL v2.
-You can use this software according to the terms and conditions of the Mulan PSL v2.
-You may obtain a copy of Mulan PSL v2 at:
-        http://license.coscl.org.cn/MulanPSL2
-THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
-EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
-MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
-See the Mulan PSL v2 for more details. */
-
-#pragma once
-
-#include <assert.h>
-
-#include <memory>
-
-#include "bitmap.h"
-#include "common/context.h"
-#include "rm_defs.h"
-
-class RmManager;
-
-/* 对表数据文件中的页面进行封装 */
-struct RmPageHandle {
-    const RmFileHdr *file_hdr;  // 当前页面所在文件的文件头指针
-    Page *page;                 // 页面的实际数据,包括页面存储的数据、元信息等
-    RmPageHdr *page_hdr;        // page->data的第一部分,存储页面元信息,指针指向首地址,长度为sizeof(RmPageHdr)
-    char *bitmap;               // page->data的第二部分,存储页面的bitmap,指针指向首地址,长度为file_hdr->bitmap_size
-    char *slots;                // page->data的第三部分,存储表的记录,指针指向首地址,每个slot的长度为file_hdr->record_size
-
-    RmPageHandle(const RmFileHdr *fhdr_, Page *page_) : file_hdr(fhdr_), page(page_) {
-        page_hdr = reinterpret_cast<RmPageHdr *>(page->get_data() + page->OFFSET_PAGE_HDR);
-        bitmap = page->get_data() + sizeof(RmPageHdr) + page->OFFSET_PAGE_HDR;
-        slots = bitmap + file_hdr->bitmap_size;
-    }
-
-    // 返回指定slot_no的slot存储收地址
-    char* get_slot(int slot_no) const {
-        return slots + slot_no * file_hdr->record_size;  // slots的首地址 + slot个数 * 每个slot的大小(每个record的大小)
-    }
-};
-
-/* 每个RmFileHandle对应一个表的数据文件,里面有多个page,每个page的数据封装在RmPageHandle中 */
-class RmFileHandle {      
-    friend class RmScan;    
-    friend class RmManager;
-
-   private:
-    DiskManager *disk_manager_;
-    BufferPoolManager *buffer_pool_manager_;
-    int fd_;        // 打开文件后产生的文件句柄
-    RmFileHdr file_hdr_;    // 文件头,维护当前表文件的元数据
-
-   public:
-    RmFileHandle(DiskManager *disk_manager, BufferPoolManager *buffer_pool_manager, int fd)
-        : disk_manager_(disk_manager), buffer_pool_manager_(buffer_pool_manager), fd_(fd) {
-        // 注意:这里从磁盘中读出文件描述符为fd的文件的file_hdr,读到内存中
-        // 这里实际就是初始化file_hdr,只不过是从磁盘中读出进行初始化
-        // init file_hdr_
-        disk_manager_->read_page(fd, RM_FILE_HDR_PAGE, (char *)&file_hdr_, sizeof(file_hdr_));
-        // disk_manager管理的fd对应的文件中,设置从file_hdr_.num_pages开始分配page_no
-        disk_manager_->set_fd2pageno(fd, file_hdr_.num_pages);
-    }
-
-    RmFileHdr get_file_hdr() { return file_hdr_; }
-    int GetFd() { return fd_; }
-
-    /* 判断指定位置上是否已经存在一条记录,通过Bitmap来判断 */
-    bool is_record(const Rid &rid) const {
-        RmPageHandle page_handle = fetch_page_handle(rid.page_no);
-        return Bitmap::is_set(page_handle.bitmap, rid.slot_no);  // page的slot_no位置上是否有record
-    }
-
-    std::unique_ptr<RmRecord> get_record(const Rid &rid, Context *context) const;
-
-    Rid insert_record(char *buf, Context *context);
-
-    void insert_record(const Rid &rid, char *buf);
-
-    void delete_record(const Rid &rid, Context *context);
-
-    void update_record(const Rid &rid, char *buf, Context *context);
-
-    RmPageHandle create_new_page_handle();
-
-    RmPageHandle fetch_page_handle(int page_no) const;
-
-   private:
-    RmPageHandle create_page_handle();
-
-    void release_page_handle(RmPageHandle &page_handle);
+/* Copyright (c) 2023 Renmin University of China
+RMDB is licensed under Mulan PSL v2.
+You can use this software according to the terms and conditions of the Mulan PSL v2.
+You may obtain a copy of Mulan PSL v2 at:
+        http://license.coscl.org.cn/MulanPSL2
+THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
+EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
+MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
+See the Mulan PSL v2 for more details. */
+
+#pragma once
+
+#include <assert.h>
+
+#include <memory>
+
+#include "bitmap.h"
+#include "common/context.h"
+#include "rm_defs.h"
+
+class RmManager;
+
+/* 对表数据文件中的页面进行封装 */
+struct RmPageHandle {
+    const RmFileHdr *file_hdr;  // 当前页面所在文件的文件头指针
+    Page *page;                 // 页面的实际数据,包括页面存储的数据、元信息等
+    RmPageHdr *page_hdr;        // page->data的第一部分,存储页面元信息,指针指向首地址,长度为sizeof(RmPageHdr)
+    char *bitmap;               // page->data的第二部分,存储页面的bitmap,指针指向首地址,长度为file_hdr->bitmap_size
+    char *slots;                // page->data的第三部分,存储表的记录,指针指向首地址,每个slot的长度为file_hdr->record_size
+
+    RmPageHandle(const RmFileHdr *fhdr_, Page *page_) : file_hdr(fhdr_), page(page_) {
+        page_hdr = reinterpret_cast<RmPageHdr *>(page->get_data() + page->OFFSET_PAGE_HDR);
+        bitmap = page->get_data() + sizeof(RmPageHdr) + page->OFFSET_PAGE_HDR;
+        slots = bitmap + file_hdr->bitmap_size;
+    }
+
+    // 返回指定slot_no的slot存储收地址
+    char* get_slot(int slot_no) const {
+        return slots + slot_no * file_hdr->record_size;  // slots的首地址 + slot个数 * 每个slot的大小(每个record的大小)
+    }
+};
+
+/* 每个RmFileHandle对应一个表的数据文件,里面有多个page,每个page的数据封装在RmPageHandle中 */
+class RmFileHandle {      
+    friend class RmScan;    
+    friend class RmManager;
+
+   private:
+    DiskManager *disk_manager_;
+    BufferPoolManager *buffer_pool_manager_;
+    int fd_;        // 打开文件后产生的文件句柄
+    RmFileHdr file_hdr_;    // 文件头,维护当前表文件的元数据
+
+   public:
+    RmFileHandle(DiskManager *disk_manager, BufferPoolManager *buffer_pool_manager, int fd)
+        : disk_manager_(disk_manager), buffer_pool_manager_(buffer_pool_manager), fd_(fd) {
+        // 注意:这里从磁盘中读出文件描述符为fd的文件的file_hdr,读到内存中
+        // 这里实际就是初始化file_hdr,只不过是从磁盘中读出进行初始化
+        // init file_hdr_
+        disk_manager_->read_page(fd, RM_FILE_HDR_PAGE, (char *)&file_hdr_, sizeof(file_hdr_));
+        // disk_manager管理的fd对应的文件中,设置从file_hdr_.num_pages开始分配page_no
+        disk_manager_->set_fd2pageno(fd, file_hdr_.num_pages);
+    }
+
+    RmFileHdr get_file_hdr() { return file_hdr_; }
+    int GetFd() { return fd_; }
+
+    /* 判断指定位置上是否已经存在一条记录,通过Bitmap来判断 */
+    bool is_record(const Rid &rid) const {
+        RmPageHandle page_handle = fetch_page_handle(rid.page_no);
+        return Bitmap::is_set(page_handle.bitmap, rid.slot_no);  // page的slot_no位置上是否有record
+    }
+
+    std::unique_ptr<RmRecord> get_record(const Rid &rid, Context *context) const;
+
+    Rid insert_record(char *buf, Context *context);
+
+    void insert_record(const Rid &rid, char *buf);
+
+    void delete_record(const Rid &rid, Context *context);
+
+    void update_record(const Rid &rid, char *buf, Context *context);
+
+    RmPageHandle create_new_page_handle();
+
+    RmPageHandle fetch_page_handle(int page_no) const;
+
+   private:
+    RmPageHandle create_page_handle();
+
+    void release_page_handle(RmPageHandle &page_handle);
 };
\ No newline at end of file
diff --git a/rmdb/src/record/rm_manager.h b/src/record/rm_manager.h
similarity index 100%
rename from rmdb/src/record/rm_manager.h
rename to src/record/rm_manager.h
diff --git a/rmdb/src/record/rm_scan.cpp b/src/record/rm_scan.cpp
similarity index 100%
rename from rmdb/src/record/rm_scan.cpp
rename to src/record/rm_scan.cpp
diff --git a/rmdb/src/record/rm_scan.h b/src/record/rm_scan.h
similarity index 100%
rename from rmdb/src/record/rm_scan.h
rename to src/record/rm_scan.h
diff --git a/rmdb/src/record_printer.h b/src/record_printer.h
similarity index 100%
rename from rmdb/src/record_printer.h
rename to src/record_printer.h
diff --git a/rmdb/src/recovery/CMakeLists.txt b/src/recovery/CMakeLists.txt
similarity index 100%
rename from rmdb/src/recovery/CMakeLists.txt
rename to src/recovery/CMakeLists.txt
diff --git a/rmdb/src/recovery/log_defs.h b/src/recovery/log_defs.h
similarity index 100%
rename from rmdb/src/recovery/log_defs.h
rename to src/recovery/log_defs.h
diff --git a/rmdb/src/recovery/log_manager.cpp b/src/recovery/log_manager.cpp
similarity index 100%
rename from rmdb/src/recovery/log_manager.cpp
rename to src/recovery/log_manager.cpp
diff --git a/rmdb/src/recovery/log_manager.h b/src/recovery/log_manager.h
similarity index 100%
rename from rmdb/src/recovery/log_manager.h
rename to src/recovery/log_manager.h
diff --git a/rmdb/src/recovery/log_recovery.cpp b/src/recovery/log_recovery.cpp
similarity index 100%
rename from rmdb/src/recovery/log_recovery.cpp
rename to src/recovery/log_recovery.cpp
diff --git a/rmdb/src/recovery/log_recovery.h b/src/recovery/log_recovery.h
similarity index 100%
rename from rmdb/src/recovery/log_recovery.h
rename to src/recovery/log_recovery.h
diff --git a/rmdb/src/replacer/CMakeLists.txt b/src/replacer/CMakeLists.txt
similarity index 100%
rename from rmdb/src/replacer/CMakeLists.txt
rename to src/replacer/CMakeLists.txt
diff --git a/rmdb/src/replacer/lru_replacer.cpp b/src/replacer/lru_replacer.cpp
similarity index 100%
rename from rmdb/src/replacer/lru_replacer.cpp
rename to src/replacer/lru_replacer.cpp
diff --git a/rmdb/src/replacer/lru_replacer.h b/src/replacer/lru_replacer.h
similarity index 100%
rename from rmdb/src/replacer/lru_replacer.h
rename to src/replacer/lru_replacer.h
diff --git a/rmdb/src/replacer/replacer.h b/src/replacer/replacer.h
similarity index 100%
rename from rmdb/src/replacer/replacer.h
rename to src/replacer/replacer.h
diff --git a/rmdb/src/rmdb.cpp b/src/rmdb.cpp
similarity index 100%
rename from rmdb/src/rmdb.cpp
rename to src/rmdb.cpp
diff --git a/rmdb/src/storage/CMakeLists.txt b/src/storage/CMakeLists.txt
similarity index 100%
rename from rmdb/src/storage/CMakeLists.txt
rename to src/storage/CMakeLists.txt
diff --git a/rmdb/src/storage/buffer_pool_manager.cpp b/src/storage/buffer_pool_manager.cpp
similarity index 100%
rename from rmdb/src/storage/buffer_pool_manager.cpp
rename to src/storage/buffer_pool_manager.cpp
diff --git a/rmdb/src/storage/buffer_pool_manager.h b/src/storage/buffer_pool_manager.h
similarity index 97%
rename from rmdb/src/storage/buffer_pool_manager.h
rename to src/storage/buffer_pool_manager.h
index f113d41116efe33bd4b6757a396be2eccb8adb7e..d55d9713d8d4c2a5d5a54f1f8ee90494de3f0366 100644
--- a/rmdb/src/storage/buffer_pool_manager.h
+++ b/src/storage/buffer_pool_manager.h
@@ -1,83 +1,83 @@
-/* Copyright (c) 2023 Renmin University of China
-RMDB is licensed under Mulan PSL v2.
-You can use this software according to the terms and conditions of the Mulan PSL v2.
-You may obtain a copy of Mulan PSL v2 at:
-        http://license.coscl.org.cn/MulanPSL2
-THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
-EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
-MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
-See the Mulan PSL v2 for more details. */
-
-#pragma once
-#include <fcntl.h>
-#include <unistd.h>
-
-#include <cassert>
-#include <list>
-#include <unordered_map>
-#include <vector>
-
-#include "disk_manager.h"
-#include "errors.h"
-#include "page.h"
-#include "replacer/lru_replacer.h"
-#include "replacer/replacer.h"
-
-class BufferPoolManager {
-   private:
-    size_t pool_size_;      // buffer_pool中可容纳页面的个数,即帧的个数
-    Page *pages_;           // buffer_pool中的Page对象数组,在构造空间中申请内存空间,在析构函数中释放,大小为BUFFER_POOL_SIZE
-    std::unordered_map<PageId, frame_id_t, PageIdHash> page_table_; // 帧号和页面号的映射哈希表,用于根据页面的PageId定位该页面的帧编号
-    std::list<frame_id_t> free_list_;   // 空闲帧编号的链表
-    DiskManager *disk_manager_;
-    Replacer *replacer_;    // buffer_pool的置换策略,当前赛题中为LRU置换策略
-    std::mutex latch_;      // 用于共享数据结构的并发控制
-
-   public:
-    BufferPoolManager(size_t pool_size, DiskManager *disk_manager)
-        : pool_size_(pool_size), disk_manager_(disk_manager) {
-        // 为buffer pool分配一块连续的内存空间
-        pages_ = new Page[pool_size_];
-        // 可以被Replacer改变
-        if (REPLACER_TYPE.compare("LRU"))
-            replacer_ = new LRUReplacer(pool_size_);
-        else if (REPLACER_TYPE.compare("CLOCK"))
-            replacer_ = new LRUReplacer(pool_size_);
-        else {
-            replacer_ = new LRUReplacer(pool_size_);
-        }
-        // 初始化时,所有的page都在free_list_中
-        for (size_t i = 0; i < pool_size_; ++i) {
-            free_list_.emplace_back(static_cast<frame_id_t>(i));  // static_cast转换数据类型
-        }
-    }
-
-    ~BufferPoolManager() {
-        delete[] pages_;
-        delete replacer_;
-    }
-
-    /**
-     * @description: 将目标页面标记为脏页
-     * @param {Page*} page 脏页
-     */
-    static void mark_dirty(Page* page) { page->is_dirty_ = true; }
-
-   public: 
-    Page* fetch_page(PageId page_id);
-
-    bool unpin_page(PageId page_id, bool is_dirty);
-
-    bool flush_page(PageId page_id);
-
-    Page* new_page(PageId* page_id);
-
-    bool delete_page(PageId page_id);
-
-    void flush_all_pages(int fd);
-
-   private:
-    bool find_victim_page(frame_id_t* frame_id);
-
-    void update_page(Page* page, PageId new_page_id, frame_id_t new_frame_id);
+/* Copyright (c) 2023 Renmin University of China
+RMDB is licensed under Mulan PSL v2.
+You can use this software according to the terms and conditions of the Mulan PSL v2.
+You may obtain a copy of Mulan PSL v2 at:
+        http://license.coscl.org.cn/MulanPSL2
+THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
+EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
+MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
+See the Mulan PSL v2 for more details. */
+
+#pragma once
+#include <fcntl.h>
+#include <unistd.h>
+
+#include <cassert>
+#include <list>
+#include <unordered_map>
+#include <vector>
+
+#include "disk_manager.h"
+#include "errors.h"
+#include "page.h"
+#include "replacer/lru_replacer.h"
+#include "replacer/replacer.h"
+
+class BufferPoolManager {
+   private:
+    size_t pool_size_;      // buffer_pool中可容纳页面的个数,即帧的个数
+    Page *pages_;           // buffer_pool中的Page对象数组,在构造空间中申请内存空间,在析构函数中释放,大小为BUFFER_POOL_SIZE
+    std::unordered_map<PageId, frame_id_t, PageIdHash> page_table_; // 帧号和页面号的映射哈希表,用于根据页面的PageId定位该页面的帧编号
+    std::list<frame_id_t> free_list_;   // 空闲帧编号的链表
+    DiskManager *disk_manager_;
+    Replacer *replacer_;    // buffer_pool的置换策略,当前赛题中为LRU置换策略
+    std::mutex latch_;      // 用于共享数据结构的并发控制
+
+   public:
+    BufferPoolManager(size_t pool_size, DiskManager *disk_manager)
+        : pool_size_(pool_size), disk_manager_(disk_manager) {
+        // 为buffer pool分配一块连续的内存空间
+        pages_ = new Page[pool_size_];
+        // 可以被Replacer改变
+        if (REPLACER_TYPE.compare("LRU"))
+            replacer_ = new LRUReplacer(pool_size_);
+        else if (REPLACER_TYPE.compare("CLOCK"))
+            replacer_ = new LRUReplacer(pool_size_);
+        else {
+            replacer_ = new LRUReplacer(pool_size_);
+        }
+        // 初始化时,所有的page都在free_list_中
+        for (size_t i = 0; i < pool_size_; ++i) {
+            free_list_.emplace_back(static_cast<frame_id_t>(i));  // static_cast转换数据类型
+        }
+    }
+
+    ~BufferPoolManager() {
+        delete[] pages_;
+        delete replacer_;
+    }
+
+    /**
+     * @description: 将目标页面标记为脏页
+     * @param {Page*} page 脏页
+     */
+    static void mark_dirty(Page* page) { page->is_dirty_ = true; }
+
+   public: 
+    Page* fetch_page(PageId page_id);
+
+    bool unpin_page(PageId page_id, bool is_dirty);
+
+    bool flush_page(PageId page_id);
+
+    Page* new_page(PageId* page_id);
+
+    bool delete_page(PageId page_id);
+
+    void flush_all_pages(int fd);
+
+   private:
+    bool find_victim_page(frame_id_t* frame_id);
+
+    void update_page(Page* page, PageId new_page_id, frame_id_t new_frame_id);
 };
\ No newline at end of file
diff --git a/rmdb/src/storage/disk_manager.cpp b/src/storage/disk_manager.cpp
similarity index 96%
rename from rmdb/src/storage/disk_manager.cpp
rename to src/storage/disk_manager.cpp
index dfc92e1a36cf9da4715c1c51dcbfb949392ceb68..8f25a0221691196a79cd12a6b4dea47932f2036a 100644
--- a/rmdb/src/storage/disk_manager.cpp
+++ b/src/storage/disk_manager.cpp
@@ -1,279 +1,279 @@
-/* Copyright (c) 2023 Renmin University of China
-RMDB is licensed under Mulan PSL v2.
-You can use this software according to the terms and conditions of the Mulan PSL v2.
-You may obtain a copy of Mulan PSL v2 at:
-        http://license.coscl.org.cn/MulanPSL2
-THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
-EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
-MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
-See the Mulan PSL v2 for more details. */
-
-#include "storage/disk_manager.h"
-
-#include <assert.h>    // for assert
-#include <string.h>    // for memset
-#include <sys/stat.h>  // for stat
-#include <unistd.h>    // for lseek
-
-#include "defs.h"
-#include "errors.h"
-
-DiskManager::DiskManager() { memset(fd2pageno_, 0, MAX_FD * (sizeof(std::atomic<page_id_t>) / sizeof(char))); }
-
-/**
- * @description: 将数据写入文件的指定磁盘页面中
- * @param {int} fd 磁盘文件的文件句柄
- * @param {page_id_t} page_no 写入目标页面的page_id
- * @param {char} *offset 要写入磁盘的数据
- * @param {int} num_bytes 要写入磁盘的数据大小
- */
-void DiskManager::write_page(int fd, page_id_t page_no, const char *offset, int num_bytes) {
-    // Todo:
-    // 1.lseek()定位到文件头,通过(fd,page_no)可以定位指定页面及其在磁盘文件中的偏移量
-    // 2.调用write()函数
-    // 注意write返回值与num_bytes不等时 throw InternalError("DiskManager::write_page Error");
-    off_t offset_in_file = page_no * PAGE_SIZE;
-
-    if (lseek(fd, offset_in_file, SEEK_SET) == -1) {
-        throw std::runtime_error("DiskManager::write_page Error: lseek failed");
-    }
-
-    ssize_t bytes_written = write(fd, offset, num_bytes);
-
-    if (bytes_written != num_bytes) {
-        throw InternalError("DiskManager::write_page Error");
-    }
-}
-
-/**
- * @description: 读取文件中指定编号的页面中的部分数据到内存中
- * @param {int} fd 磁盘文件的文件句柄
- * @param {page_id_t} page_no 指定的页面编号
- * @param {char} *offset 读取的内容写入到offset中
- * @param {int} num_bytes 读取的数据量大小
- */
-void DiskManager::read_page(int fd, page_id_t page_no, char *offset, int num_bytes) {
-    // Todo:
-    // 1.lseek()定位到文件头,通过(fd,page_no)可以定位指定页面及其在磁盘文件中的偏移量
-    // 2.调用read()函数
-    // 注意read返回值与num_bytes不等时,throw InternalError("DiskManager::read_page Error");
-    off_t offset_in_file = page_no * PAGE_SIZE;
-    if (lseek(fd, offset_in_file, SEEK_SET) == -1) {
-        throw InternalError("DiskManager::read_page Error: lseek failed");
-    }
-
-    ssize_t bytes_read = read(fd, offset, num_bytes);
-
-    if (bytes_read != num_bytes) {
-        throw InternalError("DiskManager::read_page Error");
-    }
-}
-
-/**
- * @description: 分配一个新的页号
- * @return {page_id_t} 分配的新页号
- * @param {int} fd 指定文件的文件句柄
- */
-page_id_t DiskManager::allocate_page(int fd) {
-    // 简单的自增分配策略,指定文件的页面编号加1
-    assert(fd >= 0 && fd < MAX_FD);
-    return fd2pageno_[fd]++;
-}
-
-void DiskManager::deallocate_page(__attribute__((unused)) page_id_t page_id) {}
-
-bool DiskManager::is_dir(const std::string& path) {
-    struct stat st;
-    return stat(path.c_str(), &st) == 0 && S_ISDIR(st.st_mode);
-}
-
-void DiskManager::create_dir(const std::string &path) {
-    // Create a subdirectory
-    std::string cmd = "mkdir " + path;
-    if (system(cmd.c_str()) < 0) {  // 创建一个名为path的目录
-        throw UnixError();
-    }
-}
-
-void DiskManager::destroy_dir(const std::string &path) {
-    std::string cmd = "rm -r " + path;
-    if (system(cmd.c_str()) < 0) {
-        throw UnixError();
-    }
-}
-
-/**
- * @description: 判断指定路径文件是否存在
- * @return {bool} 若指定路径文件存在则返回true 
- * @param {string} &path 指定路径文件
- */
-bool DiskManager::is_file(const std::string &path) {
-    // 用struct stat获取文件信息
-    struct stat st;
-    return stat(path.c_str(), &st) == 0 && S_ISREG(st.st_mode);
-}
-
-/**
- * @description: 用于创建指定路径文件
- * @return {*}
- * @param {string} &path
- */
-void DiskManager::create_file(const std::string &path) {
-    // Todo:
-    // 调用open()函数,使用O_CREAT模式
-    // 注意不能重复创建相同文件
-    if (is_file(path)) {
-        throw FileExistsError("DiskManager::create_file Error: file already exists");
-    }
-
-    int fd = open(path.c_str(), O_CREAT);
-
-    if (fd == -1) {
-        throw InternalError("DiskManager::create_file Error: open failed");
-    }
-    close(fd);
-}
-
-/**
- * @description: 删除指定路径的文件
- * @param {string} &path 文件所在路径
- */
-void DiskManager::destroy_file(const std::string &path) {
-    // Todo:
-    // 调用unlink()函数
-    // 注意不能删除未关闭的文件
-    if (path2fd_.find(path) != path2fd_.end()) {
-        throw FileNotClosedError("DiskManager::destroy_file Error: file is open");
-    }
-
-    if (unlink(path.c_str()) == -1) {
-        throw FileNotFoundError("DiskManager::destroy_file Error: unlink failed");
-    }
-    
-}
-
-
-/**
- * @description: 打开指定路径文件 
- * @return {int} 返回打开的文件的文件句柄
- * @param {string} &path 文件所在路径
- */
-int DiskManager::open_file(const std::string &path) {
-    // Todo:
-    // 调用open()函数,使用O_RDWR模式
-    // 注意不能重复打开相同文件,并且需要更新文件打开列表
-    if (path2fd_.find(path) != path2fd_.end()) {
-        throw FileNotClosedError("DiskManager::open_file Error: file already open");
-    }
-
-    int fd = open(path.c_str(), O_RDWR);
-
-    if (fd == -1) {
-        throw FileNotFoundError("DiskManager::open_file Error: open failed");
-    }
-    
-    path2fd_[path] = fd;
-    fd2path_[fd] = path;
-    return fd;
-
-}
-
-/**
- * @description:用于关闭指定路径文件 
- * @param {int} fd 打开的文件的文件句柄
- */
-void DiskManager::close_file(int fd) {
-    // Todo:
-    // 调用close()函数
-    // 注意不能关闭未打开的文件,并且需要更新文件打开列表
-    auto it = fd2path_.find(fd);
-    if (it == fd2path_.end()) {
-        throw FileNotOpenError(fd);
-    }
-    if (close(fd) == -1) {
-        throw FileExistsError("DiskManager::close_file Error: close failed");
-    }
-    path2fd_.erase(it->second);
-    fd2path_.erase(it);
-}
-
-
-/**
- * @description: 获得文件的大小
- * @return {int} 文件的大小
- * @param {string} &file_name 文件名
- */
-int DiskManager::get_file_size(const std::string &file_name) {
-    struct stat stat_buf;
-    int rc = stat(file_name.c_str(), &stat_buf);
-    return rc == 0 ? stat_buf.st_size : -1;
-}
-
-/**
- * @description: 根据文件句柄获得文件名
- * @return {string} 文件句柄对应文件的文件名
- * @param {int} fd 文件句柄
- */
-std::string DiskManager::get_file_name(int fd) {
-    if (!fd2path_.count(fd)) {
-        throw FileNotOpenError(fd);
-    }
-    return fd2path_[fd];
-}
-
-/**
- * @description:  获得文件名对应的文件句柄
- * @return {int} 文件句柄
- * @param {string} &file_name 文件名
- */
-int DiskManager::get_file_fd(const std::string &file_name) {
-    if (!path2fd_.count(file_name)) {
-        return open_file(file_name);
-    }
-    return path2fd_[file_name];
-}
-
-
-/**
- * @description:  读取日志文件内容
- * @return {int} 返回读取的数据量,若为-1说明读取数据的起始位置超过了文件大小
- * @param {char} *log_data 读取内容到log_data中
- * @param {int} size 读取的数据量大小
- * @param {int} offset 读取的内容在文件中的位置
- */
-int DiskManager::read_log(char *log_data, int size, int offset) {
-    // read log file from the previous end
-    if (log_fd_ == -1) {
-        log_fd_ = open_file(LOG_FILE_NAME);
-    }
-    int file_size = get_file_size(LOG_FILE_NAME);
-    if (offset > file_size) {
-        return -1;
-    }
-
-    size = std::min(size, file_size - offset);
-    if(size == 0) return 0;
-    lseek(log_fd_, offset, SEEK_SET);
-    ssize_t bytes_read = read(log_fd_, log_data, size);
-    assert(bytes_read == size);
-    return bytes_read;
-}
-
-
-/**
- * @description: 写日志内容
- * @param {char} *log_data 要写入的日志内容
- * @param {int} size 要写入的内容大小
- */
-void DiskManager::write_log(char *log_data, int size) {
-    if (log_fd_ == -1) {
-        log_fd_ = open_file(LOG_FILE_NAME);
-    }
-
-    // write from the file_end
-    lseek(log_fd_, 0, SEEK_END);
-    ssize_t bytes_write = write(log_fd_, log_data, size);
-    if (bytes_write != size) {
-        throw UnixError();
-    }
+/* Copyright (c) 2023 Renmin University of China
+RMDB is licensed under Mulan PSL v2.
+You can use this software according to the terms and conditions of the Mulan PSL v2.
+You may obtain a copy of Mulan PSL v2 at:
+        http://license.coscl.org.cn/MulanPSL2
+THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
+EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
+MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
+See the Mulan PSL v2 for more details. */
+
+#include "storage/disk_manager.h"
+
+#include <assert.h>    // for assert
+#include <string.h>    // for memset
+#include <sys/stat.h>  // for stat
+#include <unistd.h>    // for lseek
+
+#include "defs.h"
+#include "errors.h"
+
+DiskManager::DiskManager() { memset(fd2pageno_, 0, MAX_FD * (sizeof(std::atomic<page_id_t>) / sizeof(char))); }
+
+/**
+ * @description: 将数据写入文件的指定磁盘页面中
+ * @param {int} fd 磁盘文件的文件句柄
+ * @param {page_id_t} page_no 写入目标页面的page_id
+ * @param {char} *offset 要写入磁盘的数据
+ * @param {int} num_bytes 要写入磁盘的数据大小
+ */
+void DiskManager::write_page(int fd, page_id_t page_no, const char *offset, int num_bytes) {
+    // Todo:
+    // 1.lseek()定位到文件头,通过(fd,page_no)可以定位指定页面及其在磁盘文件中的偏移量
+    // 2.调用write()函数
+    // 注意write返回值与num_bytes不等时 throw InternalError("DiskManager::write_page Error");
+    off_t offset_in_file = page_no * PAGE_SIZE;
+
+    if (lseek(fd, offset_in_file, SEEK_SET) == -1) {
+        throw std::runtime_error("DiskManager::write_page Error: lseek failed");
+    }
+
+    ssize_t bytes_written = write(fd, offset, num_bytes);
+
+    if (bytes_written != num_bytes) {
+        throw InternalError("DiskManager::write_page Error");
+    }
+}
+
+/**
+ * @description: 读取文件中指定编号的页面中的部分数据到内存中
+ * @param {int} fd 磁盘文件的文件句柄
+ * @param {page_id_t} page_no 指定的页面编号
+ * @param {char} *offset 读取的内容写入到offset中
+ * @param {int} num_bytes 读取的数据量大小
+ */
+void DiskManager::read_page(int fd, page_id_t page_no, char *offset, int num_bytes) {
+    // Todo:
+    // 1.lseek()定位到文件头,通过(fd,page_no)可以定位指定页面及其在磁盘文件中的偏移量
+    // 2.调用read()函数
+    // 注意read返回值与num_bytes不等时,throw InternalError("DiskManager::read_page Error");
+    off_t offset_in_file = page_no * PAGE_SIZE;
+    if (lseek(fd, offset_in_file, SEEK_SET) == -1) {
+        throw InternalError("DiskManager::read_page Error: lseek failed");
+    }
+
+    ssize_t bytes_read = read(fd, offset, num_bytes);
+
+    if (bytes_read != num_bytes) {
+        throw InternalError("DiskManager::read_page Error");
+    }
+}
+
+/**
+ * @description: 分配一个新的页号
+ * @return {page_id_t} 分配的新页号
+ * @param {int} fd 指定文件的文件句柄
+ */
+page_id_t DiskManager::allocate_page(int fd) {
+    // 简单的自增分配策略,指定文件的页面编号加1
+    assert(fd >= 0 && fd < MAX_FD);
+    return fd2pageno_[fd]++;
+}
+
+void DiskManager::deallocate_page(__attribute__((unused)) page_id_t page_id) {}
+
+bool DiskManager::is_dir(const std::string& path) {
+    struct stat st;
+    return stat(path.c_str(), &st) == 0 && S_ISDIR(st.st_mode);
+}
+
+void DiskManager::create_dir(const std::string &path) {
+    // Create a subdirectory
+    std::string cmd = "mkdir " + path;
+    if (system(cmd.c_str()) < 0) {  // 创建一个名为path的目录
+        throw UnixError();
+    }
+}
+
+void DiskManager::destroy_dir(const std::string &path) {
+    std::string cmd = "rm -r " + path;
+    if (system(cmd.c_str()) < 0) {
+        throw UnixError();
+    }
+}
+
+/**
+ * @description: 判断指定路径文件是否存在
+ * @return {bool} 若指定路径文件存在则返回true 
+ * @param {string} &path 指定路径文件
+ */
+bool DiskManager::is_file(const std::string &path) {
+    // 用struct stat获取文件信息
+    struct stat st;
+    return stat(path.c_str(), &st) == 0 && S_ISREG(st.st_mode);
+}
+
+/**
+ * @description: 用于创建指定路径文件
+ * @return {*}
+ * @param {string} &path
+ */
+void DiskManager::create_file(const std::string &path) {
+    // Todo:
+    // 调用open()函数,使用O_CREAT模式
+    // 注意不能重复创建相同文件
+    if (is_file(path)) {
+        throw FileExistsError("DiskManager::create_file Error: file already exists");
+    }
+
+    int fd = open(path.c_str(), O_CREAT);
+
+    if (fd == -1) {
+        throw InternalError("DiskManager::create_file Error: open failed");
+    }
+    close(fd);
+}
+
+/**
+ * @description: 删除指定路径的文件
+ * @param {string} &path 文件所在路径
+ */
+void DiskManager::destroy_file(const std::string &path) {
+    // Todo:
+    // 调用unlink()函数
+    // 注意不能删除未关闭的文件
+    if (path2fd_.find(path) != path2fd_.end()) {
+        throw FileNotClosedError("DiskManager::destroy_file Error: file is open");
+    }
+
+    if (unlink(path.c_str()) == -1) {
+        throw FileNotFoundError("DiskManager::destroy_file Error: unlink failed");
+    }
+    
+}
+
+
+/**
+ * @description: 打开指定路径文件 
+ * @return {int} 返回打开的文件的文件句柄
+ * @param {string} &path 文件所在路径
+ */
+int DiskManager::open_file(const std::string &path) {
+    // Todo:
+    // 调用open()函数,使用O_RDWR模式
+    // 注意不能重复打开相同文件,并且需要更新文件打开列表
+    if (path2fd_.find(path) != path2fd_.end()) {
+        throw FileNotClosedError("DiskManager::open_file Error: file already open");
+    }
+
+    int fd = open(path.c_str(), O_RDWR);
+
+    if (fd == -1) {
+        throw FileNotFoundError("DiskManager::open_file Error: open failed");
+    }
+    
+    path2fd_[path] = fd;
+    fd2path_[fd] = path;
+    return fd;
+
+}
+
+/**
+ * @description:用于关闭指定路径文件 
+ * @param {int} fd 打开的文件的文件句柄
+ */
+void DiskManager::close_file(int fd) {
+    // Todo:
+    // 调用close()函数
+    // 注意不能关闭未打开的文件,并且需要更新文件打开列表
+    auto it = fd2path_.find(fd);
+    if (it == fd2path_.end()) {
+        throw FileNotOpenError(fd);
+    }
+    if (close(fd) == -1) {
+        throw FileExistsError("DiskManager::close_file Error: close failed");
+    }
+    path2fd_.erase(it->second);
+    fd2path_.erase(it);
+}
+
+
+/**
+ * @description: 获得文件的大小
+ * @return {int} 文件的大小
+ * @param {string} &file_name 文件名
+ */
+int DiskManager::get_file_size(const std::string &file_name) {
+    struct stat stat_buf;
+    int rc = stat(file_name.c_str(), &stat_buf);
+    return rc == 0 ? stat_buf.st_size : -1;
+}
+
+/**
+ * @description: 根据文件句柄获得文件名
+ * @return {string} 文件句柄对应文件的文件名
+ * @param {int} fd 文件句柄
+ */
+std::string DiskManager::get_file_name(int fd) {
+    if (!fd2path_.count(fd)) {
+        throw FileNotOpenError(fd);
+    }
+    return fd2path_[fd];
+}
+
+/**
+ * @description:  获得文件名对应的文件句柄
+ * @return {int} 文件句柄
+ * @param {string} &file_name 文件名
+ */
+int DiskManager::get_file_fd(const std::string &file_name) {
+    if (!path2fd_.count(file_name)) {
+        return open_file(file_name);
+    }
+    return path2fd_[file_name];
+}
+
+
+/**
+ * @description:  读取日志文件内容
+ * @return {int} 返回读取的数据量,若为-1说明读取数据的起始位置超过了文件大小
+ * @param {char} *log_data 读取内容到log_data中
+ * @param {int} size 读取的数据量大小
+ * @param {int} offset 读取的内容在文件中的位置
+ */
+int DiskManager::read_log(char *log_data, int size, int offset) {
+    // read log file from the previous end
+    if (log_fd_ == -1) {
+        log_fd_ = open_file(LOG_FILE_NAME);
+    }
+    int file_size = get_file_size(LOG_FILE_NAME);
+    if (offset > file_size) {
+        return -1;
+    }
+
+    size = std::min(size, file_size - offset);
+    if(size == 0) return 0;
+    lseek(log_fd_, offset, SEEK_SET);
+    ssize_t bytes_read = read(log_fd_, log_data, size);
+    assert(bytes_read == size);
+    return bytes_read;
+}
+
+
+/**
+ * @description: 写日志内容
+ * @param {char} *log_data 要写入的日志内容
+ * @param {int} size 要写入的内容大小
+ */
+void DiskManager::write_log(char *log_data, int size) {
+    if (log_fd_ == -1) {
+        log_fd_ = open_file(LOG_FILE_NAME);
+    }
+
+    // write from the file_end
+    lseek(log_fd_, 0, SEEK_END);
+    ssize_t bytes_write = write(log_fd_, log_data, size);
+    if (bytes_write != size) {
+        throw UnixError();
+    }
 }
\ No newline at end of file
diff --git a/rmdb/src/storage/disk_manager.h b/src/storage/disk_manager.h
similarity index 96%
rename from rmdb/src/storage/disk_manager.h
rename to src/storage/disk_manager.h
index 4045c0028bffa41cda76d7e19df4215a09040baa..08b7f670a348f7f360d59519d9f0ad9fafba12da 100644
--- a/rmdb/src/storage/disk_manager.h
+++ b/src/storage/disk_manager.h
@@ -1,99 +1,99 @@
-/* Copyright (c) 2023 Renmin University of China
-RMDB is licensed under Mulan PSL v2.
-You can use this software according to the terms and conditions of the Mulan PSL v2.
-You may obtain a copy of Mulan PSL v2 at:
-        http://license.coscl.org.cn/MulanPSL2
-THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
-EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
-MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
-See the Mulan PSL v2 for more details. */
-
-#pragma once
-
-#include <fcntl.h>     
-#include <sys/stat.h>  
-#include <unistd.h>    
-
-#include <atomic>
-#include <fstream>
-#include <iostream>
-#include <string>
-#include <unordered_map>
-
-#include "common/config.h"
-#include "errors.h"  
-
-/**
- * @description: DiskManager的作用主要是根据上层的需要对磁盘文件进行操作
- */
-class DiskManager {
-   public:
-    explicit DiskManager();
-
-    ~DiskManager() = default;
-
-    void write_page(int fd, page_id_t page_no, const char *offset, int num_bytes);
-
-    void read_page(int fd, page_id_t page_no, char *offset, int num_bytes);
-
-    page_id_t allocate_page(int fd);
-
-    void deallocate_page(page_id_t page_id);
-
-    /*目录操作*/
-    bool is_dir(const std::string &path);
-
-    void create_dir(const std::string &path);
-
-    void destroy_dir(const std::string &path);
-
-    /*文件操作*/
-    bool is_file(const std::string &path);
-
-    void create_file(const std::string &path);
-
-    void destroy_file(const std::string &path);
-
-    int open_file(const std::string &path);
-
-    void close_file(int fd);
-
-    int get_file_size(const std::string &file_name);
-
-    std::string get_file_name(int fd);
-
-    int get_file_fd(const std::string &file_name);
-
-    /*日志操作*/
-    int read_log(char *log_data, int size, int offset);
-
-    void write_log(char *log_data, int size);
-
-    void SetLogFd(int log_fd) { log_fd_ = log_fd; }
-
-    int GetLogFd() { return log_fd_; }
-
-    /**
-     * @description: 设置文件已经分配的页面个数
-     * @param {int} fd 文件对应的文件句柄
-     * @param {int} start_page_no 已经分配的页面个数,即文件接下来从start_page_no开始分配页面编号
-     */
-    void set_fd2pageno(int fd, int start_page_no) { fd2pageno_[fd] = start_page_no; }
-
-    /**
-     * @description: 获得文件目前已分配的页面个数,即如果文件要分配一个新页面,需要从fd2pagenp_[fd]开始分配
-     * @return {page_id_t} 已分配的页面个数 
-     * @param {int} fd 文件对应的句柄
-     */
-    page_id_t get_fd2pageno(int fd) { return fd2pageno_[fd]; }
-
-    static constexpr int MAX_FD = 8192;
-
-   private:
-    // 文件打开列表,用于记录文件是否被打开
-    std::unordered_map<std::string, int> path2fd_;  //<Page文件磁盘路径,Page fd>哈希表
-    std::unordered_map<int, std::string> fd2path_;  //<Page fd,Page文件磁盘路径>哈希表
-
-    int log_fd_ = -1;                             // WAL日志文件的文件句柄,默认为-1,代表未打开日志文件
-    std::atomic<page_id_t> fd2pageno_[MAX_FD]{};  // 文件中已经分配的页面个数,初始值为0
+/* Copyright (c) 2023 Renmin University of China
+RMDB is licensed under Mulan PSL v2.
+You can use this software according to the terms and conditions of the Mulan PSL v2.
+You may obtain a copy of Mulan PSL v2 at:
+        http://license.coscl.org.cn/MulanPSL2
+THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
+EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
+MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
+See the Mulan PSL v2 for more details. */
+
+#pragma once
+
+#include <fcntl.h>     
+#include <sys/stat.h>  
+#include <unistd.h>    
+
+#include <atomic>
+#include <fstream>
+#include <iostream>
+#include <string>
+#include <unordered_map>
+
+#include "common/config.h"
+#include "errors.h"  
+
+/**
+ * @description: DiskManager的作用主要是根据上层的需要对磁盘文件进行操作
+ */
+class DiskManager {
+   public:
+    explicit DiskManager();
+
+    ~DiskManager() = default;
+
+    void write_page(int fd, page_id_t page_no, const char *offset, int num_bytes);
+
+    void read_page(int fd, page_id_t page_no, char *offset, int num_bytes);
+
+    page_id_t allocate_page(int fd);
+
+    void deallocate_page(page_id_t page_id);
+
+    /*目录操作*/
+    bool is_dir(const std::string &path);
+
+    void create_dir(const std::string &path);
+
+    void destroy_dir(const std::string &path);
+
+    /*文件操作*/
+    bool is_file(const std::string &path);
+
+    void create_file(const std::string &path);
+
+    void destroy_file(const std::string &path);
+
+    int open_file(const std::string &path);
+
+    void close_file(int fd);
+
+    int get_file_size(const std::string &file_name);
+
+    std::string get_file_name(int fd);
+
+    int get_file_fd(const std::string &file_name);
+
+    /*日志操作*/
+    int read_log(char *log_data, int size, int offset);
+
+    void write_log(char *log_data, int size);
+
+    void SetLogFd(int log_fd) { log_fd_ = log_fd; }
+
+    int GetLogFd() { return log_fd_; }
+
+    /**
+     * @description: 设置文件已经分配的页面个数
+     * @param {int} fd 文件对应的文件句柄
+     * @param {int} start_page_no 已经分配的页面个数,即文件接下来从start_page_no开始分配页面编号
+     */
+    void set_fd2pageno(int fd, int start_page_no) { fd2pageno_[fd] = start_page_no; }
+
+    /**
+     * @description: 获得文件目前已分配的页面个数,即如果文件要分配一个新页面,需要从fd2pagenp_[fd]开始分配
+     * @return {page_id_t} 已分配的页面个数 
+     * @param {int} fd 文件对应的句柄
+     */
+    page_id_t get_fd2pageno(int fd) { return fd2pageno_[fd]; }
+
+    static constexpr int MAX_FD = 8192;
+
+   private:
+    // 文件打开列表,用于记录文件是否被打开
+    std::unordered_map<std::string, int> path2fd_;  //<Page文件磁盘路径,Page fd>哈希表
+    std::unordered_map<int, std::string> fd2path_;  //<Page fd,Page文件磁盘路径>哈希表
+
+    int log_fd_ = -1;                             // WAL日志文件的文件句柄,默认为-1,代表未打开日志文件
+    std::atomic<page_id_t> fd2pageno_[MAX_FD]{};  // 文件中已经分配的页面个数,初始值为0
 };
\ No newline at end of file
diff --git a/rmdb/src/storage/page.h b/src/storage/page.h
similarity index 100%
rename from rmdb/src/storage/page.h
rename to src/storage/page.h
diff --git a/rmdb/src/system/CMakeLists.txt b/src/system/CMakeLists.txt
similarity index 100%
rename from rmdb/src/system/CMakeLists.txt
rename to src/system/CMakeLists.txt
diff --git a/rmdb/src/system/sm.h b/src/system/sm.h
similarity index 100%
rename from rmdb/src/system/sm.h
rename to src/system/sm.h
diff --git a/rmdb/src/system/sm_defs.h b/src/system/sm_defs.h
similarity index 100%
rename from rmdb/src/system/sm_defs.h
rename to src/system/sm_defs.h
diff --git a/rmdb/src/system/sm_manager.cpp b/src/system/sm_manager.cpp
similarity index 100%
rename from rmdb/src/system/sm_manager.cpp
rename to src/system/sm_manager.cpp
diff --git a/rmdb/src/system/sm_manager.h b/src/system/sm_manager.h
similarity index 100%
rename from rmdb/src/system/sm_manager.h
rename to src/system/sm_manager.h
diff --git a/rmdb/src/system/sm_meta.h b/src/system/sm_meta.h
similarity index 100%
rename from rmdb/src/system/sm_meta.h
rename to src/system/sm_meta.h
diff --git a/rmdb/src/test/.DS_Store b/src/test/.DS_Store
similarity index 100%
rename from rmdb/src/test/.DS_Store
rename to src/test/.DS_Store
diff --git a/rmdb/src/test/CMakeLists.txt b/src/test/CMakeLists.txt
similarity index 100%
rename from rmdb/src/test/CMakeLists.txt
rename to src/test/CMakeLists.txt
diff --git a/rmdb/src/test/performance_test/.DS_Store b/src/test/performance_test/.DS_Store
similarity index 100%
rename from rmdb/src/test/performance_test/.DS_Store
rename to src/test/performance_test/.DS_Store
diff --git a/rmdb/src/test/performance_test/table_data/.DS_Store b/src/test/performance_test/table_data/.DS_Store
similarity index 100%
rename from rmdb/src/test/performance_test/table_data/.DS_Store
rename to src/test/performance_test/table_data/.DS_Store
diff --git a/rmdb/src/test/performance_test/table_data/customer.csv b/src/test/performance_test/table_data/customer.csv
similarity index 100%
rename from rmdb/src/test/performance_test/table_data/customer.csv
rename to src/test/performance_test/table_data/customer.csv
diff --git a/rmdb/src/test/performance_test/table_data/district.csv b/src/test/performance_test/table_data/district.csv
similarity index 100%
rename from rmdb/src/test/performance_test/table_data/district.csv
rename to src/test/performance_test/table_data/district.csv
diff --git a/rmdb/src/test/performance_test/table_data/history.csv b/src/test/performance_test/table_data/history.csv
similarity index 100%
rename from rmdb/src/test/performance_test/table_data/history.csv
rename to src/test/performance_test/table_data/history.csv
diff --git a/rmdb/src/test/performance_test/table_data/item.csv b/src/test/performance_test/table_data/item.csv
similarity index 100%
rename from rmdb/src/test/performance_test/table_data/item.csv
rename to src/test/performance_test/table_data/item.csv
diff --git a/rmdb/src/test/performance_test/table_data/new_orders.csv b/src/test/performance_test/table_data/new_orders.csv
similarity index 100%
rename from rmdb/src/test/performance_test/table_data/new_orders.csv
rename to src/test/performance_test/table_data/new_orders.csv
diff --git a/rmdb/src/test/performance_test/table_data/order_line.csv b/src/test/performance_test/table_data/order_line.csv
similarity index 100%
rename from rmdb/src/test/performance_test/table_data/order_line.csv
rename to src/test/performance_test/table_data/order_line.csv
diff --git a/rmdb/src/test/performance_test/table_data/orders.csv b/src/test/performance_test/table_data/orders.csv
similarity index 100%
rename from rmdb/src/test/performance_test/table_data/orders.csv
rename to src/test/performance_test/table_data/orders.csv
diff --git a/rmdb/src/test/performance_test/table_data/stock.csv b/src/test/performance_test/table_data/stock.csv
similarity index 100%
rename from rmdb/src/test/performance_test/table_data/stock.csv
rename to src/test/performance_test/table_data/stock.csv
diff --git a/rmdb/src/test/performance_test/table_data/warehouse.csv b/src/test/performance_test/table_data/warehouse.csv
similarity index 100%
rename from rmdb/src/test/performance_test/table_data/warehouse.csv
rename to src/test/performance_test/table_data/warehouse.csv
diff --git a/rmdb/src/transaction/CMakeLists.txt b/src/transaction/CMakeLists.txt
similarity index 100%
rename from rmdb/src/transaction/CMakeLists.txt
rename to src/transaction/CMakeLists.txt
diff --git a/rmdb/src/transaction/concurrency/lock_manager.cpp b/src/transaction/concurrency/lock_manager.cpp
similarity index 100%
rename from rmdb/src/transaction/concurrency/lock_manager.cpp
rename to src/transaction/concurrency/lock_manager.cpp
diff --git a/rmdb/src/transaction/concurrency/lock_manager.h b/src/transaction/concurrency/lock_manager.h
similarity index 100%
rename from rmdb/src/transaction/concurrency/lock_manager.h
rename to src/transaction/concurrency/lock_manager.h
diff --git a/rmdb/src/transaction/transaction.h b/src/transaction/transaction.h
similarity index 100%
rename from rmdb/src/transaction/transaction.h
rename to src/transaction/transaction.h
diff --git a/rmdb/src/transaction/transaction_manager.cpp b/src/transaction/transaction_manager.cpp
similarity index 100%
rename from rmdb/src/transaction/transaction_manager.cpp
rename to src/transaction/transaction_manager.cpp
diff --git a/rmdb/src/transaction/transaction_manager.h b/src/transaction/transaction_manager.h
similarity index 100%
rename from rmdb/src/transaction/transaction_manager.h
rename to src/transaction/transaction_manager.h
diff --git a/rmdb/src/transaction/txn_defs.h b/src/transaction/txn_defs.h
similarity index 100%
rename from rmdb/src/transaction/txn_defs.h
rename to src/transaction/txn_defs.h
diff --git a/rmdb/src/unit_test.cpp b/src/unit_test.cpp
similarity index 100%
rename from rmdb/src/unit_test.cpp
rename to src/unit_test.cpp
diff --git "a/rmdb/\346\225\260\346\215\256\344\270\200\350\207\264\346\200\247\346\243\200\351\252\214\350\247\204\345\210\231.pdf" "b/\346\225\260\346\215\256\344\270\200\350\207\264\346\200\247\346\243\200\351\252\214\350\247\204\345\210\231.pdf"
similarity index 100%
rename from "rmdb/\346\225\260\346\215\256\344\270\200\350\207\264\346\200\247\346\243\200\351\252\214\350\247\204\345\210\231.pdf"
rename to "\346\225\260\346\215\256\344\270\200\350\207\264\346\200\247\346\243\200\351\252\214\350\247\204\345\210\231.pdf"
diff --git "a/rmdb/\346\241\206\346\236\266\345\233\276.pdf" "b/\346\241\206\346\236\266\345\233\276.pdf"
similarity index 100%
rename from "rmdb/\346\241\206\346\236\266\345\233\276.pdf"
rename to "\346\241\206\346\236\266\345\233\276.pdf"