changeset 9:83b783747d1a

overwrite
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Sat, 09 Dec 2023 19:20:23 +0900
parents 147d41a32066
children b7abe0e40c22
files Paper/Ikki_master.pdf Paper/chapter/0-introduction.tex Paper/chapter/2-CbC.tex Paper/chapter/abstract.tex Paper/chapter/appendix.tex Paper/chapter/history.tex Paper/chapter/thanks.tex Paper/fig/Context_ref-1.jpg Paper/fig/Context_ref.pdf Paper/fig/backup.drawio Paper/fig/cd.pdf Paper/fig/cd.png Paper/fig/cd.svg Paper/fig/cgdg.pdf Paper/fig/context.pdf Paper/fig/context.png Paper/fig/context.svg Paper/fig/cp-rbtree.drawio Paper/fig/desk.drawio Paper/fig/dgcgdg.png Paper/fig/dgcgdg.svg Paper/fig/gearsDirectoryMM.PNG Paper/fig/gearsDirectoryMM.html Paper/fig/gearsDirectoryMM.json Paper/fig/gearsDirectoryMM.md Paper/fig/inode.jpg Paper/fig/inode.pdf Paper/fig/inode.png Paper/fig/inode.svg Paper/fig/intro.drawio Paper/fig/ls.pdf Paper/fig/ls.png Paper/fig/ls.svg Paper/fig/meta-cg-dg.pdf Paper/fig/meta_cg_dg.svg Paper/fig/mkdir.pdf Paper/fig/mkdir.png Paper/fig/mkdir.svg Paper/fig/nonDestroyTreeEdit.pdf Paper/fig/nondestructive_tree_modification.png Paper/fig/read.drawio Paper/fig/sample.png Paper/fig/transaction.drawio Paper/fig/transaction.drawio.pdf Paper/fig/transaction.png Paper/fig/transaction.svg Paper/fig/ultra-rightDown.drawio Paper/fig/wordCountStates.pdf Paper/info.toml Paper/master_paper.pdf Paper/master_paper.sty Paper/master_paper.tex Paper/reference.bib Paper/src/FTree.h Paper/src/GearsDirectoryImpl.cbc Paper/src/cd.cbc Paper/src/hello.cbc Paper/src/ls.cbc Paper/src/mkdir.cbc mindmaps/gears_fs_db.mm
diffstat 59 files changed, 4518 insertions(+), 370 deletions(-) [+]
line wrap: on
line diff
Binary file Paper/Ikki_master.pdf has changed
--- a/Paper/chapter/0-introduction.tex	Mon Dec 04 22:15:52 2023 +0900
+++ b/Paper/chapter/0-introduction.tex	Sat Dec 09 19:20:23 2023 +0900
@@ -1,34 +1,22 @@
-\chapter{GearsOSにおけるファイルシステム}
-コンピュータにおけるファイルシステムは必要不可欠な存在であると言える。
-コンピュータで行われる計算やそれに使われるデータは全てデバイス上にファイルとして保持され、
-ファイルという概念なしにはユーザーがコンピュータ上で用いられる資源の管理はほぼ不可能であると言える。
-コンピュータの技術発展と普及に伴いファイルは物理的な存在場所に囚われない、
-つまりネットワークへの接続を通して別マシン上のどこからでもアクセスが行える存在である必要が生じてきた。
-物理的な位置を問わずネットワークを通してファイルを共有する機能を有するファイルシステムを特に分散ファイルシステムと呼ぶ。
-分散ファイルシステムはネットワークに配置されたファイルに対して、ローカルに保存されたファイルとほとんど相違なく取り扱いが行える透過性が求められる。
-
+\chapter{GearsOSのファイルシステムとDB}
+アプリケーションの信頼性を保証することは
+情報システムやコンピュータを用いる業務の信頼性の保障につながる重要な課題である.
+したがって,アプリケーションの信頼性を保証するために,基盤となるOSの信頼性を高める必要がある.
 
-当研究室では信頼性の保証と拡張性の高さを目指したOSプロジェクトである、GearsOSの開発を行なっている。
-GearsOSはテストコードでなく、AgdaやCoqなどの形式手法に含まれる定理証明支援系やモデル検査を用い、
-実施にOSとして動作するコードそのものを検証することで信頼性の保証を目指している。
-また、GeasOSはノーマルレベルとメタレベルを分離して記述するContinuation based C(CbC)にて記述される。
-ノーマルレベルとはユーザが行いたい計算をさし、メタレベルとはノーマルレベルの計算を行うための計算をさす。
-ノーマルレベルのプログラムのメタレベルに対して自由に差し替えを行うことにより、
-コードの整合性の検証やプログラムのデバッグを行えるような作りとなっている。
+当研究室では,信頼性の保証を目的としたGearsOSを開発している.
+GearsOSは,OSの信頼性を定理証明やモデル検査を行うことで保証することを目指している\cite{modelcheck}.
+同じく,当研究室で開発しているプログラム言語であるCbC(Continuation based C)で記述されており,
+ノーマルレベルとメタレベルを簡単に切り分けることを可能としている.
+そのようにして,CbCでメタレベルの処理を切り出したものに対して,
+定理証明やモデル検査を行うことで信頼性を保証する.
 
-現状においてGearsOSは言語フレームワークとして実装されており、
-実際にOSとして起動するためにはこれから実装が必要となる機能が複数存在している。
-その中の一つとして分散ファイルシステムが挙げられる。
-GearsOSのファイルシステムは既存のOSが持つファイルシステムの問題点の解決や
-従来ではアプリケーションが担っているバックアップを始めとした機能を搭載したファイルシステムの構成を目指して開発を行いたいと考えた。
-問題点の解決の一部として、既存のファイルシステムとは異なりファイルシステムをデータベースとして構成したい。
-レコードでファイルデータを取り扱うことによりファイルの更新や操作を簡潔に行い、またFileSystemのAPIを総括してトランザクションとしたい。
-加えて、データのバックアップについてもOSに搭載したい。
-従来のようにバックアップデータをユーザが管理するのではなく、OSが管理をすることによりバックアップデータ自体の紛失を防ぎたい。
+GearsOSは現在OSとして重要な機能がいくつか未実装であり,
+その一つとしてファイルシステムが挙げられる.
+ファイルシステムはファイルやディレクトリといった構造を持ち,データの保存,整理を行う.
+OSの機能の中でも特に重要な機能であるため,GearsOSにも実装を行う必要がある.
 
-また、GearsOSの分散ファイルシステムは当研究室が開発している分散フレームワークであるChristieの仕組みを用いて構成する。
-Christieは通信を形成する接続形態(Topology)の中枢を持たない、自律分散の実現を目的に開発されている。
-GearsOSのファイルシステムでは、Christieによるファイル通信を構成することで自律分散なファイルシステムの構築を目指したい。
-
-加えて、Christieの持つGear概念による簡潔な分散処理と、処理を行うノードごとの接続(Topology形成)
-を管理するTopologyManagerの機能を用いることによって複雑な分散処理の接続の簡潔化が期待できる。
+GearsOSへファイルシステムとDBを実装するにあたり,RedBlackTreeを用いる.
+DBはファイルシステムと本質的に同じ役割を持っているため同じRedBlackTreeで
+表現することが可能であると考える.
+よって,今回はGearsOSにおけるファイルシステムとDBをRedBlackTreeで実装するための
+設計を行う.
\ No newline at end of file
--- a/Paper/chapter/2-CbC.tex	Mon Dec 04 22:15:52 2023 +0900
+++ b/Paper/chapter/2-CbC.tex	Sat Dec 09 19:20:23 2023 +0900
@@ -1,73 +1,37 @@
 \chapter{Continuation based C}
-Continuation based C(以下CbC)とはC言語の拡張言語であり、関数呼び出しではなく軽量継続と呼ばれる処理を主体に記述をおこなう。
-GearsOSは現状ではCbCを拡張した言語フレームワークとして実装されている。
-CbCにおける継続とは通常の関数呼び出しと異なり、スタック操作を行わず、次のコードブロックにjmp命令を用いて移動する処理を指す。
-コードブロックごとの変数などの環境を保存しないため軽量継続と呼ばれる。
-また、CbCではこの軽量継続にて再帰呼び出しを行うことでループ処理を行う。
-
-
+Continuation based C(CbC)\cite{cbcllvm,cbc}は,当研究室で開発しているCの下位言語である.
+CbCでは関数の代わりにCodeGearという単位でプログラミングを行う.
+CodeGearは\emph{\_\_code}という記述で宣言することができる.
+また,データの単位にはDataGearと呼ばれる変数データを用いる.
+図\ref{fig:dgcg}はCodeGearと入出力の関係を表している.
+CodeGearはDataGearを入力として受け取り,別のDataGearに書き込み出力することができる.
+特に,入力のDataGearをInput DataGear,出力のDataGearをOutput DataGearと呼ぶ.
+gotoで次のCodeGearに遷移することができ,その際,Output DataGearを次のCodeGearのInput DataGearとして渡すことができる.
 
-\section{Gear概念}
-CbCにはCodeGearとDataGearという二つのプログラミング概念が存在する。
-CodeGearは関数に代わり宣言されるプログラミング単位と呼べる。
-CbCプログラミングでは連続したCodeGear間を遷移していくことで構成される。
-CodeGearはgotoという命令で遷移をしていくが、その際にDataGearと呼ばれる任意の型を設定した変数データを次のCodeGearへ引き渡していく。
-そのため、DataGearはCodeGearが処理の際に参照する専用の変数データであると言える。
-特に、CodeGear実行の際に入力されるDataGearをInputDataGear、CodeGearの処理後に出力されるDataGearをOutputDataGearと呼ぶ。
-CodeGearはInputDataGearを参照しながら処理を実行し、OutputDataGearとして次のCodeGearへ必要なデータを出力する。
-CodeGearとDataGearの関係を図\ref{fig:cgdg}に示す。
-
-\begin{figure}[tb]
-    \begin{center}
-        \includegraphics[width=120mm]{./images/cgdg.pdf}
-    \end{center}
-    \caption{CodeGearとDataGearの関係}
-    \label{fig:cgdg}
+\begin{figure}[ht]
+  \begin{center}
+      \includegraphics[width=80mm]{fig/cgdg.pdf}
+  \end{center}
+  \caption{CodeGearと入出力の関係図}
+  \label{fig:dgcg}
 \end{figure}
 
-
-CodeGearは通常の関数呼び出しのようにスタックを持たないため、
-一度CodeGearから別のCodeGearへ継続した場合、元の処理へ戻ってくることができない。
-言い換えると、CodeGearから別のCodeGearへgotoで遷移した際、元のCodeGear内で使用されていた変数データなどの環境は全て破棄される。
-この点からGearsOSのループ処理はCodeGearの再帰呼び出しで実装することが望ましく、
-またgotoで遷移をした際、gotoより後に記述した処理は実行されることなく次の処理へ移るため、これを意識したプログラミングが必要となる。
-
-
-\section{CbCの例題}
-CbCの簡単なプログラムをソースコード\ref{src:cbc_sample}に示す。
-CG1, CG2,はそれぞれCodeGearであり、\texttt{\_\_code}で宣言されている。
-CodeGearには関数の引数のように、InputDataGearとして任意の型の変数を定義する。
-CodeGearへの遷移をする際はgotoコマンドを使用し、遷移先のCodeGear名と指定されたDataGearと同じ型変数を入力する。
-
-今回のソースコードでは、
-mainから二つのint型のDataGearの入力と共にCG1へgotoで遷移、
-続いてCG2へCG1での処理結果をDataGearとして引き渡し遷移、
-最後にexitをするという流れとなる。
-
-\lstinputlisting[label=src:cbc_sample, caption=CbCの例題]{src/CbC_sample.cbc}
+CodeGearから次のCodeGearに遷移していく一連の動作を継続と呼ぶ.
+通常の関数の場合,関数から次の関数へ遷移する時にfunction callが行われる.
+function callは前の関数へ戻る場合があり,そのためにcall stackを保存する.
+他方,CbCの継続はfunction callをせずにgotoによるjmpで行われる.
+jmpはfunction callと異なり,call stackのような環境を保存しない.
+よって,CbCのgotoによる継続はfunction callによる継続と比較して軽量であるといえる.
+そのことから,CbCにおける継続をfunction callによる継続と区別して,軽量継続と呼ぶ.
+これらの仕組みにより,ノーマルレベルとメタレベルの処理を容易に切り分けることが可能となる.
 
-\section{metaレベルのGear}
-図\ref{fig:cgdg}で示したCodeGearとDataGearの関係性は
-単純に連続した複数のCodeGearがDataGearを介してやりとりをしているだけのように見える。
-しかし、実際にはCodeGearの遷移の際には、プログラマが記述するノーマルレベルからは見えないメタレベルの計算が行われている。
-メタ計算とはノーマルレベルのプログラムを行うための計算を指し、
-メタレベルを考慮した上でCbCのCodeGear, DataGearの遷移を図式化すると図\ref{fig:meta-cgdg}の下段のように表現できる。
-CbCではCodeGearの遷移に必要な遷移先のCodeGearへのDataGearの受け渡しやデータの整合性の確認などは
-CodeGearごとに準備されたMetaCodeGearと呼ばれるメタなCodeGearで行われ、
-MetaCodeGearで使用されるDataGearをMetaDataGearと呼ぶ。
-また、CodeGearの実行直前に呼び出されるMetaCodeGearを特にStubCodeGearと呼ぶ。
+CbCのプログラム例をソースコード\ref{src:cbc}に示す.
+まずmain関数においてadd1 CodeGearへgotoを行う.
+その際add1へInput DataGearとしてnを渡す.
+Cのgotoが\emph{goto label;}という記法で,ラベリングした箇所へjmpを行うのに対し,
+CbCのgotoは\emph{goto add1(n);}という記法で,add1 CodeGearへn DataGearを渡してjmpを行う.
+add1は処理の最後にadd2 CodeGearへgotoを行う.
+その際Output DataGear out\_nをadd2のInput DataGearとして渡す.
+このようにCbCではCodeGearのOutput DataGearを次のCodeGearのInput DataGearとして渡すことを繰り返すことで処理を進める.
 
-MetaCodeGearとMetaDataGearはプログラマが直接実行するのではなく、
-ビルド時に実行される、Perlスクリプトによって実装されたトランスコンパイラによって自動的に生成される。
-しかし、自動生成されるStubCodeGearに問題があったり、
-特殊な処理を組み込みたい場合はプログラマが直接記述することも可能である。
-トランスコンパイラはすでに実装されたStubCodeGearは上書きしないため、
-この場合、プログラム上にStubCodeGearを直接記述したいCodeGear名の後ろに\texttt{\_stub}を付け加えたCodeGearを記述すれば良い。
-
-\begin{figure}[tb]
-    \begin{center}
-        \includegraphics[width=120mm]{./images/meta-cg-dg.pdf}
-    \end{center}
-    \caption{メタレベルを考慮した場合のGearの関係性}
-    \label{fig:meta-cgdg}
-\end{figure}
+\lstinputlisting[caption=CbCのプログラム例,label=src:cbc]{src/hello.cbc}
\ No newline at end of file
--- a/Paper/chapter/abstract.tex	Mon Dec 04 22:15:52 2023 +0900
+++ b/Paper/chapter/abstract.tex	Sat Dec 09 19:20:23 2023 +0900
@@ -1,37 +1,25 @@
 \chapter*{要旨}
 
-GearsOSはユーザレベルとメタレベルを分離して記述を行うことで拡張性と信頼性の保証を目指している。
-GearsOSはContinuation based C(以下CbC)で記述されており,Gearというプログラミング概念を持つ。
-GearsOSはx.v6を参考にした実装と、Unix上の言語フレームワークとして実装のがある。
-OSとして重要なものとしてファイルシステムがある。とくにGearsOSでは通信とファイルシステムを同時に扱えるようにし、
-分散ファイルシステムとしても使えるように設計実装している。
-当研究室が開発している分散フレームワークChristieでは DataGearManagerというDataGearのPoolをノード間で接続して通信する。
-これを、GearsOS のファイルAPIの構成に使う。
-DataGearに対して、DGM毎にkeyを使ってTake/Put/Peek を行う。これにより、
-ファイルあるいは通信、つまり分散ファイルシステムを、トランザクションとして扱うことができるようになる。
-従来のファイルシステムではレコード単位の操作をトランザクションするのはOSの機能ではなかった。
-例えばバックアップや証明書などの機能はアプリケーションに依存していた。
-本研究ではGearsOSを用いて単一のDataGearMager通信路を実装して
-分散ファイルシステムの構成を行うと同時に、GearsOSの言語フレームワークとしての評価と検討を行った。
-また、これは GearsOSのアプリケーション実装の例としても見ることできる。
+当研究室では,Continuation based C(CbC)を用い,定理証明やモデル検査などで信頼性を保証することを目的としたGearsOSを開発している.
+OSにおいてファイルシステムは重要な機能の一つであるため実装する必要がある.
+現在,一般的なアプリケーションはファイルシステムとデータベースを併用する形で構成される.
+DBはSQLによってデータの挿入や変更が可能だがスキーマを事前に定義し,insert時にそれらのschemaを指定する必要がある.
+GearsOSのファイルシステムではSQLの機能に相当するgrepやfindなどのインターフェースを実装し,
+アプリケーションのデータベースとしてファイルシステムを使用する構成が取れるようにしたい.
+ファイルシステムとデータベースの違いについて考え,データベースとしても利用可能なファイルシステムを構築したい.
+本研究では,ファイルシステムとデータベースの違いについて考察し,Gears OSのファイルシステムの設計について述べる.
 
 
 \chapter*{Abstract}
 
-GearsOS is an operating system designed to guarantee scalability and reliability by separating user-level and meta-level descriptions.
-GearsOS is written in Continuation based C (CbC) and has a programming concept called Gear.
-There are two implementations of GearsOS, one based on x.v6 and the other as a language framework on Unix.
-An important part of the OS is the file system. 
-In particular, GearsOS is designed and implemented so that it can handle communication and file system at the same time, 
-and can be used as a distributed file system.
-In the distributed framework Christie developed in our laboratory, a DataGearManager, 
-a pool of DataGear, is connected between nodes for communication.
-This is used to configure the file API of GearsOS.
-Take/Put/Peek is performed on DataGear using a key for each DGM. 
-The file or communication, or distributed file system, can be handled as a transaction.
-In the conventional file system, it is not a function of the OS.
-For example, such as backup and certificates were functions of applications.
-We implemented a single DataGearMager communication channel using GearsOS and
-evaluated GearsOS as a language framework.
-This can also be seen as an example of an application implementation of GearsOS.
-
+In our laboratory, we are developing GearsOS,
+aimed at ensuring reliability through the use of Continuation based C (CbC)
+along with theorem proving and model checking. 
+Implementing a file system is a necessary task in an OS as it's one of the critical features.
+Currently, general applications are structured to use both file systems and databases.
+While databases allow data insertion and modification through SQL,
+they require predefined schemas and the specification of these schemas at the time of insertion.
+In the GearsOS file system, we aim to implement interfaces equivalent to SQL functions such as grep and find,
+enabling the use of the file system as a database for applications.
+We want to construct a file system that can also function as a database by considering the differences between file systems and databases. 
+This research discusses these differences and describes the design of the file system for Gears OS.
\ No newline at end of file
--- a/Paper/chapter/appendix.tex	Mon Dec 04 22:15:52 2023 +0900
+++ b/Paper/chapter/appendix.tex	Sat Dec 09 19:20:23 2023 +0900
@@ -3,6 +3,6 @@
 
 \section{研究会発表資料}
 \begin{itemize}
-  \item 分散フレームワークChristieによるBlock chainの実装 一木貴裕, 赤堀貴一, 河野真治  情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS), May, 2019
-  \item GearsOS の分散ファイルシステムの設計 一木貴裕, 河野真治  情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS), June, 2021
+  \item GearsOSにおけるinodeを用いたファイルシステムの構築 又吉 雄斗, 河野 真治 情報処理会 システムソフトウェアとオペレーティング・システム研究会(OS), May, 2022
+  \item Gears OSのファイルシステムとDB 又吉 雄斗, 佐野 巧曜, 河野 真治 情報処理会 システムソフトウェアとオペレーティング・システム研究会(OS), May, 2023
 \end{itemize}
--- a/Paper/chapter/history.tex	Mon Dec 04 22:15:52 2023 +0900
+++ b/Paper/chapter/history.tex	Sat Dec 09 19:20:23 2023 +0900
@@ -1,5 +1,5 @@
 \chapter*{発表履歴}
 \begin{itemize}
-\item 一木 貴裕, 河野 真治. 分散フレームワークChristieによるBlock chainの実装. 情報処理学会 システムソフトウェアとオペレーティング・システム研究会 (OS), May, 2019
-\item 一木 貴裕, 河野 真治.  GearsOSの分散ファイルシステムの設計. 情報処理会 システムソフトウェアとオペレーティング・システム研究会(OS), May, 2021
+\item 又吉 雄斗, 河野 真治. GearsOSにおけるinodeを用いたファイルシステムの構築. 情報処理会 システムソフトウェアとオペレーティング・システム研究会(OS), May, 2022
+\item 又吉 雄斗, 佐野 巧曜, 河野 真治. Gears OSのファイルシステムとDB. 情報処理会 システムソフトウェアとオペレーティング・システム研究会(OS), May, 2023
 \end{itemize}
--- a/Paper/chapter/thanks.tex	Mon Dec 04 22:15:52 2023 +0900
+++ b/Paper/chapter/thanks.tex	Sat Dec 09 19:20:23 2023 +0900
@@ -1,10 +1,7 @@
 \chapter*{謝辞}
 \addcontentsline{toc}{chapter}{謝辞}  
-本研究の遂行、本論文の執筆にあたり、丁寧な御指導と御教授を賜りました河野真治准教授に心より感謝いたします。
-ご多忙の中にも関わらず、研究の引き継ぎと御教授を頂きました卒業生である清水隆博さん、赤堀貴一さんに感謝いたします。
-加えて、共に研究の遂行を行ってくれた又吉雄斗さんを始めとして、共に研究に励み心の支えとなってくださった並列信頼研の所属学生に感謝いたします。
-最後に、理工学研究科情報工学専攻の教員方、職員方と学友、並びに生活と心の支えをくださった家族に深く感謝いたします。
+本研究の遂行、本論文の執筆にあたり、
 
 \begin{flushright}
-    2022年 3月 \\ 一木貴裕
+    2024年 3月 \\ 又吉雄斗
 \end{flushright}
Binary file Paper/fig/Context_ref-1.jpg has changed
Binary file Paper/fig/Context_ref.pdf has changed
Binary file Paper/fig/cd.pdf has changed
Binary file Paper/fig/cd.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/cd.svg	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Do not edit this file with editors other than diagrams.net -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="701px" height="381px" viewBox="-0.5 -0.5 701 381" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2022-01-31T14:27:14.728Z&quot; agent=&quot;5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36&quot; etag=&quot;3kEqHgka453PqLswF5Cy&quot; version=&quot;16.5.2&quot; type=&quot;device&quot; pages=&quot;4&quot;&gt;&lt;diagram id=&quot;AAaulOYO_kfhROZJ8ttr&quot; name=&quot;Page-1&quot;&gt;7Vpbb+I6EP41PBbFCQR4LLTbcySqrU5X2u2jSwzx1omRYwrsrz9jYpOLA2S7XLKoEhLxZGzsb77xjMe0vFG0ehB4Hj7ygLCW6wSrlnfXcl3kDlz4UpJ1Kun5g1QwEzTQSpngmf4iWuho6YIGJCkoSs6ZpPOicMLjmExkQYaF4Mui2pSz4q/O8YxYgucJZrb0Ow1kmEr7bi+T/0PoLDS/jMz6ImyU9UqSEAd8mRN59y1vJDiX6VO0GhGmwDO4pP2+7Hi7nZggsazTYfrz5d9vfLKU8vH24cm7+Tr+Or5BfjrMO2YLvWI9W7k2EAi+iAOiRnFa3nAZUkme53ii3i7B6CALZcSgheBxShkbccYFtGMeg9LQnqie+zsRkqxyIj3xB8IjIsUaVMxbR4OoWeTr5jIzCTKyMG+OvhZiTYPZdugMKXjQYP0OcIdxg1GApeQwZjiZp9Sd0pXC+SiI+UXE+jZinQrAOqfCy206Xm4RL1RBsfMC5tkABbA16SYXMuQzHmN2n0mHRVfNdMaczzV4P4mUa73P4oXkRWjJisofuecXNVS7q1t3Kz3yprE2jRjWqzrdOG0HuUaSdvX9nhFkvTetQvcnIijgRoQW7rRowhdiQvbgpmGTWMyI3IevNpwCdS9BBGFY0vdiPDi6ub2G+4frNMw/agQuEge3KgXIQlEOpKKrbDmsyW4IjA6RV/tL5iMveRep9JePc9utyW1Uk9o523UrbGdktT1A/8ITp7CyLXW8QZE6nl/iRLpu3SufwZQG6nRKA6HSQCkw1kAbfm2X/XHK9Y5LuUrqoHpbbYmmzgGafpxyJuc+RDnvk3KnoFzfohyN4YylLCIIsegHm7ksci6Rgr+RUkZekaRjRmcxNCfAEBWFhyo0UDgH3eoXEQ0Ctiv4FJl9hHDj9Yu4d+xoU5Xve6eKNoMKOwSwlGu3Q/ngdWk7GPdrbJ5U3jAufe5CTT+odpqWWKKmH1U7/aYhVufwcm25OKqbGZktqyGpkd87UmrUcy+bGqHOcVn3d6TjTl3WuZ+sOwnruhbr3ggMeAsykPtM5X2vAp5m6kmrqbfmGuAas8TScWu72IuliQN7K2h48dQpbCBtp++dt26K+nV3Fr/mznKewimyj8hq/q6Td8urdbyD12JndTuzNzf8NrFcXLj8baLBaTeJrzh6uKXoUXWeOS+N7cwyb4c9MX5TnLtiU3m97sFAPzirqeya/A4bJEsaMZzizGNpUgEFzCSkLBjjNV+o6SYST95MaxhyQX+BPs4sh4XUKYDnFDSeVU89piAJ6DwZsFFJ9IhXBcUxTqSZDWcMzxP6upmf6hhBSKbxkEvJI62Up0pApnix4eQJ9saqAhaqqi5sL9CPb2M7wn+hTNXAv63nO2uvv+thjEzlPv9KwLVoPBtv1O46meQ/jYESceg+ZZvzZggdCYwwnKujyAaT7hA+gNJIJYVdmOsI2ihrw0epCzniMUwf040VCVBjSRQ9wJ8llvh1S1zb3vud5DALzKmqptFP59d2wR1S3YgmCeXxp8lPYPKqJOisJvfs5LHdbn/a+gS2Hlzc1nYVxTL0+Wp3bt+/8OHbZJyH/7Wkbd2Qsl75nn2bD/7pPTvqlgb6cFkPmtl/bFP17J/K3v3/&lt;/diagram&gt;&lt;diagram id=&quot;s08jDtw-m_Aoh3yq8LbV&quot; name=&quot;Page-2&quot;&gt;7Vpdc5s6EP01nmkfkgFksPMYx07bmd5Mpu7cmzx1ZCNjJYCILGLcX38lI/EpF5LixEzrF1sHaUFnj1e7SANwFSSfKIzW/xAX+QPLcJMBmA4sy7QuLP4lkF2KjEwJeBS7slMOzPFPJEFDojF20abUkRHiMxyVwSUJQ7RkJQxSSrblbivil+8aQQ/VgPkS+nX0P+yydYqOrVGOf0bYW6s7m85FeiWAqrOcyWYNXbItQGA2AFeUEJb+CpIr5AvyFC//js2fxuTOeJwmRjhd/fg6HYVnqbHrlwzJpkBRyF5tevbZu7vdfg+sxXwbk/jpbPFtJocYz9CPJV9yrmynCKQkDl0kjJgDMNmuMUPzCC7F1S2XDMfWLPDl5RUJ2RXxCd2PBdfXBv8IHPu+wkMS8sETeWdEGUoqrmqYp5mRz1WLSIAY3fFx0oot5yT1ajp22t7m3rcM2Wdd8PxQ9oNScF5mOSeV/5C8vsB91ks4NlpwfIjLdsRpOD/IpaXI26m2USPTdDRkZmDnbIJmNrkVHl1QM5NwE6UhZ4UTwf7ReARWhcdxncehTpPHYnHYRxatcZlFoFHjm7Lo9JFF4JwYi6MWLIbupcgF8ohXYK4cPDlbdHcnGue2at7LnvvGNCn2nO5UK8GsMIy37gtX8kGioca8zEUbEtMlav5TMkg99Ct7MgQit5T51B1ecKitcajCKPIhw8/lfEnnZXmHW4L5dPP11i7rya6G/nTeclQxQakYcoyKIbNiKCWmZmgvumzar9fhuFsdavVk/lJPh7RrNGi3Yx2Cljp0/urwGDq8qOkQh7wsEx6hCNU0ycM+Kwtxwyh5RJUUUZM1Qh97IW8uuWwQxydiEcG8dLqUFwLsuv6htass96Ot+ZXValhfrHT5JzjWYmXWKybMaUj+emfffnf3mDX39CElq5QH710dqFc8/WKxWh6Y753Ymv2sVZ1To7FNsfpHFAjqf9mYmakweKKpGegqNQNvnJqZdrdS7G+NoBTWLMXTrlb7IMUH/ym+ngY3y/DheWGD3f23aKJeFhSFxxmeyyahbE08EkJ/lqMV9eV9vhISSeE9IMZ2chcHxoyU5asEaxYjYCbeRsGCUVmy545lN0Vd0bpFFHO+RBZc0HJFUV2Ke9xS3EO9lFtr9PfWRd0LC8dnchtmIPbU1E6M8xSLbSrOHFit9nsyBcjxxHcUMzV8QRWoEP6Aqc0UfkTcP5f8DiEM0BlHYSDSlf219HEs4wOvaZC4/rFuVj6ysOAhSDdTTHlyQ+iuYuvLDS98b+JgwV3ffWXloxU7zbpK5VIqtozqKVi2wfo2dVX9pUTNIX3ZxHrTPSxt7DZr3J1o7D52oE134X8jgOrXZmCU/z/muLK3e+Q00dJtaXQSmStx+HDAdvFzFdpEMKwF8PbhN3uAop0CXLhjIbyHaJtZ/6NCePUYgi6E644hdBHCtUc9WrwZ69tRj+oy6VjnmsMeuoXyFYc9eDM/65NGivzEFJj9Dw==&lt;/diagram&gt;&lt;diagram id=&quot;_SMWdJT_P9braKPgiXsX&quot; name=&quot;Page-3&quot;&gt;7Vpdc+I2FP01zLQPZGwLG3gMJNl2mu5sm6ab9CWjYGGU2BaVRYD99ZWwhC1bxIaCgc3mJejavpbOPfdLcgsMo8UnCqeT34mPwpZj+YsWuGo5ju30Hf5PSJappGtLQUCxL2/KBHf4G5JCS0pn2EeJdiMjJGR4qgtHJI7RiGkySCmZ67eNSai/dQoDVBLcjWBYln7FPpuk0p7TzeS/IBxM1Jttr59eiaC6Wa4kmUCfzHMicN0CQ0oIS39FiyEKBXgKl8X9H1fz6yV5TeJP4Uv0NLwHg3aq7GabR9ZLoChme1YtF/sGw5kETC6WLRWClMxiHwktVgsM5hPM0N0UjsTVOecMl01YFPKRzX+OcRgOSUgoH8ck5jcN5BsQZWhRsEnFguw1ypyeiESI0SV/TmpxLTfVo5gp7TTPzGx7UjbJm7gnhVBSK1irzuDjPySCW6DpnC+YHM0TAxNUg8m18DCCqoGEyTSNLWO8EOAfDEZg6zD2yzB2DCh2DgVi5xxBXJNPgmgbyHgoFO2/Bre/YXD/hILbPy3ozLG7bBtA83mSkUNC2YQEJIbhdSYd6I6e3XNLyFQC+oIYW8qMCWeM6HCjBWYP4vELV44ec1euFlLzarBUg5gvN33I46FdCh7zV7MHVyPtyS+IYo4YolIoTIt5Kr0McRBzWYR9P8yikABhB7tzIMmMjtA793myUIA0QO/q88xEoiiEDL/ps9u7c3nn6FzAPZ5zGafbrYFi7F+KUjBLgznkdEfLeYCb579dxX+jt1nvetuhvaBT0wuA2eA5g7oGgypZbV+Rb/hCMF9dVoV1dD6BboEo6TLlU/n6tKioX1DkFBSlOJQUrUi3XvbuPOztl4f/L3q728TuQ/MQ1OThhmD8g4db8bDckeGYd+XCABShEid5emA6ERNGySsq9A2GVgLKrD7iLBEpf3O6N+Uune6HylbFHs8tJytTVwIOlaxUea9Zx+dr/pDWKTaNR7eOfY4VmevpHG+wZ6RDa/rPi0c7Dw9fo/unwdvfFm5bZcxOvttxLC1jtq0LC4BdWp4xiZnyxJYDbm4s/tdAjlW7qpVJ1tlApmZaHjXNM/MwR/ewo/c89llubnnWqcFYZ3vrY/aOteOJvcHmzVTt3b5OqZ2r9l6noKjhqt1290vF76h9VFVZNRWPupHx/VDRtC/phaIPSaYw1jjp/TsTx5cD7Vcg/r8iPodLfnMMI9TmUhiJvLO6lmp2rJ9434LE9Z/VC/iE03ekSpT4mdZ86w4TlcsUUw0QpMkVpjwdErosTPrXz7yL/jyLnnmtt2m2e+/eQjRmJ9q7FfZLTG3H+hC/me6tW46YzTUe6vejFnWrIq0WZy+s3k49x8EDcK9mAHbMjGmotTBtwKZ+KpqylvhERPVlWQwA4/GqQyuFBbHSzM1TDeWgtFusqwwTp+/+hSPWusf9+3B+4xGrd3a+L/YYLO8sAoAqQKorsP4xI4Ca5hEjgPT8+DmZlqoRpfVHjVG/xihUwp6hxrCarDGc8g7xOvhva9mMPVkJqvMnRvO1vg9l+OKxDbAM+UX1W/s2vHFTu87JQNaej0KYJHj0Xoe+aaM469w9p1O/d+eDxsvCo57Xgqpj1rrtNujauiL3YO22kVlONbMy5tgb3DL/0ecGYjX4MegRi0MjxDV2y88N4jqpcV8Rkg+zr9RT2mff+oPr/wA=&lt;/diagram&gt;&lt;diagram id=&quot;HHLeNmLiLjBSiti2kdQe&quot; name=&quot;Page-4&quot;&gt;7Vtdc7I4FP41zuxetBMIoF7aD7f79U53nZ1tL6lEzfsisSFW7a/fRBJCAAVdoTptbwoHciDPec5Xgh14O1//Qv3F7E8SoLBjg2DdgXcd27bsvs3/CckmkXQtKZhSHMibtGCE35EUAild4gDFxo2MkJDhhSkckyhCY2bIfErJyrxtQkLzqQt/igqC0dgPi9J/ccBmibRnd7X8AeHpTD3Z8vrJlbmvbpYziWd+QFYZEbzvwFtKCEuO5utbFArwFC4j/Bt4ex+uRgMbBYTeP8X/oKtE2fCQIekUKIrY0aof/3qHL39H69eHQX/4+/enh9dXIoeANz9cSrzkXNlGAUjJMgqQUAI68GY1wwyNFv5YXF1xynDZjM1DfmbxwwkOw1sSEsrPIxLxm27kExBlaJ0zScV8rBRkzk5E5ojRDR8ntbjATfQoYsq5rLSVLU/KZlkL96TQl8yapqo1evxAAngAmNblgsnRPDMw7WowuRYeRVA1kH68SELLBK8F+I3BCC0Txn4RRqcERacpEOElgpiST4JolZCxVRSdImgBzzHylFA2I1MS+eG9lt6Yjq7v+YOQhQT0O2JsIxOmv2TEhButMXsSw69defacuXK3lpq3Jxt1EvHpJoM8q68Ez9mreuD2zBj5iCjmiCEqhcK0mGfSQYinEZfNcRCEOgoJEI6wOweSLOkY7QFcBnbm0yli+wKuV04kikKf4Tfz7U5OC/cSnQu6Z+ZcXg0Uo2AgKkGdBjPImY6W8QA3y3+riv+l3gb2elvTXgBreoFdbvCMQd0SgypZbV+RT3gkmM9OV2GOySfYzRElmaYclS1P84r6OUV2TlGCQ0HRlnTptI/nYfe0PPx/0ds9JHY3zUO7Jg/dLx6egIe9Ag9xxJtyYQCKUIGTPD0wk4gxo+QHyvUNJa2EL7P6mLNEpPzd6b4sd5l0bypb5Xs8t5isyroS2FSy6pcYJ+BT/pTGyfeMH20c1XtdVkHmeibFP7pltKwiaGff7djAyJhX4BpAeEzLMyERU67YseFwCPhfCzlWLapWF3s72NROy6Ne88JczDZd7MN7Husi12U8cG4wOjVg/Jy9Y+14YoFym7dTtXf7JqWOrtp7Tk5Ry1W7VWcx6HO2j6osq6Yi/KLiKahYtqLmhaIRiRd+ZHDSe12K3csb42gq/v9A/B0G/ObIn6MrLvXnIu9sryWabfATb1yQuP6zegB/4eQZiRIlfqE1n3rEi8ppiledIp/Gd5jydEjoJvfSv37jXfS35fyF13q73vbk7VuIJuxMm7fceklZ35Hu4bfTvnWLEbO9xkMdPxtRtyrSGnH2GvSO6jkaD8C9ugG4nDEttRbFhS/lp6Ip64gvRFRfpmMAnEy2HVohLIiZajdPNBSD0nGxrjJMnL/757ZY6273N+f8/YtzfrHIALyLiAB23RJsRzPQTgSwy9bv2o0A0vOjl3hRqEaU1q8ao36NkauEvZIaA7QZZtTEMhRLg/+hltXs0SWoyZ8IrVJ9n8rw+W0bCEryi+q32jF8nYVL3Z+PQz+O8Xhfi75rpVi37p7t1G/e+UnrdeGOr2fa6bdh1T5r3X4bdi1Tkdtuv23XWMzV1LF2OGb2s88dzGrxc9BzKw/tGiu9l4ZxnezYcpAsLmLuTYrjJRUIZHIc2I4CDSe+U2yK5wgAgLHR10RKNF3KKUmJqZ+1Y+3Dvrw7PCWmmOqUKPdpVUq8Bl734LSYWee2kuHZbV8tOasGTP3ypXJ790M/osrnZMc6Mic7+a+xvJZzcvFrPjwRFl7jmH1FpIQzeRs19/0OP9U/k0psrH9sBu//Aw==&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="435" y="20" width="160" height="180" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><rect x="180" y="20" width="160" height="180" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="260" cy="60" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="220" cy="140" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 300 160 L 299.99 233.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 299.99 238.88 L 296.49 231.88 L 299.99 233.63 L 303.49 231.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="300" cy="140" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 220 120 L 260 80" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 260 80 L 300 120" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><rect x="435" y="0" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 15px; margin-left: 436px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">inode tree</div></div></div></foreignObject><text x="465" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">inode tree</text></switch></g><rect x="180" y="0" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 15px; margin-left: 181px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">index tree</div></div></div></foreignObject><text x="210" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">index tree</text></switch></g><ellipse cx="515" cy="60" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 475 160 L 474.98 242.64" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 474.98 247.89 L 471.48 240.89 L 474.98 242.64 L 478.48 240.89 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="475" cy="140" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="555" cy="140" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 475 120 L 515 80" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 515 80 L 555 120" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><rect x="170" y="240" width="210" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 208px; height: 1px; padding-top: 255px; margin-left: 172px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span>key: name-&gt;value (filename)</span><br /><span>value: gearsDirectory-&gt;INodeNumber</span></div></div></div></foreignObject><text x="172" y="259" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">key: name-&gt;value (filename)...</text></switch></g><path d="M 160 35 L 173.63 35" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 178.88 35 L 171.88 38.5 L 173.63 35 L 171.88 31.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="0" y="20" width="160" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 158px; height: 1px; padding-top: 35px; margin-left: 2px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font color="#ff0000">get</font><br />key: name-&gt;value (filename)</div></div></div></foreignObject><text x="2" y="39" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">get...</text></switch></g><path d="M 375 325 L 405 325 L 405 34.9 L 427.67 34.93" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 432.92 34.94 L 425.92 38.43 L 427.67 34.93 L 425.93 31.43 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="175" y="310" width="200" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 198px; height: 1px; padding-top: 325px; margin-left: 177px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font color="#ff0000">get</font><br />key: <span>gearsDirectory-&gt;INodeNumber</span></div></div></div></foreignObject><text x="177" y="329" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">get...</text></switch></g><rect x="435" y="250" width="195" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 193px; height: 1px; padding-top: 265px; margin-left: 437px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">key: gearsDirectory-&gt;INodeNumber<br />value: newDirectory</div></div></div></foreignObject><text x="437" y="269" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">key: gearsDirectory-&gt;INodeNumber...</text></switch></g><path d="M 301.04 270 L 301.01 293.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 301 298.88 L 297.51 291.88 L 301.01 293.63 L 304.51 291.89 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="0" y="20" width="160" height="30" rx="4.5" ry="4.5" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><rect x="175" y="310" width="195" height="30" rx="4.5" ry="4.5" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><rect x="430" y="350" width="270" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 268px; height: 1px; padding-top: 365px; margin-left: 431px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">gearsDirectory-&gt;currentDirectory = newDirectory</div></div></div></foreignObject><text x="565" y="369" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">gearsDirectory-&gt;currentDirectory = newDirecto...</text></switch></g><path d="M 474.97 282.01 L 475.08 341.62" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 475.09 346.87 L 471.58 339.88 L 475.08 341.62 L 478.58 339.87 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="470" y="300" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 315px; margin-left: 471px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">if exist</div></div></div></foreignObject><text x="500" y="319" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">if exist</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
\ No newline at end of file
Binary file Paper/fig/cgdg.pdf has changed
Binary file Paper/fig/context.pdf has changed
Binary file Paper/fig/context.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/context.svg	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Do not edit this file with editors other than diagrams.net -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="621px" height="321px" viewBox="-0.5 -0.5 621 321" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2022-02-17T08:33:38.391Z&quot; agent=&quot;5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36&quot; etag=&quot;nzJcoUbHFJ03Vc-ABM0V&quot; version=&quot;16.5.6&quot; type=&quot;device&quot; pages=&quot;2&quot;&gt;&lt;diagram id=&quot;ob5f7rbcNVaDIw1cfcWt&quot; name=&quot;Page-1&quot;&gt;7VrbcpswEP0aHuNBEjc/xpe4nWnaTPPQ+FE1CpBixMjCl3x9hREGLGwnro2xp0/RLpIM56z27EI01J8uRwzH/iN1SahB3V1qaKBBCHTgiD+pZ5V5LFM6PBa4clLheA7eSb5SepPAJbPKRE5pyIO46pzQKCITXvFhxuiiOu2VhtVfjbFHFMfzBIeq91fgcj/zOtAu/F9I4Pn5LwOrm12Z4nyyfJKZj126KLnQUEN9RinPRtNln4QpeDku2bqHHVc3N8ZIxD+y4PvP99GbN74bzvW7B/vpkfIeuIPZLnMcJvKB5c3yVY4Ao0nkknQTXUO9hR9w8hzjSXp1ITgXPp9PQ2EBMVRvSt7nnDBOliWXvMkRoVPC2UpMkVehJQGTEQN1aS8K/EE+xy9hj/KJWHLubfYuYBEDicwnUAJdBRXiijCRJmXcpx6NcDgsvL0qbsWcb5TGEq03wvlKxjxOOK1iSZYBfymNx+lWHVNag6XceW2sciMSz/tSNsb5DqlRLFpb+aqdrM1owiZkDzKGPJKYeYTvQ1CelxS2vUHASIh5MK+evpMTaihhP8AcjwhmFw//TRSvtuxS+Ds10W+cLfid6w5+ueos4W9eZ/ibSvjPePK7L8S7FUcAdrcUANUogN7kGdgERAvOAGyXAljXeQSsK1IA+8IKYCtY9WkkHoYrUK2dFTxmnNE/pE9DyoQnolF6Ml6DMNxy4TDwImFOBG5E+HspXoGow+/lhWnguutjVUdAlaJTpCCzygFwVA7qa9BzqXCLMlDbVLj7wRRktioDAdQWRsGV8mmcms/10nvG8Ko0IaZBxGelnZ9SR5EqgAOr6brah4tBtmMRKZtbOz54ujUpeUf1JnYL4tmuzHla6XK2CjdQU7jBmrTpnC1tqp0e6HhUnIrblS79cPXcrHSptRbo/Eh4nNxwAQG6h9v4RlmA5iXlpigaPiM4hcaMKxJzasHJe5ODigNPLjn/drLUynxvI9+kFJit0wIIFbRg52sk0tCm9RsiTah5F2pDU3Me0vHQ1hxTu7dvN1MZxuFMBVCjqQrVEJUJxn+mykxZNUwZjTJ10Q8junZEVwq0hroY+NFvI9BplajkwdICTo9i1G4BpdapGT2qMzW2XmIZCJaj4/B8vYFOFqodWivrFwNevH5Rqz3j5vsowzarNNSUkc32UY7CQqs/nm2Khot9PENAQcy48XcwStTWkNBo1CL1hSG6cQ4stFUtn+89mDCL/+PKhLH4bzg0/As=&lt;/diagram&gt;&lt;diagram id=&quot;u5YHtWU5YYRrXVCOU5k4&quot; name=&quot;Page-2&quot;&gt;7VrbctsgEP0aPdZjhK6PieOknekl0zw0eaQWtmhk4WIU2/36goRuoMSX+JJk/GTtClbinMOyIFtwMF3eMDSLv9EIJ5bdj5YWvLJsG/RBIH6kZ1V4PFc5JoxEqlHtuCP/cNlTeTMS4XmrIac04WTWdo5omuIRb/kQY3TRbjamSfupMzTBhuNuhBLT+4tEPC68ge3X/s+YTOLyycALiztTVDZWI5nHKKKLhgsOLThglPLiaroc4ESCV+LiB9d3yc34Z+z1w8fsfvyd/iWfimDX23SphsBwyvcb2i5CP6EkU3ipsfJVCSCjWRphGaRvwctFTDi+m6GRvLsQkhG+mE8TYQFxOaYpVxoAUNhzzuhjBbxsoR6IGcdLjaE1wwMV5kKsmE4xZyvRT0WxoaJJ6dQOlL2oWQee8sUNxit+kVLapIpdoykuFKBbgAsNcK8QRzcYsXcLst8GGfZNkIMOjJ1DQex8fIj9E0PsGhAPBDh4yQ2Ec2cLxgK2AU0oE56UplhiS5JEc6GETFJhjgRyWPgvJa5EJPELdWNKokg+ppO3NrNvKAW5JnVdGQgeijqvg7oId84OEU2syM8h/CZmhj4xOtAFdge8waHg9Q14Qe9HxmfZeWro3AFXIw+eeGoE5gyIRN2oTMp4TCc0Rcmw9mpg1m2+UjpT+P3BnK8UxCjjtM05XhJ+L7v3XGU9NO5cLVXk3FiVRiqG2+gkzYfmvbpbbq225FoOewemBXQ0YyP8QjtVR3PEJvjFeHa3dBhOECdP7bfbuxBCYxLPefb7PedJN9ygEj5qoiz3gg2Q7d6XVCTKqlobQisA1kWgLkK/9HjW0LWCayuwraFvBa514Z+zq8a442zAuHPM9ApAB+PF2qhTPpxRkoMvbdsKbUV4mDN/OZRaOBOuEa4vp14H4e5RCTdPEj5SDnVOXmwC8zTBOVebm+XDLvaOWm0C85wC9iZU1Idn6trUeXpmC09NnXn+YSa0NLqQR9US/QTN52TUpnBbcOuav1Xx9/xqB/BM0W+9rqRfW6rDbu4a3HQtOqVv44JePeFWFgaNPWSgScPXOC92JKqX3TgJ1wLZfS2QLp4CByNQrp9q2K+QlHkuc3hJqa1neV0IqtyGrtt6tmV4YBWu3VjCDdUanlKtUKsgXLCjWvVSBOrfKw6tVvOY6zRq3Umrnr1Orbl1ixkRQMl1M3dGaB7n73uMgxLnPeq52nJsq2e9OIP6xDi0noPT6bm/S/YFbyv7lju9tXJ1znLdh1zNA8qP9omzgnj/nziFWf9Bo6Ck/psLHP4H&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><rect x="180" y="20" width="160" height="300" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 300 140 L 517.6 140 L 517.58 104.65" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 517.57 99.4 L 521.08 106.4 L 517.58 104.65 L 514.08 106.4 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="220" y="120" width="80" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 140px; margin-left: 221px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">DataGear</div></div></div></foreignObject><text x="260" y="144" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">DataGear</text></switch></g><path d="M 310 70 L 493.63 70" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 498.88 70 L 491.88 73.5 L 493.63 70 L 491.88 66.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="210" y="50" width="100" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 70px; margin-left: 211px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">stubCodeGear</div></div></div></foreignObject><text x="260" y="74" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">stubCodeGear</text></switch></g><path d="M 300 200 L 517.6 200 L 517.58 104.65" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 517.57 99.4 L 521.08 106.4 L 517.58 104.65 L 514.08 106.4 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="220" y="190" width="80" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 210px; margin-left: 221px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">DataGear</div></div></div></foreignObject><text x="260" y="214" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">DataGear</text></switch></g><rect x="170" y="0" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 15px; margin-left: 171px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Context</div></div></div></foreignObject><text x="200" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Context</text></switch></g><path d="M 120 70 L 203.63 70" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 208.88 70 L 201.88 73.5 L 203.63 70 L 201.88 66.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 102.43 98.28 L 102.4 140 L 213.63 140" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 218.88 140 L 211.88 143.5 L 213.63 140 L 211.88 136.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="60" cy="70" rx="60" ry="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 70px; margin-left: 1px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CodeGear</div></div></div></foreignObject><text x="60" y="74" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">CodeGear</text></switch></g><rect x="120" y="50" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 65px; margin-left: 121px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">1.goto</div></div></div></foreignObject><text x="150" y="69" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">1.goto</text></switch></g><rect x="110" y="120" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 135px; margin-left: 111px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">1.Output</div></div></div></foreignObject><text x="140" y="139" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">1.Output</text></switch></g><path d="M 560 110 L 560 233.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 560 238.88 L 556.5 231.88 L 560 233.63 L 563.5 231.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="560" cy="70" rx="60" ry="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 70px; margin-left: 501px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">stubCodeGear</div></div></div></foreignObject><text x="560" y="74" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">stubCodeGear</text></switch></g><rect x="360" y="120" width="130" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 135px; margin-left: 361px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">2.InputDataGearを参照</div></div></div></foreignObject><text x="425" y="139" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">2.InputDataGearを参照</text></switch></g><rect x="360" y="180" width="140" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 195px; margin-left: 361px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">2.OutputDataGearを参照</div></div></div></foreignObject><text x="430" y="199" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">2.OutputDataGearを参照</text></switch></g><path d="M 500 280 L 316.37 280" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 311.12 280 L 318.12 276.5 L 316.37 280 L 318.12 283.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 517.57 251.72 L 370 251.7 L 370 220 L 306.37 220" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 301.12 220 L 308.12 216.5 L 306.37 220 L 308.12 223.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="560" cy="280" rx="60" ry="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 280px; margin-left: 501px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CodeGear</div></div></div></foreignObject><text x="560" y="284" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">CodeGear</text></switch></g><rect x="395" y="230" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 245px; margin-left: 396px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">4.Output</div></div></div></foreignObject><text x="425" y="249" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">4.Output</text></switch></g><rect x="210" y="260" width="100" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 280px; margin-left: 211px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">stubCodeGear</div></div></div></foreignObject><text x="260" y="284" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">stubCodeGear</text></switch></g><rect x="395" y="260" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 275px; margin-left: 396px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">4.goto</div></div></div></foreignObject><text x="425" y="279" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">4.goto</text></switch></g><rect x="550" y="150" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 165px; margin-left: 551px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">3.goto</div></div></div></foreignObject><text x="580" y="169" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">3.goto</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/cp-rbtree.drawio	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,121 @@
+<mxfile host="app.diagrams.net" modified="2023-11-06T11:01:20.503Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" etag="sZyo8QvUJaZnoQw914sQ" version="22.0.8" type="device">
+  <diagram name="Page-1" id="2IuB2GPzedwYRiJ3p7sS">
+    <mxGraphModel dx="1006" dy="664" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-1" value="H" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+          <mxGeometry x="210" y="340" width="50" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-4" value="F" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+          <mxGeometry x="450" y="210" width="50" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-5" value="D" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+          <mxGeometry x="290" y="220" width="50" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-6" value="B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+          <mxGeometry x="180" y="120" width="50" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-7" value="G" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+          <mxGeometry x="560" y="230" width="50" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-8" value="C" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+          <mxGeometry x="80" y="220" width="50" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-9" value="A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+          <mxGeometry x="280" y="30" width="50" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-10" value="E" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+          <mxGeometry x="410" y="120" width="50" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-12" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.02;exitY=0.74;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="VR1GZNYrkkCU7cZ_rbKJ-9" target="VR1GZNYrkkCU7cZ_rbKJ-6">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="390" y="340" as="sourcePoint" />
+            <mxPoint x="440" y="290" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-13" value="leftDown" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="190" y="60" width="60" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-14" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="VR1GZNYrkkCU7cZ_rbKJ-6" target="VR1GZNYrkkCU7cZ_rbKJ-8">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="390" y="340" as="sourcePoint" />
+            <mxPoint x="440" y="290" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-15" value="leftDown" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="110" y="160" width="60" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-16" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="VR1GZNYrkkCU7cZ_rbKJ-8" target="VR1GZNYrkkCU7cZ_rbKJ-6">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="390" y="340" as="sourcePoint" />
+            <mxPoint x="440" y="290" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-17" value="up" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="150" y="210" width="60" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-18" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="VR1GZNYrkkCU7cZ_rbKJ-6" target="VR1GZNYrkkCU7cZ_rbKJ-5">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="390" y="340" as="sourcePoint" />
+            <mxPoint x="310" y="190" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-20" value="rightDown" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="220" y="210" width="60" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-21" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="VR1GZNYrkkCU7cZ_rbKJ-5" target="VR1GZNYrkkCU7cZ_rbKJ-6">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="390" y="340" as="sourcePoint" />
+            <mxPoint x="440" y="290" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-22" value="up" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="260" y="160" width="60" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-23" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.26;entryY=1.08;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="VR1GZNYrkkCU7cZ_rbKJ-6" target="VR1GZNYrkkCU7cZ_rbKJ-9">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="390" y="340" as="sourcePoint" />
+            <mxPoint x="440" y="290" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-25" value="up" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="250" y="100" width="60" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-26" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="VR1GZNYrkkCU7cZ_rbKJ-9" target="VR1GZNYrkkCU7cZ_rbKJ-10">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="390" y="340" as="sourcePoint" />
+            <mxPoint x="440" y="290" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-27" value="rightDown" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="370" y="60" width="60" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-28" value="" style="endArrow=classic;html=1;rounded=0;exitX=-0.02;exitY=0.68;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="VR1GZNYrkkCU7cZ_rbKJ-5" target="VR1GZNYrkkCU7cZ_rbKJ-1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="390" y="340" as="sourcePoint" />
+            <mxPoint x="440" y="290" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-30" value="I" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+          <mxGeometry x="380" y="340" width="50" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-31" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.72;exitY=1.02;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.06;entryY=0.3;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="VR1GZNYrkkCU7cZ_rbKJ-5" target="VR1GZNYrkkCU7cZ_rbKJ-30">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="390" y="340" as="sourcePoint" />
+            <mxPoint x="440" y="290" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-33" value="C" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="400" y="420" width="120" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-34" value="H" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="400" y="400" width="120" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="VR1GZNYrkkCU7cZ_rbKJ-35" value="old Context" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="470" y="440" width="60" height="30" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+</mxfile>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/desk.drawio	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,25 @@
+<mxfile host="app.diagrams.net" modified="2023-09-27T12:52:08.416Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36" etag="TM3OUp7E6If0RvecQTam" version="21.7.5" type="device">
+  <diagram name="Page-1" id="dwML7rgo2G4cLSKJI9Gj">
+    <mxGraphModel dx="1140" dy="762" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="EMsF07Mk0_7cR9daUV3m-11" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;size=10;" vertex="1" parent="1">
+          <mxGeometry x="180" y="310" width="20" height="210" as="geometry" />
+        </mxCell>
+        <mxCell id="EMsF07Mk0_7cR9daUV3m-12" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;size=10;" vertex="1" parent="1">
+          <mxGeometry x="580" y="310" width="20" height="220" as="geometry" />
+        </mxCell>
+        <mxCell id="EMsF07Mk0_7cR9daUV3m-10" value="" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;size=70;" vertex="1" parent="1">
+          <mxGeometry x="160" y="280" width="470" height="80" as="geometry" />
+        </mxCell>
+        <mxCell id="EMsF07Mk0_7cR9daUV3m-25" value="" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
+          <mxGeometry x="300" y="210" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="EMsF07Mk0_7cR9daUV3m-26" value="" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
+          <mxGeometry x="440" y="210" width="120" height="60" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+</mxfile>
Binary file Paper/fig/dgcgdg.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/dgcgdg.svg	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Do not edit this file with editors other than diagrams.net -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="569px" height="61px" viewBox="-0.5 -0.5 569 61" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2022-01-22T08:11:18.287Z&quot; agent=&quot;5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36&quot; etag=&quot;bUReGJG8Fe2_sW51C6dH&quot; version=&quot;16.4.2&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;sKEnr8sRbsej93oGyqwn&quot; name=&quot;Page-1&quot;&gt;7VfJkpswEP0ajpMCCWPnGttxKrNUUj5kclRMDyglECWLAfz1EabZMy6yuIbDnFA/dUvqfq8FWHQd5TvFkvBe+iAsYvu5RTcWIY7trMyjRIoK8RYIBIr76NQCe36COhLRlPtw7DlqKYXmSR88yDiGg+5hTCmZ9d2epOjvmrAARsD+wMQY/cZ9HVboiixb/BPwIKx3drz31UzEamfM5BgyX2YdiG4tulZS6moU5WsQZfHqulRxH1+YbQ6mINZTAsgpWp7o1/ghvd0Fn9Po6ce9uFng2XRRJwy+yR9NqXQoAxkzsW3RD0qmsQ/lqraxWp87KRMDOgb8CVoXSCZLtTRQqCOBs5Bz/dgZfy+XerdAa5PjymejqI1Yq+Kxa3SiSrMNO1t1XJVfmdSLZUPoKFN1gAu1quXHVAD6gh9pyDVdATICcx4Tp0AwzZ/752Aoz6Dxaxk0AyTxDwjFdZ+ZSHGnDdNsB0yNmO7zmIVcwz5h5xJkppn7nOGyoDTklys5zhwDVtgIeBPQusWzTl8hFHZayrWvVCrvTfuTtU8map++pvbJSPtr8z6ahfaJPRC/PRa/Q36jfu9a6l++qX+y+ulE9buvqX4635ufejO7+h1nVJOZqv8/qvhf1YmhXyQ3Ozfceu6AWzogreoajBrw1hzj76l053vpu8Mvnite+sZsfyWq2rY/ZHT7Cw==&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs/><g><path d="M 80 30 L 113.63 30" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 118.88 30 L 111.88 33.5 L 113.63 30 L 111.88 26.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="0" y="10" width="80" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 30px; margin-left: 1px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">DataGear</div></div></div></foreignObject><text x="40" y="34" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">DataGear</text></switch></g><path d="M 240 30 L 273.63 30" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 278.88 30 L 271.88 33.5 L 273.63 30 L 271.88 26.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="120" y="0" width="120" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 30px; margin-left: 121px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CodeGear</div></div></div></foreignObject><text x="180" y="34" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">CodeGear</text></switch></g><path d="M 360 30 L 393.63 30" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 398.88 30 L 391.88 33.5 L 393.63 30 L 391.88 26.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="280" y="10" width="80" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 30px; margin-left: 281px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">DataGear</div></div></div></foreignObject><text x="320" y="34" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">DataGear</text></switch></g><path d="M 520 30 L 553.63 30" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 558.88 30 L 551.88 33.5 L 553.63 30 L 551.88 26.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="400" y="0" width="120" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 30px; margin-left: 401px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CodeGear</div></div></div></foreignObject><text x="460" y="34" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">CodeGear</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
\ No newline at end of file
Binary file Paper/fig/gearsDirectoryMM.PNG has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/gearsDirectoryMM.html	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,1127 @@
+<!DOCTYPE html><html><head><meta charset="utf-8"><title>GearsOSにおけるinodeを用いたFile systemの設計 - Brainio</title><style data-critical="true">body,button,h1,h2,h3,h4,h5,h6,hr,html,li,p,pre,ul{padding:0px;margin:0px}html{box-sizing:border-box;-webkit-font-smoothing:antialiased}:focus,button,input,textarea{outline:none}a{cursor:pointer}:root{--bgDarker:#e7e9f2;--bgElevated1:#f3f4f8;--bgElevated2:#e2e5ef;--bgElevated3:#d4dbf9;--textLowEmphasis:#8f8f8f;--textMediumEmphasis:#575757;--textHighEmphasis:#121212;--colorAccent:#3668e8;--colorOnAccent:#f4f4f5;--colorInverse_RGB:40,44,52;--colorInfo:#96a7f1;--colorError:#ffd7db;--colorSuccess:#d3edd5;--colorPrimary_400:#3668e8;--colorPrimary_200:#96a7f1;--colorOnPrimary:#f4f4f5;--colorOnLightBg:#121212;--fontFamilySans:"Open Sans",sans-serif;--fontFamilyMono:"Courier New",monospace;--fontSizeSmall2:0.75rem;--fontSizeSmall1:0.8125rem;--fontSizeNormal:0.875rem;--fontSizeBig1:1rem;--fontSizeBig2:1.25rem;--fontSizeBig3:1.5rem;--fontSizeBig4:2rem;--fontWeightLight:300;--fontWeightRegular:400;--fontWeightBold:600;--disabled:0.38;--red_RGB:241,146,143;--orange_RGB:247,195,148;--yellow_RGB:247,232,138;--green_RGB:180,219,167;--blue_RGB:176,252,254;--lineHeightNormal:1.5;--borderRadius:3px;--padding:0.75rem}.modal,.popover,:root{--bg:#fff}app-mindmap{--linkStrokeColor:#c2c2c2;--nodeStrokeColor:#686868;--nodeBgColor:#d7d7d7;--nodeRootBgColor:#fff}.mindmapNode{user-select:none}.mindmapNode .ghostRect{fill:transparent}.mindmapNode foreignobject{overflow:visible;position:relative;box-sizing:border-box}.mindmapNode foreignobject > div{overflow-wrap:break-word;padding:5px 10px 4px;border-bottom:2px solid var(--nodeStrokeColor);box-sizing:border-box}.mindmapNode foreignobject > div:not(.paddingBottom):not(.paddingTop){height:100%}.nodeRoot foreignobject.mainText > div{border-radius:var(--borderRadius);border:none;padding:10px 15px;background:var(--nodeRootBgColor)}.nodeRoot foreignobject::after{content:"";position:fixed;left:0px;top:0px;width:100%;height:100%;border-radius:var(--borderRadius);border:2px solid var(--nodeStrokeColor);z-index:1;box-sizing:border-box;pointer-events:none}.nodeNormal.depth_1 foreignobject.text > div{border-radius:var(--borderRadius);padding:5px 10px;border:none;background:var(--nodeBgColor)}.nodeNormal circle{stroke-width:1;cursor:pointer;pointer-events:bounding-box;stroke:var(--nodeStrokeColor);fill:rgb(255,255,255)}.nodeNormal .circleIcon{stroke-width:1;pointer-events:none;stroke:rgb(0,0,0)}foreignobject.mainText div,foreignobject.text div{overflow-wrap:break-word}.text{font-size:var(--fontSizeNormal)}.text a{text-decoration:underline;color:var(--colorPrimary_400)}.mainText{font-size:var(--fontSizeBig1);font-weight:700}.link{fill:none;stroke-opacity:1;stroke-width:1;stroke:var(--linkStrokeColor)}.editHelperWrapper{pointer-events:none}.textareaWrapper{overflow:visible}.editHelper,.textareaWrapper textarea{font-size:var(--fontSizeNormal);font-family:var(--fontFamilySans);padding:5px 10px;margin:0px;border:none;box-sizing:content-box;max-width:320px;overflow-wrap:break-word;transition:height 0.05s linear 0s,width 0.05s linear 0s}.editHelper{display:inline-block;pointer-events:none}.textareaWrapper textarea{width:100%;height:100%;position:fixed;overflow:hidden;border-radius:5px}html{background:var(--bg)}body,html{height:100%}body{font-family:var(--fontFamilySans);font-size:var(--fontSizeNormal);color:var(--textHighEmphasis);box-sizing:border-box;overflow:hidden}</style></head><body style="overflow: auto;"><app-mindmap id="editor" style="width: 2533px; height: 3925px;"><app-svg-container><div class="svgWrapper"><div _ngcontent-lkb-c107="" class="svgWrapper"><svg width="2533" height="3925"><g _ngcontent-lkb-c107="" class="gWrapper" style="transform: translate(815px, 2007.0001220703125px)"><g _ngcontent-lkb-c107="" class="nodes"><path class="link" opacity="1" d="M198.5,0
+			C93.5,0
+			93.5,0
+			-11.5,0"></path><path class="link" opacity="1" d="M-88.5,0
+			C-100.75,0
+			-100.75,-174
+			-113,-174"></path><path class="link" opacity="1" d="M-88.5,0
+			C-100.75,0
+			-100.75,-141
+			-113,-141"></path><path class="link" opacity="1" d="M-88.5,0
+			C-100.75,0
+			-100.75,-106
+			-113,-106"></path><path class="link" opacity="1" d="M-88.5,0
+			C-100.75,0
+			-100.75,-55.5
+			-113,-55.5L-202,-55.5"></path><path class="link" opacity="1" d="M-88.5,0
+			C-100.75,0
+			-100.75,-3
+			-113,-3L-264,-3"></path><path class="link" opacity="1" d="M-88.5,0
+			C-100.75,0
+			-100.75,32
+			-113,32L-358,32"></path><path class="link" opacity="1" d="M-88.5,0
+			C-100.75,0
+			-100.75,102
+			-113,102L-236,102"></path><path class="link" opacity="1" d="M-88.5,0
+			C-100.75,0
+			-100.75,135
+			-113,135"></path><path class="link" opacity="1" d="M-88.5,0
+			C-100.75,0
+			-100.75,170
+			-113,170L-180,170"></path><path class="link" opacity="1" d="M-88.5,0
+			C-100.75,0
+			-100.75,205
+			-113,205"></path><path class="link" opacity="1" d="M-198,-55.5
+			C-210,-55.5
+			-210,-71
+			-222,-71"></path><path class="link" opacity="1" d="M-198,-55.5
+			C-210,-55.5
+			-210,-38
+			-222,-38"></path><path class="link" opacity="1" d="M-260,-3
+			C-272,-3
+			-272,-4
+			-284,-4"></path><path class="link" opacity="1" d="M-354,32
+			C-366,32
+			-366,-3
+			-378,-3"></path><path class="link" opacity="1" d="M-354,32
+			C-366,32
+			-366,31
+			-378,31L-477,31"></path><path class="link" opacity="1" d="M-354,32
+			C-366,32
+			-366,67
+			-378,67"></path><path class="link" opacity="1" d="M-232,102
+			C-244,102
+			-244,102
+			-256,102L-323,102"></path><path class="link" opacity="1" d="M-176,170
+			C-188,170
+			-188,170
+			-200,170"></path><path class="link" opacity="1" d="M-473,31
+			C-485,31
+			-485,32
+			-497,32"></path><path class="link" opacity="1" d="M-319,102
+			C-331,102
+			-331,102
+			-343,102"></path><path class="link" opacity="1" d="M175.5,0
+			C280.5,0
+			280.5,-1837.5
+			385.5,-1837.5"></path><path class="link" opacity="1" d="M175.5,0
+			C280.5,0
+			280.5,-1443.375
+			385.5,-1443.375"></path><path class="link" opacity="1" d="M175.5,0
+			C280.5,0
+			280.5,-971.25
+			385.5,-971.25"></path><path class="link" opacity="1" d="M175.5,0
+			C280.5,0
+			280.5,-309.625
+			385.5,-309.625"></path><path class="link" opacity="1" d="M175.5,0
+			C280.5,0
+			280.5,127.25
+			385.5,127.25"></path><path class="link" opacity="1" d="M175.5,0
+			C280.5,0
+			280.5,327.25
+			385.5,327.25"></path><path class="link" opacity="1" d="M175.5,0
+			C280.5,0
+			280.5,755.625
+			385.5,755.625"></path><path class="link" opacity="1" d="M175.5,0
+			C280.5,0
+			280.5,993
+			385.5,993"></path><path class="link" opacity="1" d="M175.5,0
+			C280.5,0
+			280.5,1350.125
+			385.5,1350.125"></path><path class="link" opacity="1" d="M175.5,0
+			C280.5,0
+			280.5,1685.25
+			385.5,1685.25"></path><g class="mindmapNode nodeNormal depth_1 left" data-id="node_61bd6eee5bcd5ed0a0af1256" opacity="1" transform="translate(-101, 0)"><g class="rectGroup" transform="translate(27, -15.5)"><foreignObject class="text" width="62" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					章立て
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="101" height="200" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-200" width="101" height="200" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd6eee0911dbe7b7d7ea93" opacity="1" transform="translate(-463, -189.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="338" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					GearsOSにおける分散ファイルシステム(研究目的)
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="377" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="377" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd720cf5cfa71158bb6904" opacity="1" transform="translate(-172, -155.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="47" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					CbC
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="86" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-14.5" width="86" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd72035b94de0af9492447" opacity="1" transform="translate(-258, -121.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="133" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					GearsOSについて
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="172" height="51.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="172" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd722847329a365903b5b9" opacity="1" transform="translate(-210, -70)"><g class="rectGroup" transform="translate(27, -14.5)"><foreignObject class="text" width="70" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Christie
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="109" height="51.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="109" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd738a05248a1080f1fa57" opacity="1" transform="translate(-272, -18.5)"><g class="rectGroup" transform="translate(27, -15.5)"><foreignObject class="text" width="132" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					UnixのFilesystem
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="171" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="171" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd6eeeb2d485455be37677" opacity="1" transform="translate(-366, 16.5)"><g class="rectGroup" transform="translate(27, -15.5)"><foreignObject class="text" width="226" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					GearsFileSystemのディレクトリ
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="265" height="70" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="265" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd7a4717b65125f28f82c8" opacity="1" transform="translate(-244, 86.5)"><g class="rectGroup" transform="translate(27, -15.5)"><foreignObject class="text" width="104" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					ファイル構造
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="143" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="143" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd7b7d7cb32300e3728968" opacity="1" transform="translate(-221, 120.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="96" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					WordCount
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="135" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-14.5" width="135" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd7c267e88358724a40c74" opacity="1" transform="translate(-188, 154.5)"><g class="rectGroup" transform="translate(27, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					考察
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 left" data-id="node_61bd6eeebc58d5f7d2bcfe6d" opacity="1" transform="translate(-201, 189.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					参考文献
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="115" height="31" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 left" data-id="node_61bd72dbad08459fd71629f2" opacity="1" transform="translate(-314, -86.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="80" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Gear概念
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="119" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="119" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 left" data-id="node_61bd72ed2804860b15f05212" opacity="1" transform="translate(-375, -52.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="141" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					DataGearManager
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="180" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-14.5" width="180" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 left" data-id="node_61bd7396b3f6fb3d9f8917af" opacity="1" transform="translate(-353, -18.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="57" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					inode
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="96" height="0" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-14.5" width="96" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 left" data-id="node_61bd7416bb61e7c7708e074f" opacity="1" transform="translate(-728, -18.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="338" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Treeによるディレクトリ構造(図などでここ詳しく)
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="377" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="377" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 left" data-id="node_61bd736431b0e11782ffb3e8" opacity="1" transform="translate(-485, 16.5)"><g class="rectGroup" transform="translate(27, -14.5)"><foreignObject class="text" width="80" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Unix Like
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="119" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="119" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 left" data-id="node_61bd77b132fab1d70dd2d706" opacity="1" transform="translate(-586, 51.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="196" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					非破壊的編集によるBackUp
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="235" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="235" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 left" data-id="node_61bd7a75b218958c802740a4" opacity="1" transform="translate(-331, 86.5)"><g class="rectGroup" transform="translate(27, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					構成
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="68" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 left" data-id="node_61bd7c37ea8e4203d97e4380" opacity="1" transform="translate(-302, 154.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="90" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					今後の課題
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="129" height="31" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="129" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 left" data-id="node_61bd74e283894925fc5923fb" opacity="1" transform="translate(-762, 16.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="253" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					inodeを用いたディレクトリエントリ
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="292" height="70" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="292" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 left" data-id="node_61bd7acc25ef3a10832a0a91" opacity="1" transform="translate(-535, 86.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="180" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					logによるバージョン管理
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="-15" y="0" width="219" height="31" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="-15" y="-15.5" width="219" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="-80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(18, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd7d5ef27a2481729a148e" opacity="1" transform="translate(374, -1837.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					研究目的
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="394.125" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-200" width="115" height="200" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="95" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(97, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd6eee68807d207b1860b4" opacity="1" transform="translate(374, -1443.375)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="47" height="29"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					CbC
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="86" height="472.125" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="86" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="66" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(68, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd6eee91557f93863ec9e3" opacity="1" transform="translate(374, -971.25)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="133" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					GearsOSについて
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="172" height="661.625" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="172" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="152" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(154, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd6eee17ae95c54b8fef48" opacity="1" transform="translate(374, -309.625)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="70" height="29"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					Christie
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="109" height="436.875" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="109" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="89" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(91, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd7d7779c61d02f1175edc" opacity="1" transform="translate(374, 127.25)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="132" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					UnixのFilesystem
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="171" height="200" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="171" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="151" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(153, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd6eeee97188a7b0a1bfa5" opacity="1" transform="translate(374, 327.25)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="225" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					GearsFileSystemのディレクトリ
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="265" height="428.375" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="265" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="245" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(247, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd7d93f175524b7adc791c" opacity="1" transform="translate(374, 755.625)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="104" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					ファイル構造
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="143" height="237.375" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="143" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="123" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(125, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd7d9bdb674cd7340d3562" opacity="1" transform="translate(374, 993)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="96" height="29"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					WordCount
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="135" height="357.125" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="135" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="115" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(117, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd7da2fc8b65820b6d1100" opacity="1" transform="translate(374, 1350.125)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					考察
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="335.125" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="67" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(69, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61bd6eee1149cd6355b65f5f" opacity="1" transform="translate(374, 1685.25)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					参考文献
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="152.25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="95" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(97, 0)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><path class="link" opacity="1" d="M175.5,0
+			C280.5,0
+			280.5,1837.5
+			385.5,1837.5"></path><g class="mindmapNode nodeNormal depth_1 right" data-id="node_61f0b2ad1972e22223b6951f" opacity="1" transform="translate(374, 1837.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					付録
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="200" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="67" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(69, 0)" style="display: inline;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><path class="link" opacity="1" d="M477.5,-1837.5
+			C489.25,-1837.5
+			489.25,-1908.5
+			501,-1908.5L625,-1908.5"></path><path class="link" opacity="1" d="M477.5,-1837.5
+			C489.25,-1837.5
+			489.25,-1856
+			501,-1856L694,-1856"></path><path class="link" opacity="1" d="M477.5,-1837.5
+			C489.25,-1837.5
+			489.25,-1786
+			501,-1786L751,-1786"></path><path class="link" opacity="1" d="M477.5,-1837.5
+			C489.25,-1837.5
+			489.25,-1735.5
+			501,-1735.5L652,-1735.5"></path><path class="link" opacity="1" d="M448.5,-1443.375
+			C460.25,-1443.375
+			460.25,-1608
+			472,-1608L581,-1608"></path><path class="link" opacity="1" d="M448.5,-1443.375
+			C460.25,-1443.375
+			460.25,-1463
+			472,-1463L580,-1463"></path><path class="link" opacity="1" d="M448.5,-1443.375
+			C460.25,-1443.375
+			460.25,-1429
+			472,-1429"></path><path class="link" opacity="1" d="M448.5,-1443.375
+			C460.25,-1443.375
+			460.25,-1395
+			472,-1395L592,-1395"></path><path class="link" opacity="1" d="M448.5,-1443.375
+			C460.25,-1443.375
+			460.25,-1362
+			472,-1362L579,-1362"></path><path class="link" opacity="1" d="M448.5,-1443.375
+			C460.25,-1443.375
+			460.25,-1247.75
+			472,-1247.75L553,-1247.75"></path><path class="link" opacity="1" d="M534.5,-971.25
+			C546.25,-971.25
+			546.25,-1134.5
+			558,-1134.5L682,-1134.5"></path><path class="link" opacity="1" d="M534.5,-971.25
+			C546.25,-971.25
+			546.25,-810
+			558,-810L648,-810"></path><path class="link" opacity="1" d="M534.5,-971.25
+			C546.25,-971.25
+			546.25,-777
+			558,-777"></path><path class="link" opacity="1" d="M471.5,-309.625
+			C483.25,-309.625
+			483.25,-476.5
+			495,-476.5L612,-476.5"></path><path class="link" opacity="1" d="M471.5,-309.625
+			C483.25,-309.625
+			483.25,-365.5
+			495,-365.5L655,-365.5"></path><path class="link" opacity="1" d="M471.5,-309.625
+			C483.25,-309.625
+			483.25,-111.75
+			495,-111.75L653,-111.75"></path><path class="link" opacity="1" d="M533.5,127.25
+			C545.25,127.25
+			545.25,99
+			557,99L619,99"></path><path class="link" opacity="1" d="M533.5,127.25
+			C545.25,127.25
+			545.25,184.5
+			557,184.5"></path><path class="link" opacity="1" d="M627.5,327.25
+			C639.25,327.25
+			639.25,219.5
+			651,219.5L1008,219.5"></path><path class="link" opacity="1" d="M627.5,327.25
+			C639.25,327.25
+			639.25,330.5
+			651,330.5L750,330.5"></path><path class="link" opacity="1" d="M627.5,327.25
+			C639.25,327.25
+			639.25,466
+			651,466L866,466"></path><path class="link" opacity="1" d="M505.5,755.625
+			C517.25,755.625
+			517.25,771.125
+			529,771.125L596,771.125"></path><path class="link" opacity="1" d="M497.5,993
+			C509.25,993
+			509.25,914
+			521,914"></path><path class="link" opacity="1" d="M497.5,993
+			C509.25,993
+			509.25,984
+			521,984L588,984"></path><path class="link" opacity="1" d="M497.5,993
+			C509.25,993
+			509.25,1103
+			521,1103L701,1103"></path><path class="link" opacity="1" d="M449.5,1350.125
+			C461.25,1350.125
+			461.25,1241.25
+			473,1241.25L540,1241.25"></path><path class="link" opacity="1" d="M449.5,1350.125
+			C461.25,1350.125
+			461.25,1378.75
+			473,1378.75L582,1378.75"></path><path class="link" opacity="1" d="M449.5,1350.125
+			C461.25,1350.125
+			461.25,1490
+			473,1490L610,1490"></path><path class="link" opacity="1" d="M477.5,1685.25
+			C489.25,1685.25
+			489.25,1599
+			501,1599L596,1599"></path><path class="link" opacity="1" d="M477.5,1685.25
+			C489.25,1685.25
+			489.25,1708.5
+			501,1708.5L624,1708.5"></path><path class="link" opacity="1" d="M477.5,1685.25
+			C489.25,1685.25
+			489.25,1743.5
+			501,1743.5"></path><path class="link" opacity="1" d="M477.5,1685.25
+			C489.25,1685.25
+			489.25,1802.5
+			501,1802.5L563,1802.5"></path><path class="link" opacity="1" d="M449.5,1837.5
+			C461.25,1837.5
+			461.25,1835.5
+			473,1835.5"></path><path class="link" opacity="1" d="M449.5,1837.5
+			C461.25,1837.5
+			461.25,1868.5
+			473,1868.5"></path><path class="link" opacity="1" d="M621,-1908.5
+			C633,-1908.5
+			633,-1926
+			645,-1926"></path><path class="link" opacity="1" d="M621,-1908.5
+			C633,-1908.5
+			633,-1891
+			645,-1891L894,-1891"></path><path class="link" opacity="1" d="M690,-1856
+			C702,-1856
+			702,-1856
+			714,-1856"></path><path class="link" opacity="1" d="M747,-1786
+			C759,-1786
+			759,-1821
+			771,-1821"></path><path class="link" opacity="1" d="M747,-1786
+			C759,-1786
+			759,-1786
+			771,-1786"></path><path class="link" opacity="1" d="M747,-1786
+			C759,-1786
+			759,-1751
+			771,-1751"></path><path class="link" opacity="1" d="M648,-1735.5
+			C660,-1735.5
+			660,-1753
+			672,-1753"></path><path class="link" opacity="1" d="M648,-1735.5
+			C660,-1735.5
+			660,-1720
+			672,-1720"></path><path class="link" opacity="1" d="M577,-1608
+			C589,-1608
+			589,-1685
+			601,-1685L719,-1685"></path><path class="link" opacity="1" d="M577,-1608
+			C589,-1608
+			589,-1650
+			601,-1650L878,-1650"></path><path class="link" opacity="1" d="M577,-1608
+			C589,-1608
+			589,-1604.5
+			601,-1604.5L738,-1604.5"></path><path class="link" opacity="1" d="M577,-1608
+			C589,-1608
+			589,-1531
+			601,-1531L960,-1531"></path><path class="link" opacity="1" d="M576,-1463
+			C588,-1463
+			588,-1496
+			600,-1496"></path><path class="link" opacity="1" d="M576,-1463
+			C588,-1463
+			588,-1461
+			600,-1461"></path><path class="link" opacity="1" d="M576,-1463
+			C588,-1463
+			588,-1428
+			600,-1428"></path><path class="link" opacity="1" d="M588,-1395
+			C600,-1395
+			600,-1395
+			612,-1395"></path><path class="link" opacity="1" d="M575,-1362
+			C587,-1362
+			587,-1362
+			599,-1362"></path><path class="link" opacity="1" d="M549,-1247.75
+			C561,-1247.75
+			561,-1293
+			573,-1293L642,-1293"></path><path class="link" opacity="1" d="M549,-1247.75
+			C561,-1247.75
+			561,-1204.5
+			573,-1204.5L668,-1204.5"></path><path class="link" opacity="1" d="M678,-1134.5
+			C690,-1134.5
+			690,-1134.5
+			702,-1134.5L867,-1134.5"></path><path class="link" opacity="1" d="M644,-810
+			C656,-810
+			656,-991
+			668,-991L934,-991"></path><path class="link" opacity="1" d="M644,-810
+			C656,-810
+			656,-865
+			668,-865L866,-865"></path><path class="link" opacity="1" d="M644,-810
+			C656,-810
+			656,-795
+			668,-795L735,-795"></path><path class="link" opacity="1" d="M644,-810
+			C656,-810
+			656,-627
+			668,-627L828,-627"></path><path class="link" opacity="1" d="M608,-476.5
+			C620,-476.5
+			620,-494
+			632,-494"></path><path class="link" opacity="1" d="M608,-476.5
+			C620,-476.5
+			620,-459
+			632,-459L841,-459"></path><path class="link" opacity="1" d="M651,-365.5
+			C663,-365.5
+			663,-424
+			675,-424"></path><path class="link" opacity="1" d="M651,-365.5
+			C663,-365.5
+			663,-379.5
+			675,-379.5L812,-379.5"></path><path class="link" opacity="1" d="M651,-365.5
+			C663,-365.5
+			663,-342.25
+			675,-342.25"></path><path class="link" opacity="1" d="M651,-365.5
+			C663,-365.5
+			663,-305
+			675,-305L879,-305"></path><path class="link" opacity="1" d="M649,-111.75
+			C661,-111.75
+			661,-224.5
+			673,-224.5L965,-224.5"></path><path class="link" opacity="1" d="M649,-111.75
+			C661,-111.75
+			661,-189.5
+			673,-189.5"></path><path class="link" opacity="1" d="M649,-111.75
+			C661,-111.75
+			661,-98.5
+			673,-98.5L797,-98.5"></path><path class="link" opacity="1" d="M649,-111.75
+			C661,-111.75
+			661,3
+			673,3L797,3"></path><path class="link" opacity="1" d="M615,99
+			C627,99
+			627,48.5
+			639,48.5"></path><path class="link" opacity="1" d="M615,99
+			C627,99
+			627,83.5
+			639,83.5"></path><path class="link" opacity="1" d="M615,99
+			C627,99
+			627,116.5
+			639,116.5L744,116.5"></path><path class="link" opacity="1" d="M615,99
+			C627,99
+			627,151.5
+			639,151.5"></path><path class="link" opacity="1" d="M1004,219.5
+			C1016,219.5
+			1016,151
+			1028,151L1156,151"></path><path class="link" opacity="1" d="M1004,219.5
+			C1016,219.5
+			1016,286
+			1028,286L1174,286"></path><path class="link" opacity="1" d="M746,330.5
+			C758,330.5
+			758,297.5
+			770,297.5"></path><path class="link" opacity="1" d="M746,330.5
+			C758,330.5
+			758,330.5
+			770,330.5"></path><path class="link" opacity="1" d="M746,330.5
+			C758,330.5
+			758,363.5
+			770,363.5L820,363.5"></path><path class="link" opacity="1" d="M862,466
+			C874,466
+			874,431
+			886,431"></path><path class="link" opacity="1" d="M862,466
+			C874,466
+			874,522
+			886,522L1108,522"></path><path class="link" opacity="1" d="M592,771.125
+			C604,771.125
+			604,661.25
+			616,661.25L725,661.25"></path><path class="link" opacity="1" d="M592,771.125
+			C604,771.125
+			604,879
+			616,879L815,879"></path><path class="link" opacity="1" d="M584,984
+			C596,984
+			596,949
+			608,949L815,949"></path><path class="link" opacity="1" d="M584,984
+			C596,984
+			596,984
+			608,984"></path><path class="link" opacity="1" d="M584,984
+			C596,984
+			596,1019
+			608,1019"></path><path class="link" opacity="1" d="M697,1103
+			C709,1103
+			709,1054
+			721,1054"></path><path class="link" opacity="1" d="M697,1103
+			C709,1103
+			709,1089
+			721,1089"></path><path class="link" opacity="1" d="M697,1103
+			C709,1103
+			709,1152
+			721,1152L845,1152"></path><path class="link" opacity="1" d="M536,1241.25
+			C548,1241.25
+			548,1215
+			560,1215L697,1215"></path><path class="link" opacity="1" d="M536,1241.25
+			C548,1241.25
+			548,1267.5
+			560,1267.5L627,1267.5"></path><path class="link" opacity="1" d="M578,1378.75
+			C590,1378.75
+			590,1320
+			602,1320"></path><path class="link" opacity="1" d="M578,1378.75
+			C590,1378.75
+			590,1371.5
+			602,1371.5L683,1371.5"></path><path class="link" opacity="1" d="M578,1378.75
+			C590,1378.75
+			590,1404.5
+			602,1404.5"></path><path class="link" opacity="1" d="M578,1378.75
+			C590,1378.75
+			590,1437.5
+			602,1437.5"></path><path class="link" opacity="1" d="M606,1490
+			C618,1490
+			618,1472.5
+			630,1472.5L739,1472.5"></path><path class="link" opacity="1" d="M606,1490
+			C618,1490
+			618,1507.5
+			630,1507.5"></path><path class="link" opacity="1" d="M592,1599
+			C604,1599
+			604,1578.5
+			616,1578.5"></path><path class="link" opacity="1" d="M592,1599
+			C604,1599
+			604,1655.5
+			616,1655.5"></path><path class="link" opacity="1" d="M620,1708.5
+			C632,1708.5
+			632,1726.5
+			644,1726.5"></path><path class="link" opacity="1" d="M559,1802.5
+			C571,1802.5
+			571,1795.5
+			583,1795.5"></path><path class="link" opacity="1" d="M559,1802.5
+			C571,1802.5
+			571,1828.5
+			583,1828.5"></path><path class="link" opacity="1" d="M890,-1891
+			C902,-1891
+			902,-1891
+			914,-1891L995,-1891"></path><path class="link" opacity="1" d="M715,-1685
+			C727,-1685
+			727,-1685
+			739,-1685"></path><path class="link" opacity="1" d="M874,-1650
+			C886,-1650
+			886,-1650
+			898,-1650"></path><path class="link" opacity="1" d="M734,-1604.5
+			C746,-1604.5
+			746,-1604.5
+			758,-1604.5L853,-1604.5"></path><path class="link" opacity="1" d="M956,-1531
+			C968,-1531
+			968,-1559
+			980,-1559"></path><path class="link" opacity="1" d="M956,-1531
+			C968,-1531
+			968,-1524
+			980,-1524"></path><path class="link" opacity="1" d="M638,-1293
+			C650,-1293
+			650,-1327
+			662,-1327"></path><path class="link" opacity="1" d="M638,-1293
+			C650,-1293
+			650,-1292
+			662,-1292"></path><path class="link" opacity="1" d="M638,-1293
+			C650,-1293
+			650,-1257
+			662,-1257"></path><path class="link" opacity="1" d="M664,-1204.5
+			C676,-1204.5
+			676,-1222
+			688,-1222L825,-1222"></path><path class="link" opacity="1" d="M664,-1204.5
+			C676,-1204.5
+			676,-1187
+			688,-1187L934,-1187"></path><path class="link" opacity="1" d="M863,-1134.5
+			C875,-1134.5
+			875,-1152
+			887,-1152"></path><path class="link" opacity="1" d="M863,-1134.5
+			C875,-1134.5
+			875,-1117
+			887,-1117"></path><path class="link" opacity="1" d="M930,-991
+			C942,-991
+			942,-1061
+			954,-1061"></path><path class="link" opacity="1" d="M930,-991
+			C942,-991
+			942,-1026
+			954,-1026"></path><path class="link" opacity="1" d="M930,-991
+			C942,-991
+			942,-991
+			954,-991"></path><path class="link" opacity="1" d="M930,-991
+			C942,-991
+			942,-935
+			954,-935"></path><path class="link" opacity="1" d="M930,-991
+			C942,-991
+			942,-900
+			954,-900"></path><path class="link" opacity="1" d="M862,-865
+			C874,-865
+			874,-865
+			886,-865"></path><path class="link" opacity="1" d="M731,-795
+			C743,-795
+			743,-831
+			755,-831L891,-831"></path><path class="link" opacity="1" d="M731,-795
+			C743,-795
+			743,-796
+			755,-796L880,-796"></path><path class="link" opacity="1" d="M731,-795
+			C743,-795
+			743,-761
+			755,-761L877,-761"></path><path class="link" opacity="1" d="M824,-627
+			C836,-627
+			836,-725
+			848,-725"></path><path class="link" opacity="1" d="M824,-627
+			C836,-627
+			836,-690
+			848,-690"></path><path class="link" opacity="1" d="M824,-627
+			C836,-627
+			836,-634
+			848,-634"></path><path class="link" opacity="1" d="M824,-627
+			C836,-627
+			836,-599
+			848,-599"></path><path class="link" opacity="1" d="M824,-627
+			C836,-627
+			836,-564
+			848,-564"></path><path class="link" opacity="1" d="M824,-627
+			C836,-627
+			836,-529
+			848,-529"></path><path class="link" opacity="1" d="M837,-459
+			C849,-459
+			849,-476.5
+			861,-476.5L963,-476.5"></path><path class="link" opacity="1" d="M837,-459
+			C849,-459
+			849,-443.5
+			861,-443.5"></path><path class="link" opacity="1" d="M808,-379.5
+			C820,-379.5
+			820,-368
+			832,-368"></path><path class="link" opacity="1" d="M875,-305
+			C887,-305
+			887,-333
+			899,-333"></path><path class="link" opacity="1" d="M875,-305
+			C887,-305
+			887,-277
+			899,-277"></path><path class="link" opacity="1" d="M961,-224.5
+			C973,-224.5
+			973,-242
+			985,-242"></path><path class="link" opacity="1" d="M961,-224.5
+			C973,-224.5
+			973,-207
+			985,-207"></path><path class="link" opacity="1" d="M793,-98.5
+			C805,-98.5
+			805,-154.5
+			817,-154.5"></path><path class="link" opacity="1" d="M793,-98.5
+			C805,-98.5
+			805,-98.5
+			817,-98.5"></path><path class="link" opacity="1" d="M793,-98.5
+			C805,-98.5
+			805,-42.5
+			817,-42.5"></path><path class="link" opacity="1" d="M793,3
+			C805,3
+			805,13.5
+			817,13.5"></path><path class="link" opacity="1" d="M740,116.5
+			C752,116.5
+			752,116.5
+			764,116.5"></path><path class="link" opacity="1" d="M1152,151
+			C1164,151
+			1164,119
+			1176,119"></path><path class="link" opacity="1" d="M1152,151
+			C1164,151
+			1164,185
+			1176,185L1237,185"></path><path class="link" opacity="1" d="M1170,286
+			C1182,286
+			1182,253
+			1194,253L1352,253"></path><path class="link" opacity="1" d="M1170,286
+			C1182,286
+			1182,319
+			1194,319L1338,319"></path><path class="link" opacity="1" d="M816,363.5
+			C828,363.5
+			828,375
+			840,375"></path><path class="link" opacity="1" d="M1104,522
+			C1116,522
+			1116,466
+			1128,466L1265,466"></path><path class="link" opacity="1" d="M1104,522
+			C1116,522
+			1116,522
+			1128,522"></path><path class="link" opacity="1" d="M1104,522
+			C1116,522
+			1116,578
+			1128,578"></path><path class="link" opacity="1" d="M721,661.25
+			C733,661.25
+			733,578
+			745,578"></path><path class="link" opacity="1" d="M721,661.25
+			C733,661.25
+			733,613
+			745,613L882,613"></path><path class="link" opacity="1" d="M721,661.25
+			C733,661.25
+			733,746.5
+			745,746.5L864,746.5"></path><path class="link" opacity="1" d="M811,879
+			C823,879
+			823,879
+			835,879"></path><path class="link" opacity="1" d="M811,949
+			C823,949
+			823,931.5
+			835,931.5"></path><path class="link" opacity="1" d="M811,949
+			C823,949
+			823,966.5
+			835,966.5"></path><path class="link" opacity="1" d="M841,1152
+			C853,1152
+			853,1124
+			865,1124"></path><path class="link" opacity="1" d="M841,1152
+			C853,1152
+			853,1180
+			865,1180"></path><path class="link" opacity="1" d="M693,1215
+			C705,1215
+			705,1215
+			717,1215"></path><path class="link" opacity="1" d="M623,1267.5
+			C635,1267.5
+			635,1250
+			647,1250"></path><path class="link" opacity="1" d="M623,1267.5
+			C635,1267.5
+			635,1285
+			647,1285"></path><path class="link" opacity="1" d="M679,1371.5
+			C691,1371.5
+			691,1353
+			703,1353"></path><path class="link" opacity="1" d="M679,1371.5
+			C691,1371.5
+			691,1388
+			703,1388"></path><path class="link" opacity="1" d="M735,1472.5
+			C747,1472.5
+			747,1472.5
+			759,1472.5"></path><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd84e74adf2fe590d82aaf" opacity="1" transform="translate(489, -1924)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="105" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					GearsOSとは
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="144" height="52.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="144" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="124" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(126, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd82128ac4bde03cf67c07" opacity="1" transform="translate(489, -1871.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="174" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					ファイルシステム未実装
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="213" height="70" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="213" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="193" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(195, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd80eb2c27f8ecd00eb462" opacity="1" transform="translate(489, -1801.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="231" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					GearsOSのファイルシステム設計
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="270" height="50.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="270" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="250" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(252, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd81108beb365d7d6e8059" opacity="1" transform="translate(489, -1751)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="132" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					取り入れたい要素
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="171" height="127.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="171" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="151" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(153, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61d9444bf9cc8a535c11e892" opacity="1" transform="translate(460, -1623.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="90" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					簡単な説明
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="129" height="146" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="129" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="109" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(111, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61d940dd468303afface1c8c" opacity="1" transform="translate(460, -1477.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="89" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Code Gear
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="128" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="128" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="108" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(110, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61d940e378de9033898c1ad2" opacity="1" transform="translate(460, -1443.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="86" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Data Gear
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="125" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="125" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="90" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(92, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eeeb65c478cfc1c5635" opacity="1" transform="translate(460, -1409.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="101" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					normal level
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="140" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="140" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="120" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(122, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eee6ae951fcba304d34" opacity="1" transform="translate(460, -1376.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="88" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					meta level
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="127" height="113.25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="127" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="107" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(109, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eee9b7b9970570bfc2a" opacity="1" transform="translate(460, -1263.25)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="62" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					継続性
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="101" height="113.25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="101" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="81" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(83, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eeef503ecd7e6e1cbe6" opacity="1" transform="translate(546, -1150)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="105" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					GearsOSとは
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="144" height="325.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="144" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="124" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(126, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd87437810c0b2b81c2279" opacity="1" transform="translate(546, -824.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="71" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Context
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="110" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="110" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="90" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(92, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd8208acb5e33d60f4c74c" opacity="1" transform="translate(546, -791.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="49" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					stub
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="88" height="299.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="88" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="53" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(55, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eeed192c58ee18885d0" opacity="1" transform="translate(483, -492)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="98" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Christieとは
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="137" height="112" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="137" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="117" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(119, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eeeaa32c75435cc523e" opacity="1" transform="translate(483, -380)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="141" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					DataGearManager
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="180" height="253.75" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="180" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="160" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(162, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eeeb5bd988c147c8a1d" opacity="1" transform="translate(483, -126.25)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="139" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					topology manager
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="178" height="210.75" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="178" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="158" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(160, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61e93473eec5f2817f77e3f7" opacity="1" transform="translate(545, 84.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="43" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					xv6
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="82" height="85.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="82" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="62" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(64, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eeef5fd3670c4313ae0" opacity="1" transform="translate(545, 170)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="57" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					inode
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="96" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="96" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="76" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(78, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0 M0,-3 L0,3"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd7dd35657c20441dc6477" opacity="1" transform="translate(639, 204)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="338" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Treeによるディレクトリ構造(図などでここ詳しく)
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="377" height="112" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="377" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="357" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(359, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd7e2e2aee2e9ec1aa35d2" opacity="1" transform="translate(639, 316)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="80" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Unix Like
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="119" height="134.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="119" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="99" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(101, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd7e2201750a5b46788263" opacity="1" transform="translate(639, 450.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="196" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					非破壊的編集によるBackUp
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="235" height="305.125" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="235" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="215" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(217, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd831310901a30ea41aaad" opacity="1" transform="translate(517, 755.625)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					構成
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="142.875" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="67" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(69, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd8f38421a42a228760bbf" opacity="1" transform="translate(509, 898.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="140" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					APIの設計に用いる
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="179" height="70" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="179" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="144" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(146, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61ed2c9d9b4680c8f3f4870e" opacity="1" transform="translate(509, 968.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					機能
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="119" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="67" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(69, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eee9142dd18a39e748e" opacity="1" transform="translate(509, 1087.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="161" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					GearBox的に処理する
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="200" height="138.25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="200" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="180" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(182, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eee898ab912c0e04558" opacity="1" transform="translate(461, 1225.75)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					現状
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="137.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="67" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(69, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd7ea31dc70438e3cfc0d4" opacity="1" transform="translate(461, 1363.25)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="90" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					今後の課題
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="129" height="111.25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="129" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="109" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(111, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61e93489737618a185b2895f" opacity="1" transform="translate(461, 1474.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="118" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					信頼性について
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="109" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="157" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="137" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(139, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eee543178ca256c0115" opacity="1" transform="translate(489, 1583.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					一木さん
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="109.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="95" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(97, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eeec8784cbea1345755" opacity="1" transform="translate(489, 1693)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="104" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					アナグラさん
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="143" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="143" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="123" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(125, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61bd6eee461ec06fe3419cf5" opacity="1" transform="translate(489, 1728)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="94" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					parusuさん
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="133" height="60" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="133" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="98" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(100, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61ee998ccd3316597ab10c0f" opacity="1" transform="translate(489, 1788)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="43" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					xv6
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="82" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="82" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="62" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(64, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61f0b2bef0aeee30303e9d00" opacity="1" transform="translate(461, 1821)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="83" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					mindmap
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="122" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="122" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="87" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(89, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_2 right" data-id="node_61f0b2c3fe4222ef0c01051a" opacity="1" transform="translate(461, 1854)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="164" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					gearsDirectory source
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="203" height="29" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="203" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="168" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(170, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd855fe56bb6885ef70a72" opacity="1" transform="translate(633, -1941.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="118" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					信頼性と拡張性
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="157" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="122" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(124, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd85337e9e91e8b09ba0cd" opacity="1" transform="translate(633, -1906.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="230" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					ノーマルレベルメタレベルの分離
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="269" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="269" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="249" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(251, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ed2d852377960f9ee10fae" opacity="1" transform="translate(702, -1871.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="235" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					だがOSにおいて重要な機能である
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="274" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="274" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="239" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(241, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd85a3983d508c3c27c4ff" opacity="1" transform="translate(759, -1836.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="230" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					基幹となるディレクトリシステム
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="269" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="269" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="234" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(236, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd85cacdd556d948e31521" opacity="1" transform="translate(759, -1801.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="104" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					ファイル構造
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="143" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="143" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="108" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(110, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd8614e9e69e610454c606" opacity="1" transform="translate(759, -1766.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="84" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					API設計中
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="123" height="25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="123" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="88" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(90, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd81337fa21ffab49afc1d" opacity="1" transform="translate(660, -1767.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="68" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					backup
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="107" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="107" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="72" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(74, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd813787fb53c87b741609" opacity="1" transform="translate(660, -1734.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="40" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					log
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="79" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="79" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="44" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(46, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61d9445a5f453b2338fbd0f0" opacity="1" transform="translate(589, -1700.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="99" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Cの下位言語
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="138" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="138" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="118" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(120, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61d944650417dd929d34bb38" opacity="1" transform="translate(589, -1665.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="258" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					関数呼び出しの代わりに継続を用いる
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="297" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="297" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="277" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(279, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61d944a718562880e7807481" opacity="1" transform="translate(589, -1620)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="118" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					環境を持たない
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="63" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="157" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="137" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(139, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61d9410f7ea17da01267bd3f" opacity="1" transform="translate(589, -1557)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/">
+					関数型言語のtail callスタイルにあたるプログラミング
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="359" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(361, 14)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61d9451ad3b25e7b890da30b" opacity="1" transform="translate(588, -1511.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="104" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					関数の代わり
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="143" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="143" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="108" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(110, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61d9452208e89007f290cc3b" opacity="1" transform="translate(588, -1476.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="142" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					_codeで宣言を行う
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="181" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="181" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="146" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(148, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61d946b3e9199d9885e6c634" opacity="1" transform="translate(588, -1442.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="131" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Input/Output DG
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="170" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="170" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="135" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(137, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee74908b9082004b8e" opacity="1" transform="translate(600, -1409.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="49" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					user
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="88" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="88" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="53" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(55, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee85791ef7e6470e8e" opacity="1" transform="translate(587, -1376.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="61" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					kernel
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="100" height="69" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="100" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="65" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(67, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eeefe777feeb03a9469" opacity="1" transform="translate(561, -1307.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="50" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					goto
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="89" height="87.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="89" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="69" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(71, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee5052c329895cdd65" opacity="1" transform="translate(561, -1220)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					軽量継続
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="70" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="95" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(97, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd819780aaf162d2cc76f4" opacity="1" transform="translate(690, -1150)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="146" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					信頼性の保証が目的
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="185" height="143.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="185" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="165" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(167, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ed3683b8405a0ba60b2245" opacity="1" transform="translate(656, -1006.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="247" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					全てのCG, DGを参照できるMetaDG
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="286" height="126" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="286" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="266" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(268, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ed36a2798eac68471105eb" opacity="1" transform="translate(656, -880.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="179" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					従来OSのプロセスに相当
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="218" height="70" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="218" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="198" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(200, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ed36b0ca39fce9d6219264" opacity="1" transform="translate(656, -810.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					種類
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="168" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="67" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(69, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ee8f9784c414868c51f599" opacity="1" transform="translate(656, -642.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="141" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Context参照の流れ
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="180" height="133" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="180" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="160" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(162, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eeecfd64bc7de9f3fe5" opacity="1" transform="translate(620, -509.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="202" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					並列分散通信フレームワーク
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="241" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="241" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="206" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(208, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee4be85afc650f0d3c" opacity="1" transform="translate(620, -474.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="190" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					CbCとは異なるGearの概念
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="229" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="229" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="209" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(211, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61e3cd6b41e77cba715b59c9" opacity="1" transform="translate(663, -439.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="139" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					DGを管理している
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="178" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="178" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="143" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(145, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd8c81b6b5039af448edb5" opacity="1" transform="translate(663, -394)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="118" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					key value store
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="36.25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="157" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="137" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(139, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eeea8d8ae3de903300a" opacity="1" transform="translate(663, -357.75)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="127" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Fileとして用いる
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="166" height="37.25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="166" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="131" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(133, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd8d12e24b1cd8530b52eb" opacity="1" transform="translate(663, -320.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="185" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					LocalDGMとRemoteDGM
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="224" height="80.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="224" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="204" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(206, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61e3dc139eb29e9674202fe9" opacity="1" transform="translate(661, -240)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="273" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					任意のtopologyを生成することができる
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="312" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="312" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="292" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(294, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61e3e3b1a936f5d0e748260b" opacity="1" transform="translate(661, -205)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="272" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					分散プログラムを簡潔に書くために必要
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="311" height="91" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="311" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="276" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(278, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61e3dc2cfe6b492376800946" opacity="1" transform="translate(661, -114)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="105" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					静的topology
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="144" height="101.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="144" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="124" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(126, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61e3dc35bb445111d12dc5ef" opacity="1" transform="translate(661, -12.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="105" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					動的topology
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="144" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="144" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="124" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(126, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ee9b8f426bad5d6e986a15" opacity="1" transform="translate(627, 33)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="245" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					MITで教育用の目的で開発されたOS
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="284" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="284" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="249" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(251, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ee9ba4900dff4dd99aef93" opacity="1" transform="translate(627, 68)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="162" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Unixの基本構造を持つ
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="201" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="201" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="166" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(168, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ee9bbc45fc1c1de6e57f30" opacity="1" transform="translate(627, 102)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="86" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					filesystem
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="125" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="125" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="105" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(107, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ee9bd02f811a0f199cee3d" opacity="1" transform="translate(627, 136)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="251" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					CbCによるxv6の書き換えが行われた
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="290" height="0.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="290" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="255" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(257, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee0ac7e49e7c9717d9" opacity="1" transform="translate(1016, 136.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="109" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					RedBlackTree
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="148" height="134" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="148" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="128" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(130, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61e8e9c40882cebe1a6de7c7" opacity="1" transform="translate(1016, 270.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="127" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					2つの木を用いる
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="166" height="12.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="166" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="146" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(148, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd82d555bd111195a6af3c" opacity="1" transform="translate(758, 283)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="59" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					mkdir
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="98" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="98" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="63" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(65, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd82d73f63750534da42cf" opacity="1" transform="translate(758, 316)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="36" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					cd
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="75" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="75" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="40" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(42, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd82d8e726b13b92713d0c" opacity="1" transform="translate(758, 349)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="31" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					ls
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="70" height="56" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="70" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="50" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(52, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61f12937d7e0c23c94f182e3" opacity="1" transform="translate(874, 405)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					バックアップ機能をOS自体に持たせたいという目的
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="101.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61f129ce24c6eecfe50f5e5b" opacity="1" transform="translate(874, 506.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="203" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					GearsOSにおける永続データ
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="242" height="140.25" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="242" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="222" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(224, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eeecf2259146277e593" opacity="1" transform="translate(604, 646.75)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="90" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					I/O stream
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="129" height="216.75" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="129" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="109" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(111, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd831e5aa20a0be6aeaf2a" opacity="1" transform="translate(604, 863.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="180" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					logによるバージョン管理
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="219" height="70" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="219" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="199" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(201, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ed2caf80fb0001ae0ce8f3" opacity="1" transform="translate(596, 933.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="188" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					ファイルの中身を読み取り
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="227" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="227" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="207" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(209, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ed2cde180a221da2acf738" opacity="1" transform="translate(596, 968.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="160" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Unix Fileに対して行う
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="199" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="199" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="164" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(166, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ed2cec48821caff7c6467c" opacity="1" transform="translate(596, 1003.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="132" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					中間報告の時の図
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="171" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="171" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="136" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(138, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee42dd695b47fa0009" opacity="1" transform="translate(709, 1038.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="99" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					一木さん図5
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="138" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="138" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="103" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(105, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee50ea4324a8c982de" opacity="1" transform="translate(709, 1073.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="127" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					File操作の仕組み
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="166" height="63" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="166" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="131" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(133, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ed2c5dac6ab24a586380f6" opacity="1" transform="translate(709, 1136.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="105" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					GearBoxとは
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="144" height="63" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="144" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="124" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(126, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eeeffd76a3022e6027f" opacity="1" transform="translate(548, 1199.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="118" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					実装できた部分
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="52.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="157" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="137" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(139, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee9894ca7b407b3f0d" opacity="1" transform="translate(548, 1252)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					課題
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="52.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="67" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(69, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd83693c151f3d7828adfa" opacity="1" transform="translate(590, 1304.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="160" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					分散ファイルシステム
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="199" height="51.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="199" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="164" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(166, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61f15e126ccc6fb88a8e3570" opacity="1" transform="translate(590, 1356)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="62" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					信頼性
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="101" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="101" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="81" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(83, 3.5)" style="display: inline;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd8f9b130c1664fab5c521" opacity="1" transform="translate(590, 1390)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="51" height="29"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					shell
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="90" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="90" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="55" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(57, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61f0b323437298c8d12f3aa3" opacity="1" transform="translate(590, 1423)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="50" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					path
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="89" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="89" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="54" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(56, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd7f0210ffe636a76a4cde" opacity="1" transform="translate(618, 1457)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="90" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					モデル検査
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="129" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="129" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="109" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(111, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61e93494be822d3e3afa2b28" opacity="1" transform="translate(618, 1492)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					定理証明
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="53" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(82, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eeec4993d23c274064e" opacity="1" transform="translate(604, 1545)"><g class="rectGroup" transform="translate(12, -33.5)"><foreignObject class="text" width="340" height="67"><div xmlns="http://www.w3.org/2000/xmlns/"><a href="https://ie.u-ryukyu.ac.jp/~kono/papers/kono/2021/ikki-sigos-2021.pdf" target="_blank">https://ie.u-ryukyu.ac.jp/~kono/papers/kono/2021/ikki-sigos-2021.pdf</a></div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="74" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-33.5" width="379" height="33.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-35.5" width="100" height="71" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 21.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eeeab13f367fec9c0ac" opacity="1" transform="translate(604, 1619)"><g class="rectGroup" transform="translate(12, -36.5)"><foreignObject class="text" width="340" height="73"><div xmlns="http://www.w3.org/2000/xmlns/">
+					一木 貴裕 ,河野 真治(琉球大学), 情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS), May, 2021
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="74" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-36.5" width="379" height="36.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-38.5" width="100" height="77" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 24.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61bd6eee322cb267275d34d1" opacity="1" transform="translate(632, 1693)"><g class="rectGroup" transform="translate(12, -33.5)"><foreignObject class="text" width="340" height="67"><div xmlns="http://www.w3.org/2000/xmlns/"><a href="http://www.cr.ie.u-ryukyu.ac.jp/hg/Papers/2021/anatofuz-master/raw-file/tip/paper/master_paper.pdf" target="_blank">http://www.cr.ie.u-ryukyu.ac.jp/hg/Papers/2021/anatofuz-master/raw-file/tip/paper/master_paper.pdf</a></div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="78.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-33.5" width="379" height="33.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-35.5" width="100" height="71" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 21.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61ee9992948c7ff47a116cc3" opacity="1" transform="translate(571, 1771.5)"><g class="rectGroup" transform="translate(12, -24)"><foreignObject class="text" width="340" height="48"><div xmlns="http://www.w3.org/2000/xmlns/"><a href="https://pdos.csail.mit.edu/6.828/2018/xv6/book-rev11.pdf" target="_blank">https://pdos.csail.mit.edu/6.828/2018/xv6/book-rev11.pdf</a></div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="42.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-24" width="379" height="24" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-26" width="100" height="52" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 12)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_3 right" data-id="node_61eecd7f3b9eb68511c5569a" opacity="1" transform="translate(571, 1814)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="208" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Papers/2020/anatofuz-sigos/
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="247" height="29" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="247" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="212" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(214, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eee08c7c7a1806ee0fc" opacity="1" transform="translate(902, -1906.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="62" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					信頼性
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="101" height="206" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="101" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="81" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(83, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d94682c59fb3c974fb8de7" opacity="1" transform="translate(727, -1700.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="99" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Cとの違いは
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="138" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="138" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="103" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(105, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d9448e9cef2f6677bb759a" opacity="1" transform="translate(886, -1665.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					継続とは
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(82, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d9428ea39f2dce266bd209" opacity="1" transform="translate(746, -1620)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					環境とは
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="95" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(97, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d94648aebf3fc3dce220a3" opacity="1" transform="translate(968, -1574.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="153" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					tail call スタイルとは
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="192" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="192" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="157" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(159, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d947af90753a0e8f7379c9" opacity="1" transform="translate(968, -1539.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="132" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					末尾再帰とも言う
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="171" height="197" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="171" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="136" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(138, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d94263d4adb76cdf86cec9" opacity="1" transform="translate(650, -1342.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="130" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					jmp命令を用いる
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="169" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="169" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="134" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(136, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d94b9d0ca35a34d7bde91f" opacity="1" transform="translate(650, -1307.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					引数付き
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="80" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(82, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d94c072399543871b331f5" opacity="1" transform="translate(650, -1272.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="190" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					普通のgotoと違うところは
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="229" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="229" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="194" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(196, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d9413052ebca6a864ecefa" opacity="1" transform="translate(676, -1237.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="118" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					環境を持たない
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="157" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="137" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(139, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61d94166e6f1868554b4111b" opacity="1" transform="translate(676, -1202.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="227" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					関数呼び出し(call)せず、jmpする
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="266" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="266" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="246" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(248, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd81ace80291bc0f83316e" opacity="1" transform="translate(875, -1167.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="90" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					モデル検査
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="129" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="129" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="94" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(96, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd81c24a34f76db1ebd827" opacity="1" transform="translate(875, -1132.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="328" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					ノーマルレベルメタレベル切り分けがされている
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="367" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="367" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="332" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(334, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed377893daa8cdaddf55e8" opacity="1" transform="translate(942, -1087)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/">
+					normalレベルのCGから直接参照してしまうとメタレベルを切り分けた意味がなくなってしまう
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed375cd69a801cfe4b38af" opacity="1" transform="translate(942, -1041.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="269" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Metaなのでnormalから直接参照しない
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="308" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="308" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="273" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(275, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed379f4a69a32ba8e8c96d" opacity="1" transform="translate(942, -1006.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="199" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					必ずMetaCGから参照される
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="238" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="238" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="203" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(205, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed37e901a43e8a3dd01eaf" opacity="1" transform="translate(942, -961)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/">
+					CodeGearはDataGearの一種であるからMetaDGにMetaCGの参照を入れることが可能
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed3f5aa24fbc88abd398d1" opacity="1" transform="translate(942, -915.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="200" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					CGとDGの接続に用いられる
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="239" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="239" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="204" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(206, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed37bcf0b7a42f1a98e516" opacity="1" transform="translate(874, -880.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="318" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					UserプロセスにあたるUser Contextが存在する
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="357" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="357" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="322" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(324, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed36b8a0405e837cf2d2f8" opacity="1" transform="translate(743, -845.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="117" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Kernel Context
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="156" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="156" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="136" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(138, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed36c0cca8e2f7245ed57f" opacity="1" transform="translate(743, -810.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="106" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					User Context
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="145" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="145" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="125" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(127, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed36c658bb78e7a973cce3" opacity="1" transform="translate(743, -775.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="103" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					CPU Context
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="142" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="142" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="122" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(124, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ee8fa0fe9bbb9ff64d47d3" opacity="1" transform="translate(836, -740.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="276" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					CGがOutputDataGearへデータをoutput
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="315" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="315" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="280" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(282, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ee9054238e124e9fa4b9e7" opacity="1" transform="translate(836, -705.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="219" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					次のCGのstubCodeGearへgoto
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="258" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="258" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="223" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(225, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ee906bc582d343442aaee5" opacity="1" transform="translate(836, -660)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/">
+					stubCGはinputDataGear(前のCGのoutputDG)とOutputDGを参照
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ee90c5896029e26c82b469" opacity="1" transform="translate(836, -614.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="83" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					CGへgoto
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="122" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="122" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="87" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(89, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ee90f564075918aa041324" opacity="1" transform="translate(836, -579.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="148" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					OutputDGへOutput
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="187" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="187" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="152" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(154, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ee910f3b125b56c2fb1ad5" opacity="1" transform="translate(836, -544.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="186" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					次のstubCodeGearへgoto
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="225" height="53.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="225" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="190" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(192, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eeebff8efc9e30d056a" opacity="1" transform="translate(849, -491)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="83" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					DataGear
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="122" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="122" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="102" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(104, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eee2c321f8f4f4b036c" opacity="1" transform="translate(849, -458)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="86" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					CodeGear
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="125" height="64" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="125" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="90" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(92, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e3cd2fb8249b54953c333f" opacity="1" transform="translate(820, -394)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/">
+					CGMが利用するCGのkeyとputされたDG(value)の組み合わせをもつ
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e3ccd7ff70f4db3c49cd21" opacity="1" transform="translate(887, -348.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="274" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					LocalはCGM自身が所持するDGのプール
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="313" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="313" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="278" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(280, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e3ccf1716526f230cd4462" opacity="1" transform="translate(887, -303)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/">
+					RemoteはCGMが配線されている別のCGMがもつDGのプール
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e3e6ebe37d568d7cf779ef" opacity="1" transform="translate(973, -257.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="179" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					topologyのノードはCGM
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="218" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="218" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="183" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(185, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eee9db8bb954c2884a4" opacity="1" transform="translate(973, -222.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="202" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					ノード同士の通信接続を管理
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="241" height="52.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="241" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="206" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(208, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e3e44b86a3291fd8cbb4da" opacity="1" transform="translate(805, -170)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="273" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					任意のtopologyとノードの配線ができる
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="312" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="312" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="277" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(279, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e3e5c120fe700bf4814331" opacity="1" transform="translate(805, -124.5)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/">
+					dotファイルに記述し,TopologyManagerに参照させる
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="56" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e3e62a1f820b2af52c8e95" opacity="1" transform="translate(805, -68.5)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/">
+					dotファイルに記述したノードの数と参加ノードの数が一致した場合に動作する
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="56" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e3e6487834cb61c4189095" opacity="1" transform="translate(805, -12.5)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/">
+					参加を表明したノードに対し,自動的に配線を行う
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="114.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ee9bc9dc4ebd5fe5851bec" opacity="1" transform="translate(752, 102)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="57" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					inode
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="96" height="1.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="96" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="61" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(63, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eee0fdad6a4a6f31a6b" opacity="1" transform="translate(1164, 103.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="294" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					DataGearManagerを格納してFileSystemに
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="333" height="67" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="333" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="298" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(300, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61eee83f397d07060865ecfd" opacity="1" transform="translate(1164, 170.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="42" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					API
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="81" height="67" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="81" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="61" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(63, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e8e9db791dcb4cd5bf0f12" opacity="1" transform="translate(1182, 237.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="139" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					inumとfile pointer
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="178" height="66" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="178" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="158" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(160, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e8e9cdf0097700a35df555" opacity="1" transform="translate(1182, 303.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="125" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					inumとfilename
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="164" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="164" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="144" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(146, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e934ae2dc68ce72877295b" opacity="1" transform="translate(828, 349)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/">
+					filenameのlistを入れることでlsのリスト表示を実装できる
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="101.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61f12a790ddfc40f14d278bb" opacity="1" transform="translate(1116, 450.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="118" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					木構造を用いる
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="157" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="137" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(139, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61f12ab29a7a7dfc676e4014" opacity="1" transform="translate(1116, 496)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/">
+					ルートノードから変更ノードまでのパスを全てコピー
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="56" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61f12ae34f005bb22a25b8a4" opacity="1" transform="translate(1116, 552)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/">
+					コピーしたパス上に存在しないノードはコピー元の木構造と共有
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="10.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd8e487ac7542722a1f93d" opacity="1" transform="translate(733, 562.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="85" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					keyで参照
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="124" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="124" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="89" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(91, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eee8c6deac442e1ba4e" opacity="1" transform="translate(733, 597.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="118" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					競合的アクセス
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="133.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="157" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="137" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(139, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61e9334e397cd205eea4f9c0" opacity="1" transform="translate(733, 731)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="100" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					3つのQueue
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="139" height="132.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="139" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="119" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(121, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd8f01fd6f76de916ed893" opacity="1" transform="translate(823, 863.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="117" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					git mercurial的
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="156" height="52.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="156" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="121" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(123, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed2cc44f1df81516689e2b" opacity="1" transform="translate(823, 916)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="62" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					文字数
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="101" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="101" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="66" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(68, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed2cc91ca42df3ff4ec949" opacity="1" transform="translate(823, 951)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="48" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					行数
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="87" height="157.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="87" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="52" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(54, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed2c644f4dab63b8ad1305" opacity="1" transform="translate(853, 1108.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="217" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					GearsOSの機能を表現する手法
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="256" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="256" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="221" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(223, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61ed2c71b4d2f92498f1af05" opacity="1" transform="translate(853, 1154)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/">
+					状態遷移図とクラスダイアグラムを組み合わせたような図
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eee9ca3b8ef3ec66f00" opacity="1" transform="translate(705, 1199.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="170" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					RBTreeの動作test(予定)
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="209" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="209" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="174" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(176, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eee39e5cae1a45aff86" opacity="1" transform="translate(635, 1234.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="262" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					GearsOSへのtopologyManagerの実装
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="301" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="301" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="266" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(268, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd6eeee00c797722567240" opacity="1" transform="translate(635, 1269.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="174" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					ディレクトリ構造の作成
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="213" height="69" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="213" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="178" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(180, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61f15e6d22e90dbb520c9c1f" opacity="1" transform="translate(691, 1338.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="92" height="29"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					GearsAgda
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="131" height="34" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="131" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="96" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(98, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61f15e76d4359e4feccabc88" opacity="1" transform="translate(691, 1372.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="90" height="31"><div xmlns="http://www.w3.org/2000/xmlns/" tabindex="-1">
+					モデル検査
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="129" height="84.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="129" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="94" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(96, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_4 right" data-id="node_61bd7f19e169603d1c277929" opacity="1" transform="translate(747, 1457)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="193" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					RedBlackTreeのモデル検査
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="232" height="31" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="232" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="197" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(199, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><path class="link" opacity="1" d="M991,-1891
+			C1003,-1891
+			1003,-1908.5
+			1015,-1908.5L1124,-1908.5"></path><path class="link" opacity="1" d="M991,-1891
+			C1003,-1891
+			1003,-1873.5
+			1015,-1873.5L1110,-1873.5"></path><path class="link" opacity="1" d="M849,-1604.5
+			C861,-1604.5
+			861,-1594
+			873,-1594"></path><path class="link" opacity="1" d="M821,-1222
+			C833,-1222
+			833,-1222
+			845,-1222"></path><path class="link" opacity="1" d="M930,-1187
+			C942,-1187
+			942,-1187
+			954,-1187"></path><path class="link" opacity="1" d="M887,-831
+			C899,-831
+			899,-830
+			911,-830"></path><path class="link" opacity="1" d="M876,-796
+			C888,-796
+			888,-795
+			900,-795"></path><path class="link" opacity="1" d="M873,-761
+			C885,-761
+			885,-760
+			897,-760"></path><path class="link" opacity="1" d="M959,-476.5
+			C971,-476.5
+			971,-476.5
+			983,-476.5"></path><path class="link" opacity="1" d="M1233,185
+			C1245,185
+			1245,152
+			1257,152"></path><path class="link" opacity="1" d="M1233,185
+			C1245,185
+			1245,185
+			1257,185"></path><path class="link" opacity="1" d="M1233,185
+			C1245,185
+			1245,218
+			1257,218"></path><path class="link" opacity="1" d="M1348,253
+			C1360,253
+			1360,235.5
+			1372,235.5"></path><path class="link" opacity="1" d="M1348,253
+			C1360,253
+			1360,268.5
+			1372,268.5"></path><path class="link" opacity="1" d="M1334,319
+			C1346,319
+			1346,301.5
+			1358,301.5"></path><path class="link" opacity="1" d="M1334,319
+			C1346,319
+			1346,334.5
+			1358,334.5"></path><path class="link" opacity="1" d="M1261,466
+			C1273,466
+			1273,465
+			1285,465"></path><path class="link" opacity="1" d="M878,613
+			C890,613
+			890,612
+			902,612L1072,612"></path><path class="link" opacity="1" d="M860,746.5
+			C872,746.5
+			872,647
+			884,647L958,647"></path><path class="link" opacity="1" d="M860,746.5
+			C872,746.5
+			872,682
+			884,682L968,682"></path><path class="link" opacity="1" d="M860,746.5
+			C872,746.5
+			872,717
+			884,717L956,717"></path><path class="link" opacity="1" d="M860,746.5
+			C872,746.5
+			872,753
+			884,753"></path><path class="link" opacity="1" d="M860,746.5
+			C872,746.5
+			872,788
+			884,788L1131,788"></path><path class="link" opacity="1" d="M860,746.5
+			C872,746.5
+			872,844
+			884,844"></path><path class="link" opacity="1" d="M1120,-1908.5
+			C1132,-1908.5
+			1132,-1908.5
+			1144,-1908.5"></path><path class="link" opacity="1" d="M1106,-1873.5
+			C1118,-1873.5
+			1118,-1874.5
+			1130,-1874.5"></path><path class="link" opacity="1" d="M1068,612
+			C1080,612
+			1080,613
+			1092,613"></path><path class="link" opacity="1" d="M954,647
+			C966,647
+			966,648
+			978,648"></path><path class="link" opacity="1" d="M964,682
+			C976,682
+			976,683
+			988,683L1323,683"></path><path class="link" opacity="1" d="M952,717
+			C964,717
+			964,718
+			976,718"></path><path class="link" opacity="1" d="M1127,788
+			C1139,788
+			1139,788
+			1151,788"></path><path class="link" opacity="1" d="M1319,683
+			C1331,683
+			1331,693.5
+			1343,693.5"></path><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61bd6eee9d6e9956ae48ef78" opacity="1" transform="translate(1003, -1924)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="90" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					モデル検査
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="129" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="129" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="109" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(111, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61bd6eeefcfde9a71e4e5b2e" opacity="1" transform="translate(1003, -1889)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="76" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					定理証明
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="115" height="269" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="115" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="95" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(97, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61d942946f219b5048513f78" opacity="1" transform="translate(861, -1620)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/">
+					プログラムが実行される際、その出力に影響を与える変数やデータのこと
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="382.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61d9423e49b16256983319a7" opacity="1" transform="translate(833, -1237.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="209" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					必要なデータは毎回inputする
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="248" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="248" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="213" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(215, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61d9419e147ca341ac5a09da" opacity="1" transform="translate(942, -1202.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="179" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					処理はcallよりjmpが軽量
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="218" height="357" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="218" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="183" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(185, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61ed373d6b24cd409ad2eabb" opacity="1" transform="translate(899, -845.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="244" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					OS上の全てのContextを参照できる
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="283" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="283" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="248" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(250, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61ed373187563f7fd5e088ee" opacity="1" transform="translate(888, -810.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="174" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					ユーザーごとに存在する
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="213" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="213" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="178" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(180, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61ed4223b2eb05ae7307e372" opacity="1" transform="translate(885, -775.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="273" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					実行しているCPUやGPUごとに存在する
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="312" height="284.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="312" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="277" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(279, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61bd6eeeff6b0351dab1fa13" opacity="1" transform="translate(971, -491)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="65" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					atomic
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="104" height="628.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="104" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="69" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(71, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61eee842d5b528b4a1beaa20" opacity="1" transform="translate(1245, 137.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="43" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					put
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="82" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="82" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="47" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(49, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61eee8792277046bdaf7a0e6" opacity="1" transform="translate(1245, 170.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="41" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					get
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="80" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="80" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="45" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(47, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61eee8bc6fdb1297f4d4d113" opacity="1" transform="translate(1245, 203.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="70" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					remove
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="109" height="17.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="109" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="74" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(76, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e8eb987f8ddb9d4a2dcd74" opacity="1" transform="translate(1360, 221)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="84" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					key: inum
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="123" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="123" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="88" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(90, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e8ec079f4d8083dd38966f" opacity="1" transform="translate(1360, 254)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="134" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					value: file pointer
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="173" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="173" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="138" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(140, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e8ea002ff4c042699dbf38" opacity="1" transform="translate(1346, 287)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="107" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					key: filename
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="146" height="33" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="146" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="111" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(113, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e8eb895348af436deb04f9" opacity="1" transform="translate(1346, 320)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="96" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					value: inum
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="135" height="130.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="135" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="100" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(102, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61f12a81d1adcbd019532ac0" opacity="1" transform="translate(1273, 450.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="109" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					RedBlackTree
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="148" height="147" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="148" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="113" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(115, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61bd6eeec43c03061353ac5d" opacity="1" transform="translate(890, 597.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="151" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					synchronizedQueue
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="190" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="190" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="170" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(172, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e9335eec165d23dfdc8398" opacity="1" transform="translate(872, 632.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="55" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					input
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="94" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="94" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="74" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(76, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e933628858d3b20926eff6" opacity="1" transform="translate(872, 667.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="65" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					output
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="104" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="104" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="84" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(86, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e93364eb0882d4d2aa4333" opacity="1" transform="translate(872, 702.5)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="53" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					main
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="92" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="92" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="72" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(74, 2.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e933a597e088d5c08e9f74" opacity="1" transform="translate(872, 737.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="273" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					input -&gt; main -&gt; output のような繋がり
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="312" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="312" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="277" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(279, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e933bd8752462fa2f18d82" opacity="1" transform="translate(872, 772.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="228" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					queueの中身は共通してelement
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="267" height="45.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="267" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="247" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(249, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_5 right" data-id="node_61e99c4e334b95c9b14a0bb6" opacity="1" transform="translate(872, 818)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/">
+					これらのQueueはkeyとペアになっており,keyで参照することができる.
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="52" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_6 right" data-id="node_61bd6eeecd235fed85307f45" opacity="1" transform="translate(1132, -1924)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="62" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					継続性
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="101" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="101" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="66" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(68, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_6 right" data-id="node_61bd6eee1bd3d88a8df6d3db" opacity="1" transform="translate(1118, -1889)"><g class="rectGroup" transform="translate(12, -14.5)"><foreignObject class="text" width="52" height="29"><div xmlns="http://www.w3.org/2000/xmlns/">
+					agda
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="91" height="2486.5" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-14.5" width="91" height="14.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="56" y="-16.5" width="100" height="33" style="display: none;"></rect><g class="circleGroup" transform="translate(58, 2.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_6 right" data-id="node_61bd6eee4982fc08b5ca1aed" opacity="1" transform="translate(1080, 597.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="136" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					parusuさんの論文
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="175" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="175" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="140" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(142, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_6 right" data-id="node_61e93367359023bf79e7368c" opacity="1" transform="translate(966, 632.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="303" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					データをinputしたい場合にこのQueueにput
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="342" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="342" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="307" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(309, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_6 right" data-id="node_61e9337c83e1e1d0a2e07f51" opacity="1" transform="translate(976, 667.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="316" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					データを取得したい場合にこのQueueからtake
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="355" height="35" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="355" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="335" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(337, 3.5)"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_6 right" data-id="node_61e93398d517334fec28637a" opacity="1" transform="translate(964, 702.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="118" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					データそのもの
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="157" height="70" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="157" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="122" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(124, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_6 right" data-id="node_61e933f8e5a474251fd9f24f" opacity="1" transform="translate(1139, 772.5)"><g class="rectGroup" transform="translate(12, -15.5)"><foreignObject class="text" width="102" height="31"><div xmlns="http://www.w3.org/2000/xmlns/">
+					elementとは
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="141" height="31" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-15.5" width="141" height="15.5" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="106" y="-17.5" width="100" height="35" style="display: none;"></rect><g class="circleGroup" transform="translate(108, 3.5)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g><g class="mindmapNode nodeNormal depth_7 right" data-id="node_61e93408b69a88a07cd0834d" opacity="1" transform="translate(1331, 667.5)"><g class="rectGroup" transform="translate(12, -26)"><foreignObject class="text" width="340" height="52"><div xmlns="http://www.w3.org/2000/xmlns/">
+					Synchronized QueueかSingleLinkedQueueを選べる
+				</div></foreignObject></g><rect class="ghostRect ghostRectBottom" pointer-events="none" x="0" y="0" width="379" height="52" style="display: none;"></rect><rect class="ghostRect ghostRectTop" pointer-events="none" x="0" y="-26" width="379" height="26" style="display: none;"></rect><rect class="ghostRect ghostRectSide" pointer-events="none" x="344" y="-28" width="100" height="56" style="display: none;"></rect><g class="circleGroup" transform="translate(346, 14)" style="display: none;"><circle r="6"></circle><path class="circleIcon" d="M-3,0 L3,0"></path></g></g></g><g _ngcontent-lkb-c107="" class="root"><g class="mindmapNode nodeRoot" data-id="node_61bd6eeee4f36694ca125b71"><g class="rootRectGroup" transform="translate(-12, -34)"><foreignObject class="mainText" x="27" width="350" height="68"><div xmlns="http://www.w3.org/2000/xmlns/">
+					GearsOSにおけるinodeを用いたFile systemの設計
+				</div></foreignObject></g><rect class="ghostRect ghostRectLeft" pointer-events="none" x="-190" y="-234" width="200" height="468" style="display: none;"></rect><rect class="ghostRect ghostRectRight" pointer-events="none" x="384" y="-234" width="200" height="468" style="display: none;"></rect></g></g><g _ngcontent-lkb-c107="" class="textareaWrapper" transform="translate(703,92.875)" style="display: none;"><foreignObject _ngcontent-lkb-c107="" width="345" height="500"><textarea _ngcontent-lkb-c107="" style="display: none; width: 115px; height: 31px;"></textarea></foreignObject></g><foreignObject _ngcontent-lkb-c107="" class="editHelperWrapper"><div _ngcontent-lkb-c107="" style="visibility: hidden; position: absolute; z-index: -1; width: 320px;"><div _ngcontent-lkb-c107="" class="editHelper" style="display: inline-block; pointer-events: none;">モデル検査</div></div></foreignObject></g></svg></div></div></app-svg-container></app-mindmap></body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/gearsDirectoryMM.json	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,1728 @@
+{
+  "name": "GearsOSにおけるinodeを用いたFile systemの設計",
+  "children": [
+    {
+      "name": "研究目的",
+      "children": [
+        {
+          "name": "GearsOSとは",
+          "children": [
+            {
+              "name": "信頼性と拡張性",
+              "children": [],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "ノーマルレベルメタレベルの分離",
+              "children": [
+                {
+                  "name": "信頼性",
+                  "children": [
+                    {
+                      "name": "モデル検査",
+                      "children": [
+                        {
+                          "name": "継続性",
+                          "children": [],
+                          "metadata": {}
+                        }
+                      ],
+                      "metadata": {
+                        "type": "header",
+                        "level": 6
+                      }
+                    },
+                    {
+                      "name": "定理証明",
+                      "children": [
+                        {
+                          "name": "agda",
+                          "children": [],
+                          "metadata": {}
+                        }
+                      ],
+                      "metadata": {
+                        "type": "header",
+                        "level": 6
+                      }
+                    }
+                  ],
+                  "collapsed": false,
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "ファイルシステム未実装",
+          "children": [
+            {
+              "name": "だがOSにおいて重要な機能である",
+              "children": [],
+              "metadata": {}
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "GearsOSのファイルシステム設計",
+          "children": [
+            {
+              "name": "基幹となるディレクトリシステム",
+              "children": [],
+              "metadata": {}
+            },
+            {
+              "name": "ファイル構造",
+              "children": [],
+              "metadata": {}
+            },
+            {
+              "name": "API設計中",
+              "children": [],
+              "metadata": {}
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "取り入れたい要素",
+          "children": [
+            {
+              "name": "backup",
+              "children": [],
+              "metadata": {}
+            },
+            {
+              "name": "log",
+              "children": [],
+              "metadata": {}
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        }
+      ],
+      "collapsed": false,
+      "metadata": {
+        "type": "header",
+        "level": 2
+      }
+    },
+    {
+      "name": "CbC",
+      "children": [
+        {
+          "name": "簡単な説明",
+          "children": [
+            {
+              "name": "Cの下位言語",
+              "children": [
+                {
+                  "name": "Cとの違いは",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "関数呼び出しの代わりに継続を用いる",
+              "children": [
+                {
+                  "name": "継続とは",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "環境を持たない",
+              "children": [
+                {
+                  "name": "環境とは",
+                  "children": [
+                    {
+                      "name": "プログラムが実行される際、その出力に影響を与える変数やデータのこと",
+                      "children": [],
+                      "metadata": {}
+                    }
+                  ],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "関数型言語のtail callスタイルにあたるプログラミング",
+              "children": [
+                {
+                  "name": "tail call スタイルとは",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "末尾再帰とも言う",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "Code Gear",
+          "children": [
+            {
+              "name": "関数の代わり",
+              "children": [],
+              "metadata": {}
+            },
+            {
+              "name": "_codeで宣言を行う",
+              "children": [],
+              "metadata": {}
+            },
+            {
+              "name": "Input/Output DG",
+              "children": [],
+              "metadata": {}
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "Data Gear",
+          "children": [],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "normal level",
+          "children": [
+            {
+              "name": "user",
+              "children": [],
+              "metadata": {}
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "meta level",
+          "children": [
+            {
+              "name": "kernel",
+              "children": [],
+              "metadata": {}
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "継続性",
+          "children": [
+            {
+              "name": "goto",
+              "children": [
+                {
+                  "name": "jmp命令を用いる",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "引数付き",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "普通のgotoと違うところは",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "軽量継続",
+              "children": [
+                {
+                  "name": "環境を持たない",
+                  "children": [
+                    {
+                      "name": "必要なデータは毎回inputする",
+                      "children": [],
+                      "metadata": {}
+                    }
+                  ],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                },
+                {
+                  "name": "関数呼び出し(call)せず、jmpする",
+                  "children": [
+                    {
+                      "name": "処理はcallよりjmpが軽量",
+                      "children": [],
+                      "metadata": {}
+                    }
+                  ],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        }
+      ],
+      "collapsed": false,
+      "metadata": {
+        "type": "header",
+        "level": 2
+      }
+    },
+    {
+      "name": "GearsOSについて",
+      "children": [
+        {
+          "name": "GearsOSとは",
+          "children": [
+            {
+              "name": "信頼性の保証が目的",
+              "children": [
+                {
+                  "name": "モデル検査",
+                  "children": [],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                },
+                {
+                  "name": "ノーマルレベルメタレベル切り分けがされている",
+                  "children": [],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "collapsed": false,
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "Context",
+          "children": [
+            {
+              "name": "全てのCG, DGを参照できるMetaDG",
+              "children": [
+                {
+                  "name": "normalレベルのCGから直接参照してしまうとメタレベルを切り分けた意味がなくなってしまう",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "Metaなのでnormalから直接参照しない",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "必ずMetaCGから参照される",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "CodeGearはDataGearの一種であるからMetaDGにMetaCGの参照を入れることが可能",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "CGとDGの接続に用いられる",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "従来OSのプロセスに相当",
+              "children": [
+                {
+                  "name": "UserプロセスにあたるUser Contextが存在する",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "種類",
+              "children": [
+                {
+                  "name": "Kernel Context",
+                  "children": [
+                    {
+                      "name": "OS上の全てのContextを参照できる",
+                      "children": [],
+                      "metadata": {}
+                    }
+                  ],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                },
+                {
+                  "name": "User Context",
+                  "children": [
+                    {
+                      "name": "ユーザーごとに存在する",
+                      "children": [],
+                      "metadata": {}
+                    }
+                  ],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                },
+                {
+                  "name": "CPU Context",
+                  "children": [
+                    {
+                      "name": "実行しているCPUやGPUごとに存在する",
+                      "children": [],
+                      "metadata": {}
+                    }
+                  ],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "Context参照の流れ",
+              "children": [
+                {
+                  "name": "CGがOutputDataGearへデータをoutput",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "次のCGのstubCodeGearへgoto",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "stubCGはinputDataGear(前のCGのoutputDG)とOutputDGを参照",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "CGへgoto",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "OutputDGへOutput",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "次のstubCodeGearへgoto",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "collapsed": false,
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "stub",
+          "children": [],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        }
+      ],
+      "collapsed": false,
+      "metadata": {
+        "type": "header",
+        "level": 2
+      }
+    },
+    {
+      "name": "Christie",
+      "children": [
+        {
+          "name": "Christieとは",
+          "children": [
+            {
+              "name": "並列分散通信フレームワーク",
+              "children": [],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "CbCとは異なるGearの概念",
+              "children": [
+                {
+                  "name": "DataGear",
+                  "children": [
+                    {
+                      "name": "atomic",
+                      "children": [],
+                      "metadata": {}
+                    }
+                  ],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                },
+                {
+                  "name": "CodeGear",
+                  "children": [],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "DataGearManager",
+          "children": [
+            {
+              "name": "DGを管理している",
+              "children": [],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "key value store",
+              "children": [
+                {
+                  "name": "CGMが利用するCGのkeyとputされたDG(value)の組み合わせをもつ",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "Fileとして用いる",
+              "children": [],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "LocalDGMとRemoteDGM",
+              "children": [
+                {
+                  "name": "LocalはCGM自身が所持するDGのプール",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "RemoteはCGMが配線されている別のCGMがもつDGのプール",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "topology manager",
+          "children": [
+            {
+              "name": "任意のtopologyを生成することができる",
+              "children": [
+                {
+                  "name": "topologyのノードはCGM",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "ノード同士の通信接続を管理",
+                  "children": [],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "分散プログラムを簡潔に書くために必要",
+              "children": [],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "静的topology",
+              "children": [
+                {
+                  "name": "任意のtopologyとノードの配線ができる",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "dotファイルに記述し,TopologyManagerに参照させる",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "dotファイルに記述したノードの数と参加ノードの数が一致した場合に動作する",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "動的topology",
+              "children": [
+                {
+                  "name": "参加を表明したノードに対し,自動的に配線を行う",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        }
+      ],
+      "collapsed": false,
+      "metadata": {
+        "type": "header",
+        "level": 2
+      }
+    },
+    {
+      "name": "UnixのFilesystem",
+      "children": [
+        {
+          "name": "xv6",
+          "children": [
+            {
+              "name": "MITで教育用の目的で開発されたOS",
+              "children": [],
+              "metadata": {}
+            },
+            {
+              "name": "Unixの基本構造を持つ",
+              "children": [],
+              "metadata": {}
+            },
+            {
+              "name": "filesystem",
+              "children": [
+                {
+                  "name": "inode",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "CbCによるxv6の書き換えが行われた",
+              "children": [],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "inode",
+          "children": [
+            {
+              "name": "Fileの属性情報",
+              "children": [
+                {
+                  "name": "File Types",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "Permissions",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "UID",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "GID",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "File Size",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "Time Stamps",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "Number of link",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "Location on hard disk",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "inode number",
+              "children": [
+                {
+                  "name": "inodeを識別するための番号",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "ファイル名とinodeがペアになっている",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "Mac OSではls -iで確認可能",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "ファイルシステム内で一意の番号",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "ファイル数の上限がここで決まってくる",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "collapsed": true,
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        }
+      ],
+      "collapsed": false,
+      "metadata": {
+        "type": "header",
+        "level": 2
+      }
+    },
+    {
+      "name": "GearsFileSystemのディレクトリ",
+      "children": [
+        {
+          "name": "Treeによるディレクトリ構造(図などでここ詳しく)",
+          "children": [
+            {
+              "name": "RedBlackTree",
+              "children": [
+                {
+                  "name": "DataGearManagerを格納してFileSystemに",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "API",
+                  "children": [
+                    {
+                      "name": "put",
+                      "children": [],
+                      "metadata": {}
+                    },
+                    {
+                      "name": "get",
+                      "children": [],
+                      "metadata": {}
+                    },
+                    {
+                      "name": "remove",
+                      "children": [],
+                      "metadata": {}
+                    }
+                  ],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "2つの木を用いる",
+              "children": [
+                {
+                  "name": "inumとfile pointer",
+                  "children": [
+                    {
+                      "name": "key: inum",
+                      "children": [],
+                      "metadata": {}
+                    },
+                    {
+                      "name": "value: file pointer",
+                      "children": [],
+                      "metadata": {}
+                    }
+                  ],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                },
+                {
+                  "name": "inumとfilename",
+                  "children": [
+                    {
+                      "name": "key: filename",
+                      "children": [],
+                      "metadata": {}
+                    },
+                    {
+                      "name": "value: inum",
+                      "children": [],
+                      "metadata": {}
+                    }
+                  ],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "Unix Like",
+          "children": [
+            {
+              "name": "mkdir",
+              "children": [],
+              "metadata": {}
+            },
+            {
+              "name": "cd",
+              "children": [],
+              "metadata": {}
+            },
+            {
+              "name": "ls",
+              "children": [
+                {
+                  "name": "filenameのlistを入れることでlsのリスト表示を実装できる",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "非破壊的編集によるBackUp",
+          "children": [
+            {
+              "name": "バックアップ機能をOS自体に持たせたいという目的",
+              "children": [],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "GearsOSにおける永続データ",
+              "children": [
+                {
+                  "name": "木構造を用いる",
+                  "children": [
+                    {
+                      "name": "RedBlackTree",
+                      "children": [],
+                      "metadata": {}
+                    }
+                  ],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                },
+                {
+                  "name": "ルートノードから変更ノードまでのパスを全てコピー",
+                  "children": [],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                },
+                {
+                  "name": "コピーしたパス上に存在しないノードはコピー元の木構造と共有",
+                  "children": [],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        }
+      ],
+      "collapsed": false,
+      "metadata": {
+        "type": "header",
+        "level": 2
+      }
+    },
+    {
+      "name": "ファイル構造",
+      "children": [
+        {
+          "name": "構成",
+          "children": [
+            {
+              "name": "I/O stream",
+              "children": [
+                {
+                  "name": "keyで参照",
+                  "children": [],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                },
+                {
+                  "name": "競合的アクセス",
+                  "children": [
+                    {
+                      "name": "synchronizedQueue",
+                      "children": [
+                        {
+                          "name": "parusuさんの論文",
+                          "children": [],
+                          "metadata": {}
+                        }
+                      ],
+                      "metadata": {
+                        "type": "header",
+                        "level": 6
+                      }
+                    }
+                  ],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                },
+                {
+                  "name": "3つのQueue",
+                  "children": [
+                    {
+                      "name": "input",
+                      "children": [
+                        {
+                          "name": "データをinputしたい場合にこのQueueにput",
+                          "children": [],
+                          "metadata": {}
+                        }
+                      ],
+                      "metadata": {
+                        "type": "header",
+                        "level": 6
+                      }
+                    },
+                    {
+                      "name": "output",
+                      "children": [
+                        {
+                          "name": "データを取得したい場合にこのQueueからtake",
+                          "children": [
+                            {
+                              "name": "Synchronized QueueかSingleLinkedQueueを選べる",
+                              "children": [],
+                              "metadata": {}
+                            }
+                          ],
+                          "metadata": {
+                            "type": "header",
+                            "level": 7
+                          }
+                        }
+                      ],
+                      "metadata": {
+                        "type": "header",
+                        "level": 6
+                      }
+                    },
+                    {
+                      "name": "main",
+                      "children": [
+                        {
+                          "name": "データそのもの",
+                          "children": [],
+                          "metadata": {}
+                        }
+                      ],
+                      "metadata": {
+                        "type": "header",
+                        "level": 6
+                      }
+                    },
+                    {
+                      "name": "input -> main -> output のような繋がり",
+                      "children": [],
+                      "metadata": {}
+                    },
+                    {
+                      "name": "queueの中身は共通してelement",
+                      "children": [
+                        {
+                          "name": "elementとは",
+                          "children": [],
+                          "metadata": {
+                            "type": "header",
+                            "level": 7
+                          }
+                        }
+                      ],
+                      "metadata": {
+                        "type": "header",
+                        "level": 6
+                      }
+                    },
+                    {
+                      "name": "これらのQueueはkeyとペアになっており,keyで参照することができる.",
+                      "children": [],
+                      "metadata": {
+                        "type": "header",
+                        "level": 6
+                      }
+                    }
+                  ],
+                  "metadata": {
+                    "type": "header",
+                    "level": 5
+                  }
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "logによるバージョン管理",
+              "children": [
+                {
+                  "name": "git mercurial的",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "collapsed": false,
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        }
+      ],
+      "collapsed": false,
+      "metadata": {
+        "type": "header",
+        "level": 2
+      }
+    },
+    {
+      "name": "WordCount",
+      "children": [
+        {
+          "name": "APIの設計に用いる",
+          "children": [],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "機能",
+          "children": [
+            {
+              "name": "ファイルの中身を読み取り",
+              "children": [
+                {
+                  "name": "文字数",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "行数",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "Unix Fileに対して行う",
+              "children": [],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "中間報告の時の図",
+              "children": [],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "GearBox的に処理する",
+          "children": [
+            {
+              "name": "一木さん図5",
+              "children": [],
+              "metadata": {}
+            },
+            {
+              "name": "File操作の仕組み",
+              "children": [],
+              "metadata": {}
+            },
+            {
+              "name": "GearBoxとは",
+              "children": [
+                {
+                  "name": "GearsOSの機能を表現する手法",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "状態遷移図とクラスダイアグラムを組み合わせたような図",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        }
+      ],
+      "collapsed": false,
+      "metadata": {
+        "type": "header",
+        "level": 2
+      }
+    },
+    {
+      "name": "考察",
+      "children": [
+        {
+          "name": "現状",
+          "children": [
+            {
+              "name": "実装できた部分",
+              "children": [
+                {
+                  "name": "RBTreeの動作test(予定)",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "課題",
+              "children": [
+                {
+                  "name": "GearsOSへのtopologyManagerの実装",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "ディレクトリ構造の作成",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "collapsed": false,
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "今後の課題",
+          "children": [
+            {
+              "name": "分散ファイルシステム",
+              "children": [],
+              "metadata": {}
+            },
+            {
+              "name": "信頼性",
+              "children": [
+                {
+                  "name": "GearsAgda",
+                  "children": [],
+                  "metadata": {}
+                },
+                {
+                  "name": "モデル検査",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "shell",
+              "children": [],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "path",
+              "children": [],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "信頼性について",
+          "children": [
+            {
+              "name": "モデル検査",
+              "children": [
+                {
+                  "name": "RedBlackTreeのモデル検査",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "定理証明",
+              "children": [],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        }
+      ],
+      "collapsed": false,
+      "metadata": {
+        "type": "header",
+        "level": 2
+      }
+    },
+    {
+      "name": "参考文献",
+      "children": [
+        {
+          "name": "一木さん",
+          "children": [
+            {
+              "name": "https://ie.u-ryukyu.ac.jp/~kono/papers/kono/2021/ikki-sigos-2021.pdf",
+              "children": [],
+              "metadata": {}
+            },
+            {
+              "name": "一木 貴裕 ,河野 真治(琉球大学), 情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS), May, 2021",
+              "children": [],
+              "metadata": {}
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "アナグラさん",
+          "children": [
+            {
+              "name": "http://www.cr.ie.u-ryukyu.ac.jp/hg/Papers/2021/anatofuz-master/raw-file/tip/paper/master_paper.pdf",
+              "children": [],
+              "metadata": {}
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "parusuさん",
+          "children": [],
+          "metadata": {}
+        },
+        {
+          "name": "xv6",
+          "children": [
+            {
+              "name": "https://pdos.csail.mit.edu/6.828/2018/xv6/book-rev11.pdf",
+              "children": [],
+              "metadata": {}
+            },
+            {
+              "name": "Papers/2020/anatofuz-sigos/",
+              "children": [],
+              "metadata": {}
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        }
+      ],
+      "collapsed": false,
+      "metadata": {
+        "type": "header",
+        "level": 2
+      }
+    },
+    {
+      "name": "付録",
+      "children": [
+        {
+          "name": "mindmap",
+          "children": [],
+          "metadata": {}
+        },
+        {
+          "name": "gearsDirectory source",
+          "children": [],
+          "metadata": {}
+        }
+      ],
+      "collapsed": false,
+      "metadata": {
+        "type": "header",
+        "level": 2
+      }
+    },
+    {
+      "name": "章立て",
+      "children": [
+        {
+          "name": "GearsOSにおける分散ファイルシステム(研究目的)",
+          "children": [],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "CbC",
+          "children": [],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "GearsOSについて",
+          "children": [],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "Christie",
+          "children": [
+            {
+              "name": "Gear概念",
+              "children": [],
+              "metadata": {}
+            },
+            {
+              "name": "DataGearManager",
+              "children": [],
+              "metadata": {}
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "UnixのFilesystem",
+          "children": [
+            {
+              "name": "inode",
+              "children": [],
+              "metadata": {}
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "GearsFileSystemのディレクトリ",
+          "children": [
+            {
+              "name": "Treeによるディレクトリ構造(図などでここ詳しく)",
+              "children": [],
+              "metadata": {}
+            },
+            {
+              "name": "Unix Like",
+              "children": [
+                {
+                  "name": "inodeを用いたディレクトリエントリ",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            },
+            {
+              "name": "非破壊的編集によるBackUp",
+              "children": [],
+              "metadata": {}
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "ファイル構造",
+          "children": [
+            {
+              "name": "構成",
+              "children": [
+                {
+                  "name": "logによるバージョン管理",
+                  "children": [],
+                  "metadata": {}
+                }
+              ],
+              "metadata": {
+                "type": "header",
+                "level": 4
+              }
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "WordCount",
+          "children": [],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "考察",
+          "children": [
+            {
+              "name": "今後の課題",
+              "children": [],
+              "metadata": {}
+            }
+          ],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        },
+        {
+          "name": "参考文献",
+          "children": [],
+          "metadata": {
+            "type": "header",
+            "level": 3
+          }
+        }
+      ],
+      "collapsed": false,
+      "metadata": {
+        "type": "header",
+        "level": 2
+      }
+    }
+  ],
+  "metadata": {
+    "type": "header",
+    "level": 1,
+    "mode": "mindmap"
+  }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/gearsDirectoryMM.md	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,242 @@
+# GearsOSにおけるinodeを用いたFile systemの設計
+## 研究目的
+### GearsOSとは
+#### 信頼性と拡張性
+#### ノーマルレベルメタレベルの分離
+##### 信頼性
+###### モデル検査
+継続性
+###### 定理証明
+agda
+### ファイルシステム未実装
+だがOSにおいて重要な機能である
+### GearsOSのファイルシステム設計
+基幹となるディレクトリシステム
+ファイル構造
+API設計中
+### 取り入れたい要素
+backup
+log
+## CbC
+### 簡単な説明
+#### Cの下位言語
+Cとの違いは
+#### 関数呼び出しの代わりに継続を用いる
+継続とは
+#### 環境を持たない
+##### 環境とは
+プログラムが実行される際、その出力に影響を与える変数やデータのこと
+#### 関数型言語のtail callスタイルにあたるプログラミング
+tail call スタイルとは
+末尾再帰とも言う
+### Code Gear
+関数の代わり
+_codeで宣言を行う
+Input/Output DG
+### Data Gear
+### normal level
+user
+### meta level
+kernel
+### 継続性
+#### goto
+jmp命令を用いる
+引数付き
+普通のgotoと違うところは
+#### 軽量継続
+##### 環境を持たない
+必要なデータは毎回inputする
+##### 関数呼び出し(call)せず、jmpする
+処理はcallよりjmpが軽量
+## GearsOSについて
+### GearsOSとは
+#### 信頼性の保証が目的
+##### モデル検査
+##### ノーマルレベルメタレベル切り分けがされている
+### Context
+#### 全てのCG, DGを参照できるMetaDG
+normalレベルのCGから直接参照してしまうとメタレベルを切り分けた意味がなくなってしまう
+Metaなのでnormalから直接参照しない
+必ずMetaCGから参照される
+CodeGearはDataGearの一種であるからMetaDGにMetaCGの参照を入れることが可能
+CGとDGの接続に用いられる
+#### 従来OSのプロセスに相当
+UserプロセスにあたるUser Contextが存在する
+#### 種類
+##### Kernel Context
+OS上の全てのContextを参照できる
+##### User Context
+ユーザーごとに存在する
+##### CPU Context
+実行しているCPUやGPUごとに存在する
+#### Context参照の流れ
+CGがOutputDataGearへデータをoutput
+次のCGのstubCodeGearへgoto
+stubCGはinputDataGear(前のCGのoutputDG)とOutputDGを参照
+CGへgoto
+OutputDGへOutput
+次のstubCodeGearへgoto
+### stub
+## Christie
+### Christieとは
+#### 並列分散通信フレームワーク
+#### CbCとは異なるGearの概念
+##### DataGear
+atomic
+##### CodeGear
+### DataGearManager
+#### DGを管理している
+#### key value store
+CGMが利用するCGのkeyとputされたDG(value)の組み合わせをもつ
+#### Fileとして用いる
+#### LocalDGMとRemoteDGM
+LocalはCGM自身が所持するDGのプール
+RemoteはCGMが配線されている別のCGMがもつDGのプール
+### topology manager
+#### 任意のtopologyを生成することができる
+topologyのノードはCGM
+##### ノード同士の通信接続を管理
+#### 分散プログラムを簡潔に書くために必要
+#### 静的topology
+任意のtopologyとノードの配線ができる
+dotファイルに記述し,TopologyManagerに参照させる
+dotファイルに記述したノードの数と参加ノードの数が一致した場合に動作する
+#### 動的topology
+参加を表明したノードに対し,自動的に配線を行う
+## UnixのFilesystem
+### xv6
+MITで教育用の目的で開発されたOS
+Unixの基本構造を持つ
+#### filesystem
+inode
+#### CbCによるxv6の書き換えが行われた
+### inode
+#### Fileの属性情報
+File Types
+Permissions
+UID
+GID
+File Size
+Time Stamps
+Number of link
+Location on hard disk
+#### inode number
+inodeを識別するための番号
+ファイル名とinodeがペアになっている
+Mac OSではls -iで確認可能
+ファイルシステム内で一意の番号
+ファイル数の上限がここで決まってくる
+## GearsFileSystemのディレクトリ
+### Treeによるディレクトリ構造(図などでここ詳しく)
+#### RedBlackTree
+DataGearManagerを格納してFileSystemに
+##### API
+put
+get
+remove
+#### 2つの木を用いる
+##### inumとfile pointer
+key: inum
+value: file pointer
+##### inumとfilename
+key: filename
+value: inum
+### Unix Like
+mkdir
+cd
+#### ls
+filenameのlistを入れることでlsのリスト表示を実装できる
+### 非破壊的編集によるBackUp
+#### バックアップ機能をOS自体に持たせたいという目的
+#### GearsOSにおける永続データ
+##### 木構造を用いる
+RedBlackTree
+##### ルートノードから変更ノードまでのパスを全てコピー
+##### コピーしたパス上に存在しないノードはコピー元の木構造と共有
+## ファイル構造
+### 構成
+#### I/O stream
+##### keyで参照
+##### 競合的アクセス
+###### synchronizedQueue
+parusuさんの論文
+##### 3つのQueue
+###### input
+データをinputしたい場合にこのQueueにput
+###### output
+####### データを取得したい場合にこのQueueからtake
+Synchronized QueueかSingleLinkedQueueを選べる
+###### main
+データそのもの
+input -> main -> output のような繋がり
+###### queueの中身は共通してelement
+####### elementとは
+###### これらのQueueはkeyとペアになっており,keyで参照することができる.
+#### logによるバージョン管理
+git mercurial的
+## WordCount
+### APIの設計に用いる
+### 機能
+#### ファイルの中身を読み取り
+文字数
+行数
+#### Unix Fileに対して行う
+#### 中間報告の時の図
+### GearBox的に処理する
+一木さん図5
+File操作の仕組み
+#### GearBoxとは
+GearsOSの機能を表現する手法
+状態遷移図とクラスダイアグラムを組み合わせたような図
+## 考察
+### 現状
+#### 実装できた部分
+RBTreeの動作test(予定)
+#### 課題
+GearsOSへのtopologyManagerの実装
+ディレクトリ構造の作成
+### 今後の課題
+分散ファイルシステム
+#### 信頼性
+GearsAgda
+モデル検査
+#### shell
+#### path
+### 信頼性について
+#### モデル検査
+RedBlackTreeのモデル検査
+#### 定理証明
+## 参考文献
+### 一木さん
+https://ie.u-ryukyu.ac.jp/~kono/papers/kono/2021/ikki-sigos-2021.pdf
+一木 貴裕 ,河野 真治(琉球大学), 情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS), May, 2021
+### アナグラさん
+http://www.cr.ie.u-ryukyu.ac.jp/hg/Papers/2021/anatofuz-master/raw-file/tip/paper/master_paper.pdf
+parusuさん
+### xv6
+https://pdos.csail.mit.edu/6.828/2018/xv6/book-rev11.pdf
+Papers/2020/anatofuz-sigos/
+## 付録
+mindmap
+gearsDirectory source
+## 章立て
+### GearsOSにおける分散ファイルシステム(研究目的)
+### CbC
+### GearsOSについて
+### Christie
+Gear概念
+DataGearManager
+### UnixのFilesystem
+inode
+### GearsFileSystemのディレクトリ
+Treeによるディレクトリ構造(図などでここ詳しく)
+#### Unix Like
+inodeを用いたディレクトリエントリ
+非破壊的編集によるBackUp
+### ファイル構造
+#### 構成
+logによるバージョン管理
+### WordCount
+### 考察
+今後の課題
+### 参考文献
Binary file Paper/fig/inode.jpg has changed
Binary file Paper/fig/inode.pdf has changed
Binary file Paper/fig/inode.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/inode.svg	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Do not edit this file with editors other than diagrams.net -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="591px" height="399px" viewBox="-0.5 -0.5 591 399" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2022-05-05T11:49:05.726Z&quot; agent=&quot;5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36&quot; etag=&quot;uCaQp5RGlaOogXgETAb1&quot; version=&quot;18.0.0&quot; type=&quot;device&quot; pages=&quot;5&quot;&gt;&lt;diagram id=&quot;AAaulOYO_kfhROZJ8ttr&quot; name=&quot;Page-1&quot;&gt;7VvbcuI4EP0aHkMhGxvzCOQymSWV1DI7u3lUsABNbIuVRYB8/bZsCV8TexMMYZIqqkBtSZZOH7VOS0nLHPmbK46XixvmEq9ldNxNyzxvGQbqIAe+pGUbW2xLGeacuqpSYpjQZ6KM2rqiLgkzFQVjnqDLrHHKgoBMRcaGOWfrbLUZ87JvXeI5KRgmU+wVrX9TVyxiq2P0Evs3QucL/WZk9+MnPtaVO7EhXGCXrVMm86JljjhjIv7lb0bEk+BpXOJ2ly883Q2Mk0DUaTD7dX/9g03XQtwMru7Ms9vx7fgM2XE3T9hbqRmr0YqthoCzVeAS2UunZQ7XCyrIZImn8ukanA62hfA9KCH4OaOeN2Ie41AOWACVhqHg7HGHXlSJBUK5GgEOw+JU1OyeCBdkkzKpqV0R5hPBt1BFP+0rmDXPVHGdOA31lG2RdphuhxVR5ruuEyzhh4Lz/0BbjSz0Ajwm1ajicBmTe0Y30hOHwdSwspg6RUy7JZB2m0LUOH1EURZRVELTg0Jqnj6k/Q8GaY2ISgJ3IPemJEamYMyGWwCGb/+Rhbali/eqZlQ436Rrnm91aUNFqhmU7lNPkkayoNu8w18hW/EpqV67AvM5EdVRk7iZbbno/ZR3rRLvahsnHhb0KbuZl7lcveGOUZjZjlxdJ0su086xJp63apXefHMdWWauI5TrKAam0FHEwN20307K3n5JWUou9Cq5XiJyp4LITZJSC8oqUppfpGyClE6BlEZbtgkgi5Bu4YQUWAq7gshSMyZITnOWyFDs0XkAxSnQhIB9KPcYCkp/oB741HW9l/a57ALIU7BI0j3sbF07554SSYtKaGY2tbP1C/5Csb9cmNCXv/IpSJm/Oof0lybHCas7y8hieuwUBJ1+VpffPo4umNHp53WW/dEwrZPYfb4sBNVVfDp0fhDJ17P2JPmcznElH+rul5e/SyLSqctL44uXjfDSKvDykUCHA7CBNiUB9kHb2p7Usg88w1f735U8wo/YcBZGdJCtkLHcRJzQz+HXXH6rVwwi5bzyC/R/v2L2yEycgF42ctpudziaFsxlu2ZzgrlfDEaw0CaqyLhYsDkLsHeRWHPIJXXGjC0VWL+IEFuFJ14JlnWvDmIoFcKSgFYVxDIhrN1xzKotWZbuCKcAmUyrmo9tTt3YZteMbbWD1vvIUDyekOPfTxCIg0sSWT5rDOhmQ0DZrV1TKfOlsRXm9+n16Lo76bM/Bn+hGdInfccJAIdQMe/wavUZf10Vo2/PP8hK1+M++Uvw/Ilh2XKyS5ZTc5fgGskGg+in11FmL3f40C1x+0EPio1ilpfz1f6VdHxnsJQJAsiaT0uGbq+GqC6LAc2RoXj3qLyV81G4pr6HYz9IqNQTCd10QT13jLdsJUcbCjx91KXhgnH6DPVx4lnMNdBmJ1NjIluqPjmRFLvTYKOc6QZvMhXHOBR6NMzz8DKkD9H4ZEMfdjwaDJkQzNfeTlHJJTO88sSxOGB2nCIHyhIrZDRGgqKYvgTxC5Yf2+WL+nffazSE5UmD+Tiqdt5NLH8qDKSJQfOZFx0/LaAhgR6GUViJMLGG8AGURlJ3WTDWEZRRUoaPrM7FiAUwfEwjLxIgz5pIAkFMEFjghx2138KI19dZNU9euaA6aL5tFG8UITP1aRhSFnyR4iikKNOMByWFWVTj7Xb7iw1HYUP/gGwgP631pXNx/iR6zjdr9PN5E9weNyF/24lcGzlOJiVv26ZRkZaXnso1masrXKtT9boXYe9N1aGY/C18fKyf/EeBefEf&lt;/diagram&gt;&lt;diagram id=&quot;s08jDtw-m_Aoh3yq8LbV&quot; name=&quot;Page-2&quot;&gt;7Vpbc6s2EP41zLQPyQAyGD86vpzTTprJJJ02eepgI2MSQESG2D6/vhJIIEC2ObHxJSd+MVp0/fbbXa2QAgbB6hu2o/lfyIG+oqvOSgFDRdc1VbPIH5WsM4lpMIGLPYdVKgSP3g/IWzJp4jlwUaoYI+THXlQWTlEYwmlcktkYo2W52gz55VEj24U1wePU9uvSfz0nnmdSS+8W8u/Qc+d8ZM3sZW8Cm1dmK1nMbQctBREYKWCAEYqzp2A1gD4Fj+Pyj6X9UG+e1NfhSg2Hs/9uh93wKuts/DNN8iVgGMYH7pop8932EwaYops+GeVmhshgVC8+wukb8y2hS71RdDCbqeQnitRFvGaQcyHt4GqREqJPKmjdaJVWLRqZLv2PkpiPOcF79cS7ISBks8/Er3CdNQztAF4RqR1ERJy+yxauq7/NPB/S978faC4MUVrHhTZeDD1M6I3wujKBP+6Iyd0lwQRiRrN8SD2GK1plHgc+EWjkcRFj9AoHTCchCiGdkuf7FZHte25Iij6cpZOBOPaITfSZOPAchw5ys5x7MXyM7CkdcUk8AJFhlIQOpKxR2XqZVWvdfAbclEC64kbsZCymU4ErwTYZW79BFMAYr0kV/tbIWjDHAyxmh8vCjPUek80FEwZMZjPP4eY9F9ZBHpiByI1l9N19ul/+HeiTx2WCkrerycMoX4FoKxWNFdhpG9AVlEmhHeTmBcbj1Kik+jwi6moZdbOOOlAlqHfbQl39FVAHZdQ1Ceq61RLq0hXw+Lg5MDRzjRt9dCvhZVtsqQQF0c1vjR5c7Hjv+696EdnhBiQ+2HMe3JpHma3LJGLZJIk4BeCQUxdCZAiX+dQ3TvAMo+MRPUQ5GmqyaNhtKRrKPcTP+GW1gV8+qf/Vyw44h1KAN3fKIry58OD4gt34kl5IGrWJqQK29iLKcquZt6L6OCayVgXZXh3ZjgTYTlu4dj4Jrp3KRk3C2KPian4OXDv6meEq24hVcQ2dPj0qKTyngGXZCRO08PqJFq4NXnxmNdPCcCXWHK55aeXFQjNSehbeFI1ogbfZV2kLlOAp3G3KsY1duK0/5kqhUzoqqlNAULEhUTGXYejbsfdePmCS6Z2NcI+8dJvEGGZWUiyjuonP1s1aiSc61Y7MSkd6paMMmFpHKQ3zZX+cmbKzoz2YKWWYtpVhm9is7mBz68wEDZlpfjGzDWb2asz0QpIAUY1gCGss3T+TmBLakNTqQk/agNa9LqcXnXrQs4w671pLLjgRSxp0yGq+NNhQg6dXYYPj0kvYEFYTmFPnL1qDxPsicK0kMNqpN9raJ8m4qxnM6YFtknL/oikMt+adO0XuTs90qwgOtVUER94q8q+MX1nMZs7tJud5Z9iXQM4X/y0ZD4O7afjyPjHA+vkhuuEHHCIVCcKPrIhwPEcuCm1/VEgrfCzq3CIUMSq+wDhes42qncSoTGhOYU30kjmdd1IYdMskvjZ1Y5dnpqV7iD2CF92DH4ndVkN2dxqSuzFr94um9eS2xpLL/fBy1O8uUpvTamieqc21biD8DsDhiC/3ssCofNvsGW152WW/M3jwTPjnZD0bTYfurfY+lt7raXJJwSS/+lft8klTw0sGvFGYfaIfAcXSlZ5OP+7TZ03pW+yh1613mrVmFUcRxUnoJFtXvRsmMZWRqVgD+swk9ahzDp/aq4crbXkko+KROBnFD+0yj3SIgxQpPevZU/kobBPFtpFXVas3bLK2/BbkxxhY4+9HqHc5lz+qjKzdLEsdxPGYqsvuhMi22R+gKikWN50zx1vcFwej/wE=&lt;/diagram&gt;&lt;diagram id=&quot;_SMWdJT_P9braKPgiXsX&quot; name=&quot;Page-3&quot;&gt;7Vtbd6M2EP41Pqd9cA5INsaP8SVpT7N7ts2mm/QlhxjZVoIRFTjG/fWVjAQIsMEXiJONX2wNun76ZkYzyC04XITX1PLmX4iNnBbQ7LAFRy0AdE032ReXrCOJ0RWCGcW2qJQIbvF/SLYU0iW2ka9UDAhxAuypwglxXTQJFJlFKVmp1abEUUf1rBnKCW4nlpOX/sB2MI+kJugl8t8Qns3lyLrRj54sLFlZrMSfWzZZpURw3IJDSkgQ/VqEQ+Rw8CQu4d2fo9V4TV5899p5XjwO7+CgHXV2tU+TeAkUucFpu5Zre7WcpQCsBQyHjTKYEjYY3xeH0M0T498lX+qgBeB0qrFPWqT5wVpALoW8g7a/IcQlq6D3vHBTNWlkzPj3DAVyTDb7aNjoiRQ/0aMGeEHrTQ3DWnis6D75Xqpz37PcI+dvUX+EKWMvoet2PM7m4e9fmUZ9XS6eEE0tMhpTLhIow4MAhVw+DxYOE+h8igElL2godsIlLuLTw46TEVkOnrms6KAp7+EV0QAzTbgU4gW2bT7IYDXHAbr1rAkfccX0nskoWbo24lzRxNqFLuu9eAZSgWA87VJOCu7yqaAwpZGCo9eILFBA16yKfNoXlBT2BpqivEq0F/S6kWye0lwo6lnCYMzirhOlYD+EXuyjfmaZjlTjTo44tWragWqmaozmWguUYXQEA9B+YQRE/PmvW7stJfbpCNscQaHKz14BPaVVPTU96VDz/nk2aOf+/sfi7nHw+reG27CAnRngE6j0LWCm9oRv4TCmIry62hCw0N40aBXMrmoVimA3C2Dv1gU7+BlgByrXjQLQYU2gFy+gvw/qWgXU3xLdLlBJXcBp3SiAVzfrwncvUp87vLE9OBt4K5hq1guLjLb5vLTr9L0oXJrikG9Hkx6wowLbzwPbKcC1UxesnQ8Cq6bCqhcQtlFcjQ+Cq3lmuPYq4Oralzz5kdjNFJaqCWZo0fU9L1x0ZfFB1NwURmG65mgtSyEOUs1Y6SH1JGnEC7LNsZvmkyWdoHJVDizKw5VSS4psJfmTp0Bqi7s7DioUOVaAX9WUUdG+ixG+EbwJ2aQj76kMi0+nsoto3aJVOkeT6cjIHLggyHQUAZPraEPDeNmHM7Mo0j2CmYUM03cybBubtRI2185MWJGZxicz62Bm/uCPXWLzPERAEcqx9Pgc2oTRBtH3mkXLhhadvMszG82h5fPMmAEVfu7fltjFKN2/foHVqG//9Nz+vcuzYDeTR2owdCnMIml5FJnjuBVFQoM5mRHXcsaJNMPRpM4NIZ5A+BkFwVow11oGRMX/SL8M9Phoydu1tYvSoyYvfUMUM9C4TsbKVZTwqt2T66CiK5futtSXH+ukTXjRYR5ffoBCUdDvX2iZPmt2thKhd6/tHVXb3zzy0z9IBsgA5wZslRzQTxpTV7Z3elV710zsYupb3vnsG7uYmcNU07GLXMdnWL2dc+XkPK+Uz8chZ1GW90Q3Yw6+RqDejznJJaCTLUoAxet83vw55aFCz+Tp4/ch6dfNzUa9vbydbi48k78fFFtfZt8V636hmfCQ2Kx+s29WNPugotWvbM6rEkL/Prj5A8O7RzS7+UuzwAp31zK5+474wKJzTTPeBymk5ys/C/TfihU78wQnvyAY+899HU1yky/xVurtVxet4v4Ov7/XvHtqMHmgZQ5mRe6oriR6YbKwSg42CSMmjuX7eLIrkqiegkvFDwYw94kgCk3JfnuWtge7rkCeSWgADV0lTjbrUTU0gP1MR9l7dacLDcyx9z2cPE9Gt0+vXyzQv/Tb4yq3wfbn2+6z5ZGxrQGyqWkNHuTrTu3Zqjq283p7DLN38Y0DmdzJ3BiD+qmYzIrJP3Ci6sn/mOD4fw==&lt;/diagram&gt;&lt;diagram id=&quot;HHLeNmLiLjBSiti2kdQe&quot; name=&quot;Page-4&quot;&gt;7Vtbd6o4FP41rjXz0C7CTXzs9XRunXOmM2vaeaMSlVMkGGLF/vpJJAECqFERtce+lGzIDvn2t/fODrFj3IyTL9iNRn8gDwYdXfOSjnHb0XWgAYf+Y5J5KrEtLhhi3+MP5YIn/wOKnlw69T0YSw8ShALiR7Kwj8IQ9okkczFGM/mxAQrkUSN3CCuCp74bVKX/+h4ZpVJH7+byB+gPR2JkYPfSO2NXPMxnEo9cD80KIuOuY9xghEh6NU5uYMDAE7g8+b9q7x/3s6crHXoI3z3H/8CLVNn9Jl2yKWAYkq1Vf/32Ybz+FSaTh6ve/W/fnx8mE3QhrPvuBlMOWEe3AzrK9QDRweisyZxDaU+mSNy4iBeGvqIPgG6U5Dfp1ZD/L2rpowBhSUtHNwYDjf4VRduONoREDEgBSMeU3+MVC8kbnKeqQncML6jUHUdMBbuXwqBrPw38ALL7Py9Vq0tvqxOYMPmIjAMqAPTSDfxhSK8DOFiohpj4lJZXXDz2PY91vp6NfAKfIrfPNM2oE1IZRtPQg8xwGm3FBKO3jL1GNvxaQnDisKFhUnAHTpAvEI0hwXP6CL9rcKpzX+/y5ix3nMwbRgWnEd1c7qvDTHHOR3rBKbkBPcVgy+nZLLEWfNmKWzsMIAjJiRi+xlFBeRy54Y7v7+L41sc0uCI8LxH+l0ca8B+n41eIC5NMx1RmesrPG26JEIWM1tSDgpKoOY9gc+epBnRb9RDQk13EsGt8pGu16SNmjY+UbJajB5bgWzAnA/cmcyvj/n7hTLUWPaAdnJIdrBo7ODWxytqbHYzD2aE93HUZ9jr2G22iXpcgloKuKYB+SHAt3VqXf4Fdg27mDI3DCz4TvBmeRwOvvh5eqoWWSsvSYnG9GUdp/TTwE2aONpeNpXVjrwqsWYOruS9YFSLxKcCql9YaoIawreJqVmH0aLHNmwiTERqi0A3ucmlp4ZY/8ztCEYf4OyRkzpcR7pQg2QAw8ckz635p8dZL4c5twjUvGnPRCOl000426AnBS/Fu3nHRknp+hdiniEHMhUtXqrtyIUZT3IcrEOf5gLiYlSEr4rSdPsjssZJaGAYu8d/lzZHGiWJ9Dgc0ukfmgLYCrqF3xbbN8gRbwFJ2xoKXWEUfAet8pNYjtZUeuXdPMRQ9RVd0lIKJrRULWmV/4iN8Rf5i30Ks+OxSGdMtUSedN+9V3N0rKbJBSZFeUpQCU1G0oGE27e2Z2W2WmbvFfGuTiL93ZuqKzLTOzNwHM6s73H6IPLbLSzCEFZbuvr3Vp7RhS4fT3OAq16BmNeU5bW5v9WrM59GpnM2nVOPWma/NHXzh/Ke+FLQc2S1aLHF7b9FkdI3+tO+eH51ZNEn+e/hb7HudVCkGTCkxX2iXmt3dph5r2r3WpnCgmsNFnj2SOky898l7nyl738ELMfBJtphs/diAVfia9aOWuMpRSCTdIyklHCCTbOtSwrFLilouJYDKvtYPWuUKzq0np3Em517IWbc52NAZkq3PTMknSRo5LtPYpDhQ7JnzGZkmFxXlsxl1xVIma6cK7VbjdHvlkrh+kWL9uvguRfdLzTG2qZT2H/Yd1bCvGPVbKox6J0cIVi5r9mmwQlddDKguVNthhVBcSKFZ5ts0ReyY5fLkJB8LDeEse4lz2lm5c22AmrTT7tFMle2XvF7oB24c+/1VJcOyM4F5KWHrpnoxQRvrY0PxMIUpB6Btgk/TCchWDDXinOyR1B3mus9iqnWH0QOyovJZyz3XHXq1KF4ZK/tTzExfiGLaope259DW1HedgvtpmjiSe7CgZ5a+9xg1a22j1S8++maHVDYPehnqedADll0MepdNhL2ml0SqC+DDhJ+svWn4sWynnoBthZ/qyRN/wHBO/Jicw4jqdwCttHaq+TlF3dHoLaIIbea/mUxZkP/y1Lj7Hw==&lt;/diagram&gt;&lt;diagram id=&quot;OUtKUz9Af3doBASklG_m&quot; name=&quot;Page-5&quot;&gt;7Vttc+I2EP41fDwG2diYj4Hk2pnmpplLO+3dlxsFC6xGtqgsDrhf35Ut4TdxJg2YMGGGGdjVi6VnH61210nPncabXwReRp94SFjPGYSbnnvbcxw0QAF8Kc021/ieViwEDXWnQvFIfxAzUmtXNCRppaPknEm6rCpnPEnITFZ0WAi+rnabc1Z96hIvSEPxOMOsqf2LhjLKtYEzKvS/ErqIzJORP85bYmw6652kEQ75uqRy73ruVHAu81/xZkqYAs/gko/7uKd1tzBBEnnIgD9D/N3//Xaz+fw1GpP062+Lb98+6Fm+Y7bSG9aLlVuDgOCrJCRqkkHPnawjKsnjEs9U6xpsDrpIxgwkBD/nlLEpZ1yAnPAEOk1SKfjzDrysE0+ktjQCGCZ6DURIstm7ObSDDLhGeEyk2EIXM2CsUTY00+K6sBkaaV1UtpcZhzVPFrupCyjhh0bzBcg67cjCLEBj0o4qTpc5t+d0oyzRDaaOV8U0aGI6tEA6PBWi7uUjiqqIIgtNO4V0ePmQjt8YpN4BkCbhjbqaCh9ZgrHqbgEFsf1bCX3PiF90z0y43ZR73m6NtKGyNAykL6WWYpASzJhD7UXCxpVZsxbslq/EjLQfZonFgsg2N9q0fsm6nsW6RicIw5J+ry7XZnL9hAdOYSM7cg2DKrlcv8aafJt6VPnurU3kubWJUG2iHIfGRBkDd9v+/6T0j0tKK7nQT8m1j8iDFiJ3SkrnQFIOr6Q8AilHDVI6fTUmgSRCWUEQ0mApXBSySs2cILWY0xKGYkYXCYgzYAUB/URdOxQC/RvdENMwZPvuueoBKFNwZCXpEW62oV8zjyWkRRaauae62YKGvVBurxD2eLVXPQWx2WvQpb3GFx/cec7bykDMcbtgSOu3x9njZXRACeKNY+r5bw3TQ4oP1yRkd55bA76x3f7dBHwj70gBXzA4b8CHDqngXNMQc3G3shLtcUtXWr6Mls0q2DOBCW9AB4EpSXAMga3PVCD7JCp09f9dqfJ9RoYPacYGNQqNlpuMEqYdfi3Ut37ETRY2r+IG+18fLjMylxcQLDs1m+8qo+Vo2XZnnixaRl7TF8FhftQiFzLiC55gdldoa8gVfe45X2qw/iFSbjWeeCV51bzGh6GSByv8WZsPq3iw/iBw2y5kJT0QQQEylVOd4cb1D/Vtdvoc7LNex4VmvUyt9jg+IPcthWN5ry5gWPUAtjd2nabLaHROB9BFEFM/1/vMepyTHhx40vfRpKOj3qxqNWhwEW/A6+VC23nyLefpdG/AUbMAdWwv+u7jKHdUKz0MLWbvtEpsSna2aDq31fEj6fyFwVIlCBDWvFsy1F2ANai2+YDTkaFZ3NPWqtkoXdOY4dwOCirdoqCbRZSF93jLV2q1qcSzZyNNIi7oD+iPC8tiYYB2B5Uej2qknlMQRbEHgyyqqT7hTaXjPU6lWQ1nDC9T+pStTw2M4YKjyYRLyWNj7RKVQjLHKyY740DNIbiDoMkBW2KFnJORoFmN/AjRL2j+2C73BsDHPqMpHE+aLO6zbrfDQvNZY6BUHIbPWVZ9imAggRkmmVvJMPEm8AGUpiru8mCtU5BRIcNHdRdyyhNYPqaZyQiQZ00UgcAnSCzx047aR2LEi8Kqn7yd6jTfdprFQMhMY5qmlCdXUpyFFLaYsVtSNEtx/X7/yob2nO0EbBifnQ0XWJLroyCo5OR933Va8nJrWa7TZF0fu/aqXGBnzGtzdRCLP4TP6/rFvxO4d/8B&lt;/diagram&gt;&lt;/mxfile&gt;"><defs><clipPath id="mx-clip-434-308-132-30-0"><rect x="434" y="308" width="132" height="30"/></clipPath><clipPath id="mx-clip-434-338-132-30-0"><rect x="434" y="338" width="132" height="30"/></clipPath><clipPath id="mx-clip-434-368-132-30-0"><rect x="434" y="368" width="132" height="30"/></clipPath></defs><g><rect x="150" y="30" width="170" height="190" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="230" cy="70" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="190" cy="150" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="270" cy="150" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 190 130 L 230 90" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 230 90 L 270 130" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><rect x="420" y="0" width="110" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 15px; margin-left: 421px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">2. inode tree</div></div></div></foreignObject><text x="475" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">2. inode tree</text></switch></g><rect x="150" y="0" width="100" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 15px; margin-left: 151px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">1. index tree</div></div></div></foreignObject><text x="200" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">1. index tree</text></switch></g><ellipse cx="500" cy="70" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="460" cy="150" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="540" cy="150" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 460 130 L 500 90" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 500 90 L 540 130" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><rect x="180" y="180" width="140" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 138px; height: 1px; padding-top: 195px; margin-left: 182px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">key: filename<br style="font-size: 12px;" />value: inum</div></div></div></foreignObject><text x="182" y="199" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">key: filename...</text></switch></g><path d="M 100 45 L 125 45 L 143.64 45.57" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 148.88 45.74 L 141.78 49.02 L 143.64 45.57 L 141.99 42.02 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="0" y="30" width="100" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 98px; height: 1px; padding-top: 45px; margin-left: 2px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">get<br style="font-size: 12px;" />key:filename</div></div></div></foreignObject><text x="2" y="49" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">get...</text></switch></g><path d="M 500 220 L 500 271.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 500 276.88 L 496.5 269.88 L 500 271.63 L 503.5 269.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="420" y="30" width="160" height="190" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><rect x="330" y="110" width="110" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 108px; height: 1px; padding-top: 125px; margin-left: 332px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">get<br style="font-size: 12px;" />key: inum</div></div></div></foreignObject><text x="332" y="129" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">get...</text></switch></g><rect x="430" y="180" width="160" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 158px; height: 1px; padding-top: 195px; margin-left: 432px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">key: inum<br style="font-size: 12px;" />value: inode pointer</div></div></div></foreignObject><text x="432" y="199" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">key: inum...</text></switch></g><path d="M 430 308 L 430 278 L 570 278 L 570 308" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 430 308 L 430 398 L 570 398 L 570 308" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 430 308 L 570 308" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="499.5" y="297.5">inode</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-434-308-132-30-0)" font-size="12px"><text x="435.5" y="327.5">File Type</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-434-338-132-30-0)" font-size="12px"><text x="435.5" y="357.5">Permission</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-434-368-132-30-0)" font-size="12px"><text x="435.5" y="387.5">...</text></g><path d="M 290 150 L 355 150 L 443.71 150.07" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 448.96 150.08 L 441.96 153.57 L 443.71 150.07 L 441.96 146.57 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/intro.drawio	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,1 @@
+<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>
\ No newline at end of file
Binary file Paper/fig/ls.pdf has changed
Binary file Paper/fig/ls.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/ls.svg	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Do not edit this file with editors other than diagrams.net -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="631px" height="341px" viewBox="-0.5 -0.5 631 341" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2022-01-31T14:26:44.308Z&quot; agent=&quot;5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36&quot; etag=&quot;yD-rH5nX8-crcdYnvhqq&quot; version=&quot;16.5.2&quot; type=&quot;device&quot; pages=&quot;4&quot;&gt;&lt;diagram id=&quot;AAaulOYO_kfhROZJ8ttr&quot; name=&quot;Page-1&quot;&gt;7Vpbb+I6EP41PBbFCQR4LLTbcySqrU5X2u2jSwzx1omRYwrsrz9jYpOLA2S7XLKoEhLxZGzsb77xjMe0vFG0ehB4Hj7ygLCW6wSrlnfXcl3kDlz4UpJ1Kun5g1QwEzTQSpngmf4iWuho6YIGJCkoSs6ZpPOicMLjmExkQYaF4Mui2pSz4q/O8YxYgucJZrb0Ow1kmEr7bi+T/0PoLDS/jMz6ImyU9UqSEAd8mRN59y1vJDiX6VO0GhGmwDO4pP2+7Hi7nZggsazTYfrz5d9vfLKU8vH24cm7+Tr+Or5BfjrMO2YLvWI9W7k2EAi+iAOiRnFa3nAZUkme53ii3i7B6CALZcSgheBxShkbccYFtGMeg9LQnqie+zsRkqxyIj3xB8IjIsUaVMxbR4OoWeTr5jIzCTKyMG+OvhZiTYPZdugMKXjQYP0OcIdxg1GApeQwZjiZp9Sd0pXC+SiI+UXE+jZinQrAOqfCy206Xm4RL1RBsfMC5tkABbA16SYXMuQzHmN2n0mHRVfNdMaczzV4P4mUa73P4oXkRWjJisofuecXNVS7q1t3Kz3yprE2jRjWqzrdOG0HuUaSdvX9nhFkvTetQvcnIijgRoQW7rRowhdiQvbgpmGTWMyI3IevNpwCdS9BBGFY0vdiPDi6ub2G+4frNMw/agQuEge3KgXIQlEOpKKrbDmsyW4IjA6RV/tL5iMveRep9JePc9utyW1Uk9o523UrbGdktT1A/8ITp7CyLXW8QZE6nl/iRLpu3SufwZQG6nRKA6HSQCkw1kAbfm2X/XHK9Y5LuUrqoHpbbYmmzgGafpxyJuc+RDnvk3KnoFzfohyN4YylLCIIsegHm7ksci6Rgr+RUkZekaRjRmcxNCfAEBWFhyo0UDgH3eoXEQ0Ctiv4FJl9hHDj9Yu4d+xoU5Xve6eKNoMKOwSwlGu3Q/ngdWk7GPdrbJ5U3jAufe5CTT+odpqWWKKmH1U7/aYhVufwcm25OKqbGZktqyGpkd87UmrUcy+bGqHOcVn3d6TjTl3WuZ+sOwnruhbr3ggMeAsykPtM5X2vAp5m6kmrqbfmGuAas8TScWu72IuliQN7K2h48dQpbCBtp++dt26K+nV3Fr/mznKewimyj8hq/q6Td8urdbyD12JndTuzNzf8NrFcXLj8baLBaTeJrzh6uKXoUXWeOS+N7cwyb4c9MX5TnLtiU3m97sFAPzirqeya/A4bJEsaMZzizGNpUgEFzCSkLBjjNV+o6SYST95MaxhyQX+BPs4sh4XUKYDnFDSeVU89piAJ6DwZsFFJ9IhXBcUxTqSZDWcMzxP6upmf6hhBSKbxkEvJI62Up0pApnix4eQJ9saqAhaqqi5sL9CPb2M7wn+hTNXAv63nO2uvv+thjEzlPv9KwLVoPBtv1O46meQ/jYESceg+ZZvzZggdCYwwnKujyAaT7hA+gNJIJYVdmOsI2ihrw0epCzniMUwf040VCVBjSRQ9wJ8llvh1S1zb3vud5DALzKmqptFP59d2wR1S3YgmCeXxp8lPYPKqJOisJvfs5LHdbn/a+gS2Hlzc1nYVxTL0+Wp3bt+/8OHbZJyH/7Wkbd2Qsl75nn2bD/7pPTvqlgb6cFkPmtl/bFP17J/K3v3/&lt;/diagram&gt;&lt;diagram id=&quot;s08jDtw-m_Aoh3yq8LbV&quot; name=&quot;Page-2&quot;&gt;7Vpdc5s6EP01nmkfkgFksPMYx07bmd5Mpu7cmzx1ZCNjJYCILGLcX38lI/EpF5LixEzrF1sHaUFnj1e7SANwFSSfKIzW/xAX+QPLcJMBmA4sy7QuLP4lkF2KjEwJeBS7slMOzPFPJEFDojF20abUkRHiMxyVwSUJQ7RkJQxSSrblbivil+8aQQ/VgPkS+nX0P+yydYqOrVGOf0bYW6s7m85FeiWAqrOcyWYNXbItQGA2AFeUEJb+CpIr5AvyFC//js2fxuTOeJwmRjhd/fg6HYVnqbHrlwzJpkBRyF5tevbZu7vdfg+sxXwbk/jpbPFtJocYz9CPJV9yrmynCKQkDl0kjJgDMNmuMUPzCC7F1S2XDMfWLPDl5RUJ2RXxCd2PBdfXBv8IHPu+wkMS8sETeWdEGUoqrmqYp5mRz1WLSIAY3fFx0oot5yT1ajp22t7m3rcM2Wdd8PxQ9oNScF5mOSeV/5C8vsB91ks4NlpwfIjLdsRpOD/IpaXI26m2USPTdDRkZmDnbIJmNrkVHl1QM5NwE6UhZ4UTwf7ReARWhcdxncehTpPHYnHYRxatcZlFoFHjm7Lo9JFF4JwYi6MWLIbupcgF8ohXYK4cPDlbdHcnGue2at7LnvvGNCn2nO5UK8GsMIy37gtX8kGioca8zEUbEtMlav5TMkg99Ct7MgQit5T51B1ecKitcajCKPIhw8/lfEnnZXmHW4L5dPP11i7rya6G/nTeclQxQakYcoyKIbNiKCWmZmgvumzar9fhuFsdavVk/lJPh7RrNGi3Yx2Cljp0/urwGDq8qOkQh7wsEx6hCNU0ycM+Kwtxwyh5RJUUUZM1Qh97IW8uuWwQxydiEcG8dLqUFwLsuv6htass96Ot+ZXValhfrHT5JzjWYmXWKybMaUj+emfffnf3mDX39CElq5QH710dqFc8/WKxWh6Y753Ymv2sVZ1To7FNsfpHFAjqf9mYmakweKKpGegqNQNvnJqZdrdS7G+NoBTWLMXTrlb7IMUH/ym+ngY3y/DheWGD3f23aKJeFhSFxxmeyyahbE08EkJ/lqMV9eV9vhISSeE9IMZ2chcHxoyU5asEaxYjYCbeRsGCUVmy545lN0Vd0bpFFHO+RBZc0HJFUV2Ke9xS3EO9lFtr9PfWRd0LC8dnchtmIPbU1E6M8xSLbSrOHFit9nsyBcjxxHcUMzV8QRWoEP6Aqc0UfkTcP5f8DiEM0BlHYSDSlf219HEs4wOvaZC4/rFuVj6ysOAhSDdTTHlyQ+iuYuvLDS98b+JgwV3ffWXloxU7zbpK5VIqtozqKVi2wfo2dVX9pUTNIX3ZxHrTPSxt7DZr3J1o7D52oE134X8jgOrXZmCU/z/muLK3e+Q00dJtaXQSmStx+HDAdvFzFdpEMKwF8PbhN3uAop0CXLhjIbyHaJtZ/6NCePUYgi6E644hdBHCtUc9WrwZ69tRj+oy6VjnmsMeuoXyFYc9eDM/65NGivzEFJj9Dw==&lt;/diagram&gt;&lt;diagram id=&quot;_SMWdJT_P9braKPgiXsX&quot; name=&quot;Page-3&quot;&gt;7Vpdc+I2FP01zLQPZGwLG3gMJNl2mu5sm6ab9CWjYGGU2BaVRYD99ZWwhC1bxIaCgc3mJejavpbOPfdLcgsMo8UnCqeT34mPwpZj+YsWuGo5ju30Hf5PSJappGtLQUCxL2/KBHf4G5JCS0pn2EeJdiMjJGR4qgtHJI7RiGkySCmZ67eNSai/dQoDVBLcjWBYln7FPpuk0p7TzeS/IBxM1Jttr59eiaC6Wa4kmUCfzHMicN0CQ0oIS39FiyEKBXgKl8X9H1fz6yV5TeJP4Uv0NLwHg3aq7GabR9ZLoChme1YtF/sGw5kETC6WLRWClMxiHwktVgsM5hPM0N0UjsTVOecMl01YFPKRzX+OcRgOSUgoH8ck5jcN5BsQZWhRsEnFguw1ypyeiESI0SV/TmpxLTfVo5gp7TTPzGx7UjbJm7gnhVBSK1irzuDjPySCW6DpnC+YHM0TAxNUg8m18DCCqoGEyTSNLWO8EOAfDEZg6zD2yzB2DCh2DgVi5xxBXJNPgmgbyHgoFO2/Bre/YXD/hILbPy3ozLG7bBtA83mSkUNC2YQEJIbhdSYd6I6e3XNLyFQC+oIYW8qMCWeM6HCjBWYP4vELV44ec1euFlLzarBUg5gvN33I46FdCh7zV7MHVyPtyS+IYo4YolIoTIt5Kr0McRBzWYR9P8yikABhB7tzIMmMjtA793myUIA0QO/q88xEoiiEDL/ps9u7c3nn6FzAPZ5zGafbrYFi7F+KUjBLgznkdEfLeYCb579dxX+jt1nvetuhvaBT0wuA2eA5g7oGgypZbV+Rb/hCMF9dVoV1dD6BboEo6TLlU/n6tKioX1DkFBSlOJQUrUi3XvbuPOztl4f/L3q728TuQ/MQ1OThhmD8g4db8bDckeGYd+XCABShEid5emA6ERNGySsq9A2GVgLKrD7iLBEpf3O6N+Uune6HylbFHs8tJytTVwIOlaxUea9Zx+dr/pDWKTaNR7eOfY4VmevpHG+wZ6RDa/rPi0c7Dw9fo/unwdvfFm5bZcxOvttxLC1jtq0LC4BdWp4xiZnyxJYDbm4s/tdAjlW7qpVJ1tlApmZaHjXNM/MwR/ewo/c89llubnnWqcFYZ3vrY/aOteOJvcHmzVTt3b5OqZ2r9l6noKjhqt1290vF76h9VFVZNRWPupHx/VDRtC/phaIPSaYw1jjp/TsTx5cD7Vcg/r8iPodLfnMMI9TmUhiJvLO6lmp2rJ9434LE9Z/VC/iE03ekSpT4mdZ86w4TlcsUUw0QpMkVpjwdErosTPrXz7yL/jyLnnmtt2m2e+/eQjRmJ9q7FfZLTG3H+hC/me6tW46YzTUe6vejFnWrIq0WZy+s3k49x8EDcK9mAHbMjGmotTBtwKZ+KpqylvhERPVlWQwA4/GqQyuFBbHSzM1TDeWgtFusqwwTp+/+hSPWusf9+3B+4xGrd3a+L/YYLO8sAoAqQKorsP4xI4Ca5hEjgPT8+DmZlqoRpfVHjVG/xihUwp6hxrCarDGc8g7xOvhva9mMPVkJqvMnRvO1vg9l+OKxDbAM+UX1W/s2vHFTu87JQNaej0KYJHj0Xoe+aaM469w9p1O/d+eDxsvCo57Xgqpj1rrtNujauiL3YO22kVlONbMy5tgb3DL/0ecGYjX4MegRi0MjxDV2y88N4jqpcV8Rkg+zr9RT2mff+oPr/wA=&lt;/diagram&gt;&lt;diagram id=&quot;HHLeNmLiLjBSiti2kdQe&quot; name=&quot;Page-4&quot;&gt;7Vtbc+o2EP41zLQPycgSNvBILjS9nUnLdJo8OliAzjEWkUWA/PpKWLIs24Ch2IFJ8hJrba2tb7/d1UqihW5nq1+YP5/+SQMctiAIVi1014LQgT0o/knJOpF0vF4imDASqIeMYEjesRICJV2QAMfWg5zSkJO5LRzRKMIjbsl8xujSfmxMQ/utc3+CC4LhyA+L0n9JwKeJtAs7Rv6AyWSq3+zo8c18/bAaSTz1A7rMiNB9C90ySnlyNVvd4lCCp3EZkt/A2/tgOexDHFB2/xT/g68SZYNDuqRDYDjiR6t+/OsdvfwdrV4f+r3B79+fHl5fqeoC3vxwofBSY+VrDSCjiyjAUglooZvllHA8nPsjeXcpKCNkUz4LRcsRl2MShrc0pEy0IxqJh27UGzDjeJUzyZ7xOCnIgp2YzjBna9FPaXGBm+jRxFRjWRorO56STbMW7iqhr5g1SVUb9MSFAvAAMJ3LBVOgeWZgwv1gCi0iiuD9QPrxPAktY7KS4NcGI3JsGHtFGNslKLbrAhFdIogp+RSITgkZG0WxXQQtEDlGNSnjUzqhkR/eG+mN7ejmmT8onStAv2PO1yph+gtObbjxivAn2f3aVa3nzJ27ldK8aax1IxLDTTp5Tk8LnrN3TcdNy+r5iBkRiGGmhNK0RGTSfkgmkZDNSBCEJgpJEI6wuwCSLtgI7wBcBXbuswnmuwKuV04khkOfkzf7605OC/cSnQu5Z+ZcXgUUo6AvZ4ImDWaQsx0t4wFulv/OPv6XehvY6W11ewGq6AWw3OAZg7olBtWyyr6i3vBIiRidmYW1bT6hTo4oyTBVr+z0NK+ol1MEc4oSHAqKNqRLh308Dzun5eH/i97uIbG7bh7Cijx0v3h4Ah52CzwkkSjKpQEYxgVOivTAbSLGnNEfOFc3lJQSvsrqI8ESmfK3p/uy3GXTva5sla/x3GKyKqtKUF3JqldinEAM+VMaJ18zfrRxdO11WRMy17Mp/tElo+MUQTv7agcCK2NegWuA0DElz5hGXLtiC6LBAIi/BnKsUzXJwi1saqbk0Z95YS4GbRf78JrHuch1GQ+cG4ztCjB+ztqxcjxxQLnNm5m1d3o2pY6etXfbOUUNz9qdKotBn7N81NOy/VREX1Q8BRXLVtS8UBYi8dyPLE56rwu5e3ljXU3k/x9YfENfPBz5M3wlpP5M5p3NvUQzBD+JwgXL+z/rF4gPTt6RKNHiF1bxrUd8qBqm/NQJ9ll8R5hIh5Stcx/96zdRRX9bzF7EXG/b1568fAvxmJ9p8ZZbLymrO9I9/GbKt04xYjZXeOjrZyvq7ou0Vpy9Bt2jao7aA3C3agAuZ0xDpUVx4Uv7qSzKWvKEiK7LTAxA4/GmQiuEBTlS4+aJhmJQOi7W7Q0T5+/+uS3Wqtv99Tl/7+KcXy4yAO8iIgCsOgXbUgw0EwFg2fpdsxFAeX70Es8LsxGt9WuOUX2OkZsJeyVzDNBkmNEDy1AsDf6HWtawx0xBbf5EeJnq+1SGz2/bIFCSX3S91Yzhqyxcmvp8FPpxTEa7SvRtK8WmdPdgu3rxLhqNzwu3nJ5ppt5G+/ZZq9bbqOPYitxm621YYTHXUMfZ4pjZY59bmNXgcdBzmx7CCiu9l4ZxlezYcJAsLmLuTIqjBZMIZHIc2PQCNSe+U2yK5wgAgLXRV0dKtF2qXZISUz9rxtqHnbw7PCWmmJqUqPZpdUq8Bl7n4LSYWed2ku7ZbV8jOasCTP/yZe/27oceosrn5LZzZE5u509jeQ3n5OJpPjKWFl6RmH9FpIQzeRvVd35HNM3PpBIbmx+bofv/AA==&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="435" y="20" width="160" height="180" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><rect x="180" y="20" width="160" height="180" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="260" cy="60" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="220" cy="140" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 300 160 L 299.99 233.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 299.99 238.88 L 296.49 231.88 L 299.99 233.63 L 303.49 231.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="300" cy="140" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 220 120 L 260 80" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 260 80 L 300 120" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><rect x="435" y="0" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 15px; margin-left: 436px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">inode tree</div></div></div></foreignObject><text x="465" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">inode tree</text></switch></g><rect x="180" y="0" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 15px; margin-left: 181px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">index tree</div></div></div></foreignObject><text x="210" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">index tree</text></switch></g><ellipse cx="515" cy="60" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 475 160 L 474.98 242.64" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 474.98 247.89 L 471.48 240.89 L 474.98 242.64 L 478.48 240.89 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="475" cy="140" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="555" cy="140" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 475 120 L 515 80" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 515 80 L 555 120" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><rect x="170" y="240" width="210" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 208px; height: 1px; padding-top: 255px; margin-left: 172px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span>key: name-&gt;value (filename)</span><br /><span>value: gearsDirectory-&gt;INodeNumber</span></div></div></div></foreignObject><text x="172" y="259" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">key: name-&gt;value (filename)...</text></switch></g><path d="M 160 35 L 173.63 35" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 178.88 35 L 171.88 38.5 L 173.63 35 L 171.88 31.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="0" y="20" width="160" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 158px; height: 1px; padding-top: 35px; margin-left: 2px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font color="#ff0000">get</font><br />key: name-&gt;value (filename)</div></div></div></foreignObject><text x="2" y="39" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">get...</text></switch></g><path d="M 375 325 L 405 325 L 405 34.9 L 427.67 34.93" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 432.92 34.94 L 425.92 38.43 L 427.67 34.93 L 425.93 31.43 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="175" y="310" width="200" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 198px; height: 1px; padding-top: 325px; margin-left: 177px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font color="#ff0000">get</font><br />key: <span>gearsDirectory-&gt;INodeNumber</span></div></div></div></foreignObject><text x="177" y="329" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">get...</text></switch></g><rect x="435" y="250" width="195" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 193px; height: 1px; padding-top: 265px; margin-left: 437px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">key: gearsDirectory-&gt;INodeNumber<br />value: newDirectory</div></div></div></foreignObject><text x="437" y="269" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">key: gearsDirectory-&gt;INodeNumber...</text></switch></g><path d="M 301.04 270 L 301.01 293.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 301 298.88 L 297.51 291.88 L 301.01 293.63 L 304.51 291.89 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="0" y="20" width="160" height="30" rx="4.5" ry="4.5" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><rect x="175" y="310" width="195" height="30" rx="4.5" ry="4.5" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
\ No newline at end of file
Binary file Paper/fig/meta-cg-dg.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/meta_cg_dg.svg	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1" xmlns:xl="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 662 781" width="662" height="781">
+  <defs>
+    <font-face font-family="Helvetica" font-size="9" units-per-em="1000" underline-position="-75.68359" underline-thickness="49.316406" slope="0" x-height="522.9492" cap-height="717.28516" ascent="770.0195" descent="-229.98047" font-weight="400">
+      <font-face-src>
+        <font-face-name name="Helvetica"/>
+      </font-face-src>
+    </font-face>
+    <font-face font-family="Helvetica Neue" font-size="12" panose-1="2 0 5 3 0 0 0 2 0 4" units-per-em="1000" underline-position="-100" underline-thickness="50" slope="0" x-height="517" cap-height="714" ascent="951.9958" descent="-212.99744" font-weight="400">
+      <font-face-src>
+        <font-face-name name="HelveticaNeue"/>
+      </font-face-src>
+    </font-face>
+    <font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.68359" underline-thickness="49.316406" slope="0" x-height="522.9492" cap-height="717.28516" ascent="770.0195" descent="-229.98047" font-weight="400">
+      <font-face-src>
+        <font-face-name name="Helvetica"/>
+      </font-face-src>
+    </font-face>
+    <marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="black">
+      <g>
+        <path d="M 8 0 L 0 -3 L 0 3 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
+      </g>
+    </marker>
+  </defs>
+  <metadata> Produced by OmniGraffle 7.19.4\n2018-02-12 15:33:34 +0000</metadata>
+  <g id="Canvas_1" stroke-dasharray="none" fill="none" stroke-opacity="1" fill-opacity="1" stroke="none">
+    <title>Canvas 1</title>
+    <rect fill="white" x="0" y="0" width="662" height="781"/>
+    <g id="Canvas_1_Layer_1">
+      <title>Layer 1</title>
+      <g id="Graphic_3">
+        <text transform="translate(507.9492 692.58984)" fill="#945200">
+          <tspan font-family="Helvetica" font-size="9" font-weight="400" fill="#945200" x="0" y="9">  </tspan>
+        </text>
+      </g>
+      <g id="Group_94">
+        <g id="Graphic_96">
+          <rect x="4.8244654" y="90" width="130.17553" height="90" fill="white"/>
+          <path d="M 4.8244654 90 L 135 90 L 135 180 L 4.8244654 180 Z" stroke="#ff9300" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="4.0,4.0" stroke-width="1"/>
+        </g>
+        <g id="Graphic_95">
+          <text transform="translate(25.623322 104)" fill="#c25800">
+            <tspan font-family="Helvetica Neue" font-size="12" font-weight="400" fill="#c25800" x=".6286934" y="11">Meta Data Gear</tspan>
+          </text>
+        </g>
+      </g>
+      <g id="Group_91">
+        <g id="Graphic_93">
+          <rect x="459" y="90" width="130.17553" height="90" fill="white"/>
+          <path d="M 459 90 L 589.1755 90 L 589.1755 180 L 459 180 Z" stroke="#ff9300" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="4.0,4.0" stroke-width="1"/>
+        </g>
+        <g id="Graphic_92">
+          <text transform="translate(479.79886 104)" fill="#c25800">
+            <tspan font-family="Helvetica Neue" font-size="12" font-weight="400" fill="#c25800" x=".6286934" y="11">Meta Data Gear</tspan>
+          </text>
+        </g>
+      </g>
+      <g id="Graphic_121">
+        <ellipse cx="297" cy="148.5" rx="45.8794865380515" ry="22.5000359527927" fill="white"/>
+        <ellipse cx="297" cy="148.5" rx="45.8794865380515" ry="22.5000359527927" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
+        <text transform="translate(265.29647 141.5)" fill="black">
+          <tspan font-family="Helvetica" font-size="12" font-weight="400" fill="black" x="2.353922" y="11">Code Gear</tspan>
+        </text>
+      </g>
+      <g id="Graphic_83">
+        <rect x="32.482347" y="126" width="75.51765" height="45" fill="white"/>
+        <rect x="32.482347" y="126" width="75.51765" height="45" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
+        <text transform="translate(37.482347 141.5)" fill="black">
+          <tspan font-family="Helvetica" font-size="12" font-weight="400" fill="black" x="5.07914" y="11">Data Gear</tspan>
+        </text>
+      </g>
+      <g id="Line_118">
+        <line x1="108.5" y1="148.5" x2="241.22056" y2="148.5" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="butt" stroke-linejoin="miter" stroke-width="1"/>
+      </g>
+      <g id="Graphic_120">
+        <rect x="486" y="126" width="75.51765" height="45" fill="white"/>
+        <rect x="486" y="126" width="75.51765" height="45" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
+        <text transform="translate(491 141.5)" fill="black">
+          <tspan font-family="Helvetica" font-size="12" font-weight="400" fill="black" x="5.07914" y="11">Data Gear</tspan>
+        </text>
+      </g>
+      <g id="Line_116">
+        <line x1="342.87944" y1="148.5" x2="475.6" y2="148.5" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="butt" stroke-linejoin="miter" stroke-width="1"/>
+      </g>
+      <g id="Graphic_117">
+        <ellipse cx="405.26144" cy="148.5" rx="45.4435686903338" ry="22.5000359527927" fill="white"/>
+        <path d="M 437.3948 132.59012 C 455.1417 141.3769 455.1417 155.6231 437.3948 164.40988 C 419.64804 173.19672 390.87485 173.19672 373.12808 164.40988 C 355.3812 155.6231 355.3812 141.3769 373.12808 132.59012 C 390.87485 123.80328 419.64804 123.80328 437.3948 132.59012" stroke="#ff9300" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="4.0,4.0" stroke-width="1"/>
+        <text transform="translate(373.90665 134.5)" fill="#c25800">
+          <tspan font-family="Helvetica" font-size="12" font-weight="400" fill="#c25800" x="18.01593" y="11">Meta </tspan>
+          <tspan font-family="Helvetica" font-size="12" font-weight="400" fill="#c25800" x="2.005188" y="25">Code Gear</tspan>
+        </text>
+      </g>
+      <g id="Graphic_103">
+        <ellipse cx="297" cy="22.5" rx="44.2896033411884" ry="22.5000359527927" fill="white"/>
+        <ellipse cx="297" cy="22.5" rx="44.2896033411884" ry="22.5000359527927" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
+        <text transform="translate(266.56837 15.5)" fill="black">
+          <tspan font-family="Helvetica" font-size="12" font-weight="400" fill="black" x="1.082016" y="11">Code Gear</tspan>
+        </text>
+      </g>
+      <g id="Graphic_104">
+        <rect x="32.482347" y="0" width="75.51765" height="45" fill="white"/>
+        <rect x="32.482347" y="0" width="75.51765" height="45" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
+        <text transform="translate(37.482347 15.5)" fill="black">
+          <tspan font-family="Helvetica" font-size="12" font-weight="400" fill="black" x="5.07914" y="11">Data Gear</tspan>
+        </text>
+      </g>
+      <g id="Line_105">
+        <line x1="108.5" y1="22.5" x2="242.81045" y2="22.5" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="butt" stroke-linejoin="miter" stroke-width="1"/>
+      </g>
+      <g id="Graphic_106">
+        <rect x="486" y="0" width="75.51765" height="45" fill="white"/>
+        <rect x="486" y="0" width="75.51765" height="45" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
+        <text transform="translate(491 15.5)" fill="black">
+          <tspan font-family="Helvetica" font-size="12" font-weight="400" fill="black" x="5.07914" y="11">Data Gear</tspan>
+        </text>
+      </g>
+      <g id="Line_107">
+        <line x1="341.28955" y1="22.5" x2="475.6" y2="22.5" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="butt" stroke-linejoin="miter" stroke-width="1"/>
+      </g>
+      <g id="Graphic_122">
+        <ellipse cx="187.21873" cy="148.5" rx="45.4435686903338" ry="22.5000359527927" fill="white"/>
+        <path d="M 219.3521 132.59012 C 237.09897 141.3769 237.09897 155.6231 219.3521 164.40988 C 201.60532 173.19672 172.83214 173.19672 155.08536 164.40988 C 137.3385 155.6231 137.3385 141.3769 155.08536 132.59012 C 172.83214 123.80328 201.60532 123.80328 219.3521 132.59012" stroke="#ff9300" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="4.0,4.0" stroke-width="1"/>
+        <text transform="translate(155.86393 134.5)" fill="#c25800">
+          <tspan font-family="Helvetica" font-size="12" font-weight="400" fill="#c25800" x="18.01593" y="11">Meta </tspan>
+          <tspan font-family="Helvetica" font-size="12" font-weight="400" fill="#c25800" x="2.005188" y="25">Code Gear</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+</svg>
Binary file Paper/fig/mkdir.pdf has changed
Binary file Paper/fig/mkdir.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/mkdir.svg	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Do not edit this file with editors other than diagrams.net -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="386px" height="381px" viewBox="-0.5 -0.5 386 381" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2022-01-31T14:26:10.980Z&quot; agent=&quot;5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36&quot; etag=&quot;i_0LCAG9sZPzsEHlly6F&quot; version=&quot;16.5.2&quot; type=&quot;device&quot; pages=&quot;4&quot;&gt;&lt;diagram id=&quot;AAaulOYO_kfhROZJ8ttr&quot; name=&quot;Page-1&quot;&gt;7Vpbb+I6EP41PBbFCQR4LLTbcySqrU5X2u2jSwzx1omRYwrsrz9jYpOLA2S7XLKoEhLxZGzsb77xjMe0vFG0ehB4Hj7ygLCW6wSrlnfXcl3kDlz4UpJ1Kun5g1QwEzTQSpngmf4iWuho6YIGJCkoSs6ZpPOicMLjmExkQYaF4Mui2pSz4q/O8YxYgucJZrb0Ow1kmEr7bi+T/0PoLDS/jMz6ImyU9UqSEAd8mRN59y1vJDiX6VO0GhGmwDO4pP2+7Hi7nZggsazTYfrz5d9vfLKU8vH24cm7+Tr+Or5BfjrMO2YLvWI9W7k2EAi+iAOiRnFa3nAZUkme53ii3i7B6CALZcSgheBxShkbccYFtGMeg9LQnqie+zsRkqxyIj3xB8IjIsUaVMxbR4OoWeTr5jIzCTKyMG+OvhZiTYPZdugMKXjQYP0OcIdxg1GApeQwZjiZp9Sd0pXC+SiI+UXE+jZinQrAOqfCy206Xm4RL1RBsfMC5tkABbA16SYXMuQzHmN2n0mHRVfNdMaczzV4P4mUa73P4oXkRWjJisofuecXNVS7q1t3Kz3yprE2jRjWqzrdOG0HuUaSdvX9nhFkvTetQvcnIijgRoQW7rRowhdiQvbgpmGTWMyI3IevNpwCdS9BBGFY0vdiPDi6ub2G+4frNMw/agQuEge3KgXIQlEOpKKrbDmsyW4IjA6RV/tL5iMveRep9JePc9utyW1Uk9o523UrbGdktT1A/8ITp7CyLXW8QZE6nl/iRLpu3SufwZQG6nRKA6HSQCkw1kAbfm2X/XHK9Y5LuUrqoHpbbYmmzgGafpxyJuc+RDnvk3KnoFzfohyN4YylLCIIsegHm7ksci6Rgr+RUkZekaRjRmcxNCfAEBWFhyo0UDgH3eoXEQ0Ctiv4FJl9hHDj9Yu4d+xoU5Xve6eKNoMKOwSwlGu3Q/ngdWk7GPdrbJ5U3jAufe5CTT+odpqWWKKmH1U7/aYhVufwcm25OKqbGZktqyGpkd87UmrUcy+bGqHOcVn3d6TjTl3WuZ+sOwnruhbr3ggMeAsykPtM5X2vAp5m6kmrqbfmGuAas8TScWu72IuliQN7K2h48dQpbCBtp++dt26K+nV3Fr/mznKewimyj8hq/q6Td8urdbyD12JndTuzNzf8NrFcXLj8baLBaTeJrzh6uKXoUXWeOS+N7cwyb4c9MX5TnLtiU3m97sFAPzirqeya/A4bJEsaMZzizGNpUgEFzCSkLBjjNV+o6SYST95MaxhyQX+BPs4sh4XUKYDnFDSeVU89piAJ6DwZsFFJ9IhXBcUxTqSZDWcMzxP6upmf6hhBSKbxkEvJI62Up0pApnix4eQJ9saqAhaqqi5sL9CPb2M7wn+hTNXAv63nO2uvv+thjEzlPv9KwLVoPBtv1O46meQ/jYESceg+ZZvzZggdCYwwnKujyAaT7hA+gNJIJYVdmOsI2ihrw0epCzniMUwf040VCVBjSRQ9wJ8llvh1S1zb3vud5DALzKmqptFP59d2wR1S3YgmCeXxp8lPYPKqJOisJvfs5LHdbn/a+gS2Hlzc1nYVxTL0+Wp3bt+/8OHbZJyH/7Wkbd2Qsl75nn2bD/7pPTvqlgb6cFkPmtl/bFP17J/K3v3/&lt;/diagram&gt;&lt;diagram id=&quot;s08jDtw-m_Aoh3yq8LbV&quot; name=&quot;Page-2&quot;&gt;7Vpdc5s6EP01nmkfkgFksPMYx07bmd5Mpu7cmzx1ZCNjJYCILGLor7+SkfiUC0lxYk/rF1sHaUFnj1e7SANwFSSfKIzW/xAX+QPLcJMBmA4sy7QuLP4lkDRDRs5FBngUu7JTAczxTyRBQ6IxdtGm0pER4jMcVcElCUO0ZBUMUkq21W4r4lfvGkEPNYD5EvpN9D/ssnWGjq1RgX9G2FurO5tqfgFUneVMNmvokm0JArMBuKKEsOxXkFwhX5CnePl3bP40JnfG4zQxwunqx9fpKDzLjF2/ZEg+BYpC9mrTs8/e3e32e2At5tuYxE9ni28zOcR4hn4s+ZJzZakikJI4dJEwYg7AZLvGDM0juBRXt1wyHFuzwJeXVyRkV8QndDcWXF8b/CNw7PsKD0nIB0/knRFlKKm5qmWeZk4+Vy0iAWI05eOkFVvOSerVdOysvS28bxmyz7rk+aHsB6XgvNxyQSr/IXl9gfusl3BsdOB4H5fdiNNwvpdLS5GXqrbRINN0NGTmYO9sgnY2uRUeXVA7k3ATZSFnhRPB/sF4BFaNx3GTx6FOk4dicXiKLFrjKotAo8Y3ZdE5RRaBc2QsjjqwGLqXIhcoIl6JuWrw5GzR9E40zm3VvJc9d41pUu45TVUrwaw0jLfuS1eKQaKhxrzMRRsS0yVq/1MySD30K3syBCK3kvk0HV5yqK1xqMIo8iHDz9V8SedleYdbgvl0i/XWrurJrof+bN5yVDlBqRlyjJohs2YoI6ZhaCe6fNqv1+G4Xx1q9WT+Uk/7tGu0aLdnHYKOOnT+6vAQOrxo6BCHvCwTHqEINTTJwz6rCnHDKHlEtRRRkzVCH3shby65bBDHJ2IRwbx0upQXAuy6/r61qyr3g635tdVq2FysdPknONRiZTYrJsxpSP56Z9d+d/eYDfecQkpWKw/euzowO5Ssx8divTww3zuxNU+zVnWOjcYuxeofUSCo/2VrZqbC4JGmZqCv1Ay8cWpm2v1K8XRrBKWwdiked7V6ClJ88J/i62lwswwfnhc2SO+/RRP1sqAsPM7wXDYJZWvikRD6swKtqa/o85WQSArvATGWyl0cGDNSla8SrFmOgLl4WwULRlXJnjuW3RZ1ResWUcz5EllwScs1RfUp7nFHcQ/1Uu6s0d9bF3UvLByfyW2YgdhTUzsxzlMstqk4c2C12u3JlCDHE99RzNTwBVWgQvgDZjYz+BFx/1zyO4QwQGcchYFIV3bXssexjA+8pkHi+semWfnIwoKHIN1MMeXJDaFpzdaXG1743sTBgru+/8rKRyt2nHWVyqVUbBk1U7B8g/Vt6qrmS4mGQ05lE+tN97C0sdtscHeksfvQgTbbhf+NAKpfm4FR/f+Y49re7oHTREu3pdFLZK7F4f0B28XPdWgTwbARwLuH3/wBynZKcOmOpfAeom1u/Y8K4fVjCLoQrjuG0EcI1x716PBm7NSOetSXScc61xz20C2UrzjswZvFWZ8sUhQnpsDsfw==&lt;/diagram&gt;&lt;diagram id=&quot;_SMWdJT_P9braKPgiXsX&quot; name=&quot;Page-3&quot;&gt;7Vpdc+I2FP01zLQPZGwLG3gMJNl2mu5sm6ab9CWjYGGU2BaVRYD99ZWwhC1bxIaCgc3mJejavpbOPfdLcgsMo8UnCqeT34mPwpZj+YsWuGo5ju30Hf5PSJappOv1U0FAsS9vygR3+BuSQktKZ9hHiXYjIyRkeKoLRySO0YhpMkgpmeu3jUmov3UKA1QS3I1gWJZ+xT6bpNKe083kvyAcTNSbbbW+CKqb5UqSCfTJPCcC1y0wpISw9Fe0GKJQgKdwWdz/cTW/XpLXJP4UvkRPw3swaKfKbrZ5ZL0EimK2Z9VysW8wnEnA5GLZUiFIySz2kdBitcBgPsEM3U3hSFydc85w2YRFIR/Z/OcYh+GQhITycUxiftNAvgFRhhYFm1QsyF6jzOmJSIQYXfLnpBbXclM9ipnSTvPMzLYnZZO8iXtSCCW1grXqDD7+QyK4BZrO+YLJ0TwxMEE1mFwLDyOoGkiYTNPYMsYLAf7BYAS2DmO/DGPHgGLnUCB2zhHENfkkiLaBjIdC0f5rcPsbBvdPKLj904LOHLvLtgE0nycZOSSUTUhAYhheZ9KB7ujZPbeETCWgL4ixpcyYcMaIDjdaYPYgHr9w5egxd+VqITWvBks1iPly04c8Htql4DF/NXtwNdKe/IIo5oghKoXCtJin0ssQBzGXRdj3wywKCRB2sDsHkszoCL1znycLBUgD9K4+z0wkikLI8Js+u707l3eOzgXc4zmXcbrdGijG/qUoBbM0mENOd7ScB7h5/ttV/Dd6m/Wutx3aCzo1vQCYDZ4zqGswqJLV9hX5hi8E89VlVVhH5xPoFoiSLlM+la9Pi4r6BUVOQVGKQ0nRinTrZe/Ow95+efj/ore7Tew+NA9BTR5uCMY/eLgVD8sdGY55Vy4MQBEqcZKnB6YTMWGUvKJC32BoJaDM6iPOEpHyN6d7U+7S6X6obFXs8dxysjJ1JeBQyUqV95p1fL7mD2mdYtN4dOvY51iRuZ7O8QZ7Rjq0pv+8eLTz8PA1un8avP1t4bZVxuzkux3H0jJm27qwANil5RmTmClPbDng5sbifw3kWNupmWSdDWRqpuVR0zwzD3N0Dzt6z2Of5eaWZ50ajHW2tz5m71g7ntgbbN5M1d7t65TauWrvdQqKGq7abXe/VPyO2kdVlVVT8agbGd8PFU37kl4o+pBkCmONk96/M3F8OdB+BeL/K+JzuOQ3xzBCbS6Fkcg7q2upZsf6ifctSFz/Wb2ATzh9R6pEiZ9pzbfuMFG5TDHVAEGaXGHK0yGhy8Kkf/3Mu+jPs+iZ13qbZrv37i1EY3aivVthv8TUdqwP8Zvp3rrliNlc46F+P2pRtyrSanH2wurt1HMcPAD3agZgx8yYhloL0wZs6qeiKWuJT0RUX5bFADAerzq0UlgQK83cPNVQDkq7xbrKMHH67l84Yq173L8P5zcesXpn5/tij8HyziIAqAKkugLrHzMCqGkeMQJIz4+fk2mpGlFaf9QY9WuMQiXsGWoMq8kawynvEK+D/7aWzdiTlaA6f2I0X+v7UIYvHtsAy5BfVL+1b8MbN7XrnAxk7fkohEmCR+916Js2irPO3XM69Xt3Pmi8LDzqeS2oOmat226Drq0rcg/WbhuZ5VQzK2OOvcEt8x99biBWgx+DHrE4NEJcY7f83CCukxr3FSH5MPtKPaV99q0/uP4P&lt;/diagram&gt;&lt;diagram id=&quot;HHLeNmLiLjBSiti2kdQe&quot; name=&quot;Page-4&quot;&gt;7Vtbc+o2EP41zLQPycgSNvBILjS9nUnLdJo8OliAzjEWkUWA/PpKWLIs24Ch2IFJ8hJrba2tb7/d1UqihW5nq1+YP5/+SQMctiAIVi1014LQgT0o/knJOpF0vF4imDASqIeMYEjesRICJV2QAMfWg5zSkJO5LRzRKMIjbsl8xujSfmxMQ/utc3+CC4LhyA+L0n9JwKeJtAs7Rv6AyWSq3+zo8c18/bAaSTz1A7rMiNB9C90ySnlyNVvd4lCCp3EZkt/A2/tgOexDHFB2/xT/g68SZYNDuqRDYDjiR6t+/OsdvfwdrV4f+r3B79+fHl5fqeoC3vxwofBSY+VrDSCjiyjAUglooZvllHA8nPsjeXcpKCNkUz4LRcsRl2MShrc0pEy0IxqJh27UGzDjeJUzyZ7xOCnIgp2YzjBna9FPaXGBm+jRxFRjWRorO56STbMW7iqhr5g1SVUb9MSFAvAAMJ3LBVOgeWZgwv1gCi0iiuD9QPrxPAktY7KS4NcGI3JsGHtFGNslKLbrAhFdIogp+RSITgkZG0WxXQQtEDlGNSnjUzqhkR/eG+mN7ejmmT8onStAv2PO1yph+gtObbjxivAn2f3aVa3nzJ27ldK8aax1IxLDTTp5Tk8LnrN3TcdNy+r5iBkRiGGmhNK0RGTSfkgmkZDNSBCEJgpJEI6wuwCSLtgI7wBcBXbuswnmuwKuV04khkOfkzf7605OC/cSnQu5Z+ZcXgUUo6AvZ4ImDWaQsx0t4wFulv/OPv6XehvY6W11ewGq6AWw3OAZg7olBtWyyr6i3vBIiRidmYW1bT6hTo4oyTBVr+z0NK+ol1MEc4oSHAqKNqRLh308Dzun5eH/i97uIbG7bh7Cijx0v3h4Ah52CzwkkSjKpQEYxgVOivTAbSLGnNEfOFc3lJQSvsrqI8ESmfK3p/uy3GXTva5sla/x3GKyKqtKUF3JqldinEAM+VMaJ18zfrRxdO11WRMy17Mp/tElo+MUQTv7agcCK2NegWuA0DElz5hGXLtiC6LBAIi/BnKsUzXJwi1saqbk0Z95YS4GbRf78JrHuch1GQ+cG4ztCjB+ztqxcjxxQLnNm5m1d3o2pY6etXfbOUUNz9qdKotBn7N81NOy/VREX1Q8BRXLVtS8UBYi8dyPLE56rwu5e3ljXU3k/x9YfENfPBz5M3wlpP5M5p3NvUQzBD+JwgXL+z/rF4gPTt6RKNHiF1bxrUd8qBqm/NQJ9ll8R5hIh5Stcx/96zdRRX9bzF7EXG/b1568fAvxmJ9p8ZZbLymrO9I9/GbKt04xYjZXeOjrZyvq7ou0Vpy9Bt2jao7aA3C3agAuZ0xDpUVx4Uv7qSzKWvKEiK7LTAxA4/GmQiuEBTlS4+aJhmJQOi7W7Q0T5+/+uS3Wqtv99Tl/7+KcXy4yAO8iIgCsOgXbUgw0EwFg2fpdsxFAeX70Es8LsxGt9WuOUX2OkZsJeyVzDNBkmNEDy1AsDf6HWtawx0xBbf5EeJnq+1SGz2/bIFCSX3S91Yzhqyxcmvp8FPpxTEa7SvRtK8WmdPdgu3rxLhqNzwu3nJ5ppt5G+/ZZq9bbqOPYitxm621YYTHXUMfZ4pjZY59bmNXgcdBzmx7CCiu9l4ZxlezYcJAsLmLuTIqjBZMIZHIc2PQCNSe+U2yK5wgAgLXRV0dKtF2qXZISUz9rxtqHnbw7PCWmmJqUqPZpdUq8Bl7n4LSYWed2ku7ZbV8jOasCTP/yZe/27oceosrn5LZzZE5u509jeQ3n5OJpPjKWFl6RmH9FpIQzeRvVd35HNM3PpBIbmx+bofv/AA==&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="10" y="125" width="200" height="45" rx="6.75" ry="6.75" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><rect x="225" y="220" width="160" height="160" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="305" cy="260" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="265" cy="340" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="345" cy="340" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 265 320 L 305 280" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 305 280 L 345 320" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><rect x="225" y="0" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 15px; margin-left: 226px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">inode tree</div></div></div></foreignObject><text x="255" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">inode tree</text></switch></g><rect x="225" y="200" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 215px; margin-left: 226px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">index tree</div></div></div></foreignObject><text x="255" y="219" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">index tree</text></switch></g><ellipse cx="305" cy="60" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="265" cy="140" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><ellipse cx="345" cy="140" rx="20" ry="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 265 120 L 305 80" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 305 80 L 345 120" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 210 345 L 230 345 L 225 345 L 253.63 345" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 258.88 345 L 251.88 348.5 L 253.63 345 L 251.88 341.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="0" y="330" width="210" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 208px; height: 1px; padding-top: 345px; margin-left: 2px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font color="#ff0000">put<br /></font>key: name-&gt;value (filename)<br />value: gearsDirectory-&gt;INodeNumber</div></div></div></foreignObject><text x="2" y="349" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">put...</text></switch></g><rect x="225" y="20" width="160" height="160" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 210 145 L 253.63 145" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 258.88 145 L 251.88 148.5 L 253.63 145 L 251.88 141.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="10" y="130" width="200" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 198px; height: 1px; padding-top: 145px; margin-left: 12px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font color="#ff0000">put</font><br /><div><span>key: gearsDirectory-&gt;INodeNumber</span></div>value: newDirectory</div></div></div></foreignObject><text x="12" y="149" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">put...</text></switch></g><rect x="0" y="322.5" width="210" height="45" rx="6.75" ry="6.75" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
\ No newline at end of file
Binary file Paper/fig/nonDestroyTreeEdit.pdf has changed
Binary file Paper/fig/nondestructive_tree_modification.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/read.drawio	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,124 @@
+<mxfile host="65bd71144e">
+    <diagram id="FQab2-Z0juOJThPiGa4v" name="Page-1">
+        <mxGraphModel dx="344" dy="704" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+            <root>
+                <mxCell id="0"/>
+                <mxCell id="1" parent="0"/>
+                <mxCell id="12" style="edgeStyle=none;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0.7;entryY=0.075;entryDx=0;entryDy=0;endArrow=none;endFill=0;entryPerimeter=0;" edge="1" parent="1" source="2" target="7">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="13" style="edgeStyle=none;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="2" target="3">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="2" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="120" y="240" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="3" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="150" y="300" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="4" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="180" y="360" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="5" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="60" y="360" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="6" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="120" y="360" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="14" style="edgeStyle=none;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="7" target="5">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="7" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="90" y="300" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="9" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="200" y="240" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="10" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="230" y="300" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="11" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="200" y="630" width="30" height="30" as="geometry"/>
+                </mxCell>
+                <mxCell id="21" style="edgeStyle=none;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;endArrow=none;endFill=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="15" target="17">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="23" style="edgeStyle=none;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="15" target="16">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="15" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="130" y="440" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="24" style="edgeStyle=none;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="16" target="18">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="16" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="160" y="500" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="25" style="edgeStyle=none;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="17" target="19">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="17" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="100" y="500" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="18" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="190" y="560" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="19" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="130" y="560" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="22" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="20" target="17">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="20" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="70" y="560" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="26" style="edgeStyle=none;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;endArrow=none;endFill=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="28" target="32">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="27" style="edgeStyle=none;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="28" target="30">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="28" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="340" y="440" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="29" style="edgeStyle=none;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="30" target="33">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="30" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="370" y="500" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="31" style="edgeStyle=none;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="32" target="34">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="32" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="310" y="500" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="33" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="400" y="560" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="34" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="340" y="560" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="35" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="36" target="32">
+                    <mxGeometry relative="1" as="geometry"/>
+                </mxCell>
+                <mxCell id="36" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="280" y="560" width="40" height="40" as="geometry"/>
+                </mxCell>
+                <mxCell id="37" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="180" y="680" width="30" height="30" as="geometry"/>
+                </mxCell>
+                <mxCell id="38" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+                    <mxGeometry x="225" y="680" width="30" height="30" as="geometry"/>
+                </mxCell>
+                <mxCell id="39" value="" style="endArrow=none;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="18" target="11">
+                    <mxGeometry width="50" height="50" relative="1" as="geometry">
+                        <mxPoint x="160" y="560" as="sourcePoint"/>
+                        <mxPoint x="210" y="510" as="targetPoint"/>
+                    </mxGeometry>
+                </mxCell>
+            </root>
+        </mxGraphModel>
+    </diagram>
+</mxfile>
\ No newline at end of file
Binary file Paper/fig/sample.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/transaction.drawio	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,104 @@
+<mxfile host="app.diagrams.net" modified="2023-04-17T13:31:09.248Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36" version="21.1.1" etag="pUaW60F-fyRXDa9FpEsn" type="device">
+  <diagram id="L_h3FubKQM33HK9nJZH5" name="Page-1">
+    <mxGraphModel dx="1004" dy="635" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="8" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;strokeWidth=2;strokeColor=#000000;" parent="1" source="2" target="5" edge="1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="9" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;strokeWidth=2;strokeColor=#000000;" parent="1" source="2" target="6" edge="1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="2" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=2;strokeColor=#000000;fillColor=none;" parent="1" vertex="1">
+          <mxGeometry x="180" y="40" width="50" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="3" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=2;strokeColor=#000000;fillColor=none;" parent="1" vertex="1">
+          <mxGeometry x="80" y="210" width="50" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="10" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;strokeWidth=2;strokeColor=#000000;" parent="1" source="5" target="3" edge="1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="11" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;strokeWidth=2;strokeColor=#000000;" parent="1" source="5" target="7" edge="1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="5" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=2;strokeColor=#000000;fillColor=none;" parent="1" vertex="1">
+          <mxGeometry x="130" y="120" width="50" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="6" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=2;strokeColor=#000000;fillColor=none;" parent="1" vertex="1">
+          <mxGeometry x="230" y="120" width="50" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="7" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;N&lt;/font&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=2;strokeColor=#000000;fillColor=none;fontSize=20;" parent="1" vertex="1">
+          <mxGeometry x="180" y="210" width="50" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="27" style="edgeStyle=none;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fontSize=20;endArrow=classic;endFill=1;startArrow=none;startFill=0;strokeColor=#000000;strokeWidth=2;" parent="1" source="12" target="7" edge="1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="12" value="&lt;font style=&quot;font-size: 25px;&quot;&gt;key = a&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" parent="1" vertex="1">
+          <mxGeometry x="265" y="220" width="95" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="13" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=20;strokeWidth=2;strokeColor=#000000;fillColor=none;" parent="1" vertex="1">
+          <mxGeometry x="80" y="360" width="120" height="240" as="geometry" />
+        </mxCell>
+        <mxCell id="32" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=20;startArrow=none;startFill=0;endArrow=classic;endFill=1;strokeWidth=2;strokeColor=#000000;" parent="1" source="14" target="19" edge="1">
+          <mxGeometry relative="1" as="geometry">
+            <Array as="points">
+              <mxPoint x="240" y="365" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="39" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#FF9933;strokeWidth=2;fontSize=30;fontColor=#FF9933;startArrow=none;startFill=0;endArrow=classic;endFill=1;" parent="1" source="14" target="24" edge="1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="14" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=20;strokeWidth=2;strokeColor=#000000;fillColor=none;" parent="1" vertex="1">
+          <mxGeometry x="80" y="480" width="120" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="15" value="&lt;font style=&quot;font-size: 25px;&quot;&gt;a&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=20;fontColor=#000000;" parent="1" vertex="1">
+          <mxGeometry x="40" y="480" width="40" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="17" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;strokeWidth=2;strokeColor=#000000;" parent="1" source="19" target="20" edge="1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="18" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;strokeWidth=2;strokeColor=#000000;" parent="1" source="19" target="21" edge="1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="19" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=2;strokeColor=#000000;fillColor=none;" parent="1" vertex="1">
+          <mxGeometry x="340" y="350" width="30" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="20" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=2;strokeColor=#000000;fillColor=none;" parent="1" vertex="1">
+          <mxGeometry x="290" y="430" width="30" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="21" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=2;strokeColor=#000000;fillColor=none;" parent="1" vertex="1">
+          <mxGeometry x="390" y="430" width="30" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="22" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;strokeColor=#FF9933;strokeWidth=2;" parent="1" source="24" target="25" edge="1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="23" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;strokeColor=#FF9933;strokeWidth=2;" parent="1" source="24" target="26" edge="1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="24" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeColor=#FF9933;strokeWidth=2;fillColor=none;" parent="1" vertex="1">
+          <mxGeometry x="340" y="480" width="30" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="25" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeColor=#FF9933;strokeWidth=2;fillColor=none;" parent="1" vertex="1">
+          <mxGeometry x="290" y="560" width="30" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="26" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeColor=#FF9933;strokeWidth=2;fillColor=none;" parent="1" vertex="1">
+          <mxGeometry x="390" y="560" width="30" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="28" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;Context&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=20;fontColor=#000000;strokeWidth=3;" parent="1" vertex="1">
+          <mxGeometry x="105" y="330" width="70" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="36" value="&lt;span style=&quot;font-size: 30px;&quot;&gt;A&lt;/span&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontSize=20;fontColor=#000000;" parent="1" vertex="1">
+          <mxGeometry x="80" y="40" width="30" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="37" value="&lt;span style=&quot;font-size: 30px;&quot;&gt;B&lt;/span&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontSize=20;fontColor=#000000;" parent="1" vertex="1">
+          <mxGeometry x="390" y="350" width="30" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="38" value="&lt;span style=&quot;font-size: 30px;&quot;&gt;C&lt;/span&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=3;fontSize=20;fontColor=#FF9933;" parent="1" vertex="1">
+          <mxGeometry x="390" y="480" width="30" height="30" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+</mxfile>
Binary file Paper/fig/transaction.drawio.pdf has changed
Binary file Paper/fig/transaction.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/transaction.svg	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="383px" height="565px" viewBox="-0.5 -0.5 383 565" content="&lt;mxfile&gt;&lt;diagram id=&quot;L_h3FubKQM33HK9nJZH5&quot; name=&quot;Page-1&quot;&gt;7VvNk5owHP1rPLYDBPw47rrr9tKZzuyh7TEjUZmNhEJctX99AySQQFBQgV3qHlbyS4LhvZeXLxyB+fbwEsJg8524CI8swz2MwNPIshxgsv9x4JgGTGM6SSPr0HN5LA+8en+RKMijO89FkVKQEoKpF6jBJfF9tKRKDIYh2avFVgSr3xrANSoFXpcQl6M/PZdu0ujUmuTxb8hbb8Q3m+NZmrOFojB/kmgDXbKXQuB5BOYhITS92h7mCMfgCVzSeouK3KxhIfJpnQpT3gx6FM+GXPaoPOkTn308bugWs5TJLtHBo7/YtfHV4anfUs5TzLAhEkeR8Gl4lCrFyd9yXl4tSeX13IeYrLwhLLLwMOb5EQ3JW0YAyCJzgkmYPAwwkj+WU8aFQxWRXbjkj25xKcFwjXgpJw3FoEjVOJYviGwRazErECIMqfeu6gNyma2zcjkT7IKToSdmdifmJDHjvojhbXmHeMdvWmYKY+ZEMS77jUfRawCTB9kzM1RJg1GQ2tPKOyC3IXIrBriIcxoqwXxHIUWHk0CJ3Cl3Ju7NNk/uc59zeGgjWZyIXYMsGDayBWCzwawDZMVX3d1E8nTZTUBfbmKad2ZOMjPpixln2G5kAtWOTKs7OxoPG1qrR2gnw4a2ODvpchAV2Da3asmoc9s+Y9WmYtS5b1dY9Yr4lK+TrYJ1LzGMIm+puLeZcAdDWvD3JFZyeB2/ZS3UcnhTM5XvzeJFY5TeMsaU46lwPf6zIyLjS5Qg/cAKWE5wSJ5d5LOrdfz5huImJ1UNKO7KGpTeOC1T0hPrBVTVkEoAZ0nTtyD21n5MNgMfsfhj3Ke8JcQPPGPruS6u6vQh2flu3MUzLTUawhtY49hR+6/GGmdOuf+CW0yCa6wvVCDO+GOxz/VvjwV3BOMyutlgJMObrfKuWr5phppa/iiuG/ljlrjMH+uYXy0PvfEM2LTL/mjObm2QSVX2bPAoFQiI59NIuvOPOCD1XbuoLqcgj/SOuViyptXTz6VbXl3op0TrYjGbAaCVgKQ1oPFTqeZNNHixriy7t4HX/t+s2J7WtOKbjHS6teuN5jWfcC4jC6PFuY19nnG7LcIvXpoMcRdJjJeK1xm9ed39iO0cN2Zv3MzOj0OfebsEFKdsTtmTQEueJHrcULG1ZgW/Bx1iaw4bW9AntpcuYz+OX59fpth1/drSrRt6eylCnNPduankpr/3Imqs6a71pHrgdTOW6ub3rXlSB4eRfWJbHEsdzcZla9h2cBrZq277xHaqwbbhRoRRsRExZ+XiLYZBbkc0OF1rcHhqqIcvQDOrmrSkBKDrZSlzUQD9OkoAVUp4kDSQ3uxDa+DkhnHbm1Tn3+5rywuA7tWEGyng8a6Ai8eDLvcEQPV4cLUG5gPXQDZxaEEDLc5lWTL/NUN6Kpj/JgQ8/wM=&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><path d="M 165 53 L 115 83" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 165 53 L 215 83" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><ellipse cx="165" cy="28" rx="25" ry="25" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><ellipse cx="65" cy="198" rx="25" ry="25" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><path d="M 115 133 L 65 173" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 115 133 L 165 173" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><ellipse cx="115" cy="108" rx="25" ry="25" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><ellipse cx="215" cy="108" rx="25" ry="25" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><ellipse cx="165" cy="198" rx="25" ry="25" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><path d="M 225 198 L 200.1 198" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 193.35 198 L 202.35 193.5 L 200.1 198 L 202.35 202.5 Z" fill="#000000" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="225" y="183" width="95" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 93px; height: 1px; padding-top: 198px; margin-left: 226px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 25px;">key = a</font></div></div></div></foreignObject><text x="273" y="202" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">key = a</text></switch></g><rect x="40" y="323" width="120" height="240" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><path d="M 160 458 L 197.06 337.56 Q 200 328 210 328 L 289.9 328" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 296.65 328 L 287.65 332.5 L 289.9 328 L 287.65 323.5 Z" fill="#000000" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 160 458 L 289.9 458" fill="none" stroke="#ff9933" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 296.65 458 L 287.65 462.5 L 289.9 458 L 287.65 453.5 Z" fill="#ff9933" stroke="#ff9933" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="40" y="443" width="120" height="30" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><rect x="0" y="443" width="40" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 458px; margin-left: 1px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 25px;">a</font></div></div></div></foreignObject><text x="20" y="464" fill="#000000" font-family="Helvetica" font-size="20px" text-anchor="middle">a</text></switch></g><path d="M 315 343 L 265 393" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 315 343 L 365 393" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><ellipse cx="315" cy="328" rx="14.999999999999998" ry="14.999999999999998" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><ellipse cx="265" cy="408" rx="14.999999999999998" ry="14.999999999999998" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><ellipse cx="365" cy="408" rx="14.999999999999998" ry="14.999999999999998" fill="none" stroke="#000000" stroke-width="3" pointer-events="all"/><path d="M 315 473 L 265 523" fill="none" stroke="#ff9933" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 315 473 L 365 523" fill="none" stroke="#ff9933" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><ellipse cx="315" cy="458" rx="14.999999999999998" ry="14.999999999999998" fill="none" stroke="#ff9933" stroke-width="4" pointer-events="all"/><ellipse cx="265" cy="538" rx="14.999999999999998" ry="14.999999999999998" fill="none" stroke="#ff9933" stroke-width="4" pointer-events="all"/><ellipse cx="365" cy="538" rx="14.999999999999998" ry="14.999999999999998" fill="none" stroke="#ff9933" stroke-width="4" pointer-events="all"/><rect x="65" y="293" width="70" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 308px; margin-left: 66px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font style="font-size: 20px;">Context</font></div></div></div></foreignObject><text x="100" y="314" fill="#000000" font-family="Helvetica" font-size="20px" text-anchor="middle">Context</text></switch></g><rect x="40" y="3" width="30" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 18px; margin-left: 41px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="font-size: 30px;">A</span></div></div></div></foreignObject><text x="55" y="24" fill="#000000" font-family="Helvetica" font-size="20px" text-anchor="middle">A</text></switch></g><rect x="350" y="313" width="30" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 328px; margin-left: 351px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="font-size: 30px;">B</span></div></div></div></foreignObject><text x="365" y="334" fill="#000000" font-family="Helvetica" font-size="20px" text-anchor="middle">B</text></switch></g><rect x="350" y="443" width="30" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 28px; height: 1px; padding-top: 458px; margin-left: 351px;"><div data-drawio-colors="color: #FF9933; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(255, 153, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span style="font-size: 30px;">C</span></div></div></div></foreignObject><text x="365" y="464" fill="#FF9933" font-family="Helvetica" font-size="20px" text-anchor="middle">C</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/fig/ultra-rightDown.drawio	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,142 @@
+<mxfile host="app.diagrams.net" modified="2023-11-07T03:26:19.316Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" etag="NMKjf1i7XNEUjqoMlAYm" version="22.0.8" type="device">
+  <diagram name="Page-1" id="17H9htNljwMQ66okWmA3">
+    <mxGraphModel dx="1829" dy="1207" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-21" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=4;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-1" target="Rm6CdYqXR1xtWD50U5ZN-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-28" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;strokeWidth=4;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-1" target="Rm6CdYqXR1xtWD50U5ZN-17">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-1" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="360" y="160" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-22" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=4;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-2" target="Rm6CdYqXR1xtWD50U5ZN-13">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-2" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="440" y="240" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-29" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=4;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-13" target="Rm6CdYqXR1xtWD50U5ZN-24">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-13" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="520" y="320" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-17" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="280" y="240" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-23" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=4;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-24" target="Rm6CdYqXR1xtWD50U5ZN-26">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-24" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="600" y="400" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-25" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=4;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-26" target="Rm6CdYqXR1xtWD50U5ZN-27">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-26" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="680" y="480" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-39" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=4;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-27" target="Rm6CdYqXR1xtWD50U5ZN-31">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-27" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="760" y="560" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-30" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=4;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-31" target="Rm6CdYqXR1xtWD50U5ZN-33">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-31" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="840" y="640" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-32" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=4;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-33" target="Rm6CdYqXR1xtWD50U5ZN-35">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-33" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="920" y="720" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-34" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=4;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-35" target="Rm6CdYqXR1xtWD50U5ZN-37">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-35" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="1000" y="800" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-36" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=4;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-37" target="Rm6CdYqXR1xtWD50U5ZN-38">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-37" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="1080" y="880" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-59" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=4;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-38" target="Rm6CdYqXR1xtWD50U5ZN-41">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-38" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="1160" y="960" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-40" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=4;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-41" target="Rm6CdYqXR1xtWD50U5ZN-43">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-41" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="1241" y="1040" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-42" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=4;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-43" target="Rm6CdYqXR1xtWD50U5ZN-45">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-43" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="1321" y="1120" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-44" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=4;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-45" target="Rm6CdYqXR1xtWD50U5ZN-47">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-45" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="1401" y="1200" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-46" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=4;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-47" target="Rm6CdYqXR1xtWD50U5ZN-49">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-47" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="1481" y="1280" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-48" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-49" target="Rm6CdYqXR1xtWD50U5ZN-51">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-49" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="1561" y="1360" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-50" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-51" target="Rm6CdYqXR1xtWD50U5ZN-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-51" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+          <mxGeometry x="1641" y="1440" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-52" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-53" target="Rm6CdYqXR1xtWD50U5ZN-55">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-53" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+          <mxGeometry x="1721" y="1520" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-54" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-55" target="Rm6CdYqXR1xtWD50U5ZN-57">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-55" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+          <mxGeometry x="1801" y="1600" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-56" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Rm6CdYqXR1xtWD50U5ZN-57" target="Rm6CdYqXR1xtWD50U5ZN-58">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-57" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+          <mxGeometry x="1881" y="1680" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-58" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
+          <mxGeometry x="1961" y="1760" width="40" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="Rm6CdYqXR1xtWD50U5ZN-61" value="&lt;font style=&quot;font-size: 100px;&quot;&gt;Ultra Right Down&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=4;" vertex="1" parent="1">
+          <mxGeometry x="280" y="820" width="770" height="180" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+</mxfile>
Binary file Paper/fig/wordCountStates.pdf has changed
--- a/Paper/info.toml	Mon Dec 04 22:15:52 2023 +0900
+++ b/Paper/info.toml	Sat Dec 09 19:20:23 2023 +0900
@@ -1,8 +1,8 @@
-author = "一木貴裕"
-user_id = "208573K"
+author = "又吉雄斗"
+user_id = "228587J"
 
-title = "GearsOSの分散ファイルシステム設計"
-title_en = "Distributed File System Design for GearsOS"
+title = "GearsOSのファイルシステムとDB"
+title_en = ""
 
 abstract = """
 人間の記憶は大脳皮質の側頭葉に記録される。
Binary file Paper/master_paper.pdf has changed
--- a/Paper/master_paper.sty	Mon Dec 04 22:15:52 2023 +0900
+++ b/Paper/master_paper.sty	Sat Dec 09 19:20:23 2023 +0900
@@ -194,7 +194,7 @@
 \newcommand{\makecommission} {
   \noindent
   論文題目:GearsOSの分散ファイルシステム設計\newline
-  氏\hspace{4ex}名: 一木 貴裕
+  氏\hspace{4ex}名: 又吉 雄斗
   \vspace*{4.5cm}
   \begin{center}
     本論文は、修士(工学)の学位論文として適切であると認める。
@@ -212,10 +212,10 @@
       (主 査)    和田 知久   
       \vskip 2 em
       \underline{                  印}\\
-      (副 査)    長山 格   
+      (副 査)    長山 格    
       \vskip 2 em
       \underline{                  印}\\
-      (副 査)    當間 愛晃  
+      (副 査)    當間 愛晃   
       \vskip 2 em
       \underline{                  印}\\
       (副 査)    河野 真治   
--- a/Paper/master_paper.tex	Mon Dec 04 22:15:52 2023 +0900
+++ b/Paper/master_paper.tex	Sat Dec 09 19:20:23 2023 +0900
@@ -96,13 +96,323 @@
 % \lstlistoflistings
 
 %chapters
-\input{chapter/0-introduction.tex}
-\input{chapter/2-CbC.tex}
-\input{chapter/3-GearsOS.tex}
-\input{chapter/4-Christie.tex}
-\input{chapter/5-Implementation.tex}
-\input{chapter/6-Evaluation.tex}
-\input{chapter/conclusion.tex}
+
+\chapter{GearsOSにおけるファイルシステムとDB}
+
+アプリケーションの信頼性を保証することは
+情報システムやコンピュータを用いる業務の信頼性の保障につながる重要な課題である.
+したがって,アプリケーションの信頼性を保証するために,基盤となるOSの信頼性を高める必要がある.
+
+当研究室では,信頼性の保証を目的としたGearsOSを開発している.
+GearsOSは,OSの信頼性を定理証明やモデル検査を行うことで保証することを目指している\cite{modelcheck}.
+同じく,当研究室で開発しているプログラム言語であるCbC(Continuation based C)で記述されており,
+ノーマルレベルとメタレベルを簡単に切り分けることを可能としている.
+そのようにして,CbCでメタレベルの処理を切り出したものに対して,
+定理証明やモデル検査を行うことで信頼性を保証する.
+
+GearsOSは現在OSとして重要な機能がいくつか未実装であり,
+その一つとしてファイルシステムが挙げられる.
+ファイルシステムはファイルやディレクトリといった構造を持ち,データの保存,整理を行う.
+OSの機能の中でも特に重要な機能であるため,GearsOSにも実装を行う必要がある.
+
+GearsOSへファイルシステムとDBを実装するにあたり,RedBlackTreeを用いる.
+DBはファイルシステムと本質的に同じ役割を持っているため同じRedBlackTreeで
+表現することが可能であると考える.
+よって,今回はGearsOSにおけるファイルシステムとDBをRedBlackTreeで実装するための
+設計を行う.
+
+\chapter{Continuation based C}
+
+Continuation based C(CbC)\cite{cbcllvm,cbc}は,当研究室で開発しているCの下位言語である.
+CbCでは関数の代わりにCodeGearという単位でプログラミングを行う.
+CodeGearは\emph{\_\_code}という記述で宣言することができる.
+また,データの単位にはDataGearと呼ばれる変数データを用いる.
+図\ref{fig:dgcg}はCodeGearと入出力の関係を表している.
+CodeGearはDataGearを入力として受け取り,別のDataGearに書き込み出力することができる.
+特に,入力のDataGearをInput DataGear,出力のDataGearをOutput DataGearと呼ぶ.
+gotoで次のCodeGearに遷移することができ,その際,Output DataGearを次のCodeGearのInput DataGearとして渡すことができる.
+
+\begin{figure}[ht]
+  \begin{center}
+      \includegraphics[width=80mm]{fig/cgdg.pdf}
+  \end{center}
+  \caption{CodeGearと入出力の関係図}
+  \label{fig:dgcg}
+\end{figure}
+
+CodeGearから次のCodeGearに遷移していく一連の動作を継続と呼ぶ.
+通常の関数の場合,関数から次の関数へ遷移する時にfunction callが行われる.
+function callは前の関数へ戻る場合があり,そのためにcall stackを保存する.
+他方,CbCの継続はfunction callをせずにgotoによるjmpで行われる.
+jmpはfunction callと異なり,call stackのような環境を保存しない.
+よって,CbCのgotoによる継続はfunction callによる継続と比較して軽量であるといえる.
+そのことから,CbCにおける継続をfunction callによる継続と区別して,軽量継続と呼ぶ.
+これらの仕組みにより,ノーマルレベルとメタレベルの処理を容易に切り分けることが可能となる.
+
+CbCのプログラム例をソースコード\ref{src:cbc}に示す.
+まずmain関数においてadd1 CodeGearへgotoを行う.
+その際add1へInput DataGearとしてnを渡す.
+Cのgotoが\emph{goto label;}という記法で,ラベリングした箇所へjmpを行うのに対し,
+CbCのgotoは\emph{goto add1(n);}という記法で,add1 CodeGearへn DataGearを渡してjmpを行う.
+add1は処理の最後にadd2 CodeGearへgotoを行う.
+その際Output DataGear out\_nをadd2のInput DataGearとして渡す.
+このようにCbCではCodeGearのOutput DataGearを次のCodeGearのInput DataGearとして渡すことを繰り返すことで処理を進める.
+
+\lstinputlisting[caption=CbCのプログラム例,label=src:cbc]{src/hello.cbc}
+
+\chapter{信頼性の保証を目的としたGearsOS}
+
+GearsOS\cite{gears,gearsos,cr}は当研究室で開発している,信頼性と拡張性の両立を目的としたOSである.
+GearsOSにはGearという概念があり,実行の単位をCodeGear,データの単位をDataGearと呼ぶ.
+軽量継続を基本とし,stackを持たない代わりに全てをContext経由で実行する.
+同様にGearの概念を持つContinuation based C(CbC)で記述されており,ノーマルレベルとメタレベルの処理を切り分けることが容易である.
+また,GearsOSは現在開発途上であり,OSとして動作するために今後実装しなければならない機能がいくつか残っている.
+
+ContextはGearsOS上全てのCodeGear,DataGearの参照を持ち,CodeGearとDataGearの接続に用いられる.
+OS上の処理の実行単位で,従来のOSにおけるプロセスに相当する機能であるといえる.
+また,CodeGearをDataGearの一種であると考えると,ContextはGearの概念ではMetaDataGearに当たる.
+Contextはノーマルレベルから直接参照されず,必ずMetaDataGearとしてMetaCodeGearから参照される.
+それは,ノーマルレベルのCodeGearがContextを直接参照してしまうと,
+メタレベルを切り分けた意味がなくなってしまうためである.
+
+図\ref{fig:context}はContextを参照する流れを表したものである.
+まずCodeGearがOutputDataGearへデータをoutputする.
+stubCodeGearはInputDataGear(前のCodeGearのOutputDataGear)とOutputDataGearをContextから参照し,次のCodeGearへgotoを行う.
+CodeGearでの処理後,OutputDataGearへデータをoutputする.
+
+Contextはいくつかの種類に分けることができる.
+OS全体のContextを管理するKernel Contextやユーザープログラムごとに存在するUser Context,
+CPUやGPUごとに存在するCPU Contextがある.
+\begin{figure}[ht]
+  \begin{center}
+      \includegraphics[width=80mm]{fig/context.pdf}
+  \end{center}
+  \caption{Contextを参照する流れ}
+  \label{fig:context}
+\end{figure}
+
+図\ref{fig:meta-cgdg}はCodeGearの遷移とMetaCodeGearの関係を表している.
+OSのプログラムはユーザーが実際に行いたい処理を表現するノーマルレベルと,
+カーネルが行う処理を表現するメタレベルが存在する.
+ノーマルレベルで見るとCodeGearがDataGearを受け取り,
+処理後にDataGearを次のCodeGearに渡すという動作をしているように見える.
+しかしながら,実際にはデータの整合性の確認や資源管理などのメタレベルの処理が存在し,
+それらの計算はMetaCodeGearで行われる.
+その際,MetaCodeGearに渡されるDataGearのことは特にMetaDataGearと呼ばれる.
+また,CodeGearの前に実行されるMetaCodeGearは特にstubCodeGearと呼ばれ,
+メタレベルを含めるとstubCodeGearとCodeGearを交互に実行する形で遷移していく.
+\begin{figure}[ht]
+  \begin{center}
+      \includegraphics[width=80mm]{fig/meta-cg-dg.pdf}
+  \end{center}
+  \caption{CodeGearとMetaCodeGearの関係}
+  \label{fig:meta-cgdg}
+\end{figure}
+
+GearsOSには現在3つの種類がある.
+1つ目が型式手法による信頼性の向上を目的とした,GearsAgdaと呼ばれるGearsOSである.
+これは,Agdaによって実装されている.
+2つ目がユーザーレベルタスクマネジメントの実装を目的としたGearsOSがある.
+これは,CbCによって実装されており,
+RedBlackTreeでのディレクトリシステムの構築するなどの取り組みもされている\cite{directory}.
+3つ目はスタンドアロンOSの開発を目的とした,CbC\_xv6と呼ばれるGearsOSがある\cite{cbcxv6}.
+これは,教育用に開発されたx.v6\cite{xv6}をCbCで書き換える形で実装する.
+今回,ファイルシステムを実装する対象は3つ目のCbC\_xv6である.
+
+\chapter{RedBlackTreeによるファイルシステムの構成}
+
+ファイルシステムは全てRedBlackTreeで構成する.
+それにより,プログラムの証明がより簡単になるからである.
+また,ファイルシステムとDBはデータを保管するという本質的な役割は同じである.
+よって,それらはまとめてRedBlackTreeで構成する.
+
+ファイルシステムとDBの違いとして,スキーマが挙げられる.
+DBは事前にスキーマを定義し,それに沿ってデータを挿入,参照する.
+対して,ファイルシステムにはスキーマに当たるものがなく,
+データはファイルパスによって管理される.
+スキーマを定義することによってデータは構造化され,
+構造化されたデータは非構造化データと比較して,
+インデックスを作成することが容易であり,データの検索性が向上する利点がある.
+しかしながら,スキーマはDBの運用中に変更されることがあり,
+スキーマを変更した以前へロールバックができない問題がある.
+
+ロールバックがスキーマの変更によって出来なくなることは信頼性に問題があると考えると,
+スキーマを定義する必要のないスキーマレスなDBが必要になる.
+ファイルシステムはスキーマレスなDBといえるので,ファイルシステムを構築しつつ
+DBがスキーマによって実現していた機能を付け加えることを試みる.
+
+RedBlackTreeは実装によって,操作が破壊的なものとそうでないものがある.
+今回用いるのは,非破壊的な実装のRedBlackTreeである.
+図\ref{fig:TreeEdit}は非破壊的編集を行うRedBlackTreeを表している.
+編集前の木構造の6のノードをAにアップデートすることを考える.
+まず,ルートノードからアップデートしたいノード6までをコピーする.
+その後,コピーしたもののノード6をAにアップデートする.
+これにより,アップデート前のノード6を破壊することなくAにアップデートが可能である.
+参照する時は,黒のルートノードから辿れば古い6が,赤のルートノードから辿れば新しいAが見える.
+この仕組みは,データのバックアップやDBのロールバックに用いることが可能だと考える.
+
+\begin{figure}[ht]
+  \begin{center}
+      \includegraphics[width=80mm]{fig/nonDestroyTreeEdit.pdf}
+  \end{center}
+  \caption{非破壊的なTree編集}
+  \label{fig:TreeEdit}
+\end{figure}
+
+
+\chapter{ディスク上とメモリ上のデータ構造}
+
+ディスク上とメモリ上でデータの構造は,RedBlackTreeに統一する.
+一般的に,ディスク上のデータ構造としてB-Treeが用いられることが多い.
+なぜならば,HDDを用いる場合はブロックへのアクセス回数を減らしデータアクセスの時間を短くするために,
+B-Treeのようなノードを複数持つことができる構造が効果的だからである.
+その点ではRedBlackTreeはB-Treeに劣る.
+しかしながら,SSDはランダムアクセスによってデータにアクセスするため,
+RedBlackTreeでなくB-Treeを用いる利点は少ないと考える.
+よって,ディスク上とメモリ上のデータ構造をRedBlackTreeに統一することが考えられる.
+そうすることによって,ディスク上とメモリ上のデータのやりとりは単純なコピーで実装できる.
+
+\chapter{データのロールバックとバックアップ}
+
+DBの重要な機能の一つにロールバックがある.
+RDBのロールバックは,
+コミットするまではトランザクションの開始時点に戻ることができる機能を持つ.
+コミットが完了するとそれ以前の状態に戻すことはできないが,
+データのバックアップをとっておくことで復元を行う.
+このような,ロールバックとバックアップの仕組みをファイルシステムに実装したい.
+
+今回は,RedBlackTreeのルートノードがデータのバージョンの役割を果たしていることを利用し,
+データの復元が行える仕組みを構築することを考える.
+非破壊的なTree編集はアップデートのたびに,ルートノードを増やす.
+つまり,ルートノードはアップデートのログと言えその時点のデータのバージョンを表していると考えることができる.
+よって,ロールバックを行いたい場合は参照を過去のルートノードに切り替える.
+
+ルートノードはデータのアップデート時に増えるため,
+データが際限なく増加していく問題がある.
+この問題はCopyingGCを行うことによって解決する.
+まず,RedBlackTreeを丸ごとコピーして最新のルートを残して他のルートは削除する.
+その後,コピーしたものはバックアップないしログとしてディスクに書き込む.
+そうすることで,データの増加によるリソースの枯渇を防ぎ,
+かつデータのログ付きバックアップを作成することで信頼性の向上が期待できる.
+
+% TODO: バックアップのフローを図にしたい
+
+\chapter{RedBlackTreeのトランザクション}
+
+トランザクションはDBの重要な機能の一つである.
+データの競合を防ぎ信頼性を向上させ,DBとしても扱えるよう
+トランザクションの仕組みを考える必要がある.
+今回,ファイルシステムは全てRedBlackTreeで実装するため,
+RedBlackTreeのノードに対するトランザクションを考える.
+
+トランザクションをwriteとreadに分けて考える.
+writeする場合,トランザクションはRedBlackTreeのルートの置き換えと対応する.
+writeするために,まずルートを生やし書き込みが終わった後ルートを置き換える.
+そのため,書き込みの並列度はルートの数と一致する.
+しかしながら,ルートの置き換えは競合的なので,
+複数プロセスから同時に書き込みを行っても1つしか成功しない.
+よって,単一のRedBlackTreeに複数の書き込みポイントを作り,
+並行実行可能にする必要がある.
+
+% TODO: writeトランザクションの図を入れたい
+
+RedBlackTreeに複数の書き込みポイントを作るために,
+キーごとのルートを作成する.
+ノードはそれぞれがキーとRedBlackTreeを持つ状態になる.
+writeする際は,そのキーのルートを置き換える.
+それによって,RedBlackTreeは複数の書き込みポイントを持つことができ,
+writeを並行実行することが可能となる.
+
+図\ref{fig:Transaction}にトランザクショナルなwrite操作を表す.
+Aの木はファイルシステム全体を表すRedBlackTreeである.
+ノードNのデータに対して書き込みすることを考えると,
+キーがaであるBの木のルートからロックしCの木を作成して,
+Bの木からCの木のルートに入れ替えることで書き込みを行う.
+この書き込みを行っている際,
+Aの木のノードはロックしないのでAの木のどのノードに対しても並行して書き込み可能となる.
+
+\begin{figure}[ht]
+  \begin{center}
+      \includegraphics[width=80mm]{fig/transaction.drawio.pdf}
+  \end{center}
+  \caption{トランザクショナルなwrite操作}
+  \label{fig:Transaction}
+\end{figure}
+
+% TODO: read時常に最新の情報が取れないことを説明する図を入れたい
+
+readはデータに変更を加えないため,複数同時に同じノードを読み込むことが可能である.
+しかし,常に最新の情報を読み込めるとは限らない.
+最新の情報が欲しい場合は書き込みを一旦止めるような処理が必要になる.
+
+
+\chapter{ファイルシステムにおけるスキーマ}
+
+従来のRDBのようなスキーマが存在すると,
+個別にバックアップなどを取らない限り
+スキーマの変更以前にロールバックすることができない.
+しかしながら,実際運用する上でスキーマを変更することは多々ある.
+これは,データの信頼性を低下させると考える.
+また,DB上のデータ構造とプログラム上で扱うデータ構造に差が生まれる
+インピーダンスミスマッチが発生し,DBのデータをプログラムが扱う際に
+その差を埋めるような変換を必要とする場合が生まれる.
+一方で,スキーマがあることによってデータに対して高度な操作を行うことができ,
+また,インデックスを容易に作成することができるといったメリットがある.
+よって,スキーマフルなDBとスキーマレスなDBはそれぞれメリットデメリットがあり,
+状況によって使い分けるのが良いと考える.
+
+今回は,非構造化データ内であれば構造化データを扱うことが可能であることと,
+信頼性を保証したいという点から,
+スキーマレスなDBとしてのファイルシステムを考える.
+しかしながら,トランザクションの仕組みを作る上でRedBlackTreeに対し,
+キーを設定することから完全なスキーマレスとは言えない構成となる.
+
+GearsOSのデータは全てDataGearで表される.
+よって,GearsOSにおけるファイルシステムはDataGearの集合となる.
+スキーマレスとはキーがない状態のことといえるが,
+DataGearはキーが設定されていないため,その集合自体にスキーマは無い.
+そのことから,GearsOSにおけるスキーマとはDataGear上のキーの構成であることがわかる.
+なお,今回のRedBlackTreeによる構成の場合,キーはRedBlackTreeを指す.
+DataGearはKernelのContextからプロセスのContextを経由して全て繋がっている.
+よって,KernelのContext上にキーを用いたDataGearの参照を書き込む.
+
+\chapter{RedBlackTreeによる権限の表現}
+
+ファイルの権限はファイルシステムの重要な機能の一つであるため実装する必要がある.
+今回のRedBlackTreeによる構成の場合,木のルートの所持者を設定することが
+ファイルに対して権限を設定することにあたる.
+ルートに対してアクセスする権限がなければ,
+読み書きができないといった実装になると考える.
+
+\chapter{まとめと今後の課題}
+
+本論文ではGearsOSのファイルシステムとDBの設計について説明した.
+今後,実装を行いながら設計と動作の確認,計測を行い,
+設計の意図が反映されていることやプログラムの検証ができることを確認する必要がある.
+
+また,今後の課題や議題として次のようなものが挙げられる.
+
+\section{データクエリ言語}
+
+ユーザーやアプリケーションがDBのデータにアクセスするための言語設計を
+する必要がある.
+RedBlackTreeのキーを用いたインデックスに対応し,
+従来のSQLと比較してより柔軟なクエリを実行できることを目指したい.
+
+\section{ログなどの時系列データの保存}
+
+時系列データは通常のデータと違った保存の方法を考えることができる.
+時系列に並んでいることを生かしたデータの保存方式や,
+時間経過に伴うデータの重要性の変化を考慮に入れたデータ圧縮の方法をとることで,
+より効率的な保存が可能だと考える.
+
+\section{スタンドアロンなDB}
+
+MySQLやPostgreSQLなどはOSの機能としてではなく,
+それ自体が一つのアプリケーションとして自立的に動作している.
+自立的に動作するのは,データのポータビリティを向上させるためである.
+スタンドアロンなDBの形にするか,
+その他の方法でポータビリティを向上させる手法を考えたい.
 
 
 
--- a/Paper/reference.bib	Mon Dec 04 22:15:52 2023 +0900
+++ b/Paper/reference.bib	Sat Dec 09 19:20:23 2023 +0900
@@ -1,236 +1,108 @@
-March@article{
-    cbc,
-    author = "Kaito TOKKMORI and Shinji KONO",
-    title = "Implementing Continuation based language in LLVM and Clang",
-    journal = "LOLA 2015",
-    month = "July",
-    year = 2015
+@misc{gearsos,
+  title        = {GearsOS},
+  author       = {並列信頼研究室},
+  organization = {琉球大学},
+  howpublished = {http://www.cr.ie.u-ryukyu.ac.jp/hg/Gears/Gears/}
 }
 
-@article{moggi-monad,
-    author     = {Moggi, Eugenio},
-    title      = {Notions of Computation and Monads},
-    journal    = {Inf. Comput.},
-    issue_date = {July 1991},
-    volume     = {93},
-    number     = {1},
-    month      = jul,
-    year       = {1991},
-    issn       = {0890-5401},
-    pages      = {55--92},
-    numpages   = {38},
-    url        = {http://dx.doi.org/10.1016/0890-5401(91)90052-4},
-    doi        = {10.1016/0890-5401(91)90052-4},
-    acmid      = {116984},
-    publisher  = {Academic Press, Inc.},
-    address    = {Duluth, MN, USA},
+@misc{cbcllvm,
+  title        = {CbC},
+  author       = {並列信頼研究室},
+  organization = {琉球大学},
+  howpublished = {http://www.cr.ie.u-ryukyu.ac.jp/hg/CbC/CbC\_llvm/}
 }
-
-@inproceedings{Yang:2010:SLI:1806596.1806610,
- author = {Yang, Jean and Hawblitzel, Chris},
- title = {Safe to the Last Instruction: Automated Verification of a Type-safe Operating System},
- booktitle = {Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation},
- series = {PLDI '10},
- year = {2010},
- isbn = {978-1-4503-0019-3},
- location = {Toronto, Ontario, Canada},
- pages = {99--110},
- numpages = {12},
- url = {http://doi.acm.org/10.1145/1806596.1806610},
- doi = {10.1145/1806596.1806610},
- acmid = {1806610},
- publisher = {ACM},
- address = {New York, NY, USA},
- keywords = {operating system, run-time system, type safety, verification},
+@misc{cbcxv6,
+  title        = {CbC\_xv6},
+  author       = {並列信頼研究室},
+  organization = {琉球大学},
+  howpublished = {http://www.cr.ie.u-ryukyu.ac.jp/hg/CbC/CbC\_xv6/}
 }
 
-@inproceedings{Klein:2009:SFV:1629575.1629596,
- author = {Klein, Gerwin and Elphinstone, Kevin and Heiser, Gernot and Andronick, June and Cock, David and Derrin, Philip and Elkaduwe, Dhammika and Engelhardt, Kai and Kolanski, Rafal and Norrish, Michael and Sewell, Thomas and Tuch, Harvey and Winwood, Simon},
- title = {seL4: Formal Verification of an OS Kernel},
- booktitle = {Proceedings of the ACM SIGOPS 22Nd Symposium on Operating Systems Principles},
- series = {SOSP '09},
- year = {2009},
- isbn = {978-1-60558-752-3},
- location = {Big Sky, Montana, USA},
- pages = {207--220},
- numpages = {14},
- url = {http://doi.acm.org/10.1145/1629575.1629596},
- doi = {10.1145/1629575.1629596},
- acmid = {1629596},
- publisher = {ACM},
- address = {New York, NY, USA},
- keywords = {isabelle/hol, l4, microkernel, sel4},
+@article{cbc,
+  author  = {河野 真治},
+  title   = {継続を持つCの下位言語によるシステム記述},
+  journal = {日本ソフトウェア科学会第17回大会論文集},
+  month   = {September},
+  year    = 2000
 }
 
-@article{Klein:2010:SFV:1743546.1743574,
- author = {Klein, Gerwin and Andronick, June and Elphinstone, Kevin and Heiser, Gernot and Cock, David and Derrin, Philip and Elkaduwe, Dhammika and Engelhardt, Kai and Kolanski, Rafal and Norrish, Michael and Sewell, Thomas and Tuch, Harvey and Winwood, Simon},
- title = {seL4: Formal Verification of an Operating-system Kernel},
- journal = {Commun. ACM},
- issue_date = {June 2010},
- volume = {53},
- number = {6},
- month = jun,
- year = {2010},
- issn = {0001-0782},
- pages = {107--115},
- numpages = {9},
- url = {http://doi.acm.org/10.1145/1743546.1743574},
- doi = {10.1145/1743546.1743574},
- acmid = {1743574},
- publisher = {ACM},
- address = {New York, NY, USA},
+@article{cr,
+  author      = {伊波 立樹},
+  title       = {GearsOSの並列処理},
+  institution = {琉球大学工学部情報工学科, 琉球大学大学院理工学研究科情報工学専攻, 琉球大学工学部情報工学科},
+  journal     = {修士 (工学) 学位論文},
+  month       = {March},
+  year        = 2018
 }
 
-@inproceedings{Nelson:2017:HPV:3132747.3132748,
- author = {Nelson, Luke and Sigurbjarnarson, Helgi and Zhang, Kaiyuan and Johnson, Dylan and Bornholt, James and Torlak, Emina and Wang, Xi},
- title = {Hyperkernel: Push-Button Verification of an OS Kernel},
- booktitle = {Proceedings of the 26th Symposium on Operating Systems Principles},
- series = {SOSP '17},
- year = {2017},
- isbn = {978-1-4503-5085-3},
- location = {Shanghai, China},
- pages = {252--269},
- numpages = {18},
- url = {http://doi.acm.org/10.1145/3132747.3132748},
- doi = {10.1145/3132747.3132748},
- acmid = {3132748},
- publisher = {ACM},
- address = {New York, NY, USA},
+@article{gears,
+  author      = {清水隆博},
+  title       = {GearsOSのメタ計算},
+  institution = {琉球大学工学部情報工学科, 琉球大学大学院理工学研究科情報工学専攻, 琉球大学工学部情報工学科},
+  journal     = {修士 (工学) 学位論文},
+  month       = {March},
+  year        = 2021
 }
 
-@inproceedings{Sigurbjarnarson:2016:PVF:3026877.3026879,
- author = {Sigurbjarnarson, Helgi and Bornholt, James and Torlak, Emina and Wang, Xi},
- title = {Push-button Verification of File Systems via Crash Refinement},
- booktitle = {Proceedings of the 12th USENIX Conference on Operating Systems Design and Implementation},
- series = {OSDI'16},
- year = {2016},
- isbn = {978-1-931971-33-1},
- location = {Savannah, GA, USA},
- pages = {1--16},
- numpages = {16},
- url = {http://dl.acm.org/citation.cfm?id=3026877.3026879},
- acmid = {3026879},
- publisher = {USENIX Association},
- address = {Berkeley, CA, USA},
+@article{file,
+  author  = {一木 貴裕, 河野 真治(琉球大学)},
+  title   = {GearsOSの分散ファイルシステムの設計},
+  journal = {情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)},
+  month   = {May},
+  year    = 2021
 }
 
-@inproceedings{OSBook,
- author = {Andrew S. Tanenbaum},
- booktitle = {Modern Operating Systems Fourth Edition},
- series = {OSDI'15},
- year = {2015},
- isbn = {978-0-13-359162-0},
- location = {Hervert BOS Vrije Universiteit Amsterdam, The Netherlands},
- pages = {265-332},
- numpages = {67},
-}
-
-
-@misc{hg:cbcgcc,
-    title = {CbC\_gcc},
-    author = {並列信頼研究室},
-    organization = "琉球大学",
-    howpublished = {\url{http://www.cr.ie.u-ryukyu.ac.jp/hg/CbC/CbC_gcc/}},
-    note = {Accessed: 2021-01-31},
+@article{cfile,
+  author      = {一木 貴裕},
+  title       = {GearsOSの分散ファイルシステム設計},
+  institution = {琉球大学工学部情報工学科, 琉球大学大学院理工学研究科情報工学専攻, 琉球大学工学部情報工学科},
+  journal     = {修士 (工学) 学位論文},
+  month       = {March},
+  year        = 2022
 }
 
-@misc{hg:gears,
-    title = {GearsOS},
-    author = {並列信頼研究室},
-    organization = "琉球大学",
-    howpublished = {\url{http://www.cr.ie.u-ryukyu.ac.jp/hg/Gears/Gears/}},
-    note = {Accessed: 2021-01-31},
-}
-
-@misc{hg:Christie,
-    title = {Christie},
-    author = {並列信頼研究室},
-    organization = "琉球大学",
-    howpublished = {\url{http://www.cr.ie.u-ryukyu.ac.jp/hg/Database/Christie/}},
-    note = {Accessed: 2021-01-31},
+@article{modelcheck,
+  author  = {東恩納 琢偉,奥田 光希,河野 真治(琉球大学)},
+  title   = {Gears OSでモデル検査を実現する手法について},
+  journal = {情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)},
+  month   = {May},
+  year    = 2020
 }
 
-
-@article{
-    gears,
-    author = "河野 真治 and 伊波 立樹 and  東恩納 琢偉",
-    title = "Code Gear、Data Gear に基づく OS のプロトタイプ",
-    journal = "情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)",
-    month = "May",
-    year = 2016
-}
-
-@article{
-    anatofz,
-    author = "清水 隆博 and 河野真治",
-    title = "GearsOSのメタ計算",
-    journal = "琉球大学理工学研究科修士論文",
-    month = "March",
-    year = 2020
+@article{xv6kernel,
+  author  = {坂本 昂弘 (琉球大学工学部情報工学科), 桃原 優 (琉球大学大学院理工学研究科情報工学専攻), 河野 真治 (琉球大学工学部情報工学科)},
+  journal = {情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)},
+  title   = {継続を用いた xv6 kernel の書き換え},
+  month   = {May},
+  year    = 2019
 }
 
-@article{
-    koki,
-    author = "宮城 光輝 and 河野真治",
-    title = "継続を基本とした言語による OS のモジュール化",
-    journal = "琉球大学理工学研究科修士論文",
-    month = "March",
-    year = 2018
+@article{xv6component,
+  author  = {清水 隆博,河野 真治(琉球大学)},
+  journal = {情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)},
+  title   = {xv6の構成要素の継続の分析},
+  month   = {May},
+  year    = 2020
 }
 
-@article{
-    tokumori,
-    author = "徳森 海斗 and 河野真治",
-    title = "LLVM Clang 上の Continuation based C コンパイラ の改良",
-    journal = "琉球大学理工学研究科修士論文",
-    month = "March",
-    year = 2016
-}
-
-
-@article{
-    mata-thesis,
-    author = "又吉 雄斗 and  河野 真治",
-    title = "GearsOS における i-node を用いた File system の設計",
-    journal = "琉球大学工学部知能情報コース卒業論文",
-    month = "March",
-    year = 2022
+@misc{xv6,
+  author       = {{Russ Cox, Frans Kaashoek, Robert Morris}},
+  title        = {xv6 a simple, Unix-like teaching operating system},
+  howpublished = {https://pdos.csail.mit.edu/6.828/2018/xv6/book-rev11.pdf}
 }
 
-
-@article{
-    pop,
-    author = "照屋 のぞみ and  河野 真治",
-    title = "分散フレームワークChristieの設計",
-    journal = "琉球大学理工学研究科修士論文",
-    month = "March",
-    year = 2018
-}
-
-@article{
-    Alice,
-    author = "赤嶺 一樹 and  河野 真治",
-    title = "分散ネットワークフレームワークAlice の 提案と実装",
-    journal = "琉球大学理工学研究科修士論文",
-    month = "March",
-    year = 2012
+@misc{christie,
+  author  = {{河野 真治}},
+  title   = {分散フレームワーク Christie と分散木構造データベースJungle},
+  journal = {情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)},
+  month   = {May},
+  year    = 2018
 }
 
-@article{
-    BlockChain,
-    author = "赤堀 貴一 and  河野 真治",
-    title = "Christieによるブロックチェーンの実装",
-    journal = "琉球大学工学部情報工学科卒業論文",
-    month = "March",
-    year = 2019
-}
-
-@manual{man:socket,
-  author = "{man-page of SOCKET}",
-  title ="{\url{https://linuxjm.osdn.jp/html/LDP_man-pages/man2/socket.2.html}}",
-}
-
-@manual{man:getaddrinfo,
-  author = "{man-page of GETADDRINFO}",
-  title ="{\url{https://linuxjm.osdn.jp/html/LDP_man-pages/man3/getaddrinfo.3.html}}",
-}
+@misc{directory,
+  author  = {又吉 雄斗,河野 真治(琉球大学)},
+  title   = {GearsOSにおけるinodeを用いたファイルシステムの構築},
+  journal = {情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)},
+  month   = {May},
+  year    = 2022
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/src/FTree.h	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,8 @@
+typedef struct FTree<>{
+    union Data* fTree;
+    struct Node* node;
+    __code put(Impl* fTree,Type* node, __code next(...));
+    __code get(Impl* fTree, Type* node, __code next(...));
+    __code remove(Impl* fTree,Type* node, __code next(...));
+    __code next(...);
+} FTree;
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/src/GearsDirectoryImpl.cbc	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,113 @@
+#include "../../../context.h"
+#interface "GearsDirectory.h"
+#interface "Stack.h"
+#interface "FTree.h"
+#interface "Integer.h"
+#impl "GearsDirectory.h" as "GearsDirectoryImpl.h"
+
+// ----
+// typedef struct GearsDirectoryImpl <> impl GearsDirectory {
+//   struct FTree* currentDirectory;
+//   struct Stack* directoryStack;
+// } GearsDirectoryImpl;
+// ----
+
+GearsDirectory* createGearsDirectoryImpl(struct Context* context) {
+    struct GearsDirectory* gearsDirectory  = new GearsDirectory();
+    struct GearsDirectoryImpl* gears_directory_impl = new GearsDirectoryImpl();
+    gearsDirectory->gearsDirectory = (union Data*)gears_directory_impl;
+
+    struct FTree* firstDirectory = createFileSystemTree(context, NULL);
+    struct FTree* iNodeTree = createFileSystemTree(context, NULL);    
+    gears_directory_impl->currentDirectory = firstDirectory;
+    gears_directory_impl->iNodeTree = iNodeTree;
+    gears_directory_impl->directoryStack = createSingleLinkedStack(context);
+    gears_directory_impl->INodeNumber = 0;
+    gearsDirectory->mkdir = C_mkdirGearsDirectoryImpl;
+    gearsDirectory->ls = C_lsGearsDirectoryImpl;
+    gearsDirectory->cd2Child = C_cd2ChildGearsDirectoryImpl;
+    gearsDirectory->cd2Parent = C_cd2ParentGearsDirectoryImpl;
+    return gearsDirectory;
+}
+
+__code mkdir(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) {
+    struct FTree* newDirectory = createFileSystemTree(context, gearsDirectory->currentDirectory);
+    Node* inode = new Node();
+    inode->key = gearsDirectory->INodeNumber;
+    inode->value = newDirectory;
+    struct FTree* cDirectory = new FTree();
+    cDirectory = gearsDirectory->iNodeTree;
+    goto cDirectory->put(inode, mkdir2);
+}
+
+__code mkdir2(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) {
+    Node* dir = new Node();
+    dir->key = name->value;
+    Integer* iNum = new Integer();
+    iNum->value = gearsDirectory->INodeNumber;
+    dir->value = iNum;
+    gearsDirectory->INodeNumber = gearsDirectory->INodeNumber + 1;
+    struct FTree* cDirectory = new FTree();
+    cDirectory = gearsDirectory->currentDirectory;
+    goto cDirectory->put(dir, next(...));
+}
+
+__code ls(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) {
+    Node* dir = new Node();
+    dir->key = name->value;
+    struct FTree* cDirectory = new FTree();
+    cDirectory = gearsDirectory->currentDirectory;
+    goto cDirectory->get(dir, ls2);
+}
+
+__code ls2(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) {
+    printf("%d\n", node->key);
+    goto next(...);
+}
+
+__code ls2_stub(struct Context* context) {
+	GearsDirectoryImpl* gearsDirectory = (GearsDirectoryImpl*)GearImpl(context, GearsDirectory, gearsDirectory);
+	Integer* name = Gearef(context, FTree)->node;
+	enum Code next = Gearef(context, GearsDirectory)->next;
+	goto ls2(context, gearsDirectory, name, next);
+}
+
+__code cd2Child(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) {
+    struct FTree* cDirectory = new FTree();
+    cDirectory = gearsDirectory->currentDirectory;
+    struct Node* node = new Node();
+    node->key = name->value;
+    goto cDirectory->get(node, cd2Child2);
+}
+
+__code cd2Child2(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) {
+    struct FTree* iNodeTree = new FTree();
+    iNodeTree = gearsDirectory->iNodeTree;
+    goto iNodeTree->get(node->value, cd2Child3);
+}
+
+__code cd2Child2_stub(struct Context* context) {
+	GearsDirectoryImpl* gearsDirectory = (GearsDirectoryImpl*)GearImpl(context, GearsDirectory, gearsDirectory);
+	enum Code next = Gearef(context, GearsDirectory)->next;
+    Node* node0 = Gearef(context, FTree)->node;
+	goto cd2Child2(context, gearsDirectory, node0, next);
+}
+
+__code cd2Child3(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) {
+    gearsDirectory->currentDirectory = node->value;
+    goto next(...);
+}
+
+__code cd2Child3_stub(struct Context* context) {
+	GearsDirectoryImpl* gearsDirectory = (GearsDirectoryImpl*)GearImpl(context, GearsDirectory, gearsDirectory);
+	Integer* name = Gearef(context, FTree)->node;
+	enum Code next = Gearef(context, GearsDirectory)->next;
+	goto ls2(context, gearsDirectory, name, next);
+}
+
+
+
+__code cd2Parent(struct GearsDirectoryImpl* gearsDirectory, __code next(...)) {
+    gearsDirectory->currentDirectory = gearsDirectory->currentDirectory->treeParent;
+    goto next(...);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/src/cd.cbc	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,18 @@
+__code cd2Child(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) {
+    struct FTree* cDirectory = new FTree();
+    cDirectory = gearsDirectory->currentDirectory;
+    struct Node* node = new Node();
+    node->key = name->value;
+    goto cDirectory->get(node, cd2Child2);
+}
+
+__code cd2Child2(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) {
+    struct FTree* iNodeTree = new FTree();
+    iNodeTree = gearsDirectory->iNodeTree;
+    goto iNodeTree->get(node->value, cd2Child3);
+}
+
+__code cd2Child3(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) {
+    gearsDirectory->currentDirectory = node->value;
+    goto next(...);
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/src/hello.cbc	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,18 @@
+__code add1(int in_n) {
+    int out_n = n + 1;
+    goto add2(out_n);
+}
+
+__code add2(int in_n) {
+    int out_n = n + 2;
+    goto end(out_n);
+}
+
+__code end(int in_n) {
+    printf("%d", n);
+}
+
+int main(int argc, char *arcv[]) {
+    int n = 1;
+    goto add1(n);
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/src/ls.cbc	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,12 @@
+__code ls(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) {
+    Node* dir = new Node();
+    dir->key = name->value;
+    struct FTree* cDirectory = new FTree();
+    cDirectory = gearsDirectory->currentDirectory;
+    goto cDirectory->get(dir, ls2);
+}
+
+__code ls2(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) {
+    printf("%d\n", node->key);
+    goto next(...);
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/src/mkdir.cbc	Sat Dec 09 19:20:23 2023 +0900
@@ -0,0 +1,21 @@
+__code mkdir(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) {
+    struct FTree* newDirectory = createFileSystemTree(context, gearsDirectory->currentDirectory);
+    Node* inode = new Node();
+    inode->key = gearsDirectory->INodeNumber;
+    inode->value = newDirectory;
+    struct FTree* cDirectory = new FTree();
+    cDirectory = gearsDirectory->iNodeTree;
+    goto cDirectory->put(inode, mkdir2);
+}
+
+__code mkdir2(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) {
+    Node* dir = new Node();
+    dir->key = name->value;
+    Integer* iNum = new Integer();
+    iNum->value = gearsDirectory->INodeNumber;
+    dir->value = iNum;
+    gearsDirectory->INodeNumber = gearsDirectory->INodeNumber + 1;
+    struct FTree* cDirectory = new FTree();
+    cDirectory = gearsDirectory->currentDirectory;
+    goto cDirectory->put(dir, next(...));
+}
\ No newline at end of file
--- a/mindmaps/gears_fs_db.mm	Mon Dec 04 22:15:52 2023 +0900
+++ b/mindmaps/gears_fs_db.mm	Sat Dec 09 19:20:23 2023 +0900
@@ -1,6 +1,6 @@
 <map version="freeplane 1.9.8">
 <!--To view this file, download free mind mapping software Freeplane from https://www.freeplane.org -->
-<node TEXT="GearsOS上のファイルシステムとDBの信頼性(仮)" FOLDED="false" ID="ID_452131666" CREATED="1610381621610" MODIFIED="1699848248364" STYLE="oval">
+<node TEXT="GearsOS上のファイルシステムとDBの信頼性(仮)" FOLDED="false" ID="ID_452131666" CREATED="1610381621610" MODIFIED="1702111913150" STYLE="oval">
 <font SIZE="18"/>
 <hook NAME="MapStyle">
     <properties edgeColorConfiguration="#808080ff,#ff0000ff,#0000ffff,#00ff00ff,#ff00ffff,#00ffffff,#7c0000ff,#00007cff,#007c00ff,#7c007cff,#007c7cff,#7c7c00ff" associatedTemplateLocation="template:/standard-1.6-noEdgeColor.mm" fit_to_viewport="false"/>
@@ -68,7 +68,32 @@
 </stylenode>
 </map_styles>
 </hook>
-<node TEXT="Gears OS" POSITION="right" ID="ID_1060626979" CREATED="1699848393025" MODIFIED="1699848400222">
+<node TEXT="Gears OS" POSITION="right" ID="ID_1060626979" CREATED="1699848393025" MODIFIED="1702111913149" HGAP_QUANTITY="-5.5 pt" VSHIFT_QUANTITY="-72.75 pt">
+<node TEXT="特徴" ID="ID_943482341" CREATED="1702111230723" MODIFIED="1702111233987">
+<node TEXT="metaGear" ID="ID_160728835" CREATED="1702111234234" MODIFIED="1702111815711">
+<node TEXT="データの整合性" ID="ID_1532293232" CREATED="1702111816103" MODIFIED="1702111830986"/>
+<node TEXT="資源管理" ID="ID_820593070" CREATED="1702111831179" MODIFIED="1702111834866"/>
+</node>
+<node TEXT="Context" ID="ID_447263401" CREATED="1702111711616" MODIFIED="1702111713867">
+<node TEXT="プロセスに相当" ID="ID_119342897" CREATED="1702111732662" MODIFIED="1702111736239"/>
+<node TEXT="実行するCG, 使用するDG全てを持つ" ID="ID_1243433858" CREATED="1702111736575" MODIFIED="1702111762536"/>
+</node>
+<node TEXT="3種類のGearsOS" ID="ID_1110454361" CREATED="1702111776755" MODIFIED="1702111782168">
+<node TEXT="GearsOS" ID="ID_1417588174" CREATED="1702111873653" MODIFIED="1702111876220">
+<node TEXT="ユーザーレベルタスクマネジメントの実装を目的とする" ID="ID_916197337" CREATED="1702112069451" MODIFIED="1702112079145"/>
+<node TEXT="CbC実装" ID="ID_939823586" CREATED="1702112086168" MODIFIED="1702112090340"/>
+<node TEXT="本研究のメイン対象" ID="ID_179232110" CREATED="1702112096195" MODIFIED="1702112110097"/>
+</node>
+<node TEXT="GearsAgda" ID="ID_1260602460" CREATED="1702111876582" MODIFIED="1702111879424">
+<node TEXT="Agda実装" ID="ID_1598980937" CREATED="1702112014204" MODIFIED="1702112017570"/>
+<node TEXT="形式手法による証明を目的とする" ID="ID_1299519318" CREATED="1702112017959" MODIFIED="1702112029698"/>
+</node>
+<node TEXT="CbC_x.v6" ID="ID_473963560" CREATED="1702111879786" MODIFIED="1702112199760">
+<node TEXT="スタンドアロンOSの開発を目的とする" ID="ID_1891291526" CREATED="1702112042696" MODIFIED="1702112054326"/>
+</node>
+</node>
+<node TEXT="信頼性の保証を目的としている" ID="ID_489283513" CREATED="1702111964176" MODIFIED="1702111972169"/>
+</node>
 <node TEXT="ファイルシステムとDB" ID="ID_1884932719" CREATED="1699849849835" MODIFIED="1699849855383">
 <node TEXT="RedBlackTreeを基本構造とする" ID="ID_224748942" CREATED="1699849885632" MODIFIED="1699849902671"/>
 <node TEXT="複数のreplicationを持てていない" ID="ID_787621439" CREATED="1699849855878" MODIFIED="1699849873297"/>
@@ -90,6 +115,40 @@
 </node>
 </node>
 </node>
+<node TEXT="CbC" ID="ID_740206957" CREATED="1701695838712" MODIFIED="1701695841654">
+<node TEXT="Cの下位言語" ID="ID_1949462311" CREATED="1702109769687" MODIFIED="1702109804650">
+<node TEXT="CのLLVMに変更を加えている" ID="ID_591487528" CREATED="1702110861488" MODIFIED="1702110890767"/>
+</node>
+<node TEXT="処理の単位 CodeGear" ID="ID_1551166772" CREATED="1702109805037" MODIFIED="1702109818187">
+<node TEXT="DataGearが入力される" ID="ID_1020316470" CREATED="1702110084628" MODIFIED="1702110125371">
+<node TEXT="inputDataGear" ID="ID_1437736688" CREATED="1702110190302" MODIFIED="1702110196899"/>
+</node>
+<node TEXT="DataGearを出力する" ID="ID_1796772165" CREATED="1702110099792" MODIFIED="1702110112391">
+<node TEXT="outputDataGear" ID="ID_1734410453" CREATED="1702110197415" MODIFIED="1702110202862"/>
+</node>
+<node TEXT="CodeGearをDataGearの一種と捉えることも可能" ID="ID_1871025096" CREATED="1702110136840" MODIFIED="1702110151771"/>
+</node>
+<node TEXT="データの単位 DataGear" ID="ID_771276269" CREATED="1702109818490" MODIFIED="1702109832058">
+<node TEXT="構造体で表現される" ID="ID_870047835" CREATED="1702110827132" MODIFIED="1702110833094"/>
+<node TEXT="" ID="ID_1157018642" CREATED="1702110833322" MODIFIED="1702110833322"/>
+</node>
+<node TEXT="ノーマルレベルとメタレベルの切り分け" ID="ID_1583866878" CREATED="1702109839193" MODIFIED="1702109847067"/>
+<node TEXT="__code" ID="ID_1535719892" CREATED="1702109980407" MODIFIED="1702109984940"/>
+<node TEXT="gotoによる軽量継続" ID="ID_1041460941" CREATED="1702109847380" MODIFIED="1702109854199">
+<node TEXT="call stackを持たない" ID="ID_1868821185" CREATED="1702109894715" MODIFIED="1702109901816"/>
+<node TEXT="LLVMのsetjmpとlongjmp" ID="ID_1689168618" CREATED="1702109904182" MODIFIED="1702110048454"/>
+<node TEXT="tail callっぽい" ID="ID_1025227356" CREATED="1702110686327" MODIFIED="1702110691940">
+<node TEXT="tailcall忘れた時はここをみる" ID="ID_1334629625" CREATED="1702110692360" MODIFIED="1702110703733">
+<node TEXT="http://www.nct9.ne.jp/m_hiroi/func/abcerl02.html" ID="ID_1874667604" CREATED="1702110709856" MODIFIED="1702110709856" LINK="http://www.nct9.ne.jp/m_hiroi/func/abcerl02.html"/>
+</node>
+<node TEXT="再帰呼び出しして、返り値をそのまま返す" ID="ID_801162080" CREATED="1702110795575" MODIFIED="1702110816945"/>
+</node>
+</node>
+<node TEXT="現状" ID="ID_1373082100" CREATED="1702110955427" MODIFIED="1702110958434">
+<node TEXT="http://www.cr.ie.u-ryukyu.ac.jp/hg/CbC/CbC_llvm/" ID="ID_797243399" CREATED="1702111010437" MODIFIED="1702111010437" LINK="http://www.cr.ie.u-ryukyu.ac.jp/hg/CbC/CbC_llvm/"/>
+<node TEXT="clang llvm 18.0.0" ID="ID_762978767" CREATED="1702111146287" MODIFIED="1702111160675"/>
+</node>
+</node>
 </node>
 <node TEXT="ファイルシステム" POSITION="right" ID="ID_1877138212" CREATED="1699848400796" MODIFIED="1699848405514">
 <node TEXT="可変長文字列を格納するファイル" ID="ID_1080516331" CREATED="1699849063058" MODIFIED="1699849081419">
@@ -251,6 +310,7 @@
 <node TEXT="同一のRedBlackTree" ID="ID_1633724271" CREATED="1699850231118" MODIFIED="1699850243142"/>
 <node TEXT="persistent memoryを想定" ID="ID_719479083" CREATED="1699850243592" MODIFIED="1699850261924"/>
 </node>
+<node TEXT="OOM Killer" POSITION="right" ID="ID_404682764" CREATED="1701841494687" MODIFIED="1701841498813"/>
 <node TEXT="先行研究" POSITION="right" ID="ID_1807805275" CREATED="1699850150666" MODIFIED="1699850155227">
 <node TEXT="GearsOS の分散ファイルシステム設計" ID="ID_1737093216" CREATED="1701692836825" MODIFIED="1701692838439">
 <node TEXT="一木 貴裕" ID="ID_976656831" CREATED="1701692838974" MODIFIED="1701692861473"/>
@@ -266,13 +326,22 @@
 <node TEXT="Gears OSのファイルシステムとDB" ID="ID_446325287" CREATED="1701690660393" MODIFIED="1701690902283"/>
 <node TEXT="Continuation based C" ID="ID_1037072660" CREATED="1701690246173" MODIFIED="1701690253931"/>
 <node TEXT="GearsOS" ID="ID_1315567458" CREATED="1701692210913" MODIFIED="1701692213741"/>
-<node TEXT="GearsOSのRedBlackTree" ID="ID_1092227909" CREATED="1701690558237" MODIFIED="1701692234418"/>
-<node TEXT="RedBlackTreeのコピーで信頼性の向上" ID="ID_335951209" CREATED="1701690568864" MODIFIED="1701690629858"/>
-<node TEXT="コピーのアルゴリズム" ID="ID_1750457936" CREATED="1701690597120" MODIFIED="1701690603305"/>
+<node TEXT="GearsFileSystem" ID="ID_667012992" CREATED="1701694178540" MODIFIED="1701694184160">
+<node TEXT="非破壊RedBlackTreeによる構成" ID="ID_262332331" CREATED="1701696133124" MODIFIED="1701696237170"/>
+<node TEXT="RedBlackTreeのトランザクション" ID="ID_1088328123" CREATED="1701696247760" MODIFIED="1701696264775"/>
 </node>
-<node TEXT="修論で言いたいこと" POSITION="left" ID="ID_1194781583" CREATED="1701690732709" MODIFIED="1701690741559">
+<node TEXT="GearsFileSystemにおけるGCとレプリケーションの仕組み" ID="ID_1092227909" CREATED="1701690558237" MODIFIED="1701696203939">
+<node TEXT="ディスク上とメモリ上のデータ構造" ID="ID_683338430" CREATED="1701696165502" MODIFIED="1701696179372"/>
+<node TEXT="データのバックアップ" ID="ID_441653952" CREATED="1701696184549" MODIFIED="1701696189276"/>
+<node TEXT="レプリケーション" ID="ID_243135333" CREATED="1701696193660" MODIFIED="1701696208809"/>
+<node TEXT="ガベージコレクション" ID="ID_694714867" CREATED="1701696212033" MODIFIED="1701696219728"/>
+</node>
+<node TEXT="実装?" ID="ID_1619882257" CREATED="1701697553803" MODIFIED="1701697572510"/>
+</node>
+<node TEXT="修論で言いたいこと" POSITION="left" ID="ID_1194781583" CREATED="1701690732709" MODIFIED="1701696321975" HGAP_QUANTITY="29 pt" VSHIFT_QUANTITY="134.25 pt">
 <node TEXT="RedBlackTreeのCopyでreplicationによる信頼性の向上とGCの仕組みを実装した" ID="ID_729318951" CREATED="1701690742376" MODIFIED="1701691473760"/>
-<node TEXT="ファイルシステムとDBを同一システムとして実装してしまおうという試みの一部" ID="ID_803529790" CREATED="1701693180112" MODIFIED="1701693300593"/>
+<node TEXT="ファイルシステムとDBを同一システムとして実装してしまおうという試みの一部" ID="ID_803529790" CREATED="1701693180112" MODIFIED="1701696299725"/>
 </node>
+<node TEXT="GearsFileSystem" POSITION="left" ID="ID_1481163553" CREATED="1701697697176" MODIFIED="1701697708604"/>
 </node>
 </map>