changeset 2:97d58fdc8185

add copies final_main
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Mon, 03 Feb 2020 18:36:31 +0900
parents b369c60d477f
children 284d030d3a85
files final_main/.DS_Store final_main/Makefile final_main/bibliography.tex final_main/chapter1/chapter1.tex final_main/chapter2/chapter2.aux final_main/chapter2/chapter2.log final_main/chapter2/chapter2.tex final_main/chapter3/chapter3.aux final_main/chapter3/chapter3.log final_main/chapter3/chapter3.tex final_main/chapter4/chapter4.tex final_main/chapter5/chapter5.tex final_main/chapter6/chapter6.tex final_main/fig/ryukyu.pdf final_main/images/accept-accepted.graffle final_main/images/accept-accepted.pdf final_main/images/chain-fork.graffle final_main/images/chain-fork.pdf final_main/images/chain.graffle final_main/images/chain.pdf final_main/images/kvm.graffle final_main/images/kvm.pdf final_main/images/paxos.graffle final_main/images/paxos.pu final_main/images/paxos1.pdf final_main/images/paxos1.pu final_main/images/paxos1.svg final_main/images/paxos2.pdf final_main/images/paxos2.pu final_main/images/paxos2.svg final_main/images/paxos3.pdf final_main/images/paxos3.pu final_main/images/paxos3.svg final_main/images/prepare-promise.graffle final_main/images/prepare-promise.pdf final_main/images/proof-of-work-fork.graffle final_main/images/proof-of-work-fork.pdf final_main/images/proof-of-work.graffle final_main/images/proof-of-work.pdf final_main/images/ring.pdf final_main/main.aux final_main/main.dvi final_main/main.lof final_main/main.log final_main/main.lol final_main/main.pdf final_main/main.tex final_main/main.toc final_main/mythesis.sty final_main/src/HelloWorld/HelloWorldCodeGear.java final_main/src/HelloWorld/HelloWorldCodeGear.java.orig final_main/src/HelloWorld/StartHelloWorld.java final_main/src/RemoteDataGearManager.java final_main/src/ring.dot final_main/src/torque-example.sh final_main/thanks.tex final_pre/.DS_Store final_pre/Makefile final_pre/dummy.tex final_pre/images/.DS_Store final_pre/images/chain-fork.graffle final_pre/images/chain-fork.pdf final_pre/images/chain.graffle final_pre/images/chain.pdf final_pre/images/generator.png final_pre/images/kvm.graffle final_pre/images/kvm.pdf final_pre/images/paxos.graffle final_pre/images/paxos.pu final_pre/images/paxos1.pdf final_pre/images/paxos1.pu final_pre/images/paxos1.svg final_pre/images/paxos2.pdf final_pre/images/paxos2.pu final_pre/images/paxos2.svg final_pre/images/paxos3.pdf final_pre/images/paxos3.pu final_pre/images/paxos3.svg final_pre/images/proof-of-work-fork.graffle final_pre/images/proof-of-work-fork.pdf final_pre/images/proof-of-work.graffle final_pre/images/proof-of-work.pdf final_pre/images/ring.pdf final_pre/images/target.png final_pre/images/targetfig.png final_pre/images/timeline.png final_pre/images/名称未設定3.graffle final_pre/jlisting.sty final_pre/picins.sty final_pre/pre.aux final_pre/pre.log final_pre/pre.pdf final_pre/pre.synctex.gz final_pre/pre.tex final_pre/reference.bib
diffstat 95 files changed, 4378 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
Binary file final_main/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/Makefile	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,90 @@
+# target and root file name
+TARGET = main
+
+# class files
+CLASS_FILE = 
+
+# figure pass
+FIG_DIR = ./fig
+
+# ebb or extractbb
+EBB = extractbb
+
+# dependent document files
+TEX_FILES = \
+    bibliography.tex \
+    chapter*/chapter*.tex \
+    thanks.tex \
+
+# dependent image files
+SVG_FILES = 
+
+# use bibtex or not (yes|no)
+BIBTEX_ENABLED = no
+
+# commands to compile document
+LATEX = platex
+BIBTEX = pbibtex
+DVIPDF = dvipdfmx
+DVIPS = dvips
+
+# generated files
+DVI_FILE = $(TARGET).dvi
+PDF_FILE = $(TARGET).pdf
+PS_FILE = $(TARGET).ps
+TEX_FILES += $(TARGET).tex
+EPS_FILES = $(SVG_FILES:%.svg=%.eps)
+AUX_FILES = $(TEX_FILES:%.tex=%.aux)
+GENERATED_FILE = \
+    $(EPS_FILES) \
+    $(DVI_FILE) \
+    $(PDF_FILE) \
+    $(AUX_FILES) \
+    $(TARGET).log \
+    $(TARGET).toc \
+    $(TARGET).bbl \
+    $(TARGET).blg \
+    $(TARGET).lof \
+    $(TARGET).lol \
+    texput.log
+
+.DEFAULT_GOAL = pdf
+
+.PHONY : pdf
+pdf : $(PDF_FILE)
+				open $(TARGET).pdf
+$(PDF_FILE) : $(DVI_FILE) $(TEX_FILES) $(EPS_FILES) $(CLASS_FILE)
+	$(DVIPDF) $(TARGET)
+
+.PHONY : ps
+ps : $(PS_FILE)
+$(PS_FILE) : $(DVI_FILE) $(TEX_FILES) $(EPS_FILES) $(CLASS_FILE)
+	$(DVIPS) $(TARGET)
+
+.PHONY : dvi
+dvi : $(DVI_FILE)
+$(DVI_FILE) : $(TEX_FILES) $(EPS_FILES) $(CLASS_FILE)
+	$(LATEX) -halt-on-error $(TARGET)
+ifeq ($(BIBTEX_ENABLED),yes)
+	$(BIBTEX) $(TARGET)
+endif
+	$(LATEX) -halt-on-error $(TARGET)
+	$(LATEX) -halt-on-error $(TARGET)
+
+%.eps : %.svg
+	inkscape --export-area-drawing --without-gui --file="$<" --export-eps="$@"
+
+.PHONY : clean
+clean:
+	rm -f $(GENERATED_FILE)
+
+.PHONY : help
+help:
+	@echo "make dvi"
+	@echo "        Make DVI file from tex documents."
+	@echo "make pdf"
+	@echo "        Make PDF file from DVI file."
+	@echo "make ps"
+	@echo "        Make PS file from DVI file."
+	@echo "make clean"
+	@echo "        Remove all generated files."
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/bibliography.tex	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,45 @@
+% 参考文献
+\def\line{−\hspace*{-.7zw}−}
+
+\begin{thebibliography}{99}
+%\bibitem{*}内の * は各自わかりやすい名前などをつけて、
+%論文中には \cite{*} のように使用する。
+%これをベースに書き換えた方が楽かも。
+%書籍、論文、URLによって若干書き方が異なる。
+%URLを載せる人は参考にした年月日を最後に記入すること。
+
+\bibitem{christie}
+河野 真治. 分散フレームワークChristieと分散木構造データベースJungle, IPSJ SIG Technical Report, May 2018.
+
+\bibitem{christie}
+照屋のぞみ. 分散フレームワークChristieの設計, Master’s thesis, 琉球大学 大学院理工学研究科, 2018.
+
+\bibitem{bitcoin}
+Bitcoin: A Peer-to-Peer Electronic Cash System \\
+\url{https://bitcoin.org/bitcoin.pdf}\\
+(Accessed: 2019/2/15)
+
+\bibitem{ethereum}
+Ethereum Homestead Documentation \\
+\url{http://www.ethdocs.org/en/latest/}\\
+(Accessed: 2019/2/17)
+
+
+\bibitem{paxos}
+Paxos made Simple \\
+\url{https://lamport.azurewebsites.net/pubs/paxos-simple.pdf}
+(Accessed: 2019/2/17)
+
+\bibitem{torque}
+TORQUE Introduction. \\
+\url{http://docs.adaptivecomputing.com/torque/4-2-8/help.htm#topics/0-intro/introduction.htm\%3FTocPath\%3DWelcome\%7C_____1}\\
+(Accessed: 2019/2/15)
+
+
+\bibitem{qsub-doc}
+qsub document. \\
+\url{http://docs.adaptivecomputing.com/torque/4-0-2/Content/topics/commands/qsub.htm}\\
+(Accessed: 2019/2/15)
+
+
+\end{thebibliography}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/chapter1/chapter1.tex	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,29 @@
+%\input{/Users/e155753/.tex/setup}
+
+%%文書開始****************************
+\begin{document} 
+%%**************************************
+\chapter{はじめに}
+\label{chap:introduction}
+\pagenumbering{arabic}
+
+% 序論の目安としては1枚半ぐらい.
+
+コンピュータにおいてデータの破損や不整合は深刻な異常を引き起こす原因となる. そのため, 破損, 不整合を検知するためにブロックチェーン技術を用いたい.  ブロックチェーンは分散ネットワーク技術であり, データの破損や不整合をハッシュ値によって比較できる. そして, 誤操作や改ざんがあった場合でも, ブロックチェーンを用いることでデータの追跡が行える. 
+
+当研究室では分散フレームワークとしてChristieを開発しており, これはGearsOSにファイルシステムとして組み込む予定がある. そのため, Christieにブロックチェーンを実装し, GearsOSに組み込むことにより, GearsOSのファイルシステムにおいてデータの破損, 不整合を検知できる. また, GearsOS同士による分散ファイルシステムを構成することができ, 非中央的にデータの分散ができるようになる. もし分散システムを構成しない場合でもデータの整合性保持は行え, 上記の目的は達成できる.
+
+本研究では, Christieにブロックチェーンを実装し, 実際に学科のPCクラスタ上の分散環境で動かす.
+
+
+
+
+%\section{論文の構成}
+
+%\section{Introduction}
+
+
+%%文書終了****************************
+\end{document} 
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/chapter2/chapter2.aux	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,1 @@
+\relax 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/chapter2/chapter2.log	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,59 @@
+This is e-pTeX, Version 3.14159265-p3.6-141210-2.6 (utf8.euc) (TeX Live 2015) (preloaded format=platex 2016.4.7)  7 MAY 2019 21:01
+entering extended mode
+ restricted \write18 enabled.
+ file:line:error style messages enabled.
+ %&-line parsing enabled.
+**chapter2
+(./chapter2.tex
+pLaTeX2e <2006/11/10> (based on LaTeX2e <2015/01/01> patch level 0)
+Babel <3.9l> and hyphenation patterns for 79 languages loaded.
+No file chapter2.aux.
+\openout1 = `chapter2.aux'.
+
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 4.
+LaTeX Font Info:    ... okay on input line 4.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 4.
+LaTeX Font Info:    ... okay on input line 4.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 4.
+LaTeX Font Info:    ... okay on input line 4.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 4.
+LaTeX Font Info:    ... okay on input line 4.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 4.
+LaTeX Font Info:    ... okay on input line 4.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 4.
+LaTeX Font Info:    ... okay on input line 4.
+LaTeX Font Info:    Checking defaults for JY1/mc/m/n on input line 4.
+LaTeX Font Info:    ... okay on input line 4.
+LaTeX Font Info:    Checking defaults for JT1/mc/m/n on input line 4.
+LaTeX Font Info:    ... okay on input line 4.
+
+./chapter2.tex:4: LaTeX Error: The font size command \normalsize is not defined
+:
+               there is probably something wrong with the class file.
+
+See the LaTeX manual or LaTeX Companion for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.4 \begin{document}
+                    
+? 
+./chapter2.tex:4: Emergency stop.
+ ...                                              
+                                                  
+l.4 \begin{document}
+                    
+Your command was ignored.
+Type  I <command> <return>  to replace it with another command,
+or  <return>  to continue without it.
+
+ 
+Here is how much of TeX's memory you used:
+ 5 strings out of 493777
+ 273 string characters out of 6151335
+ 53434 words of memory out of 5000000
+ 3593 multiletter control sequences out of 15000+600000
+ 7519 words of font info for 31 fonts, out of 8000000 for 9000
+ 929 hyphenation exceptions out of 8191
+ 9i,0n,6p,49b,28s stack positions out of 5000i,500n,10000p,200000b,80000s
+No pages of output.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/chapter2/chapter2.tex	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,70 @@
+%\input{/Users/e155753/.tex/setup}
+
+%%文書開始****************************
+\begin{document} 
+%%**************************************
+\chapter{ブロックチェーンについて}
+
+ブロックチェーンとは分散型台帳技術とも呼ばれ, 複数のトランザクションをまとめたブロック, そのブロックをハッシュによって繋げ, 前後関係を表した台帳というものを, システムに参加している複数のノードが保持する技術である. ブロックチェーンにはパブリック型とコンソーシアム型の2種類がある. パブリック型は不特定多数のノードを対象にしており, コンソーシアム型は管理者が許可したノードが参加している.
+
+\section{P2P}
+ブロックチェーンのネットワーク間はP2Pで動く. つまり, ブロックチェーンネットワークはサーバー, クライアントの区別がなく, すべてのノードが平等である. そのため, 非中央的にデータの管理を行う. 
+
+
+\section{ブロックとその構造}
+ブロックチェーンにおけるブロックは, 複数のトランザクションをまとめたものである. ブロックの構造は使用するコンセンサスアルゴリズムによって変わるが, 基本的な構造としては次のとおりである.
+
+\begin{itemize}
+\item BlockHeader
+\begin{itemize}
+\item previous block hash
+\item merkle root hash
+\item time
+\end{itemize}
+\item TransactionList
+\end{itemize}
+
+BlockHeaderには, 前のブロックをハッシュ化したもの, トランザクションをまとめたmerkle treeのrootのhash, このブロックを生成したtimeとなっている.
+
+previous block hashは, 前のブロックのパラメータを並べて, hash化したものである. それが連なっていることで, 図\ref{fig:chain}のようなhash chainとして, ブロックがつながっている.
+
+\begin{figure}[H]
+\centering
+  \fbox{
+   \includegraphics[scale=0.5]{./images/chain.pdf}
+  }
+\caption{hash chain}
+\label{fig:chain}
+\end{figure}
+
+そのため, 一つのブロックが変更されれば, その後に連なっているブロックをすべて変更しなければいけなくなる.
+
+ブロックが生成された場合, 知っているノードにそのブロックをブロードキャストする. 実際には通信量を抑えるためにブロック高を送った後にブロックをシリアライズして送る場合もある.
+
+
+ノードごとにブロックを検証し, 誤りがあればそのブロックを破棄し, 誤りがなければ更にそのノードがブロックをブロードキャストする. . そして, Transaction PoolというTransactionを貯めておく場所から, そのブロックに含まれているTransactionを削除し, 新しいブロックを生成する. 
+
+
+
+\section{トランザクションとその構造}
+トランザクションとはデータのやり取りを行った記録の最小単位である. トランザクションの構造は次のとおりである.
+\begin{description}
+\item[TransactionHash] トランザクションをハッシュ化したもの.
+\item[data] データ.
+\item[sendAddress] 送り元のアカウントのアドレス.
+\item[recieveAddress] 送り先のアカウントのアドレス.
+\item[signature] トランザクションの一部と秘密鍵をSHA256でハッシュ化したもの.  ECDSAで署名している.
+\end{description}
+
+トランザクションはノード間で伝搬され, ノードごとに検証される. そして検証を終え, 不正なトランザクションであればそのトランザクションを破棄し, 検証に通った場合はTransaction Poolに取り組まれ, また検証したノードからトランザクションがブロードキャストされる.
+
+\section{fork}
+
+ブロックの生成をしたあとにブロードキャストをすると, ブロック高の同じ, もしくは相手のブロック高のほうが高いブロックチェーンにたどり着く場合がある. もちろん, 相手のブロックチェーンはそのブロックを破棄する. しかしこの場合, 異なるブロックを持った2つのブロックチェーンができる. この状態をforkという. fork状態になると, 2つの異なるブロックチェーンができることになるため, 1つにまとめなければならない. 1つにまとめるためにコンセンサスアルゴリズムを使うが, コンセンサスアルゴリズムについては次章で説明する.
+
+
+
+
+
+%%文書終了****************************
+\end{document} 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/chapter3/chapter3.aux	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,1 @@
+\relax 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/chapter3/chapter3.log	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,60 @@
+This is e-pTeX, Version 3.14159265-p3.6-141210-2.6 (utf8.euc) (TeX Live 2015) (preloaded format=platex 2016.4.7)  8 MAY 2019 01:07
+entering extended mode
+ restricted \write18 enabled.
+ file:line:error style messages enabled.
+ %&-line parsing enabled.
+**chapter3
+(./chapter3.tex
+pLaTeX2e <2006/11/10> (based on LaTeX2e <2015/01/01> patch level 0)
+Babel <3.9l> and hyphenation patterns for 79 languages loaded.
+(./chapter3.aux)
+\openout1 = `chapter3.aux'.
+
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 4.
+LaTeX Font Info:    ... okay on input line 4.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 4.
+LaTeX Font Info:    ... okay on input line 4.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 4.
+LaTeX Font Info:    ... okay on input line 4.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 4.
+LaTeX Font Info:    ... okay on input line 4.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 4.
+LaTeX Font Info:    ... okay on input line 4.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 4.
+LaTeX Font Info:    ... okay on input line 4.
+LaTeX Font Info:    Checking defaults for JY1/mc/m/n on input line 4.
+LaTeX Font Info:    ... okay on input line 4.
+LaTeX Font Info:    Checking defaults for JT1/mc/m/n on input line 4.
+LaTeX Font Info:    ... okay on input line 4.
+
+
+./chapter3.tex:4: LaTeX Error: The font size command \normalsize is not defined
+:
+               there is probably something wrong with the class file.
+
+See the LaTeX manual or LaTeX Companion for explanation.
+Type  H <return>  for immediate help.
+ ...                                              
+                                                  
+l.4 \begin{document}
+                    
+? 
+./chapter3.tex:4: Emergency stop.
+ ...                                              
+                                                  
+l.4 \begin{document}
+                    
+Your command was ignored.
+Type  I <command> <return>  to replace it with another command,
+or  <return>  to continue without it.
+
+ 
+Here is how much of TeX's memory you used:
+ 7 strings out of 493777
+ 299 string characters out of 6151335
+ 53434 words of memory out of 5000000
+ 3593 multiletter control sequences out of 15000+600000
+ 7519 words of font info for 31 fonts, out of 8000000 for 9000
+ 929 hyphenation exceptions out of 8191
+ 9i,0n,6p,49b,26s stack positions out of 5000i,500n,10000p,200000b,80000s
+No pages of output.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/chapter3/chapter3.tex	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,177 @@
+%\input{/Users/e155753/.tex/setup}
+
+%%文書開始****************************
+\begin{document} 
+%%**************************************
+\chapter{コンセンサスアルゴリズム}
+
+ブロックチェーンでは, パブリックブロックチェーンの場合とコンソーシアムブロックチェーンによってコンセンサスアルゴリズムが変わる. この章ではパブリックブロックチェーンのBitcoin, Ethereumに使われているProof of Workについて説明し, コンソーシアムブロックチェーンに使えるPaxosを説明する.
+
+\section{Proof of Workを用いたコンセンサス}
+パブリックブロックチェーンとは, 不特定多数のノードが参加するブロックチェーンシステムのことを指す. よって, 不特定多数のノード間, 全体のノードの参加数が変わる状況でコンセンサスが取れるアルゴリズムを使用しなければならない. 
+Proof of Workは不特定多数のノードを対象としてコンセンサスが取れる. ノードの計算量によってコンセンサスを取るからである. 次のような問題があっても, Proof of Workはコンセンサスを取ることができる.
+
+\begin{enumerate}
+\item プロセス毎に処理の速度が違う. つまり, メッセージの返信が遅い可能性がある
+\item 通信にどれだけの時間がかかるかわからず, その途中でメッセージが失われる可能性がある, 
+\item プロセスは停止する可能性がある. また, 復旧する可能性もある.
+\item 悪意ある情報を他のノードが送信する可能性がある.
+\end{enumerate}
+
+
+Proof of Workに必要なパラメータは次のとおりである.
+
+\begin{itemize}
+\item nonce
+\item difficulty
+\end{itemize}
+
+nonceはブロックのパラメータに含まれる. difficultyはProof of Workの難しさ, 正確に言えば1つのブロックを生成する時間を調整している.
+
+Proof of Workはこれらのパラメータを使って次のようにブロックを作る.
+
+\begin{enumerate}
+\item ブロックとnonceを加えたものをハッシュ化する. この際, nonceによって, ブロックのハッシュは全く違うものになる.
+\item ハッシュ化したブロックの先頭から数えた0ビットの数がdifficultyより多ければ, そのブロックにnonceを埋め込み, ブロックを作る. 
+\item 2の条件に当てはまらなかった場合はnonceに1を足して, 1からやり直す.
+\end{enumerate}
+difficulty = 2でProof of Workの手順を図にしたものを図\ref{fig:proof-of-work}に示す. 
+
+\begin{figure}[H]
+\centering
+  \fbox{
+   \includegraphics[scale=0.5]{./images/proof-of-work.pdf}
+  }
+\caption{proof-of-workの例}
+\label{fig:proof-of-work}
+\end{figure}
+
+
+2の条件については, 単純に$(桁数 - difficulty + 1) \times 10 > hash$とも置き換えることができる. 
+
+nonceを変えていくことで, hashはほぼ乱数のような状態になる. つまり, difficultyを増やすほど, 条件に当てはまるhashが少なくなっていくことがわかり, そのhashを探すための計算量も増えることがわかる. 
+
+これらがProof of Workでブロックを生成する手順である. これを用いることによって, ブロックが長くなればなるほど, すでに作られたブロックを変更することは計算量が膨大になるため, 不可能になっていく. 
+
+Proof of Workでノード間のコンセンサスを取る方法は単純で, ブロックの長さの差が一定以上になった場合, 最も長かったブロックを正しいものとする. これを図で表すと, 図\ref{fig:proof-of-work-fork}のようになる. 
+
+\begin{figure}[H]
+\centering
+  \fbox{
+   \includegraphics[scale=0.5]{./images/proof-of-work-fork}
+  }
+\caption{Proof of Workでのコンセンサス}
+\label{fig:proof-of-work-fork}
+\end{figure}
+
+計算量の差が51\%以上になると, forkしたブロック同士で差が生まれる. それによって, IPアドレスでのコンセンサスではなく, CPUの性能によるコンセンサスを取ることができる.
+
+コンセンサスでは, ブロックの差が大きければ大きいほど, コンセンサスが正確に取れる. しかし, 正しいチェーンが決まるのに時間がかかる. そのため, コンセンサスに必要なブロックの差はコンセンサスの正確性と時間のトレードオフになっている. 
+
+この方法でコンセンサスを取る場合の欠点を挙げる.
+\begin{itemize}
+\item CPUのリソースを使用する. 
+\item Transactionが確定するのに時間がかかる. 
+\end{itemize}
+
+
+\section{Paxos}
+
+コンソーシアムブロックチェーンは許可したノードのみが参加できるブロックチェーンである. そのため, ノードの数も把握できるため, Paxosを使うことができる. Paxosはノードの多数決によってコンセンサスを取るアルゴリズムである. ただし, Paxosは次のような問題があっても値を一意に決めることができる.
+
+\begin{enumerate}
+\item プロセス毎に処理の速度が違う. つまり, メッセージの返信が遅い可能性がある
+\item 通信にどれだけの時間がかかるかわからず, その途中でメッセージが失われる可能性がある, 
+\item プロセスは停止する可能性がある. また, 復旧する可能性もある.
+\end{enumerate}
+
+Proof of Workにある特性の4がないが, コンソーシアムブロックチェーンは3つの問題を解決するだけで十分である. なぜならば, コンソーシアムブロックチェーンは許可したノードのみが参加可能だからである. つまり, 悪意あるノードが参加する可能性が少ないためだ. 
+
+Paxosは3つの役割のノードがある.
+
+\begin{description}
+\item[proposer] 値を提案するノード.
+\item[acceptor] 値を決めるノード.
+\item[learner] acceptorから値を集計し, 過半数以上のacceptorが持っている値を決める.
+\end{description}
+
+Paxosのアルゴリズムに入る前に, 定義された用語を説明する. 以下にその用語の定義を示す.\begin{description}
+\item[提案] 提案は, 異なる提案ごとにユニークな提案番号と値からなる. 提案番号とは, 異なる提案を見分けるための識別子であり, 単調増加する. 値は一意に決まってほしいデータである.
+\item[値(提案)がacceptされる] acceptorによって値(提案)が決まること. 
+\item[値(提案)が選択(chosen)される] 過半数以上のacceptorによって, 値(提案)がacceptされた場合, それを値(提案)が選択されたと言う.
+\end{description}
+
+
+Paxosのアルゴリズムは2フェーズある. 
+
+1つ目のフェーズ, prepare-promiseは次のような手順で動作する. 
+\begin{enumerate}
+\item proposerは提案番号nを設定した提案を過半数以上のacceptorに送る. これをprepareリクエストという. 
+\item acceptorはprepareリクエストが来たら次の動作をする. 
+\begin{enumerate}
+\item もし, 以前に送られたprepareリクエストの提案番号より, 今送られてきたprepareリクエストの提案番号のほうが大きければ, それ以下の提案番号の提案を拒否するという約束を返す. この状態をPromiseしたという.
+\item もし, 値がすでにacceptされていれば, accpetされた提案を返す. 
+\end{enumerate}
+
+\end{enumerate}
+
+1フェーズ目を図にしたものを図\ref{fig:prepare-promise}に示す.
+
+\begin{figure}[H]
+\centering
+  \fbox{
+   \includegraphics[scale=0.5]{./images/prepare-promise.pdf}
+  }
+\caption{prepare-promise}
+\label{fig:prepare-promise}
+\end{figure}
+
+
+2つ目のフェーズ, accept-acceptedは次のような手順で動作する. 
+\begin{enumerate}
+\item proposerは過半数のacceptorから返信が来たならば, 次の提案をacceptorに送る. これをacceptリクエストという.
+\begin{enumerate}
+\item もし, 約束のみが返ってきているならば, 任意の値vをprepareリクエストで送った提案に設定する.
+\item もし, acceptされた提案が返ってきたら, その中で最大の提案番号を持つ提案の値v'をprepareリクエストで送った提案の値として設定する.
+\end{enumerate}
+
+\item acceptorはacceptリクエストが来た場合, Promiseした提案よりもacceptリクエストで提案された提案番号が低ければ, その提案を拒否する. それ以外の場合はacceptする.
+\end{enumerate}
+
+2フェーズ目を図にしたものを図\ref{fig:accept-accepted}に示す.
+
+\begin{figure}[H]
+\centering
+  \fbox{
+   \includegraphics[scale=0.5]{./images/accept-accepted.pdf}
+  }
+\caption{accept-accepted}
+\label{fig:accept-accepted}
+\end{figure}
+
+
+このアルゴリズムによって, 各accptorごとに値が一意に決まる. 値を集計, 選択するのはLearnerの役割である. Learnerが値を集計する方法には2つの方法がある.
+
+\begin{enumerate}
+\item Acceptorによって値がacceptされた時に, 各Learnerに送信される. ただし, Message通信量が, $Acceptorの数 \times Learnerの数$になる.
+\item 1つのLearnerが各Learnerに選択された値を送信する. 1の方法に比べてMessage通信量が少なくなる($Acceptorの数 + Learnerの数$になる)代わりに, そのLearnerが故障した場合は各LearnerがMessageを受け取れない.
+\end{enumerate}
+
+2つの方法はメッセージ通信量と耐障害性のトレードオフになっていることがわかる.
+
+Paxosでコンセンサスを取ることは, Proof of Workと比較して次のようなメリットがある.
+
+\begin{itemize}
+\item CPUのリソースを消費しない
+\item Transactionの確定に時間がかからない.
+\end{itemize}
+
+\section{Paxosによるブロックチェーン}
+
+PaxosはProof of Workに比べ, CPUのリソースを消費せず, Transactionの確定に時間がかからない. そのため, Paxosでブロックのコンセンサスを取るブロックチェーンを実装することにはメリットが有る.
+また, Paxos自体がリーダー選出に向いているアルゴリズムである. そのため, リーダーを決め, そのノードのブロックチェーンの一貫性のみを考えることもできる.
+
+
+
+%%文書終了****************************
+\end{document} 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/chapter4/chapter4.tex	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,149 @@
+%\input{/Users/e155753/.tex/setup}
+
+%%文書開始****************************
+\begin{document} 
+%%**************************************
+\chapter{Christieについて}
+
+Christieは当研究室で開発している分散フレームワークである. Christieには分散プログラムを簡潔に書くための工夫が複数ある.
+本章ではChristieについて述べる.
+\section{Christieとは}
+ChristieはJavaで書かれた分散フレームワークである. Christieは当研究室で開発している GearsOSに組み込まれる予定がある. そのため, GearsOS を構成する言語 Continuation based C と似た概念がある. Christie に存在する概念として次のようなものがある.
+
+\begin{itemize}
+\item CodeGear(以下 CG)
+\item DataGear(以下 DG)
+\item CodeGearManager(以下 CGM)
+\item DataGearManager(以下 DGM)
+\end{itemize}
+
+CGはクラス, スレッドに相当し, javaの継承を用いて記述する. DGは変数データに相当し, CG内でアノテーションを用いて変数データを取り出せる. CGM はノードであり, DGM, CG, DG を管理する. DGM は DG を管理するものであり, put という操作により変数データ, つまり DG を格納できる.
+DGMのput操作を行う際にはLocalとRemoteと2つのどちらかを選び, 変数のkeyとデータを引数に書く. Localであれば,  Local のCGMが管理しているDGMに対し, DGを格納していく. Remoteであれば接続したRemote先の CGMのDGMにDGを格納できる. put操作を行ったあとは, 対象のDGMの中にqueueとして保管される. 
+DGを取り出す際には, CG内で宣言した変数データにアノテーションをつける. DGのアノテーションにはTake, Peek, TakeFrom, PeekFromの4つがある. 
+\begin{description}
+\item[Take] 先頭のDGを読み込み, そのDGを削除する. DGが複数ある場合, この動作を用いる.
+\item[Peek] 先頭のDGを読み込むが, DGが削除されない. そのため, 特に操作をしない場合は同じデータを参照し続ける. 
+\item[TakeFrom(Remote DGM name)] Takeと似ているが, Remote DGM nameを指定することで, その接続先(Remote)のDGMからTake操作を行える.
+\item[PeekFrom(Remote DGM name)] Peekと似ているが, Remote DGM nameを指定することで, その接続先(Remote)のDGMからPeek操作を行える.
+\end{description}
+
+以上が, Christieの概要である.
+
+\section{プログラミングの例}
+ここでは, Christieで実際にプログラムを記述する例を述べる.
+CGMを作り, setup(new CodeGear)を動かすことにより, DGを待ち合わせ, DGが揃った場合にCodeGearが実行される. CGMを作る方法はStartCodeGear(以下SCG)を継承したものからcreateCGM(port) methodを実行することにより, CGMが作られる. SCGのコードの例をソースコード\ref{code:StartHelloWorld}に示す.
+
+\lstinputlisting[caption=StartHelloWorld,label=code:StartHelloWorld]{./src/HelloWorld/StartHelloWorld.java}
+
+
+\section{TopologyManagerの実装}
+Christieは当研究室で開発されたAliceを改良した分散フレームワークである. しかしAliceの機能を全て移行したわけではない. TopologyManagerは最たる例であり, 分散プログラムを簡潔に書くために必要である. そのため, ChristieにTopologyManagerを実装した.
+
+ここでは, TopologyManagerとはどのようなものかを述べる. そして, TopologyManagerを実装する際に, Christie自身のコードを変更する必要があったため, TopologyManagerでどのような問題が起こり, Christieの基本機能をどのような変更したかも述べる.
+
+TopologyManagerとは, Topologyを形成するため, 参加を表明したノード, TopologyNodeに名前を与え, 必要があればノード同士の配線も行うノードである. TopologyManagerのTopology形成方法として, 静的Topologyと動的Topologyがある. 静的Topologyはソースコード\ref{code:dot-example}のようなdotファイルを与えることで, ノードの関係を図\ref{fig:dot-example}のようにさせる. 静的Topologyはdotファイルのノード数と同等のTopologyNodeがあって初めて, CodeGearが実行される. 
+
+\lstinputlisting[caption=ring.dot,label=code:dot-example]{./src/ring.dot}
+
+\begin{figure}[H]
+\centering
+  \fbox{
+   \includegraphics[scale=1]{./images/ring.pdf}
+  }
+\caption{ソースコード\ref{code:dot-example}, ring.dotを図にしたもの}
+\label{fig:dot-example}
+\end{figure}
+
+
+
+動的Topologyは参加を表明したノードに対し, 動的にノード同士の関係を作る. 例えばTreeを構成する場合, 参加を表明したノードから順に, rootに近い位置の役割を与える. また, CodeGearはノードが参加し, parentに接続したあとに実行される.
+
+TopologyManagerを実装するに当たって, 以下の2つの問題点が出た.
+
+\begin{itemize}
+\item Take, Peek操作でSuperClassの型を持ったデータを取り出す際にNullPointerExceptionが表示される.
+\item ノード間で繋がる前にput操作を行うとデータが送られない.
+\end{itemize}
+
+Take, Peek操作でSuperClassの型を持ったデータを取り出す際にNullPointerExceptionが表示される問題に対しては, DataGearでdataを代入する際にSuperClass, interfacesまで比較するように書き換えた. また, 型の不一致が起こった際は例外を投げるようにした. その修正後のコードをソースコード\ref{code:datagear}に示す. 
+
+\begin{lstlisting}[caption=修正後のDataGearのソースコード,label=code:datagear]
+public class DataGear<T>{
+   
+    ...
+   
+    public void setData(T data) {
+        Class dataClazz = data.getClass();
+
+        if(dataClazz == this.clazz){
+            this.data = data; return;
+        }
+
+        Class dataSuperClazz = dataClazz.getSuperclass();
+        while (dataSuperClazz != null) {
+            if(dataSuperClazz == this.clazz) {
+                this.data = data; return;
+            }
+            dataSuperClazz = dataSuperClazz.getSuperclass();
+        }
+
+        Class<?>[] interfaces = dataClazz.getInterfaces();
+        for (Class<?> interfaze : interfaces) {
+            if(interfaze == this.clazz) {
+                this.data = data; return;
+            }
+        }
+
+        throw new ClassCastException("datagear cannot set class from " + dataClazz.getName() + " to " + clazz.getName());
+
+    }
+
+}
+\end{lstlisting}
+
+setDataメソッドの中身を変更した. TopologyNodeにおいて, 実行するCodeGearをputしておき, 参加するノードがすべて揃ったら, そのCodeGearを実行する. しかし, 実際には実行するCodeGearはCodeGearを継承したものである. Christieは, putされたdataのクラスとTakeされるデータのクラスが一致したならばdataを代入し, それ以外なら無視するという処理を行っていた. SuperClass, interfacesの型までは比較をしていなかっため, 型の不一致が起こり, dataの代入をしないため, NullPointerExceptionが表示されていた. 
+
+
+ノード間で繋がる前にput操作を行うとデータが送られない問題に対しては, waitを付け加えた. そのコードをソースコード\ref{code:rdgm}に示す. 
+
+\lstinputlisting[caption=修正後のRemoteDataGearManagerのソースコード,label=code:rdgm]{./src/RemoteDataGearManager.java}
+
+具体的にはソースコード\ref{code:rdgm}の17行目から21行目にlockを付け加え, putメソッドの48行目にwaitするメソッドを置き, 54行目から63行目にwaitするメソッドを付け加えた. この問題は, ノードが繋がる前にconnection.writeを行うため, 相手のDataGearに書き込みが行われないために起きた. そのため, 相手とDataGearがつながるまでputメソッドをwaitしておき, つながってからconnection.write操作を行うように書き換えた.
+
+\section{Christieにおけるブロックチェーンの実装の利点と欠点}
+
+Christieにおいてブロック, トランザクション, Paxos, Proof of Workを実装した. 
+その際, Christieで実装した場合の便利な点を述べる.
+
+\begin{itemize}
+\item データの取り出しが簡単. ChristieはDataGearという単位でデータを保持する. そのため, ブロックやトランザクションはDataGearに包めばいいため, どう送るかという問題を考えなくてすむ. 
+\item TopologyManagerでのテストが便利. dotファイルが有れば, TopologyManagerが任意の形でTopologyを作れる. そのため, ノードの配置については理想の環境を作れるため, 理想のテスト環境を作ることができる. 
+\item 機能ごとにファイルが実装できるため, 見通しが良い. ChristieはCbCのgotoと同じように関数が終わるとsetupによって別の関数に移動する. そのため自然に機能ごとにファイルを作るため, 見通しが良くなる.
+\end{itemize}
+
+不便な点を以下に述べる.
+
+\begin{itemize}
+\item デバッグが難しい. cgm.setupでCodeGearが実行されるが, keyの待ち合わせで止まり, どこのCGで止まっているかわからないことが多かった. 例えば, putするkeyのスペルミスでコードの待ち合わせが起こり, CGが実行されず, エラーなども表示されずにwaitすることがある. その時に, どこで止まっているか特定するのが難しい.
+\item TakeFrom, PeekFromの使い方が難しい. TakeFrom, PeekFromは引数でDGM nameを指定する. しかし, DGMの名前を静的に与えるよりも, 動的に与えたい場合が多かった.
+\item Takeの待ち合わせでCGが実行されない. 2つのCGで同じ変数をTakeしようとすると, setupされた時点で変数がロックされる. このとき, 片方のCGはDGがすべて揃っているのに, すべての変数が揃っていないもう片方のCGに同名の変数がロックされ, 実行されない場合がある. 
+\end{itemize}
+
+
+
+
+\newpage
+
+%%文書終了****************************
+\end{document} 
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/chapter5/chapter5.tex	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,84 @@
+% 今後の課題
+%\input{/Users/e155753/.tex/setup}
+
+%%文書開始****************************
+\begin{document} 
+%%**************************************
+\chapter{評価}
+
+本研究では, 実際にコンセンサスアルゴリズムPaxosを分散環境上で実行した. 分散環境上で動かすため, JobSchedulerの一種であるTorque Resource Manager(Torque)を使った. ここではTorqueとはなにか, どのような評価をしたかを述べる.
+
+\section{Torqueとは}
+
+PCクラスタ上でプログラムの実験を行う際には, 他のプログラムとリソースを取り合う懸念がある. それを防ぐためにTorqueを使用する. Torqueはjobという単位でプログラムを管理し, リソースを確保できたら実行する. jobはqsubというコマンドを使って複数登録することができる. また, 実行中の様子もqstatというコマンドを打つことで監視ができる.
+
+
+Torqueには主に3つのNodeの種類がある. 
+
+\begin{description}
+\item[Master Node] pbs\_serverを実行しているノード. 他のノードの役割とも併用できる.
+\item[Submit/Interactive Nodes] クライアントがjobを投入したり監視したりするノード. qsubやqstatのようなクライアントコマンドが実行できる.
+\item[Computer Nodes] 投入されたjobを実際に実行するノード. pbs\_momが実行されており, それによってjobをstart, kill, 管理する.
+\end{description}
+
+今回は図\ref{fig:kvm}のように, 学科のKVM上にMaster Node, Submit/Interactive Nodeの役割を持つVM1台と, Computer Nodesとして15台のVMを用意し, jobの投入を行った.
+
+\begin{figure}[H]
+\centering
+  \fbox{
+   \includegraphics[scale=0.5]{./images/kvm.pdf}
+  }
+\caption{実験環境}
+\label{fig:kvm}
+\end{figure}
+
+jobはシェルスクリプトの形で与えることができる. ソースコード\ref{code:torque-example}を例としてあげる. 
+
+\lstinputlisting[caption=torque-example.sh,label=code:torque-example]{./src/torque-example.sh}
+
+
+「\#PBS オプション」とすることにより実行環境を設定できる. 使用できるオプションは参考文献\cite{qsub-doc}に書かれてある. このスクリプトでは, ノード数10(vm0からvm9まで), jobの名前を「ExampleJob」という形で実行する設定をしている. もし, このコードを投入した場合, Submit/Interactive Nodesが各vmにsshし, hostnameコマンドを実行する. 
+実行後はstdout, stderrorの出力を「job名.o数字」, 「job名.e数字」というファイルに書き出す.
+
+\section{PCクラスタ上でのPaxosの実験}
+
+PCクラスタ上で実際にPaxosを動かしてみる. 今回は単純化し, proposerの数を2, acceptorの数を3, learnerの数を1としてPaxosを動かし, 値が一意に決まるかどうかを見る. また, わかりやすいように提案の値を整数とし, 各proposerごとに異なった値とした. 正確には, 「proposer + 数字」 の数字の部分を値とし, コンセンサスを取るようにした.
+
+実験を3回行い, シーケンス図で結果を示したものを図\ref{fig:paxos1}, 図\ref{fig:paxos2}, 図\ref{fig:paxos3}に示す. なおこの結果はプログラム中のLog4j2を用いたlogの出力を元にLeanerが値を選択するまでを図にしたものである. 
+
+\begin{figure}[H]
+\centering
+  \fbox{
+   \includegraphics[scale=0.5]{./images/paxos1.pdf}
+  }
+\caption{実験1回目のPaxos}
+\label{fig:paxos1}
+\end{figure}
+
+
+\begin{figure}[H]
+\centering
+  \fbox{
+   \includegraphics[scale=0.8]{./images/paxos2.pdf}
+  }
+\caption{実験2回目のPaxos}
+\label{fig:paxos2}
+\end{figure}
+
+
+\begin{figure}[H]
+\centering
+  \fbox{
+   \includegraphics[scale=0.8]{./images/paxos3.pdf}
+  }
+\caption{実験3回目のPaxos}
+\label{fig:paxos3}
+\end{figure}
+
+いずれも一意の値を決めることができている. また, Learnerが値を選択した後でも, Paxosは常に決めた値を持ち続けるアルゴリズムである. 参照したLog4j2の出力では提案番号25, 31まで提案を続けていたが, 値がこれ以降に覆ることはなかった.
+
+今回はわかりやすいように値を数字で行った実験だったが, これをトランザクション, ブロックに応用することで, ブロックチェーンにおけるコンセンサス部分を完成させることができる.
+
+
+%%文書終了****************************
+\end{document} 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/chapter6/chapter6.tex	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,12 @@
+%\input{/Users/e155753/.tex/setup}
+
+%%文書開始****************************
+\begin{document} 
+%%**************************************
+\chapter{まとめ}
+
+
+
+
+%%文書終了****************************
+\end{document} 
Binary file final_main/fig/ryukyu.pdf has changed
Binary file final_main/images/accept-accepted.graffle has changed
Binary file final_main/images/accept-accepted.pdf has changed
Binary file final_main/images/chain-fork.graffle has changed
Binary file final_main/images/chain-fork.pdf has changed
Binary file final_main/images/chain.graffle has changed
Binary file final_main/images/chain.pdf has changed
Binary file final_main/images/kvm.graffle has changed
Binary file final_main/images/kvm.pdf has changed
Binary file final_main/images/paxos.graffle has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/images/paxos.pu	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,95 @@
+@startuml
+title Paxos1
+/' ======= style ======= '/
+
+skinparam sequence {
+ArrowColor black
+LifeLineBorderColor black
+
+ParticipantBorderColor black
+ParticipantBackgroundColor white
+ParticipantPadding 20
+}
+
+/' ======= node name ======= '/
+
+/' === proposers === '/
+participant proposer1
+activate proposer1
+participant proposer2
+activate proposer2
+
+/' === acceptors === '/
+participant acceptor1
+activate acceptor1
+participant acceptor2
+activate acceptor2
+participant acceptor3
+activate acceptor3
+
+/' === learners === '/
+participant learner1
+activate learner1
+
+/' ======= uml ======= '/
+
+proposer2 -> acceptor1:Prepare request \n\
+Proposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 --> proposer2:Promise Success\n\
+Proposal(8, 2)
+acceptor2 --> proposer2:Promise Success\n\
+Proposal(8, 2)
+acceptor3 --> proposer2:Promise Success\n\
+Proposal(8, 2)
+
+proposer1 -> acceptor1:Prepare request \n\
+Proposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 --> proposer1:Promise Fail\n\
+Proposal(8, 2)
+acceptor2 --> proposer1
+acceptor3 --> proposer1
+
+proposer2 -> acceptor1:Accept request \n\
+Proposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor2 --> proposer2:Accept \n\
+Proposal(8, 2)
+acceptor2 --> learner1:accept \n\
+Proposal(8, 2)
+
+proposer1 -> acceptor1:Prepare request \n\
+Proposal(13, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 --> proposer1:Promise Success\n\
+Proposal(13, 1)
+acceptor3 --> proposer1:Promise Success\n\
+Proposal(13, 1)
+
+acceptor1 --> proposer2:Accept Fail\n\
+Proposal(13, 1)
+acceptor3 --> proposer2:Accept Fail\n\
+Proposal(13, 1)
+proposer1 -> acceptor1:accept request \n\
+Proposal(13, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+
+acceptor2 --> proposer1:accept \n\
+Proposal(13, 1)
+acceptor2 --> learner1:accept \n\
+Proposal(13, 1)
+
+
+
+@enduml
\ No newline at end of file
Binary file final_main/images/paxos1.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/images/paxos1.pu	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,74 @@
+@startuml
+title Paxos 1
+/' ======= style ======= '/
+
+skinparam sequence {
+ArrowColor black
+LifeLineBorderColor black
+
+ParticipantBorderColor black
+ParticipantBackgroundColor white
+ParticipantPadding 20
+}
+
+/' ======= node name ======= '/
+
+/' === proposers === '/
+participant proposer1
+activate proposer1
+participant proposer2
+activate proposer2
+
+/' === acceptors === '/
+participant acceptor1
+activate acceptor1
+participant acceptor2
+activate acceptor2
+participant acceptor3
+activate acceptor3
+
+/' === learners === '/
+participant learner1
+activate learner1
+
+/' ======= uml ======= '/
+
+proposer1 -> acceptor1:Prepare request \n\
+Proposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 --> proposer1:Promise Success\n\
+Proposal(7, 1)
+acceptor2 --> proposer1
+acceptor3 --> proposer1
+
+proposer2 -> acceptor1:Prepare request \n\
+Proposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 --> proposer2:Promise Success\n\
+Proposal(8, 2)
+acceptor2 --> proposer2
+acceptor3 --> proposer2
+
+proposer2 -> acceptor1:Accept request \n\
+Proposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 --> proposer2:Accept \n\
+Proposal(8, 2)
+acceptor1 -> learner1:Accept \n\
+Proposal(8, 2)
+
+acceptor2 --> proposer2:Accept \n\
+Proposal(8, 2)
+acceptor2 -> learner1:Accept \n\
+Proposal(8, 2)
+
+learner1 -> learner1:chosen \n\
+Proposal(8, 2)
+
+@enduml
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/images/paxos1.svg	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="728px" preserveAspectRatio="none" style="width:864px;height:728px;" version="1.1" viewBox="0 0 864 728" width="864px" zoomAndPan="magnify"><defs><filter height="300%" id="fc7ra6n53s53c" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="405.5" y="23.5352">Paxos 1</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="68" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="208" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="346" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="482" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="618" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="749" y="78.9766"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="73" x2="73" y1="68.9766" y2="688.1875"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="213" x2="213" y1="68.9766" y2="688.1875"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="351" x2="351" y1="68.9766" y2="688.1875"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="487" x2="487" y1="68.9766" y2="688.1875"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="623" x2="623" y1="68.9766" y2="688.1875"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="754" x2="754" y1="68.9766" y2="688.1875"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="28" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="35" y="54.0234">proposer1</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="28" y="687.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="35" y="707.7227">proposer1</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="168" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="175" y="54.0234">proposer2</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="168" y="687.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="175" y="707.7227">proposer2</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="308" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="315" y="54.0234">acceptor1</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="308" y="687.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="315" y="707.7227">acceptor1</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="444" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="451" y="54.0234">acceptor2</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="444" y="687.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="451" y="707.7227">acceptor2</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="580" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="587" y="54.0234">acceptor3</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="580" y="687.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="587" y="707.7227">acceptor3</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="72" x="716" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="58" x="723" y="54.0234">learner1</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="72" x="716" y="687.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="58" x="723" y="707.7227">learner1</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="68" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="208" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="346" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="482" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="618" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="749" y="78.9766"/><polygon fill="#000000" points="334,111.5977,344,115.5977,334,119.5977,338,115.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="115.5977" y2="115.5977"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="85" y="95.5449">Prepare request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="85" y="110.8555">Proposal(7, 1)</text><polygon fill="#000000" points="470,125.5977,480,129.5977,470,133.5977,474,129.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="129.5977" y2="129.5977"/><polygon fill="#000000" points="606,139.5977,616,143.5977,606,147.5977,610,143.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="143.5977" y2="143.5977"/><polygon fill="#000000" points="89,184.2188,79,188.2188,89,192.2188,85,188.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="345" y1="188.2188" y2="188.2188"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="95" y="168.166">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="95" y="183.4766">Proposal(7, 1)</text><polygon fill="#000000" points="89,198.2188,79,202.2188,89,206.2188,85,202.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="481" y1="202.2188" y2="202.2188"/><polygon fill="#000000" points="89,212.2188,79,216.2188,89,220.2188,85,216.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="617" y1="216.2188" y2="216.2188"/><polygon fill="#000000" points="334,256.8398,344,260.8398,334,264.8398,338,260.8398" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="340" y1="260.8398" y2="260.8398"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="225" y="240.7871">Prepare request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="225" y="256.0977">Proposal(8, 2)</text><polygon fill="#000000" points="470,270.8398,480,274.8398,470,278.8398,474,274.8398" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="476" y1="274.8398" y2="274.8398"/><polygon fill="#000000" points="606,284.8398,616,288.8398,606,292.8398,610,288.8398" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="612" y1="288.8398" y2="288.8398"/><polygon fill="#000000" points="229,329.4609,219,333.4609,229,337.4609,225,333.4609" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="345" y1="333.4609" y2="333.4609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="235" y="313.4082">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="235" y="328.7188">Proposal(8, 2)</text><polygon fill="#000000" points="229,343.4609,219,347.4609,229,351.4609,225,347.4609" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="481" y1="347.4609" y2="347.4609"/><polygon fill="#000000" points="229,357.4609,219,361.4609,229,365.4609,225,361.4609" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="617" y1="361.4609" y2="361.4609"/><polygon fill="#000000" points="334,402.082,344,406.082,334,410.082,338,406.082" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="340" y1="406.082" y2="406.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="225" y="386.0293">Accept request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="225" y="401.3398">Proposal(8, 2)</text><polygon fill="#000000" points="470,416.082,480,420.082,470,424.082,474,420.082" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="476" y1="420.082" y2="420.082"/><polygon fill="#000000" points="606,430.082,616,434.082,606,438.082,610,434.082" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="612" y1="434.082" y2="434.082"/><polygon fill="#000000" points="229,474.7031,219,478.7031,229,482.7031,225,478.7031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="345" y1="478.7031" y2="478.7031"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="235" y="458.6504">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="235" y="473.9609">Proposal(8, 2)</text><polygon fill="#000000" points="737,519.3242,747,523.3242,737,527.3242,741,523.3242" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="356" x2="743" y1="523.3242" y2="523.3242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="363" y="503.2715">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="363" y="518.582">Proposal(8, 2)</text><polygon fill="#000000" points="229,563.9453,219,567.9453,229,571.9453,225,567.9453" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="481" y1="567.9453" y2="567.9453"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="235" y="547.8926">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="235" y="563.2031">Proposal(8, 2)</text><polygon fill="#000000" points="737,608.5664,747,612.5664,737,616.5664,741,612.5664" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="492" x2="743" y1="612.5664" y2="612.5664"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="499" y="592.5137">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="499" y="607.8242">Proposal(8, 2)</text><line style="stroke: #000000; stroke-width: 1.0;" x1="759" x2="801" y1="657.1875" y2="657.1875"/><line style="stroke: #000000; stroke-width: 1.0;" x1="801" x2="801" y1="657.1875" y2="670.1875"/><line style="stroke: #000000; stroke-width: 1.0;" x1="760" x2="801" y1="670.1875" y2="670.1875"/><polygon fill="#000000" points="770,666.1875,760,670.1875,770,674.1875,766,670.1875" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="766" y="637.1348">chosen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="766" y="652.4453">Proposal(8, 2)</text><!--
+@startuml
+title Paxos 1
+
+skinparam sequence {
+ArrowColor black
+LifeLineBorderColor black
+
+ParticipantBorderColor black
+ParticipantBackgroundColor white
+ParticipantPadding 20
+}
+
+
+participant proposer1
+activate proposer1
+participant proposer2
+activate proposer2
+
+participant acceptor1
+activate acceptor1
+participant acceptor2
+activate acceptor2
+participant acceptor3
+activate acceptor3
+
+participant learner1
+activate learner1
+
+
+proposer1 -> acceptor1:Prepare request \nProposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 - -> proposer1:Promise Success\nProposal(7, 1)
+acceptor2 - -> proposer1
+acceptor3 - -> proposer1
+
+proposer2 -> acceptor1:Prepare request \nProposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 - -> proposer2:Promise Success\nProposal(8, 2)
+acceptor2 - -> proposer2
+acceptor3 - -> proposer2
+
+proposer2 -> acceptor1:Accept request \nProposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 - -> proposer2:Accept \nProposal(8, 2)
+acceptor1 -> learner1:Accept \nProposal(8, 2)
+
+acceptor2 - -> proposer2:Accept \nProposal(8, 2)
+acceptor2 -> learner1:Accept \nProposal(8, 2)
+
+learner1 -> learner1:chosen \nProposal(8, 2)
+
+@enduml
+
+PlantUML version 1.2019.01(Sun Feb 10 00:32:04 JST 2019)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.1+13
+Operating System: Mac OS X
+OS Version: 10.13.6
+Default Encoding: UTF-8
+Language: ja
+Country: JP
+--></g></svg>
\ No newline at end of file
Binary file final_main/images/paxos2.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/images/paxos2.pu	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,116 @@
+@startuml
+title Paxos 2
+/' ======= style ======= '/
+
+skinparam sequence {
+ArrowColor black
+LifeLineBorderColor black
+
+ParticipantBorderColor black
+ParticipantBackgroundColor white
+ParticipantPadding 20
+}
+
+/' ======= node name ======= '/
+
+/' === proposers === '/
+participant proposer1
+activate proposer1
+participant proposer2
+activate proposer2
+
+/' === acceptors === '/
+participant acceptor1
+activate acceptor1
+participant acceptor2
+activate acceptor2
+participant acceptor3
+activate acceptor3
+
+/' === learners === '/
+participant learner1
+activate learner1
+
+/' ======= uml ======= '/
+
+proposer1 -> acceptor1:Prepare request \n\
+Proposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 --> proposer1:Promise Success\n\
+Proposal(7, 1)
+acceptor2 --> proposer1
+acceptor3 --> proposer1
+
+proposer2 -> acceptor1:Prepare request \n\
+Proposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 --> proposer2:Promise Success\n\
+Proposal(8, 2)
+acceptor2 --> proposer2
+acceptor3 --> proposer2
+
+proposer1 -> acceptor1:Accept request \n\
+Proposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+
+
+acceptor1 --> proposer1:Accept Fail\n\
+Proposal(8, 2)
+acceptor2 --> proposer1
+acceptor3 --> proposer1
+
+
+proposer2 -> acceptor2:Accept request \n\
+Proposal(8, 2)
+
+acceptor2 --> proposer2:Accept \n\
+Proposal(8, 2)
+acceptor2 -> learner1:Accept \n\
+Proposal(8, 2)
+
+proposer1 -> acceptor1:Prepare request \n\
+Proposal(13, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor2 --> proposer1:Promise Success\n\
+But Accepted \n\
+Proposal(8, 2)
+acceptor1 --> proposer1:Promise Success\n\
+Proposal(13, 1)
+acceptor3 --> proposer1
+
+proposer2 -> acceptor1:Accept request \n\
+Proposal(8, 2)
+proposer2 -> acceptor3
+
+acceptor1 --> proposer2:Accept Fail\n\
+Proposal(8, 2)
+acceptor3 --> proposer2
+
+proposer1 -> acceptor1:Accept request \n\
+Proposal(13, 2)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 --> proposer2:Accept \n\
+Proposal(13, 2)
+acceptor1 -> learner1:Accept \n\
+Proposal(13, 2)
+
+
+acceptor2 --> proposer2:Accept \n\
+Proposal(13, 2)
+acceptor2 -> learner1:Accept \n\
+Proposal(13, 2)
+
+learner1 -> learner1:chosen \n\
+Proposal(13, 2)
+
+@enduml
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/images/paxos2.svg	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1316px" preserveAspectRatio="none" style="width:872px;height:1316px;" version="1.1" viewBox="0 0 872 1316" width="872px" zoomAndPan="magnify"><defs><filter height="300%" id="f1ronj4dwj7ktb" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="409.5" y="23.5352">Paxos 2</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="68" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="208" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="346" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="482" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="618" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="749" y="78.9766"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="73" x2="73" y1="68.9766" y2="1275.709"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="213" x2="213" y1="68.9766" y2="1275.709"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="351" x2="351" y1="68.9766" y2="1275.709"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="487" x2="487" y1="68.9766" y2="1275.709"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="623" x2="623" y1="68.9766" y2="1275.709"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="754" x2="754" y1="68.9766" y2="1275.709"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="28" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="35" y="54.0234">proposer1</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="28" y="1274.709"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="35" y="1295.2441">proposer1</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="168" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="175" y="54.0234">proposer2</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="168" y="1274.709"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="175" y="1295.2441">proposer2</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="308" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="315" y="54.0234">acceptor1</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="308" y="1274.709"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="315" y="1295.2441">acceptor1</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="444" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="451" y="54.0234">acceptor2</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="444" y="1274.709"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="451" y="1295.2441">acceptor2</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="580" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="587" y="54.0234">acceptor3</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="580" y="1274.709"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="587" y="1295.2441">acceptor3</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="72" x="716" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="58" x="723" y="54.0234">learner1</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="72" x="716" y="1274.709"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="58" x="723" y="1295.2441">learner1</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="68" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="208" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="346" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="482" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="618" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="749" y="78.9766"/><polygon fill="#000000" points="334,111.5977,344,115.5977,334,119.5977,338,115.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="115.5977" y2="115.5977"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="85" y="95.5449">Prepare request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="85" y="110.8555">Proposal(7, 1)</text><polygon fill="#000000" points="470,125.5977,480,129.5977,470,133.5977,474,129.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="129.5977" y2="129.5977"/><polygon fill="#000000" points="606,139.5977,616,143.5977,606,147.5977,610,143.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="143.5977" y2="143.5977"/><polygon fill="#000000" points="89,184.2188,79,188.2188,89,192.2188,85,188.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="345" y1="188.2188" y2="188.2188"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="95" y="168.166">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="95" y="183.4766">Proposal(7, 1)</text><polygon fill="#000000" points="89,198.2188,79,202.2188,89,206.2188,85,202.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="481" y1="202.2188" y2="202.2188"/><polygon fill="#000000" points="89,212.2188,79,216.2188,89,220.2188,85,216.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="617" y1="216.2188" y2="216.2188"/><polygon fill="#000000" points="334,256.8398,344,260.8398,334,264.8398,338,260.8398" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="340" y1="260.8398" y2="260.8398"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="225" y="240.7871">Prepare request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="225" y="256.0977">Proposal(8, 2)</text><polygon fill="#000000" points="470,270.8398,480,274.8398,470,278.8398,474,274.8398" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="476" y1="274.8398" y2="274.8398"/><polygon fill="#000000" points="606,284.8398,616,288.8398,606,292.8398,610,288.8398" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="612" y1="288.8398" y2="288.8398"/><polygon fill="#000000" points="229,329.4609,219,333.4609,229,337.4609,225,333.4609" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="345" y1="333.4609" y2="333.4609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="235" y="313.4082">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="235" y="328.7188">Proposal(8, 2)</text><polygon fill="#000000" points="229,343.4609,219,347.4609,229,351.4609,225,347.4609" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="481" y1="347.4609" y2="347.4609"/><polygon fill="#000000" points="229,357.4609,219,361.4609,229,365.4609,225,361.4609" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="617" y1="361.4609" y2="361.4609"/><polygon fill="#000000" points="334,402.082,344,406.082,334,410.082,338,406.082" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="406.082" y2="406.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="85" y="386.0293">Accept request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="85" y="401.3398">Proposal(7, 1)</text><polygon fill="#000000" points="470,416.082,480,420.082,470,424.082,474,420.082" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="420.082" y2="420.082"/><polygon fill="#000000" points="606,430.082,616,434.082,606,438.082,610,434.082" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="434.082" y2="434.082"/><polygon fill="#000000" points="89,474.7031,79,478.7031,89,482.7031,85,478.7031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="345" y1="478.7031" y2="478.7031"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="69" x="95" y="458.6504">Accept Fail</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="95" y="473.9609">Proposal(8, 2)</text><polygon fill="#000000" points="89,488.7031,79,492.7031,89,496.7031,85,492.7031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="481" y1="492.7031" y2="492.7031"/><polygon fill="#000000" points="89,502.7031,79,506.7031,89,510.7031,85,506.7031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="617" y1="506.7031" y2="506.7031"/><polygon fill="#000000" points="470,547.3242,480,551.3242,470,555.3242,474,551.3242" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="476" y1="551.3242" y2="551.3242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="225" y="531.2715">Accept request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="225" y="546.582">Proposal(8, 2)</text><polygon fill="#000000" points="229,591.9453,219,595.9453,229,599.9453,225,595.9453" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="481" y1="595.9453" y2="595.9453"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="235" y="575.8926">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="235" y="591.2031">Proposal(8, 2)</text><polygon fill="#000000" points="737,636.5664,747,640.5664,737,644.5664,741,640.5664" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="492" x2="743" y1="640.5664" y2="640.5664"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="499" y="620.5137">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="499" y="635.8242">Proposal(8, 2)</text><polygon fill="#000000" points="334,681.1875,344,685.1875,334,689.1875,338,685.1875" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="685.1875" y2="685.1875"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="85" y="665.1348">Prepare request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="85" y="680.4453">Proposal(13, 1)</text><polygon fill="#000000" points="470,695.1875,480,699.1875,470,703.1875,474,699.1875" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="699.1875" y2="699.1875"/><polygon fill="#000000" points="606,709.1875,616,713.1875,606,717.1875,610,713.1875" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="713.1875" y2="713.1875"/><polygon fill="#000000" points="89,769.1191,79,773.1191,89,777.1191,85,773.1191" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="481" y1="773.1191" y2="773.1191"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="95" y="737.7559">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="82" x="95" y="753.0664">But Accepted</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="95" y="768.377">Proposal(8, 2)</text><polygon fill="#000000" points="89,813.7402,79,817.7402,89,821.7402,85,817.7402" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="345" y1="817.7402" y2="817.7402"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="95" y="797.6875">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="95" y="812.998">Proposal(13, 1)</text><polygon fill="#000000" points="89,827.7402,79,831.7402,89,835.7402,85,831.7402" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="617" y1="831.7402" y2="831.7402"/><polygon fill="#000000" points="334,872.3613,344,876.3613,334,880.3613,338,876.3613" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="340" y1="876.3613" y2="876.3613"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="225" y="856.3086">Accept request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="225" y="871.6191">Proposal(8, 2)</text><polygon fill="#000000" points="606,886.3613,616,890.3613,606,894.3613,610,890.3613" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="612" y1="890.3613" y2="890.3613"/><polygon fill="#000000" points="229,930.9824,219,934.9824,229,938.9824,225,934.9824" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="345" y1="934.9824" y2="934.9824"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="69" x="235" y="914.9297">Accept Fail</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="235" y="930.2402">Proposal(8, 2)</text><polygon fill="#000000" points="229,944.9824,219,948.9824,229,952.9824,225,948.9824" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="617" y1="948.9824" y2="948.9824"/><polygon fill="#000000" points="334,989.6035,344,993.6035,334,997.6035,338,993.6035" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="993.6035" y2="993.6035"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="85" y="973.5508">Accept request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="85" y="988.8613">Proposal(13, 2)</text><polygon fill="#000000" points="470,1003.6035,480,1007.6035,470,1011.6035,474,1007.6035" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="1007.6035" y2="1007.6035"/><polygon fill="#000000" points="606,1017.6035,616,1021.6035,606,1025.6035,610,1021.6035" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="1021.6035" y2="1021.6035"/><polygon fill="#000000" points="229,1062.2246,219,1066.2246,229,1070.2246,225,1066.2246" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="345" y1="1066.2246" y2="1066.2246"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="235" y="1046.1719">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="235" y="1061.4824">Proposal(13, 2)</text><polygon fill="#000000" points="737,1106.8457,747,1110.8457,737,1114.8457,741,1110.8457" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="356" x2="743" y1="1110.8457" y2="1110.8457"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="363" y="1090.793">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="363" y="1106.1035">Proposal(13, 2)</text><polygon fill="#000000" points="229,1151.4668,219,1155.4668,229,1159.4668,225,1155.4668" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="481" y1="1155.4668" y2="1155.4668"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="235" y="1135.4141">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="235" y="1150.7246">Proposal(13, 2)</text><polygon fill="#000000" points="737,1196.0879,747,1200.0879,737,1204.0879,741,1200.0879" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="492" x2="743" y1="1200.0879" y2="1200.0879"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="499" y="1180.0352">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="499" y="1195.3457">Proposal(13, 2)</text><line style="stroke: #000000; stroke-width: 1.0;" x1="759" x2="801" y1="1244.709" y2="1244.709"/><line style="stroke: #000000; stroke-width: 1.0;" x1="801" x2="801" y1="1244.709" y2="1257.709"/><line style="stroke: #000000; stroke-width: 1.0;" x1="760" x2="801" y1="1257.709" y2="1257.709"/><polygon fill="#000000" points="770,1253.709,760,1257.709,770,1261.709,766,1257.709" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="766" y="1224.6563">chosen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="766" y="1239.9668">Proposal(13, 2)</text><!--
+@startuml
+title Paxos 2
+
+skinparam sequence {
+ArrowColor black
+LifeLineBorderColor black
+
+ParticipantBorderColor black
+ParticipantBackgroundColor white
+ParticipantPadding 20
+}
+
+
+participant proposer1
+activate proposer1
+participant proposer2
+activate proposer2
+
+participant acceptor1
+activate acceptor1
+participant acceptor2
+activate acceptor2
+participant acceptor3
+activate acceptor3
+
+participant learner1
+activate learner1
+
+
+proposer1 -> acceptor1:Prepare request \nProposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 - -> proposer1:Promise Success\nProposal(7, 1)
+acceptor2 - -> proposer1
+acceptor3 - -> proposer1
+
+proposer2 -> acceptor1:Prepare request \nProposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 - -> proposer2:Promise Success\nProposal(8, 2)
+acceptor2 - -> proposer2
+acceptor3 - -> proposer2
+
+proposer1 -> acceptor1:Accept request \nProposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+
+
+acceptor1 - -> proposer1:Accept Fail\nProposal(8, 2)
+acceptor2 - -> proposer1
+acceptor3 - -> proposer1
+
+
+proposer2 -> acceptor2:Accept request \nProposal(8, 2)
+
+acceptor2 - -> proposer2:Accept \nProposal(8, 2)
+acceptor2 -> learner1:Accept \nProposal(8, 2)
+
+proposer1 -> acceptor1:Prepare request \nProposal(13, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor2 - -> proposer1:Promise Success\nBut Accepted \nProposal(8, 2)
+acceptor1 - -> proposer1:Promise Success\nProposal(13, 1)
+acceptor3 - -> proposer1
+
+proposer2 -> acceptor1:Accept request \nProposal(8, 2)
+proposer2 -> acceptor3
+
+acceptor1 - -> proposer2:Accept Fail\nProposal(8, 2)
+acceptor3 - -> proposer2
+
+proposer1 -> acceptor1:Accept request \nProposal(13, 2)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 - -> proposer2:Accept \nProposal(13, 2)
+acceptor1 -> learner1:Accept \nProposal(13, 2)
+
+
+acceptor2 - -> proposer2:Accept \nProposal(13, 2)
+acceptor2 -> learner1:Accept \nProposal(13, 2)
+
+learner1 -> learner1:chosen \nProposal(13, 2)
+
+@enduml
+
+PlantUML version 1.2019.01(Sun Feb 10 00:32:04 JST 2019)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.1+13
+Operating System: Mac OS X
+OS Version: 10.13.6
+Default Encoding: UTF-8
+Language: ja
+Country: JP
+--></g></svg>
\ No newline at end of file
Binary file final_main/images/paxos3.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/images/paxos3.pu	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,112 @@
+@startuml
+title Paxos 3
+/' ======= style ======= '/
+
+skinparam sequence {
+ArrowColor black
+LifeLineBorderColor black
+
+ParticipantBorderColor black
+ParticipantBackgroundColor white
+ParticipantPadding 20
+}
+
+/' ======= node name ======= '/
+
+/' === proposers === '/
+participant proposer1
+activate proposer1
+participant proposer2
+activate proposer2
+
+/' === acceptors === '/
+participant acceptor1
+activate acceptor1
+participant acceptor2
+activate acceptor2
+participant acceptor3
+activate acceptor3
+
+/' === learners === '/
+participant learner1
+activate learner1
+
+/' ======= uml ======= '/
+
+proposer1 -> acceptor1:Prepare request \n\
+Proposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 --> proposer1:Promise Success\n\
+Proposal(7, 1)
+acceptor2 --> proposer1
+acceptor3 --> proposer1
+
+proposer1 -> acceptor3:Accept Request \n\
+Proposal(7, 1)
+acceptor3 --> proposer1: Accept \n\
+Proposal(7,1)
+acceptor3 -> learner1:Accept \n\
+Proposal(7, 1)
+
+
+proposer2 -> acceptor1:Prepare request \n\
+Proposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 --> proposer2:Promise Success\n\
+Proposal(8, 2)
+acceptor2 --> proposer2
+acceptor3 --> proposer2:Promise Success \n\
+But Accepted \n\
+Proposal(7, 1)
+
+proposer1 -> acceptor1:Accept request \n\
+Proposal(7, 1)
+proposer1 -> acceptor2
+
+acceptor1 --> proposer1:Accept Fail\n\
+Promised \n\
+Proposal(8, 2)
+acceptor2 --> proposer1
+
+
+proposer1 -> acceptor1:Prepare request \n\
+Proposal(13, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 --> proposer1:Promise Success\n\
+Proposal(13, 1)
+acceptor2 --> proposer1
+acceptor3 --> proposer1
+
+
+proposer1 -> acceptor1:Accept request \n\
+Proposal(13, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 --> proposer1:Accept \n\
+Proposal(13, 1)
+acceptor1 -> learner1:Accept \n\
+Proposal(13, 1)
+
+acceptor2 --> proposer1:Accept \n\
+Proposal(13, 1)
+acceptor2 -> learner1:Accept \n\
+Proposal(13, 1)
+
+
+
+acceptor3 --> proposer1:Accept \n\
+Proposal(13, 1)
+acceptor3 -> learner1:Accept \n\
+Proposal(13, 1)
+
+learner1 -> learner1:chosen \n\
+Proposal(13, 1)
+
+@enduml
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/images/paxos3.svg	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1275px" preserveAspectRatio="none" style="width:872px;height:1275px;" version="1.1" viewBox="0 0 872 1275" width="872px" zoomAndPan="magnify"><defs><filter height="300%" id="f1jrqdh23d0xyz" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="409.5" y="23.5352">Paxos 3</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="68" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="208" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="346" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="482" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="618" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="749" y="78.9766"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="73" x2="73" y1="68.9766" y2="1235.0195"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="213" x2="213" y1="68.9766" y2="1235.0195"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="351" x2="351" y1="68.9766" y2="1235.0195"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="487" x2="487" y1="68.9766" y2="1235.0195"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="623" x2="623" y1="68.9766" y2="1235.0195"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="754" x2="754" y1="68.9766" y2="1235.0195"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="28" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="35" y="54.0234">proposer1</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="28" y="1234.0195"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="35" y="1254.5547">proposer1</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="168" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="175" y="54.0234">proposer2</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="168" y="1234.0195"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="175" y="1254.5547">proposer2</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="308" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="315" y="54.0234">acceptor1</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="308" y="1234.0195"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="315" y="1254.5547">acceptor1</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="444" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="451" y="54.0234">acceptor2</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="444" y="1234.0195"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="451" y="1254.5547">acceptor2</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="580" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="587" y="54.0234">acceptor3</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="580" y="1234.0195"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="587" y="1254.5547">acceptor3</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="72" x="716" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="58" x="723" y="54.0234">learner1</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="72" x="716" y="1234.0195"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="58" x="723" y="1254.5547">learner1</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="68" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="208" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="346" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="482" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="618" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="749" y="78.9766"/><polygon fill="#000000" points="334,111.5977,344,115.5977,334,119.5977,338,115.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="115.5977" y2="115.5977"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="85" y="95.5449">Prepare request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="85" y="110.8555">Proposal(7, 1)</text><polygon fill="#000000" points="470,125.5977,480,129.5977,470,133.5977,474,129.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="129.5977" y2="129.5977"/><polygon fill="#000000" points="606,139.5977,616,143.5977,606,147.5977,610,143.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="143.5977" y2="143.5977"/><polygon fill="#000000" points="89,184.2188,79,188.2188,89,192.2188,85,188.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="345" y1="188.2188" y2="188.2188"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="95" y="168.166">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="95" y="183.4766">Proposal(7, 1)</text><polygon fill="#000000" points="89,198.2188,79,202.2188,89,206.2188,85,202.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="481" y1="202.2188" y2="202.2188"/><polygon fill="#000000" points="89,212.2188,79,216.2188,89,220.2188,85,216.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="617" y1="216.2188" y2="216.2188"/><polygon fill="#000000" points="606,256.8398,616,260.8398,606,264.8398,610,260.8398" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="260.8398" y2="260.8398"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="85" y="240.7871">Accept Request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="85" y="256.0977">Proposal(7, 1)</text><polygon fill="#000000" points="89,301.4609,79,305.4609,89,309.4609,85,305.4609" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="617" y1="305.4609" y2="305.4609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="95" y="285.4082">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="82" x="95" y="300.7188">Proposal(7,1)</text><polygon fill="#000000" points="737,346.082,747,350.082,737,354.082,741,350.082" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="628" x2="743" y1="350.082" y2="350.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="635" y="330.0293">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="635" y="345.3398">Proposal(7, 1)</text><polygon fill="#000000" points="334,390.7031,344,394.7031,334,398.7031,338,394.7031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="340" y1="394.7031" y2="394.7031"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="225" y="374.6504">Prepare request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="225" y="389.9609">Proposal(8, 2)</text><polygon fill="#000000" points="470,404.7031,480,408.7031,470,412.7031,474,408.7031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="476" y1="408.7031" y2="408.7031"/><polygon fill="#000000" points="606,418.7031,616,422.7031,606,426.7031,610,422.7031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="612" y1="422.7031" y2="422.7031"/><polygon fill="#000000" points="229,463.3242,219,467.3242,229,471.3242,225,467.3242" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="345" y1="467.3242" y2="467.3242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="235" y="447.2715">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="235" y="462.582">Proposal(8, 2)</text><polygon fill="#000000" points="229,477.3242,219,481.3242,229,485.3242,225,481.3242" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="481" y1="481.3242" y2="481.3242"/><polygon fill="#000000" points="229,537.2559,219,541.2559,229,545.2559,225,541.2559" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="617" y1="541.2559" y2="541.2559"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="235" y="505.8926">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="82" x="235" y="521.2031">But Accepted</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="235" y="536.5137">Proposal(7, 1)</text><polygon fill="#000000" points="334,581.877,344,585.877,334,589.877,338,585.877" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="585.877" y2="585.877"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="85" y="565.8242">Accept request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="85" y="581.1348">Proposal(7, 1)</text><polygon fill="#000000" points="470,595.877,480,599.877,470,603.877,474,599.877" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="599.877" y2="599.877"/><polygon fill="#000000" points="89,655.8086,79,659.8086,89,663.8086,85,659.8086" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="345" y1="659.8086" y2="659.8086"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="69" x="95" y="624.4453">Accept Fail</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="58" x="95" y="639.7559">Promised</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="95" y="655.0664">Proposal(8, 2)</text><polygon fill="#000000" points="89,669.8086,79,673.8086,89,677.8086,85,673.8086" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="481" y1="673.8086" y2="673.8086"/><polygon fill="#000000" points="334,714.4297,344,718.4297,334,722.4297,338,718.4297" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="718.4297" y2="718.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="85" y="698.377">Prepare request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="85" y="713.6875">Proposal(13, 1)</text><polygon fill="#000000" points="470,728.4297,480,732.4297,470,736.4297,474,732.4297" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="732.4297" y2="732.4297"/><polygon fill="#000000" points="606,742.4297,616,746.4297,606,750.4297,610,746.4297" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="746.4297" y2="746.4297"/><polygon fill="#000000" points="89,787.0508,79,791.0508,89,795.0508,85,791.0508" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="345" y1="791.0508" y2="791.0508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="95" y="770.998">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="95" y="786.3086">Proposal(13, 1)</text><polygon fill="#000000" points="89,801.0508,79,805.0508,89,809.0508,85,805.0508" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="481" y1="805.0508" y2="805.0508"/><polygon fill="#000000" points="89,815.0508,79,819.0508,89,823.0508,85,819.0508" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="617" y1="819.0508" y2="819.0508"/><polygon fill="#000000" points="334,859.6719,344,863.6719,334,867.6719,338,863.6719" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="863.6719" y2="863.6719"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="85" y="843.6191">Accept request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="85" y="858.9297">Proposal(13, 1)</text><polygon fill="#000000" points="470,873.6719,480,877.6719,470,881.6719,474,877.6719" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="877.6719" y2="877.6719"/><polygon fill="#000000" points="606,887.6719,616,891.6719,606,895.6719,610,891.6719" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="891.6719" y2="891.6719"/><polygon fill="#000000" points="89,932.293,79,936.293,89,940.293,85,936.293" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="345" y1="936.293" y2="936.293"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="95" y="916.2402">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="95" y="931.5508">Proposal(13, 1)</text><polygon fill="#000000" points="737,976.9141,747,980.9141,737,984.9141,741,980.9141" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="356" x2="743" y1="980.9141" y2="980.9141"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="363" y="960.8613">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="363" y="976.1719">Proposal(13, 1)</text><polygon fill="#000000" points="89,1021.5352,79,1025.5352,89,1029.5352,85,1025.5352" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="481" y1="1025.5352" y2="1025.5352"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="95" y="1005.4824">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="95" y="1020.793">Proposal(13, 1)</text><polygon fill="#000000" points="737,1066.1563,747,1070.1563,737,1074.1563,741,1070.1563" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="492" x2="743" y1="1070.1563" y2="1070.1563"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="499" y="1050.1035">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="499" y="1065.4141">Proposal(13, 1)</text><polygon fill="#000000" points="89,1110.7773,79,1114.7773,89,1118.7773,85,1114.7773" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="617" y1="1114.7773" y2="1114.7773"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="95" y="1094.7246">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="95" y="1110.0352">Proposal(13, 1)</text><polygon fill="#000000" points="737,1155.3984,747,1159.3984,737,1163.3984,741,1159.3984" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="628" x2="743" y1="1159.3984" y2="1159.3984"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="635" y="1139.3457">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="635" y="1154.6563">Proposal(13, 1)</text><line style="stroke: #000000; stroke-width: 1.0;" x1="759" x2="801" y1="1204.0195" y2="1204.0195"/><line style="stroke: #000000; stroke-width: 1.0;" x1="801" x2="801" y1="1204.0195" y2="1217.0195"/><line style="stroke: #000000; stroke-width: 1.0;" x1="760" x2="801" y1="1217.0195" y2="1217.0195"/><polygon fill="#000000" points="770,1213.0195,760,1217.0195,770,1221.0195,766,1217.0195" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="766" y="1183.9668">chosen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="766" y="1199.2773">Proposal(13, 1)</text><!--
+@startuml
+title Paxos 3
+
+skinparam sequence {
+ArrowColor black
+LifeLineBorderColor black
+
+ParticipantBorderColor black
+ParticipantBackgroundColor white
+ParticipantPadding 20
+}
+
+
+participant proposer1
+activate proposer1
+participant proposer2
+activate proposer2
+
+participant acceptor1
+activate acceptor1
+participant acceptor2
+activate acceptor2
+participant acceptor3
+activate acceptor3
+
+participant learner1
+activate learner1
+
+
+proposer1 -> acceptor1:Prepare request \nProposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 - -> proposer1:Promise Success\nProposal(7, 1)
+acceptor2 - -> proposer1
+acceptor3 - -> proposer1
+
+proposer1 -> acceptor3:Accept Request \nProposal(7, 1)
+acceptor3 - -> proposer1: Accept \nProposal(7,1)
+acceptor3 -> learner1:Accept \nProposal(7, 1)
+
+
+proposer2 -> acceptor1:Prepare request \nProposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 - -> proposer2:Promise Success\nProposal(8, 2)
+acceptor2 - -> proposer2
+acceptor3 - -> proposer2:Promise Success \nBut Accepted \nProposal(7, 1)
+
+proposer1 -> acceptor1:Accept request \nProposal(7, 1)
+proposer1 -> acceptor2
+
+acceptor1 - -> proposer1:Accept Fail\nPromised \nProposal(8, 2)
+acceptor2 - -> proposer1
+
+
+proposer1 -> acceptor1:Prepare request \nProposal(13, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 - -> proposer1:Promise Success\nProposal(13, 1)
+acceptor2 - -> proposer1
+acceptor3 - -> proposer1
+
+
+proposer1 -> acceptor1:Accept request \nProposal(13, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 - -> proposer1:Accept \nProposal(13, 1)
+acceptor1 -> learner1:Accept \nProposal(13, 1)
+
+acceptor2 - -> proposer1:Accept \nProposal(13, 1)
+acceptor2 -> learner1:Accept \nProposal(13, 1)
+
+
+
+acceptor3 - -> proposer1:Accept \nProposal(13, 1)
+acceptor3 -> learner1:Accept \nProposal(13, 1)
+
+learner1 -> learner1:chosen \nProposal(13, 1)
+
+@enduml
+
+PlantUML version 1.2019.01(Sun Feb 10 00:32:04 JST 2019)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.1+13
+Operating System: Mac OS X
+OS Version: 10.13.6
+Default Encoding: UTF-8
+Language: ja
+Country: JP
+--></g></svg>
\ No newline at end of file
Binary file final_main/images/prepare-promise.graffle has changed
Binary file final_main/images/prepare-promise.pdf has changed
Binary file final_main/images/proof-of-work-fork.graffle has changed
Binary file final_main/images/proof-of-work-fork.pdf has changed
Binary file final_main/images/proof-of-work.graffle has changed
Binary file final_main/images/proof-of-work.pdf has changed
Binary file final_main/images/ring.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/main.aux	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,71 @@
+\relax 
+\@writefile{toc}{\contentsline {chapter}{\numberline {第1章}はじめに}{1}\protected@file@percent }
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\newlabel{chap:introduction}{{1}{1}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {第2章}ブロックチェーンについて}{2}\protected@file@percent }
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\@writefile{toc}{\contentsline {section}{\numberline {2.1}P2P}{2}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {2.2}ブロックとその構造}{2}\protected@file@percent }
+\@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces hash chain}}{3}\protected@file@percent }
+\newlabel{fig:chain}{{2.1}{3}}
+\@writefile{toc}{\contentsline {section}{\numberline {2.3}トランザクションとその構造}{3}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {2.4}fork}{4}\protected@file@percent }
+\@writefile{toc}{\contentsline {chapter}{\numberline {第3章}コンセンサスアルゴリズム}{5}\protected@file@percent }
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\@writefile{toc}{\contentsline {section}{\numberline {3.1}Proof of Workを用いたコンセンサス}{5}\protected@file@percent }
+\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces proof-of-workの例}}{6}\protected@file@percent }
+\newlabel{fig:proof-of-work}{{3.1}{6}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Proof of Workでのコンセンサス}}{7}\protected@file@percent }
+\newlabel{fig:proof-of-work-fork}{{3.2}{7}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.2}Paxos}{7}\protected@file@percent }
+\@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces prepare-promise}}{9}\protected@file@percent }
+\newlabel{fig:prepare-promise}{{3.3}{9}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3.4}{\ignorespaces accept-accepted}}{10}\protected@file@percent }
+\newlabel{fig:accept-accepted}{{3.4}{10}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.3}Paxosによるブロックチェーン}{11}\protected@file@percent }
+\@writefile{toc}{\contentsline {chapter}{\numberline {第4章}Christieについて}{12}\protected@file@percent }
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\@writefile{toc}{\contentsline {section}{\numberline {4.1}Christieとは}{12}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {4.2}プログラミングの例}{13}\protected@file@percent }
+\newlabel{code:StartHelloWorld}{{4.1}{13}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {4.1}StartHelloWorld}{13}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {4.3}TopologyManagerの実装}{13}\protected@file@percent }
+\newlabel{code:dot-example}{{4.2}{14}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {4.2}ring.dot}{14}\protected@file@percent }
+\@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces ソースコード4.2\@setref@ {}, ring.dotを図にしたもの}}{14}\protected@file@percent }
+\newlabel{fig:dot-example}{{4.1}{14}}
+\newlabel{code:datagear}{{4.3}{15}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {4.3}修正後のDataGearのソースコード}{15}\protected@file@percent }
+\newlabel{code:rdgm}{{4.4}{16}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {4.4}修正後のRemoteDataGearManagerのソースコード}{16}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {4.4}Christieにおけるブロックチェーンの実装の利点と欠点}{18}\protected@file@percent }
+\@writefile{toc}{\contentsline {chapter}{\numberline {第5章}評価}{19}\protected@file@percent }
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\@writefile{toc}{\contentsline {section}{\numberline {5.1}Torqueとは}{19}\protected@file@percent }
+\citation{qsub-doc}
+\@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces 実験環境}}{20}\protected@file@percent }
+\newlabel{fig:kvm}{{5.1}{20}}
+\newlabel{code:torque-example}{{5.1}{20}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {5.1}torque-example.sh}{20}\protected@file@percent }
+\@writefile{toc}{\contentsline {section}{\numberline {5.2}PCクラスタ上でのPaxosの実験}{20}\protected@file@percent }
+\@writefile{lof}{\contentsline {figure}{\numberline {5.2}{\ignorespaces 実験1回目のPaxos}}{21}\protected@file@percent }
+\newlabel{fig:paxos1}{{5.2}{21}}
+\@writefile{lof}{\contentsline {figure}{\numberline {5.3}{\ignorespaces 実験2回目のPaxos}}{22}\protected@file@percent }
+\newlabel{fig:paxos2}{{5.3}{22}}
+\@writefile{lof}{\contentsline {figure}{\numberline {5.4}{\ignorespaces 実験3回目のPaxos}}{23}\protected@file@percent }
+\newlabel{fig:paxos3}{{5.4}{23}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {第6章}まとめ}{25}\protected@file@percent }
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\bibcite{christie}{1}
+\bibcite{christie}{2}
+\bibcite{bitcoin}{3}
+\bibcite{ethereum}{4}
+\bibcite{paxos}{5}
+\bibcite{torque}{6}
+\bibcite{qsub-doc}{7}
Binary file final_main/main.dvi has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/main.lof	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,16 @@
+\addvspace {10\p@ }
+\addvspace {10\p@ }
+\contentsline {figure}{\numberline {2.1}{\ignorespaces hash chain}}{3}% 
+\addvspace {10\p@ }
+\contentsline {figure}{\numberline {3.1}{\ignorespaces proof-of-workの例}}{6}% 
+\contentsline {figure}{\numberline {3.2}{\ignorespaces Proof of Workでのコンセンサス}}{7}% 
+\contentsline {figure}{\numberline {3.3}{\ignorespaces prepare-promise}}{9}% 
+\contentsline {figure}{\numberline {3.4}{\ignorespaces accept-accepted}}{10}% 
+\addvspace {10\p@ }
+\contentsline {figure}{\numberline {4.1}{\ignorespaces ソースコード4.2\@setref@ {}, ring.dotを図にしたもの}}{14}% 
+\addvspace {10\p@ }
+\contentsline {figure}{\numberline {5.1}{\ignorespaces 実験環境}}{20}% 
+\contentsline {figure}{\numberline {5.2}{\ignorespaces 実験1回目のPaxos}}{21}% 
+\contentsline {figure}{\numberline {5.3}{\ignorespaces 実験2回目のPaxos}}{22}% 
+\contentsline {figure}{\numberline {5.4}{\ignorespaces 実験3回目のPaxos}}{23}% 
+\addvspace {10\p@ }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/main.log	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,400 @@
+This is e-pTeX, Version 3.14159265-p3.8.2-190131-2.6 (utf8.euc) (TeX Live 2019) (preloaded format=platex 2019.10.15)  3 FEB 2020 18:35
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**main
+(./main.tex
+pLaTeX2e <2019-10-01> (based on LaTeX2e <2019-10-01> patch level 1)
+(/usr/local/texlive/2019/texmf-dist/tex/platex/base/jreport.cls
+Document Class: jreport 2019/04/02 v1.8b Standard pLaTeX class
+\c@@paper=\count83
+(/usr/local/texlive/2019/texmf-dist/tex/platex/base/jsize12.clo
+File: jsize12.clo 2019/04/02 v1.8b Standard pLaTeX file (size option)
+)
+\c@part=\count84
+\c@chapter=\count85
+\c@section=\count86
+\c@subsection=\count87
+\c@subsubsection=\count88
+\c@paragraph=\count89
+\c@subparagraph=\count90
+\c@figure=\count91
+\c@table=\count92
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\symmincho=\mathgroup4
+LaTeX Font Info:    Overwriting symbol font `mincho' in version `bold'
+(Font)                  JY1/mc/m/n --> JY1/gt/m/n on input line 703.
+\toclineskip=\dimen118
+\@lnumwidth=\dimen119
+\bibindent=\dimen120
+\heisei=\count93
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/graphics/graphicx.sty
+Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR)
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks15
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/graphics/graphics.sty
+Package: graphics 2019/10/08 v1.3c Standard LaTeX Graphics (DPC,SPQR)
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/graphics/trig.sty
+Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
+File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
+)
+Package graphics Info: Driver file: dvipdfmx.def on input line 105.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/graphics-def/dvipdfmx.def
+File: dvipdfmx.def 2017/06/24 v5.0g Graphics/color driver for dvipdfmx
+))
+\Gin@req@height=\dimen121
+\Gin@req@width=\dimen122
+)
+(./mythesis.sty)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/bussproofs/bussproofs.sty
+Proof Tree (bussproofs) style macros. Version 1.1.
+\theLevel=\count94
+\myMaxLevel=\count95
+\myBoxA=\box43
+\myBoxB=\box44
+\myBoxC=\box45
+\myBoxD=\box46
+\myBoxLL=\box47
+\myBoxRL=\box48
+\thisAboveSkip=\dimen123
+\thisBelowSkip=\dimen124
+\newScoreStart=\dimen125
+\newScoreEnd=\dimen126
+\newCenter=\dimen127
+\displace=\dimen128
+\leftLowerAmt=\dimen129
+\rightLowerAmt=\dimen130
+\scoreHeight=\dimen131
+\scoreDepth=\dimen132
+\htLbox=\dimen133
+\htRbox=\dimen134
+\htRRbox=\dimen135
+\htRRRbox=\dimen136
+\htAbox=\dimen137
+\htCbox=\dimen138
+) (/usr/local/texlive/2019/texmf-dist/tex/latex/multirow/multirow.sty
+Package: multirow 2019/05/31 v2.5 Span multiple rows of a table
+\multirow@colwidth=\skip43
+\multirow@cntb=\count96
+\multirow@dima=\skip44
+\bigstrutjot=\dimen139
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/here/here.sty)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/float/float.sty
+Package: float 2001/11/08 v1.3d Float enhancements (AL)
+\c@float@type=\count97
+\float@exts=\toks16
+\float@box=\box49
+\@float@everytoks=\toks17
+\@floatcapt=\box50
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/listings/listings.sty
+\lst@mode=\count98
+\lst@gtempboxa=\box51
+\lst@token=\toks18
+\lst@length=\count99
+\lst@currlwidth=\dimen140
+\lst@column=\count100
+\lst@pos=\count101
+\lst@lostspace=\dimen141
+\lst@width=\dimen142
+\lst@newlines=\count102
+\lst@lineno=\count103
+\lst@maxwidth=\dimen143
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/listings/lstmisc.sty
+File: lstmisc.sty 2019/09/10 1.8c (Carsten Heinz)
+\c@lstnumber=\count104
+\lst@skipnumbers=\count105
+\lst@framebox=\box52
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/listings/listings.cfg
+File: listings.cfg 2019/09/10 1.8c listings configuration
+))
+Package: listings 2019/09/10 1.8c (Carsten Heinz)
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16  ver 3.4  Verb mode for urls, etc.
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/cite/cite.sty
+LaTeX Info: Redefining \cite on input line 302.
+LaTeX Info: Redefining \nocite on input line 332.
+Package: cite 2015/02/27  v 5.5
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/amsfonts/amssymb.sty
+Package: amssymb 2013/01/14 v3.01 AMS font symbols
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/amsfonts/amsfonts.sty
+Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
+\@emptytoks=\toks19
+\symAMSa=\mathgroup5
+\symAMSb=\mathgroup6
+LaTeX Font Info:    Redeclaring math symbol \hbar on input line 98.
+LaTeX Font Info:    Overwriting math alphabet `\mathfrak' in version `bold'
+(Font)                  U/euf/m/n --> U/euf/b/n on input line 106.
+))
+(/usr/local/texlive/2019/texmf-dist/tex/latex/amsmath/amsmath.sty
+Package: amsmath 2019/04/01 v2.17c AMS math features
+\@mathmargin=\skip45
+
+For additional information on amsmath, use the `?' option.
+(/usr/local/texlive/2019/texmf-dist/tex/latex/amsmath/amstext.sty
+Package: amstext 2000/06/29 v2.01 AMS text
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/amsmath/amsgen.sty
+File: amsgen.sty 1999/11/30 v2.0 generic functions
+\@emptytoks=\toks20
+\ex@=\dimen144
+))
+(/usr/local/texlive/2019/texmf-dist/tex/latex/amsmath/amsbsy.sty
+Package: amsbsy 1999/11/29 v1.2d Bold Symbols
+\pmbraise@=\dimen145
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/amsmath/amsopn.sty
+Package: amsopn 2016/03/08 v2.02 operator names
+)
+\inf@bad=\count106
+LaTeX Info: Redefining \frac on input line 227.
+\uproot@=\count107
+\leftroot@=\count108
+LaTeX Info: Redefining \overline on input line 389.
+\classnum@=\count109
+\DOTSCASE@=\count110
+LaTeX Info: Redefining \ldots on input line 486.
+LaTeX Info: Redefining \dots on input line 489.
+LaTeX Info: Redefining \cdots on input line 610.
+\Mathstrutbox@=\box53
+\strutbox@=\box54
+\big@size=\dimen146
+LaTeX Font Info:    Redeclaring font encoding OML on input line 733.
+LaTeX Font Info:    Redeclaring font encoding OMS on input line 734.
+\macc@depth=\count111
+\c@MaxMatrixCols=\count112
+\dotsspace@=\muskip11
+\c@parentequation=\count113
+\dspbrk@lvl=\count114
+\tag@help=\toks21
+\row@=\count115
+\column@=\count116
+\maxfields@=\count117
+\andhelp@=\toks22
+\eqnshift@=\dimen147
+\alignsep@=\dimen148
+\tagshift@=\dimen149
+\tagwidth@=\dimen150
+\totwidth@=\dimen151
+\lineht@=\dimen152
+\@envbody=\toks23
+\multlinegap=\skip46
+\multlinetaggap=\skip47
+\mathdisplay@stack=\toks24
+LaTeX Info: Redefining \[ on input line 2855.
+LaTeX Info: Redefining \] on input line 2856.
+)
+(/usr/local/texlive/texmf-local/tex/latex/sty/jlisting.sty
+Package: jlisting 2006/02/20 0.2 (Thor)
+\lst@nextchar=\count118
+\lst@inputfile=\read1
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/base/inputenc.sty
+Package: inputenc 2018/08/11 v1.3c Input encoding file
+\inpenc@prehook=\toks25
+\inpenc@posthook=\toks26
+)
+(/usr/local/texlive/2019/texmf-dist/tex/latex/docmute/docmute.sty
+Package: docmute 2012/03/22 v1.4 Input stand-alone documents
+) (./main.aux
+
+LaTeX Warning: Label `christie' multiply defined.
+
+)
+\openout1 = `main.aux'.
+
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 80.
+LaTeX Font Info:    ... okay on input line 80.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 80.
+LaTeX Font Info:    ... okay on input line 80.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 80.
+LaTeX Font Info:    ... okay on input line 80.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 80.
+LaTeX Font Info:    ... okay on input line 80.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 80.
+LaTeX Font Info:    ... okay on input line 80.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 80.
+LaTeX Font Info:    ... okay on input line 80.
+LaTeX Font Info:    Checking defaults for JY1/mc/m/n on input line 80.
+LaTeX Font Info:    ... okay on input line 80.
+LaTeX Font Info:    Checking defaults for JT1/mc/m/n on input line 80.
+LaTeX Font Info:    ... okay on input line 80.
+\c@lstlisting=\count119
+\docmute@nestinglevel=\count120
+File: fig/ryukyu.pdf Graphic file (type pdf)
+<fig/ryukyu.pdf>
+ [0
+
+]
+LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <24.88> not available
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 89.
+LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <24.88> not available
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 89.
+ (./main.toc
+LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <12> not available
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 1.
+LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <12> not available
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 1.
+LaTeX Font Info:    Trying to load font information for U+msa on input line 3.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/amsfonts/umsa.fd
+File: umsa.fd 2013/01/14 v3.01 AMS symbols A
+)
+LaTeX Font Info:    Trying to load font information for U+msb on input line 3.
+
+(/usr/local/texlive/2019/texmf-dist/tex/latex/amsfonts/umsb.fd
+File: umsb.fd 2013/01/14 v3.01 AMS symbols B
+))
+\tf@toc=\write3
+\openout3 = `main.toc'.
+
+ [1
+
+]
+(./main.lof)
+\tf@lof=\write4
+\openout4 = `main.lof'.
+
+ [2
+
+] (./main.lol)
+\tf@lol=\write5
+\openout5 = `main.lol'.
+
+ (./chapter1/chapter1.tex [3
+
+]
+第 1 章
+) (./chapter2/chapter2.tex [1
+
+]
+第 2 章
+LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <17.28> not available
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 10.
+LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <17.28> not available
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 10.
+LaTeX Font Info:    Trying to load font information for OMS+cmr on input line 1
+8.
+(/usr/local/texlive/2019/texmf-dist/tex/latex/base/omscmr.fd
+File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions
+)
+LaTeX Font Info:    Font shape `OMS/cmr/m/n' in size <12> not available
+(Font)              Font shape `OMS/cmsy/m/n' tried instead on input line 18.
+File: ./images/chain.pdf Graphic file (type pdf)
+<./images/chain.pdf>
+ [2
+
+] [3])
+(./chapter3/chapter3.tex [4]
+第 3 章
+[5
+
+]
+File: ./images/proof-of-work.pdf Graphic file (type pdf)
+<./images/proof-of-work.pdf>
+File: ./images/proof-of-work-fork.pdf Graphic file (type pdf)
+<./images/proof-of-work-fork.pdf>
+ [6] [7]
+File: ./images/prepare-promise.pdf Graphic file (type pdf)
+<./images/prepare-promise.pdf>
+ [8]
+File: ./images/accept-accepted.pdf Graphic file (type pdf)
+<./images/accept-accepted.pdf>
+ [9] [10]) (./chapter4/chapter4.tex [11]
+第 4 章
+[12
+
+] [13]
+File: ./images/ring.pdf Graphic file (type pdf)
+<./images/ring.pdf>
+ [14] [15] [16] [17] [18]) (./chapter5/chapter5.tex
+第 5 章
+File: ./images/kvm.pdf Graphic file (type pdf)
+<./images/kvm.pdf>
+[19
+
+]
+File: ./images/paxos1.pdf Graphic file (type pdf)
+<./images/paxos1.pdf>
+ [20]
+File: ./images/paxos2.pdf Graphic file (type pdf)
+<./images/paxos2.pdf>
+
+Overfull \hbox (37.17598pt too wide) in paragraph at lines 63--64
+ [][] 
+ []
+
+[21]
+Overfull \vbox (42.47844pt too high) has occurred while \output is active []
+
+
+[22]
+File: ./images/paxos3.pdf Graphic file (type pdf)
+<./images/paxos3.pdf>
+
+Overfull \hbox (37.17598pt too wide) in paragraph at lines 73--74
+ [][] 
+ []
+
+
+Overfull \vbox (42.47844pt too high) has occurred while \output is active []
+
+
+[23]) (./chapter6/chapter6.tex [24]
+第 6 章
+) (./bibliography.tex [25
+
+]
+Underfull \hbox (badness 10000) in paragraph at lines 29--32
+[]$\OT1/cmtt/m/n/12 https : / / lamport . azurewebsites . net / pubs / paxos-[]
+simple . pdf$ \OT1/cmr/m/n/12 (Ac-cessed:
+ []
+
+
+Underfull \hbox (badness 10000) in paragraph at lines 34--37
+[]$\OT1/cmtt/m/n/12 http : / / docs . adaptivecomputing . com / torque / 4-[]2-
+[]8 / help . htm # topics /
+ []
+
+
+Underfull \hbox (badness 10000) in paragraph at lines 40--43
+[]$\OT1/cmtt/m/n/12 http : / / docs . adaptivecomputing . com / torque / 4-[]0-
+[]2 / Content / topics /
+ []
+
+) (./thanks.tex [26
+
+]) [27
+
+] (./main.aux)
+
+LaTeX Warning: There were multiply-defined labels.
+
+ ) 
+Here is how much of TeX's memory you used:
+ 4129 strings out of 492763
+ 52211 string characters out of 6140193
+ 470949 words of memory out of 5000000
+ 8476 multiletter control sequences out of 15000+600000
+ 16433 words of font info for 66 fonts, out of 8000000 for 9000
+ 929 hyphenation exceptions out of 8191
+ 31i,6n,36p,532b,1690s stack positions out of 5000i,500n,10000p,200000b,80000s
+
+Output written on main.dvi (31 pages, 86524 bytes).
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/main.lol	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,5 @@
+\contentsline {lstlisting}{\numberline {4.1}StartHelloWorld}{13}% 
+\contentsline {lstlisting}{\numberline {4.2}ring.dot}{14}% 
+\contentsline {lstlisting}{\numberline {4.3}修正後のDataGearのソースコード}{15}% 
+\contentsline {lstlisting}{\numberline {4.4}修正後のRemoteDataGearManagerのソースコード}{16}% 
+\contentsline {lstlisting}{\numberline {5.1}torque-example.sh}{20}% 
Binary file final_main/main.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/main.tex	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,130 @@
+\documentclass[a4j,12pt]{jreport}
+\usepackage[dvipdfmx]{graphicx}
+\usepackage{mythesis}
+\usepackage{bussproofs}
+\usepackage{multirow}
+\usepackage{here}
+\usepackage{listings}
+\usepackage{url}
+\usepackage{cite}
+\usepackage{listings}
+\usepackage{amssymb}
+\usepackage{amsmath}
+\usepackage{listings,jlisting}
+\usepackage[utf8]{inputenc}
+\usepackage{docmute}
+
+\lstset{
+  basicstyle={\ttfamily},
+  breaklines=true,%自動で折り返す。
+  columns=[l]{fullflexible},
+  commentstyle={\footnotesize\ttfamily},
+  escapechar={@},
+  frame=single,
+  framerule=.5pt,
+  identifierstyle={\ttfamily},
+  keepspaces=true,
+  keywordstyle={\footnotesize\ttfamily},
+  language={},
+  lineskip=-0.1zw,
+  numbers=left,
+  numbersep=1em,
+  numberstyle={\scriptsize},
+  stepnumber=1,
+  stringstyle={\footnotesize\ttfamily},
+  tabsize=4,
+  xleftmargin=0zw,
+  xrightmargin=0zw,
+}
+
+% \lstset{
+%   language={C},
+%   basicstyle={\footnotesize\ttfamily},
+%   identifierstyle={\footnotesize},
+%   commentstyle={\footnotesize\itshape},
+%   keywordstyle={\footnotesize\bfseries},
+%   ndkeywordstyle={\footnotesize},
+%   stringstyle={\footnotesize\ttfamily},
+%   frame={tb},
+%   breaklines=true,
+%   columns=[l]{fullflexible},
+%   numbers=left,
+%   xrightmargin=0zw,
+%   xleftmargin=3zw,
+%   numberstyle={\scriptsize},
+%   stepnumber=1,
+%   numbersep=1zw,
+%   lineskip=-0.5ex
+% }
+\def\lstlistingname{ソースコード}
+\def\lstlistlistingname{ソースコード目次}
+\setlength{\itemsep}{-1zh}
+\title{分散フレームワークChristieによるリモートエディタ}
+\icon{
+  \includegraphics[width=80mm,bb=0 0 595 642]{fig/ryukyu.pdf} %%元は 642じゃなくて842
+}
+\year{平成31年度 卒業論文}
+\belongto{琉球大学工学部情報工学科}
+\author{165713F 一木 貴裕 \\ 指導教員 {河野 真治} }
+%%
+%% プリアンブルに記述
+%% Figure 環境中で Table 環境の見出しを表示・カウンタの操作に必要
+%%
+\makeatletter
+\newcommand{\figcaption}[1]{\def\@captype{figure}\caption{#1}}
+\newcommand{\tblcaption}[1]{\def\@captype{table}\caption{#1}}
+\def\lst@lettertrue{\let\lst@ifletter\iffalse} %
+\makeatother
+\setlength\abovecaptionskip{0pt}
+
+\begin{document}
+
+% タイトル
+\maketitle
+\baselineskip 17pt plus 1pt minus 1pt
+
+\pagenumbering{roman}
+\setcounter{page}{0}
+
+\tableofcontents	% 目次
+\listoffigures		% 図目次
+%\listoftables		% 表目次
+\lstlistoflistings
+
+%以下のように、章ごとに個別の tex ファイルを作成して、
+% main.tex をコンパイルして確認する。
+%章分けは個人で違うので下のフォーマットを参考にして下さい。
+
+% 研究目的
+\input{chapter1/chapter1.tex}
+
+% ブロックチェーンについて
+\input{chapter2/chapter2.tex}
+
+% コンセンサスアルゴリズムについて
+\input{chapter3/chapter3.tex}
+
+% Christieについて
+\input{chapter4/chapter4.tex}
+
+% 評価
+\input{chapter5/chapter5.tex}
+
+% まとめ
+\input{chapter6/chapter6.tex}
+
+% 参考文献
+
+% \bibliographystyle{junsrt}
+% \bibliography{reference}
+
+\input{bibliography.tex}
+
+% 謝辞
+\input{thanks.tex}
+
+\appendix
+% 付録
+%\input{appendix.tex}
+
+\end{document}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/main.toc	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,19 @@
+\contentsline {chapter}{\numberline {第1章}はじめに}{1}% 
+\contentsline {chapter}{\numberline {第2章}ブロックチェーンについて}{2}% 
+\contentsline {section}{\numberline {2.1}P2P}{2}% 
+\contentsline {section}{\numberline {2.2}ブロックとその構造}{2}% 
+\contentsline {section}{\numberline {2.3}トランザクションとその構造}{3}% 
+\contentsline {section}{\numberline {2.4}fork}{4}% 
+\contentsline {chapter}{\numberline {第3章}コンセンサスアルゴリズム}{5}% 
+\contentsline {section}{\numberline {3.1}Proof of Workを用いたコンセンサス}{5}% 
+\contentsline {section}{\numberline {3.2}Paxos}{7}% 
+\contentsline {section}{\numberline {3.3}Paxosによるブロックチェーン}{11}% 
+\contentsline {chapter}{\numberline {第4章}Christieについて}{12}% 
+\contentsline {section}{\numberline {4.1}Christieとは}{12}% 
+\contentsline {section}{\numberline {4.2}プログラミングの例}{13}% 
+\contentsline {section}{\numberline {4.3}TopologyManagerの実装}{13}% 
+\contentsline {section}{\numberline {4.4}Christieにおけるブロックチェーンの実装の利点と欠点}{18}% 
+\contentsline {chapter}{\numberline {第5章}評価}{19}% 
+\contentsline {section}{\numberline {5.1}Torqueとは}{19}% 
+\contentsline {section}{\numberline {5.2}PCクラスタ上でのPaxosの実験}{20}% 
+\contentsline {chapter}{\numberline {第6章}まとめ}{25}% 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/mythesis.sty	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,156 @@
+%
+%  卒業論文スタイルファイル(mythesis.sty)
+%        version 1.0e   
+%
+% ver 1.0e 02/07/2000 since  
+% usage:
+
+%\documentclass[a4j]{jreport}
+%\usepackage{master_paper}
+%
+%
+%\title{卒論タイトル \\ 長い}
+%\etitle{\pLaTeX2e  style test file for Teri's thesis } 
+%\year{平成11年度}
+%\belongto{琉球大学大学工学部\\ 情報工学科}
+%\author{豊平 絵梨}
+%
+%\begin{document}
+%
+%\maketitle
+%
+%%要旨
+%\input{abstract.tex}
+%
+%%目次
+%\tableofcontents
+%							
+%%図目次
+%\listoffigures
+%
+%%表目次
+%\listoftables
+%
+%%第一章
+%\input{chapter1.tex}
+%%chapter1.texの\chapter{}の後ろに次のコマンドを追加してください。
+%%ページカウントがリセットされ、ページ数がアラビア文字になります。
+%%  \pagenumbering{arabic}
+%%第二章
+%\input{chapter2.tex}
+%%第三章
+%\input{chapter3.tex}
+%
+%%付録
+%\input{appendix.tex}
+%
+%%謝辞
+%%\input{thanx.tex}
+%
+%%参考文献
+%\input{biblography.tex}
+%
+%\end{document}
+
+
+%長さ設定
+%\setlength{\topmargin}{-30mm}
+%\addtolength{\oddsidemargin}{-15mm}
+%\addtolength{\textwidth}{60mm}
+
+\topmargin -1in \addtolength{\topmargin}{35mm}
+\headheight 0mm
+\headsep 0mm
+\oddsidemargin -1in \addtolength{\oddsidemargin}{30mm}
+%\evensidemargin -1in \addtolength{\evensidemargin}{8mm}
+\textwidth 160mm
+\textheight 230mm
+%\footheight 0mm
+%\footskip 0mm
+%\pagestyle{empty}
+
+
+%年度
+\def\@year{}
+\def\year#1{\gdef\@year{#1}}
+%英文タイトル
+\def\@etitle{}
+\def\etitle#1{\gdef\@etitle{#1}}
+%アイコン
+\def\@icon{}
+\def\icon#1{\gdef\@icon{#1}}
+%所属
+\def\@belongto{}
+\def\belongto#1{\gdef\@belongto{#1}}
+
+%表紙
+\renewcommand{\maketitle}{%
+\newpage\null
+\thispagestyle{empty}
+\vskip 0cm%
+\begin{center}%
+\let\footnote\thanks
+  {\huge \@year \par}%
+    \vskip 3em%
+  {\Huge \@title \par}%
+    \vskip 1em%
+  {\huge \@etitle \par}%
+    \vskip 8em%
+  {\huge \@icon \par}%
+    \vskip 0.5em%
+  {\huge \@belongto \par}%
+    \vskip 1.0em%
+  {\huge \@author \par}%
+
+\end{center}%
+\par\vskip 1.5em
+}
+
+
+%abstract
+\renewenvironment{abstract}{%
+      \titlepage
+      \thispagestyle{empty}
+      \null\vfil
+      \@beginparpenalty\@lowpenalty
+      {\Huge \bfseries \abstractname}%
+      \begin{center}%
+        \@endparpenalty\@M
+      \end{center}
+}%
+
+
+%目次
+\renewcommand{\tableofcontents}{%
+  \pagestyle{plain}
+  \if@twocolumn\@restonecoltrue\onecolumn
+  \else\@restonecolfalse\fi
+  \chapter*{\contentsname
+    \@mkboth{\contentsname}{\contentsname}%
+  }  \pagenumbering{roman}\@starttoc{toc}%
+  \if@restonecol\twocolumn\fi
+}
+
+%章
+\renewcommand{\chapter}{%
+  \pagestyle{plain}
+  \if@openright\cleardoublepage\else\clearpage\fi
+  \thispagestyle{jpl@in}%
+  \global\@topnum\z@
+  \@afterindentfalse
+  \secdef\@chapter\@schapter}
+
+
+\renewcommand{\prepartname}{} %\renewcommand{\prepartname}{第}
+\renewcommand{\postpartname}{部}
+\renewcommand{\prechaptername}{第}%\renewcommand{\prechaptername}{第}
+\renewcommand{\postchaptername}{章}
+\renewcommand{\contentsname}{目 次}
+\renewcommand{\listfigurename}{図 目 次}
+\renewcommand{\listtablename}{表 目 次}
+\renewcommand{\bibname}{参考文献}
+\renewcommand{\indexname}{索 引}
+\renewcommand{\figurename}{図}
+\renewcommand{\tablename}{表}
+\renewcommand{\appendixname}{付 録}
+\renewcommand{\abstractname}{要 旨}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/src/HelloWorld/HelloWorldCodeGear.java	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,17 @@
+package christie.example.HelloWorld;
+
+import christie.annotation.Take;
+import christie.codegear.CodeGear;
+import christie.codegear.CodeGearManager;
+
+public class HelloWorldCodeGear extends CodeGear {
+
+    @Take
+    String helloWorld;
+
+    @Override
+    protected void run(CodeGearManager cgm) {
+        System.out.print(helloWorld + " ");
+        cgm.setup(new HelloWorldCodeGear());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/src/HelloWorld/HelloWorldCodeGear.java.orig	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,18 @@
+package christie.example.HelloWorld;
+
+import christie.annotation.Take;
+import christie.codegear.CodeGear;
+import christie.codegear.CodeGearManager;
+
+public class HelloWorldCodeGear extends CodeGear {
+
+    @Take
+    String helloWorld;
+
+    @Override
+    protected void run(CodeGearManager cgm) {
+        System.out.print(helloWorld + " ");
+        if(helloWorld.equals("world")) return;
+        cgm.setup(new HelloWorldCodeGear());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/src/HelloWorld/StartHelloWorld.java	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,18 @@
+package christie.example.HelloWorld;
+
+import christie.codegear.CodeGearManager;
+import christie.codegear.StartCodeGear;
+
+public class StartHelloWorld extends StartCodeGear {
+
+    public StartHelloWorld(CodeGearManager cgm) {
+        super(cgm);
+    }
+
+    public static void main(String[] args){
+        CodeGearManager cgm = createCGM(10000);
+        cgm.setup(new HelloWorldCodeGear());
+        cgm.getLocalDGM().put("helloWorld","hello");
+        cgm.getLocalDGM().put("helloWorld","world");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/src/RemoteDataGearManager.java	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,64 @@
+public class RemoteDataGearManager extends DataGearManager{
+    boolean connect = false;
+    Object lock = new Object();
+
+    public RemoteDataGearManager(final String dgmName, final String address, final int port, CodeGearManager cgm) {
+        this.cgm = cgm;
+        RemoteDataGearManager manager = this;
+        new Thread("Connect-" + dgmName) {
+            public void run() {
+                do {
+                    try {
+                        SocketChannel sc = SocketChannel.open(new InetSocketAddress(address, port));
+                        connection = new Connection(sc.socket(), cgm);
+                        connection.name = dgmName;
+                        connection.socket.setTcpNoDelay(true);
+                        
+                        // add lock
+                        synchronized (lock){
+                            connect = true;
+                            lock.notify();
+                        }
+                    } catch (IOException e) {
+                        try {
+                            Thread.sleep(50);
+                        } catch (InterruptedException e1) {
+                            e1.printStackTrace();
+                        }
+                    }
+                } while (!connect);
+                IncomingTcpConnection in = new IncomingTcpConnection(connection);
+                in.setManager(manager);
+                in.setName(dgmName+"-IncomingTcp");
+                in.setPriority(MAX_PRIORITY);
+                in.start();
+                OutboundTcpConnection out = new OutboundTcpConnection(connection);
+                out.setName(dgmName + "-OutboundTcp");
+                out.setPriority(MAX_PRIORITY);
+                out.start();
+            }
+        }.start();
+
+    }
+    
+     public void put(String key, Object data) {
+
+        Command cm = new PutCommand(0, null, key, new DataGear(data));
+        
+        if(!connect) connectWait(); // add wait
+
+        connection.write(cm);
+   }
+    
+    // add method
+    public void connectWait(){
+        synchronized (lock){
+            while(!connect){
+                try {
+                    lock.wait();
+                } catch (InterruptedException e) {
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/src/ring.dot	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,5 @@
+digraph test {
+	node0 -> node1 [label="right"]
+	node1 -> node2 [label="right"]
+	node2 -> node0 [label="right"]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/src/torque-example.sh	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,8 @@
+#!/bin/sh
+#PBS -N ExampleJob
+#PBS -l nodes=10,walltime=00:01:00
+for serv in `cat $PBS_NODEFILE`
+do
+  ssh $serv hostname &
+done
+wait
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_main/thanks.tex	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,25 @@
+%\input{/Users/e155753/.tex/setup}
+
+%%文書開始****************************
+\begin{document} 
+%%**************************************
+
+\chapter*{謝辞}
+\thispagestyle{empty}
+
+%基本的な内容は以下の通り.参考にしてみて下さい.
+%厳密な決まりは無いので,個々人の文体でも構わない.
+%GISゼミや英語ゼミに参加した人はその分も入れておく.
+%順番は重要なので気を付けるように.(提出前に周りの人に確認してもらう.)
+
+\hspace{1zw}
+本研究を行うにあたり, 日頃より多くの助言, ご指導いただきました河野真治准教授に心より感謝申し上げます。
+
+また, 本研究で使用するツールを作成いただいた照屋のぞみ先輩, 本実験の測定にあたり, torqueの環境構築に協力してくださった前城健太郎先輩, 並列信頼研究室の全てのメンバーに深く感謝いたします。最後に、物心両面で支えてくれた両親に深く感謝いたします。
+
+%% \begin{flushright}
+%% % 2019年 3月 赤堀貴一
+%% \end{flushright}
+
+%%文書終了****************************
+\end{document} 
\ No newline at end of file
Binary file final_pre/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_pre/Makefile	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,36 @@
+# Created by Daichi Toma on Nov 16, 2011
+
+TARGET=finalPre
+
+LATEX=platex
+BIBTEX=pbibtex
+DVIPDF=dvipdfmx -p a4
+#You need setting "-l" option if You think You get a landscape PDF
+#DVIPDF_OPT=-l
+
+#Embed fonts
+#DVIPDF_OPT=-f hiraginoEmbed.map
+
+.SUFFIXES: .tex .dvi .pdf
+
+.tex.dvi:
+	$(LATEX) $<
+	$(BIBTEX) $(TARGET)
+	$(LATEX) $<
+	$(LATEX) $<
+
+.dvi.pdf:
+	$(DVIPDF) $(DVIPDF_OPT) $<
+
+
+all: $(TARGET).pdf
+	open $(TARGET).pdf
+
+dvi: $(TARGET).dvi
+
+pdf: $(TARGET).pdf
+
+
+clean:
+	rm -f *.dvi *.aux *.log *.pdf *.ps *.gz *.bbl *.blg *.toc *~ *.core
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_pre/dummy.tex	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,60 @@
+%%% jdummy.def
+%
+\DeclareRelationFont{JY1}{mc}{it}{}{OT1}{cmr}{it}{}
+\DeclareRelationFont{JT1}{mc}{it}{}{OT1}{cmr}{it}{}
+\DeclareFontShape{JY1}{mc}{m}{it}{<5> <6> <7> <8> <9> <10> sgen*min
+    <10.95><12><14.4><17.28><20.74><24.88> min10
+    <-> min10}{}
+\DeclareFontShape{JT1}{mc}{m}{it}{<5> <6> <7> <8> <9> <10> sgen*tmin
+    <10.95><12><14.4><17.28><20.74><24.88> tmin10
+    <-> tmin10}{}
+\DeclareRelationFont{JY1}{mc}{sl}{}{OT1}{cmr}{sl}{}
+\DeclareRelationFont{JT1}{mc}{sl}{}{OT1}{cmr}{sl}{}
+\DeclareFontShape{JY1}{mc}{m}{sl}{<5> <6> <7> <8> <9> <10> sgen*min
+    <10.95><12><14.4><17.28><20.74><24.88> min10
+    <-> min10}{}
+\DeclareFontShape{JT1}{mc}{m}{sl}{<5> <6> <7> <8> <9> <10> sgen*tmin
+    <10.95><12><14.4><17.28><20.74><24.88> tmin10
+    <-> tmin10}{}
+\DeclareRelationFont{JY1}{mc}{sc}{}{OT1}{cmr}{sc}{}
+\DeclareRelationFont{JT1}{mc}{sc}{}{OT1}{cmr}{sc}{}
+\DeclareFontShape{JY1}{mc}{m}{sc}{<5> <6> <7> <8> <9> <10> sgen*min
+    <10.95><12><14.4><17.28><20.74><24.88> min10
+    <-> min10}{}
+\DeclareFontShape{JT1}{mc}{m}{sc}{<5> <6> <7> <8> <9> <10> sgen*tmin
+    <10.95><12><14.4><17.28><20.74><24.88> tmin10
+    <-> tmin10}{}
+\DeclareRelationFont{JY1}{gt}{it}{}{OT1}{cmbx}{it}{}
+\DeclareRelationFont{JT1}{gt}{it}{}{OT1}{cmbx}{it}{}
+\DeclareFontShape{JY1}{mc}{bx}{it}{<5> <6> <7> <8> <9> <10> sgen*goth
+    <10.95><12><14.4><17.28><20.74><24.88> goth10
+    <-> goth10}{}
+\DeclareFontShape{JT1}{mc}{bx}{it}{<5> <6> <7> <8> <9> <10> sgen*tgoth
+    <10.95><12><14.4><17.28><20.74><24.88> tgoth10
+    <-> tgoth10}{}
+\DeclareRelationFont{JY1}{gt}{sl}{}{OT1}{cmbx}{sl}{}
+\DeclareRelationFont{JT1}{gt}{sl}{}{OT1}{cmbx}{sl}{}
+\DeclareFontShape{JY1}{mc}{bx}{sl}{<5> <6> <7> <8> <9> <10> sgen*goth
+    <10.95><12><14.4><17.28><20.74><24.88> goth10
+    <-> goth10}{}
+\DeclareFontShape{JT1}{mc}{bx}{sl}{<5> <6> <7> <8> <9> <10> sgen*tgoth
+    <10.95><12><14.4><17.28><20.74><24.88> tgoth10
+    <-> tgoth10}{}
+\DeclareRelationFont{JY1}{gt}{sc}{}{OT1}{cmbx}{sc}{}
+\DeclareRelationFont{JT1}{gt}{sc}{}{OT1}{cmbx}{sc}{}
+\DeclareFontShape{JY1}{mc}{bx}{sc}{<5> <6> <7> <8> <9> <10> sgen*goth
+    <10.95><12><14.4><17.28><20.74><24.88> goth10
+    <-> goth10}{}
+\DeclareFontShape{JT1}{mc}{bx}{sc}{<5> <6> <7> <8> <9> <10> sgen*tgoth
+    <10.95><12><14.4><17.28><20.74><24.88> tgoth10
+    <-> tgoth10}{}
+\DeclareRelationFont{JY1}{gt}{it}{}{OT1}{cmr}{it}{}
+\DeclareRelationFont{JT1}{gt}{it}{}{OT1}{cmr}{it}{}
+\DeclareFontShape{JY1}{gt}{m}{it}{<5> <6> <7> <8> <9> <10> sgen*goth
+    <10.95><12><14.4><17.28><20.74><24.88> goth10
+    <-> goth10}{}
+\DeclareFontShape{JT1}{gt}{m}{it}{<5> <6> <7> <8> <9> <10> sgen*tgoth
+    <10.95><12><14.4><17.28><20.74><24.88> tgoth10
+    <-> tgoth10}{}
+\endinput
+%%%% end of jdummy.def
Binary file final_pre/images/.DS_Store has changed
Binary file final_pre/images/chain-fork.graffle has changed
Binary file final_pre/images/chain-fork.pdf has changed
Binary file final_pre/images/chain.graffle has changed
Binary file final_pre/images/chain.pdf has changed
Binary file final_pre/images/generator.png has changed
Binary file final_pre/images/kvm.graffle has changed
Binary file final_pre/images/kvm.pdf has changed
Binary file final_pre/images/paxos.graffle has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_pre/images/paxos.pu	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,95 @@
+@startuml
+title Paxos1
+/' ======= style ======= '/
+
+skinparam sequence {
+ArrowColor black
+LifeLineBorderColor black
+
+ParticipantBorderColor black
+ParticipantBackgroundColor white
+ParticipantPadding 20
+}
+
+/' ======= node name ======= '/
+
+/' === proposers === '/
+participant proposer1
+activate proposer1
+participant proposer2
+activate proposer2
+
+/' === acceptors === '/
+participant acceptor1
+activate acceptor1
+participant acceptor2
+activate acceptor2
+participant acceptor3
+activate acceptor3
+
+/' === learners === '/
+participant learner1
+activate learner1
+
+/' ======= uml ======= '/
+
+proposer2 -> acceptor1:Prepare request \n\
+Proposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 --> proposer2:Promise Success\n\
+Proposal(8, 2)
+acceptor2 --> proposer2:Promise Success\n\
+Proposal(8, 2)
+acceptor3 --> proposer2:Promise Success\n\
+Proposal(8, 2)
+
+proposer1 -> acceptor1:Prepare request \n\
+Proposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 --> proposer1:Promise Fail\n\
+Proposal(8, 2)
+acceptor2 --> proposer1
+acceptor3 --> proposer1
+
+proposer2 -> acceptor1:Accept request \n\
+Proposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor2 --> proposer2:Accept \n\
+Proposal(8, 2)
+acceptor2 --> learner1:accept \n\
+Proposal(8, 2)
+
+proposer1 -> acceptor1:Prepare request \n\
+Proposal(13, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 --> proposer1:Promise Success\n\
+Proposal(13, 1)
+acceptor3 --> proposer1:Promise Success\n\
+Proposal(13, 1)
+
+acceptor1 --> proposer2:Accept Fail\n\
+Proposal(13, 1)
+acceptor3 --> proposer2:Accept Fail\n\
+Proposal(13, 1)
+proposer1 -> acceptor1:accept request \n\
+Proposal(13, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+
+acceptor2 --> proposer1:accept \n\
+Proposal(13, 1)
+acceptor2 --> learner1:accept \n\
+Proposal(13, 1)
+
+
+
+@enduml
\ No newline at end of file
Binary file final_pre/images/paxos1.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_pre/images/paxos1.pu	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,74 @@
+@startuml
+title Paxos 1
+/' ======= style ======= '/
+
+skinparam sequence {
+ArrowColor black
+LifeLineBorderColor black
+
+ParticipantBorderColor black
+ParticipantBackgroundColor white
+ParticipantPadding 20
+}
+
+/' ======= node name ======= '/
+
+/' === proposers === '/
+participant proposer1
+activate proposer1
+participant proposer2
+activate proposer2
+
+/' === acceptors === '/
+participant acceptor1
+activate acceptor1
+participant acceptor2
+activate acceptor2
+participant acceptor3
+activate acceptor3
+
+/' === learners === '/
+participant learner1
+activate learner1
+
+/' ======= uml ======= '/
+
+proposer1 -> acceptor1:Prepare request \n\
+Proposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 --> proposer1:Promise Success\n\
+Proposal(7, 1)
+acceptor2 --> proposer1
+acceptor3 --> proposer1
+
+proposer2 -> acceptor1:Prepare request \n\
+Proposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 --> proposer2:Promise Success\n\
+Proposal(8, 2)
+acceptor2 --> proposer2
+acceptor3 --> proposer2
+
+proposer2 -> acceptor1:Accept request \n\
+Proposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 --> proposer2:Accept \n\
+Proposal(8, 2)
+acceptor1 -> learner1:Accept \n\
+Proposal(8, 2)
+
+acceptor2 --> proposer2:Accept \n\
+Proposal(8, 2)
+acceptor2 -> learner1:Accept \n\
+Proposal(8, 2)
+
+learner1 -> learner1:chosen \n\
+Proposal(8, 2)
+
+@enduml
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_pre/images/paxos1.svg	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="728px" preserveAspectRatio="none" style="width:864px;height:728px;" version="1.1" viewBox="0 0 864 728" width="864px" zoomAndPan="magnify"><defs><filter height="300%" id="fc7ra6n53s53c" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="405.5" y="23.5352">Paxos 1</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="68" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="208" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="346" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="482" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="618" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="749" y="78.9766"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="73" x2="73" y1="68.9766" y2="688.1875"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="213" x2="213" y1="68.9766" y2="688.1875"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="351" x2="351" y1="68.9766" y2="688.1875"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="487" x2="487" y1="68.9766" y2="688.1875"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="623" x2="623" y1="68.9766" y2="688.1875"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="754" x2="754" y1="68.9766" y2="688.1875"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="28" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="35" y="54.0234">proposer1</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="28" y="687.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="35" y="707.7227">proposer1</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="168" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="175" y="54.0234">proposer2</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="168" y="687.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="175" y="707.7227">proposer2</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="308" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="315" y="54.0234">acceptor1</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="308" y="687.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="315" y="707.7227">acceptor1</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="444" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="451" y="54.0234">acceptor2</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="444" y="687.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="451" y="707.7227">acceptor2</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="580" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="587" y="54.0234">acceptor3</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="580" y="687.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="587" y="707.7227">acceptor3</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="72" x="716" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="58" x="723" y="54.0234">learner1</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="72" x="716" y="687.1875"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="58" x="723" y="707.7227">learner1</text><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="68" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="208" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="346" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="482" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="618" y="78.9766"/><rect fill="#FFFFFF" filter="url(#fc7ra6n53s53c)" height="600.2109" style="stroke: #000000; stroke-width: 1.0;" width="10" x="749" y="78.9766"/><polygon fill="#000000" points="334,111.5977,344,115.5977,334,119.5977,338,115.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="115.5977" y2="115.5977"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="85" y="95.5449">Prepare request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="85" y="110.8555">Proposal(7, 1)</text><polygon fill="#000000" points="470,125.5977,480,129.5977,470,133.5977,474,129.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="129.5977" y2="129.5977"/><polygon fill="#000000" points="606,139.5977,616,143.5977,606,147.5977,610,143.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="143.5977" y2="143.5977"/><polygon fill="#000000" points="89,184.2188,79,188.2188,89,192.2188,85,188.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="345" y1="188.2188" y2="188.2188"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="95" y="168.166">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="95" y="183.4766">Proposal(7, 1)</text><polygon fill="#000000" points="89,198.2188,79,202.2188,89,206.2188,85,202.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="481" y1="202.2188" y2="202.2188"/><polygon fill="#000000" points="89,212.2188,79,216.2188,89,220.2188,85,216.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="617" y1="216.2188" y2="216.2188"/><polygon fill="#000000" points="334,256.8398,344,260.8398,334,264.8398,338,260.8398" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="340" y1="260.8398" y2="260.8398"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="225" y="240.7871">Prepare request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="225" y="256.0977">Proposal(8, 2)</text><polygon fill="#000000" points="470,270.8398,480,274.8398,470,278.8398,474,274.8398" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="476" y1="274.8398" y2="274.8398"/><polygon fill="#000000" points="606,284.8398,616,288.8398,606,292.8398,610,288.8398" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="612" y1="288.8398" y2="288.8398"/><polygon fill="#000000" points="229,329.4609,219,333.4609,229,337.4609,225,333.4609" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="345" y1="333.4609" y2="333.4609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="235" y="313.4082">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="235" y="328.7188">Proposal(8, 2)</text><polygon fill="#000000" points="229,343.4609,219,347.4609,229,351.4609,225,347.4609" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="481" y1="347.4609" y2="347.4609"/><polygon fill="#000000" points="229,357.4609,219,361.4609,229,365.4609,225,361.4609" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="617" y1="361.4609" y2="361.4609"/><polygon fill="#000000" points="334,402.082,344,406.082,334,410.082,338,406.082" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="340" y1="406.082" y2="406.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="225" y="386.0293">Accept request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="225" y="401.3398">Proposal(8, 2)</text><polygon fill="#000000" points="470,416.082,480,420.082,470,424.082,474,420.082" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="476" y1="420.082" y2="420.082"/><polygon fill="#000000" points="606,430.082,616,434.082,606,438.082,610,434.082" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="612" y1="434.082" y2="434.082"/><polygon fill="#000000" points="229,474.7031,219,478.7031,229,482.7031,225,478.7031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="345" y1="478.7031" y2="478.7031"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="235" y="458.6504">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="235" y="473.9609">Proposal(8, 2)</text><polygon fill="#000000" points="737,519.3242,747,523.3242,737,527.3242,741,523.3242" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="356" x2="743" y1="523.3242" y2="523.3242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="363" y="503.2715">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="363" y="518.582">Proposal(8, 2)</text><polygon fill="#000000" points="229,563.9453,219,567.9453,229,571.9453,225,567.9453" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="481" y1="567.9453" y2="567.9453"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="235" y="547.8926">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="235" y="563.2031">Proposal(8, 2)</text><polygon fill="#000000" points="737,608.5664,747,612.5664,737,616.5664,741,612.5664" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="492" x2="743" y1="612.5664" y2="612.5664"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="499" y="592.5137">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="499" y="607.8242">Proposal(8, 2)</text><line style="stroke: #000000; stroke-width: 1.0;" x1="759" x2="801" y1="657.1875" y2="657.1875"/><line style="stroke: #000000; stroke-width: 1.0;" x1="801" x2="801" y1="657.1875" y2="670.1875"/><line style="stroke: #000000; stroke-width: 1.0;" x1="760" x2="801" y1="670.1875" y2="670.1875"/><polygon fill="#000000" points="770,666.1875,760,670.1875,770,674.1875,766,670.1875" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="766" y="637.1348">chosen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="766" y="652.4453">Proposal(8, 2)</text><!--
+@startuml
+title Paxos 1
+
+skinparam sequence {
+ArrowColor black
+LifeLineBorderColor black
+
+ParticipantBorderColor black
+ParticipantBackgroundColor white
+ParticipantPadding 20
+}
+
+
+participant proposer1
+activate proposer1
+participant proposer2
+activate proposer2
+
+participant acceptor1
+activate acceptor1
+participant acceptor2
+activate acceptor2
+participant acceptor3
+activate acceptor3
+
+participant learner1
+activate learner1
+
+
+proposer1 -> acceptor1:Prepare request \nProposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 - -> proposer1:Promise Success\nProposal(7, 1)
+acceptor2 - -> proposer1
+acceptor3 - -> proposer1
+
+proposer2 -> acceptor1:Prepare request \nProposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 - -> proposer2:Promise Success\nProposal(8, 2)
+acceptor2 - -> proposer2
+acceptor3 - -> proposer2
+
+proposer2 -> acceptor1:Accept request \nProposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 - -> proposer2:Accept \nProposal(8, 2)
+acceptor1 -> learner1:Accept \nProposal(8, 2)
+
+acceptor2 - -> proposer2:Accept \nProposal(8, 2)
+acceptor2 -> learner1:Accept \nProposal(8, 2)
+
+learner1 -> learner1:chosen \nProposal(8, 2)
+
+@enduml
+
+PlantUML version 1.2019.01(Sun Feb 10 00:32:04 JST 2019)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.1+13
+Operating System: Mac OS X
+OS Version: 10.13.6
+Default Encoding: UTF-8
+Language: ja
+Country: JP
+--></g></svg>
\ No newline at end of file
Binary file final_pre/images/paxos2.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_pre/images/paxos2.pu	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,116 @@
+@startuml
+title Paxos 2
+/' ======= style ======= '/
+
+skinparam sequence {
+ArrowColor black
+LifeLineBorderColor black
+
+ParticipantBorderColor black
+ParticipantBackgroundColor white
+ParticipantPadding 20
+}
+
+/' ======= node name ======= '/
+
+/' === proposers === '/
+participant proposer1
+activate proposer1
+participant proposer2
+activate proposer2
+
+/' === acceptors === '/
+participant acceptor1
+activate acceptor1
+participant acceptor2
+activate acceptor2
+participant acceptor3
+activate acceptor3
+
+/' === learners === '/
+participant learner1
+activate learner1
+
+/' ======= uml ======= '/
+
+proposer1 -> acceptor1:Prepare request \n\
+Proposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 --> proposer1:Promise Success\n\
+Proposal(7, 1)
+acceptor2 --> proposer1
+acceptor3 --> proposer1
+
+proposer2 -> acceptor1:Prepare request \n\
+Proposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 --> proposer2:Promise Success\n\
+Proposal(8, 2)
+acceptor2 --> proposer2
+acceptor3 --> proposer2
+
+proposer1 -> acceptor1:Accept request \n\
+Proposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+
+
+acceptor1 --> proposer1:Accept Fail\n\
+Proposal(8, 2)
+acceptor2 --> proposer1
+acceptor3 --> proposer1
+
+
+proposer2 -> acceptor2:Accept request \n\
+Proposal(8, 2)
+
+acceptor2 --> proposer2:Accept \n\
+Proposal(8, 2)
+acceptor2 -> learner1:Accept \n\
+Proposal(8, 2)
+
+proposer1 -> acceptor1:Prepare request \n\
+Proposal(13, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor2 --> proposer1:Promise Success\n\
+But Accepted \n\
+Proposal(8, 2)
+acceptor1 --> proposer1:Promise Success\n\
+Proposal(13, 1)
+acceptor3 --> proposer1
+
+proposer2 -> acceptor1:Accept request \n\
+Proposal(8, 2)
+proposer2 -> acceptor3
+
+acceptor1 --> proposer2:Accept Fail\n\
+Proposal(8, 2)
+acceptor3 --> proposer2
+
+proposer1 -> acceptor1:Accept request \n\
+Proposal(13, 2)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 --> proposer2:Accept \n\
+Proposal(13, 2)
+acceptor1 -> learner1:Accept \n\
+Proposal(13, 2)
+
+
+acceptor2 --> proposer2:Accept \n\
+Proposal(13, 2)
+acceptor2 -> learner1:Accept \n\
+Proposal(13, 2)
+
+learner1 -> learner1:chosen \n\
+Proposal(13, 2)
+
+@enduml
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_pre/images/paxos2.svg	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1316px" preserveAspectRatio="none" style="width:872px;height:1316px;" version="1.1" viewBox="0 0 872 1316" width="872px" zoomAndPan="magnify"><defs><filter height="300%" id="f1ronj4dwj7ktb" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="409.5" y="23.5352">Paxos 2</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="68" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="208" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="346" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="482" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="618" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="749" y="78.9766"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="73" x2="73" y1="68.9766" y2="1275.709"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="213" x2="213" y1="68.9766" y2="1275.709"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="351" x2="351" y1="68.9766" y2="1275.709"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="487" x2="487" y1="68.9766" y2="1275.709"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="623" x2="623" y1="68.9766" y2="1275.709"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="754" x2="754" y1="68.9766" y2="1275.709"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="28" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="35" y="54.0234">proposer1</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="28" y="1274.709"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="35" y="1295.2441">proposer1</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="168" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="175" y="54.0234">proposer2</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="168" y="1274.709"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="175" y="1295.2441">proposer2</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="308" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="315" y="54.0234">acceptor1</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="308" y="1274.709"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="315" y="1295.2441">acceptor1</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="444" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="451" y="54.0234">acceptor2</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="444" y="1274.709"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="451" y="1295.2441">acceptor2</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="580" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="587" y="54.0234">acceptor3</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="580" y="1274.709"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="587" y="1295.2441">acceptor3</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="72" x="716" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="58" x="723" y="54.0234">learner1</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="72" x="716" y="1274.709"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="58" x="723" y="1295.2441">learner1</text><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="68" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="208" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="346" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="482" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="618" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1ronj4dwj7ktb)" height="1187.7324" style="stroke: #000000; stroke-width: 1.0;" width="10" x="749" y="78.9766"/><polygon fill="#000000" points="334,111.5977,344,115.5977,334,119.5977,338,115.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="115.5977" y2="115.5977"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="85" y="95.5449">Prepare request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="85" y="110.8555">Proposal(7, 1)</text><polygon fill="#000000" points="470,125.5977,480,129.5977,470,133.5977,474,129.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="129.5977" y2="129.5977"/><polygon fill="#000000" points="606,139.5977,616,143.5977,606,147.5977,610,143.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="143.5977" y2="143.5977"/><polygon fill="#000000" points="89,184.2188,79,188.2188,89,192.2188,85,188.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="345" y1="188.2188" y2="188.2188"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="95" y="168.166">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="95" y="183.4766">Proposal(7, 1)</text><polygon fill="#000000" points="89,198.2188,79,202.2188,89,206.2188,85,202.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="481" y1="202.2188" y2="202.2188"/><polygon fill="#000000" points="89,212.2188,79,216.2188,89,220.2188,85,216.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="617" y1="216.2188" y2="216.2188"/><polygon fill="#000000" points="334,256.8398,344,260.8398,334,264.8398,338,260.8398" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="340" y1="260.8398" y2="260.8398"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="225" y="240.7871">Prepare request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="225" y="256.0977">Proposal(8, 2)</text><polygon fill="#000000" points="470,270.8398,480,274.8398,470,278.8398,474,274.8398" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="476" y1="274.8398" y2="274.8398"/><polygon fill="#000000" points="606,284.8398,616,288.8398,606,292.8398,610,288.8398" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="612" y1="288.8398" y2="288.8398"/><polygon fill="#000000" points="229,329.4609,219,333.4609,229,337.4609,225,333.4609" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="345" y1="333.4609" y2="333.4609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="235" y="313.4082">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="235" y="328.7188">Proposal(8, 2)</text><polygon fill="#000000" points="229,343.4609,219,347.4609,229,351.4609,225,347.4609" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="481" y1="347.4609" y2="347.4609"/><polygon fill="#000000" points="229,357.4609,219,361.4609,229,365.4609,225,361.4609" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="617" y1="361.4609" y2="361.4609"/><polygon fill="#000000" points="334,402.082,344,406.082,334,410.082,338,406.082" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="406.082" y2="406.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="85" y="386.0293">Accept request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="85" y="401.3398">Proposal(7, 1)</text><polygon fill="#000000" points="470,416.082,480,420.082,470,424.082,474,420.082" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="420.082" y2="420.082"/><polygon fill="#000000" points="606,430.082,616,434.082,606,438.082,610,434.082" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="434.082" y2="434.082"/><polygon fill="#000000" points="89,474.7031,79,478.7031,89,482.7031,85,478.7031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="345" y1="478.7031" y2="478.7031"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="69" x="95" y="458.6504">Accept Fail</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="95" y="473.9609">Proposal(8, 2)</text><polygon fill="#000000" points="89,488.7031,79,492.7031,89,496.7031,85,492.7031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="481" y1="492.7031" y2="492.7031"/><polygon fill="#000000" points="89,502.7031,79,506.7031,89,510.7031,85,506.7031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="617" y1="506.7031" y2="506.7031"/><polygon fill="#000000" points="470,547.3242,480,551.3242,470,555.3242,474,551.3242" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="476" y1="551.3242" y2="551.3242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="225" y="531.2715">Accept request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="225" y="546.582">Proposal(8, 2)</text><polygon fill="#000000" points="229,591.9453,219,595.9453,229,599.9453,225,595.9453" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="481" y1="595.9453" y2="595.9453"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="235" y="575.8926">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="235" y="591.2031">Proposal(8, 2)</text><polygon fill="#000000" points="737,636.5664,747,640.5664,737,644.5664,741,640.5664" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="492" x2="743" y1="640.5664" y2="640.5664"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="499" y="620.5137">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="499" y="635.8242">Proposal(8, 2)</text><polygon fill="#000000" points="334,681.1875,344,685.1875,334,689.1875,338,685.1875" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="685.1875" y2="685.1875"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="85" y="665.1348">Prepare request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="85" y="680.4453">Proposal(13, 1)</text><polygon fill="#000000" points="470,695.1875,480,699.1875,470,703.1875,474,699.1875" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="699.1875" y2="699.1875"/><polygon fill="#000000" points="606,709.1875,616,713.1875,606,717.1875,610,713.1875" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="713.1875" y2="713.1875"/><polygon fill="#000000" points="89,769.1191,79,773.1191,89,777.1191,85,773.1191" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="481" y1="773.1191" y2="773.1191"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="95" y="737.7559">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="82" x="95" y="753.0664">But Accepted</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="95" y="768.377">Proposal(8, 2)</text><polygon fill="#000000" points="89,813.7402,79,817.7402,89,821.7402,85,817.7402" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="345" y1="817.7402" y2="817.7402"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="95" y="797.6875">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="95" y="812.998">Proposal(13, 1)</text><polygon fill="#000000" points="89,827.7402,79,831.7402,89,835.7402,85,831.7402" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="617" y1="831.7402" y2="831.7402"/><polygon fill="#000000" points="334,872.3613,344,876.3613,334,880.3613,338,876.3613" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="340" y1="876.3613" y2="876.3613"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="225" y="856.3086">Accept request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="225" y="871.6191">Proposal(8, 2)</text><polygon fill="#000000" points="606,886.3613,616,890.3613,606,894.3613,610,890.3613" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="612" y1="890.3613" y2="890.3613"/><polygon fill="#000000" points="229,930.9824,219,934.9824,229,938.9824,225,934.9824" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="345" y1="934.9824" y2="934.9824"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="69" x="235" y="914.9297">Accept Fail</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="235" y="930.2402">Proposal(8, 2)</text><polygon fill="#000000" points="229,944.9824,219,948.9824,229,952.9824,225,948.9824" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="617" y1="948.9824" y2="948.9824"/><polygon fill="#000000" points="334,989.6035,344,993.6035,334,997.6035,338,993.6035" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="993.6035" y2="993.6035"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="85" y="973.5508">Accept request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="85" y="988.8613">Proposal(13, 2)</text><polygon fill="#000000" points="470,1003.6035,480,1007.6035,470,1011.6035,474,1007.6035" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="1007.6035" y2="1007.6035"/><polygon fill="#000000" points="606,1017.6035,616,1021.6035,606,1025.6035,610,1021.6035" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="1021.6035" y2="1021.6035"/><polygon fill="#000000" points="229,1062.2246,219,1066.2246,229,1070.2246,225,1066.2246" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="345" y1="1066.2246" y2="1066.2246"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="235" y="1046.1719">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="235" y="1061.4824">Proposal(13, 2)</text><polygon fill="#000000" points="737,1106.8457,747,1110.8457,737,1114.8457,741,1110.8457" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="356" x2="743" y1="1110.8457" y2="1110.8457"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="363" y="1090.793">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="363" y="1106.1035">Proposal(13, 2)</text><polygon fill="#000000" points="229,1151.4668,219,1155.4668,229,1159.4668,225,1155.4668" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="481" y1="1155.4668" y2="1155.4668"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="235" y="1135.4141">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="235" y="1150.7246">Proposal(13, 2)</text><polygon fill="#000000" points="737,1196.0879,747,1200.0879,737,1204.0879,741,1200.0879" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="492" x2="743" y1="1200.0879" y2="1200.0879"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="499" y="1180.0352">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="499" y="1195.3457">Proposal(13, 2)</text><line style="stroke: #000000; stroke-width: 1.0;" x1="759" x2="801" y1="1244.709" y2="1244.709"/><line style="stroke: #000000; stroke-width: 1.0;" x1="801" x2="801" y1="1244.709" y2="1257.709"/><line style="stroke: #000000; stroke-width: 1.0;" x1="760" x2="801" y1="1257.709" y2="1257.709"/><polygon fill="#000000" points="770,1253.709,760,1257.709,770,1261.709,766,1257.709" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="766" y="1224.6563">chosen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="766" y="1239.9668">Proposal(13, 2)</text><!--
+@startuml
+title Paxos 2
+
+skinparam sequence {
+ArrowColor black
+LifeLineBorderColor black
+
+ParticipantBorderColor black
+ParticipantBackgroundColor white
+ParticipantPadding 20
+}
+
+
+participant proposer1
+activate proposer1
+participant proposer2
+activate proposer2
+
+participant acceptor1
+activate acceptor1
+participant acceptor2
+activate acceptor2
+participant acceptor3
+activate acceptor3
+
+participant learner1
+activate learner1
+
+
+proposer1 -> acceptor1:Prepare request \nProposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 - -> proposer1:Promise Success\nProposal(7, 1)
+acceptor2 - -> proposer1
+acceptor3 - -> proposer1
+
+proposer2 -> acceptor1:Prepare request \nProposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 - -> proposer2:Promise Success\nProposal(8, 2)
+acceptor2 - -> proposer2
+acceptor3 - -> proposer2
+
+proposer1 -> acceptor1:Accept request \nProposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+
+
+acceptor1 - -> proposer1:Accept Fail\nProposal(8, 2)
+acceptor2 - -> proposer1
+acceptor3 - -> proposer1
+
+
+proposer2 -> acceptor2:Accept request \nProposal(8, 2)
+
+acceptor2 - -> proposer2:Accept \nProposal(8, 2)
+acceptor2 -> learner1:Accept \nProposal(8, 2)
+
+proposer1 -> acceptor1:Prepare request \nProposal(13, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor2 - -> proposer1:Promise Success\nBut Accepted \nProposal(8, 2)
+acceptor1 - -> proposer1:Promise Success\nProposal(13, 1)
+acceptor3 - -> proposer1
+
+proposer2 -> acceptor1:Accept request \nProposal(8, 2)
+proposer2 -> acceptor3
+
+acceptor1 - -> proposer2:Accept Fail\nProposal(8, 2)
+acceptor3 - -> proposer2
+
+proposer1 -> acceptor1:Accept request \nProposal(13, 2)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 - -> proposer2:Accept \nProposal(13, 2)
+acceptor1 -> learner1:Accept \nProposal(13, 2)
+
+
+acceptor2 - -> proposer2:Accept \nProposal(13, 2)
+acceptor2 -> learner1:Accept \nProposal(13, 2)
+
+learner1 -> learner1:chosen \nProposal(13, 2)
+
+@enduml
+
+PlantUML version 1.2019.01(Sun Feb 10 00:32:04 JST 2019)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.1+13
+Operating System: Mac OS X
+OS Version: 10.13.6
+Default Encoding: UTF-8
+Language: ja
+Country: JP
+--></g></svg>
\ No newline at end of file
Binary file final_pre/images/paxos3.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_pre/images/paxos3.pu	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,112 @@
+@startuml
+title Paxos 3
+/' ======= style ======= '/
+
+skinparam sequence {
+ArrowColor black
+LifeLineBorderColor black
+
+ParticipantBorderColor black
+ParticipantBackgroundColor white
+ParticipantPadding 20
+}
+
+/' ======= node name ======= '/
+
+/' === proposers === '/
+participant proposer1
+activate proposer1
+participant proposer2
+activate proposer2
+
+/' === acceptors === '/
+participant acceptor1
+activate acceptor1
+participant acceptor2
+activate acceptor2
+participant acceptor3
+activate acceptor3
+
+/' === learners === '/
+participant learner1
+activate learner1
+
+/' ======= uml ======= '/
+
+proposer1 -> acceptor1:Prepare request \n\
+Proposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 --> proposer1:Promise Success\n\
+Proposal(7, 1)
+acceptor2 --> proposer1
+acceptor3 --> proposer1
+
+proposer1 -> acceptor3:Accept Request \n\
+Proposal(7, 1)
+acceptor3 --> proposer1: Accept \n\
+Proposal(7,1)
+acceptor3 -> learner1:Accept \n\
+Proposal(7, 1)
+
+
+proposer2 -> acceptor1:Prepare request \n\
+Proposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 --> proposer2:Promise Success\n\
+Proposal(8, 2)
+acceptor2 --> proposer2
+acceptor3 --> proposer2:Promise Success \n\
+But Accepted \n\
+Proposal(7, 1)
+
+proposer1 -> acceptor1:Accept request \n\
+Proposal(7, 1)
+proposer1 -> acceptor2
+
+acceptor1 --> proposer1:Accept Fail\n\
+Promised \n\
+Proposal(8, 2)
+acceptor2 --> proposer1
+
+
+proposer1 -> acceptor1:Prepare request \n\
+Proposal(13, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 --> proposer1:Promise Success\n\
+Proposal(13, 1)
+acceptor2 --> proposer1
+acceptor3 --> proposer1
+
+
+proposer1 -> acceptor1:Accept request \n\
+Proposal(13, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 --> proposer1:Accept \n\
+Proposal(13, 1)
+acceptor1 -> learner1:Accept \n\
+Proposal(13, 1)
+
+acceptor2 --> proposer1:Accept \n\
+Proposal(13, 1)
+acceptor2 -> learner1:Accept \n\
+Proposal(13, 1)
+
+
+
+acceptor3 --> proposer1:Accept \n\
+Proposal(13, 1)
+acceptor3 -> learner1:Accept \n\
+Proposal(13, 1)
+
+learner1 -> learner1:chosen \n\
+Proposal(13, 1)
+
+@enduml
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_pre/images/paxos3.svg	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1275px" preserveAspectRatio="none" style="width:872px;height:1275px;" version="1.1" viewBox="0 0 872 1275" width="872px" zoomAndPan="magnify"><defs><filter height="300%" id="f1jrqdh23d0xyz" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="409.5" y="23.5352">Paxos 3</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="68" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="208" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="346" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="482" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="618" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="749" y="78.9766"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="73" x2="73" y1="68.9766" y2="1235.0195"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="213" x2="213" y1="68.9766" y2="1235.0195"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="351" x2="351" y1="68.9766" y2="1235.0195"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="487" x2="487" y1="68.9766" y2="1235.0195"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="623" x2="623" y1="68.9766" y2="1235.0195"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="754" x2="754" y1="68.9766" y2="1235.0195"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="28" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="35" y="54.0234">proposer1</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="28" y="1234.0195"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="35" y="1254.5547">proposer1</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="168" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="175" y="54.0234">proposer2</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="86" x="168" y="1234.0195"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="175" y="1254.5547">proposer2</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="308" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="315" y="54.0234">acceptor1</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="308" y="1234.0195"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="315" y="1254.5547">acceptor1</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="444" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="451" y="54.0234">acceptor2</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="444" y="1234.0195"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="451" y="1254.5547">acceptor2</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="580" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="587" y="54.0234">acceptor3</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="82" x="580" y="1234.0195"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="68" x="587" y="1254.5547">acceptor3</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="72" x="716" y="33.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="58" x="723" y="54.0234">learner1</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="30.4883" style="stroke: #000000; stroke-width: 1.5;" width="72" x="716" y="1234.0195"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="58" x="723" y="1254.5547">learner1</text><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="68" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="208" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="346" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="482" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="618" y="78.9766"/><rect fill="#FFFFFF" filter="url(#f1jrqdh23d0xyz)" height="1147.043" style="stroke: #000000; stroke-width: 1.0;" width="10" x="749" y="78.9766"/><polygon fill="#000000" points="334,111.5977,344,115.5977,334,119.5977,338,115.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="115.5977" y2="115.5977"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="85" y="95.5449">Prepare request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="85" y="110.8555">Proposal(7, 1)</text><polygon fill="#000000" points="470,125.5977,480,129.5977,470,133.5977,474,129.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="129.5977" y2="129.5977"/><polygon fill="#000000" points="606,139.5977,616,143.5977,606,147.5977,610,143.5977" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="143.5977" y2="143.5977"/><polygon fill="#000000" points="89,184.2188,79,188.2188,89,192.2188,85,188.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="345" y1="188.2188" y2="188.2188"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="95" y="168.166">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="95" y="183.4766">Proposal(7, 1)</text><polygon fill="#000000" points="89,198.2188,79,202.2188,89,206.2188,85,202.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="481" y1="202.2188" y2="202.2188"/><polygon fill="#000000" points="89,212.2188,79,216.2188,89,220.2188,85,216.2188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="617" y1="216.2188" y2="216.2188"/><polygon fill="#000000" points="606,256.8398,616,260.8398,606,264.8398,610,260.8398" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="260.8398" y2="260.8398"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="85" y="240.7871">Accept Request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="85" y="256.0977">Proposal(7, 1)</text><polygon fill="#000000" points="89,301.4609,79,305.4609,89,309.4609,85,305.4609" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="617" y1="305.4609" y2="305.4609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="95" y="285.4082">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="82" x="95" y="300.7188">Proposal(7,1)</text><polygon fill="#000000" points="737,346.082,747,350.082,737,354.082,741,350.082" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="628" x2="743" y1="350.082" y2="350.082"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="635" y="330.0293">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="635" y="345.3398">Proposal(7, 1)</text><polygon fill="#000000" points="334,390.7031,344,394.7031,334,398.7031,338,394.7031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="340" y1="394.7031" y2="394.7031"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="225" y="374.6504">Prepare request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="225" y="389.9609">Proposal(8, 2)</text><polygon fill="#000000" points="470,404.7031,480,408.7031,470,412.7031,474,408.7031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="476" y1="408.7031" y2="408.7031"/><polygon fill="#000000" points="606,418.7031,616,422.7031,606,426.7031,610,422.7031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="218" x2="612" y1="422.7031" y2="422.7031"/><polygon fill="#000000" points="229,463.3242,219,467.3242,229,471.3242,225,467.3242" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="345" y1="467.3242" y2="467.3242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="235" y="447.2715">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="235" y="462.582">Proposal(8, 2)</text><polygon fill="#000000" points="229,477.3242,219,481.3242,229,485.3242,225,481.3242" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="481" y1="481.3242" y2="481.3242"/><polygon fill="#000000" points="229,537.2559,219,541.2559,229,545.2559,225,541.2559" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="223" x2="617" y1="541.2559" y2="541.2559"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="235" y="505.8926">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="82" x="235" y="521.2031">But Accepted</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="235" y="536.5137">Proposal(7, 1)</text><polygon fill="#000000" points="334,581.877,344,585.877,334,589.877,338,585.877" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="585.877" y2="585.877"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="85" y="565.8242">Accept request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="85" y="581.1348">Proposal(7, 1)</text><polygon fill="#000000" points="470,595.877,480,599.877,470,603.877,474,599.877" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="599.877" y2="599.877"/><polygon fill="#000000" points="89,655.8086,79,659.8086,89,663.8086,85,659.8086" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="345" y1="659.8086" y2="659.8086"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="69" x="95" y="624.4453">Accept Fail</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="58" x="95" y="639.7559">Promised</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="95" y="655.0664">Proposal(8, 2)</text><polygon fill="#000000" points="89,669.8086,79,673.8086,89,677.8086,85,673.8086" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="481" y1="673.8086" y2="673.8086"/><polygon fill="#000000" points="334,714.4297,344,718.4297,334,722.4297,338,718.4297" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="718.4297" y2="718.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="85" y="698.377">Prepare request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="85" y="713.6875">Proposal(13, 1)</text><polygon fill="#000000" points="470,728.4297,480,732.4297,470,736.4297,474,732.4297" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="732.4297" y2="732.4297"/><polygon fill="#000000" points="606,742.4297,616,746.4297,606,750.4297,610,746.4297" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="746.4297" y2="746.4297"/><polygon fill="#000000" points="89,787.0508,79,791.0508,89,795.0508,85,791.0508" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="345" y1="791.0508" y2="791.0508"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="95" y="770.998">Promise Success</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="95" y="786.3086">Proposal(13, 1)</text><polygon fill="#000000" points="89,801.0508,79,805.0508,89,809.0508,85,805.0508" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="481" y1="805.0508" y2="805.0508"/><polygon fill="#000000" points="89,815.0508,79,819.0508,89,823.0508,85,819.0508" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="617" y1="819.0508" y2="819.0508"/><polygon fill="#000000" points="334,859.6719,344,863.6719,334,867.6719,338,863.6719" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="340" y1="863.6719" y2="863.6719"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="85" y="843.6191">Accept request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="85" y="858.9297">Proposal(13, 1)</text><polygon fill="#000000" points="470,873.6719,480,877.6719,470,881.6719,474,877.6719" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="476" y1="877.6719" y2="877.6719"/><polygon fill="#000000" points="606,887.6719,616,891.6719,606,895.6719,610,891.6719" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="78" x2="612" y1="891.6719" y2="891.6719"/><polygon fill="#000000" points="89,932.293,79,936.293,89,940.293,85,936.293" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="345" y1="936.293" y2="936.293"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="95" y="916.2402">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="95" y="931.5508">Proposal(13, 1)</text><polygon fill="#000000" points="737,976.9141,747,980.9141,737,984.9141,741,980.9141" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="356" x2="743" y1="980.9141" y2="980.9141"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="363" y="960.8613">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="363" y="976.1719">Proposal(13, 1)</text><polygon fill="#000000" points="89,1021.5352,79,1025.5352,89,1029.5352,85,1025.5352" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="481" y1="1025.5352" y2="1025.5352"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="95" y="1005.4824">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="95" y="1020.793">Proposal(13, 1)</text><polygon fill="#000000" points="737,1066.1563,747,1070.1563,737,1074.1563,741,1070.1563" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="492" x2="743" y1="1070.1563" y2="1070.1563"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="499" y="1050.1035">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="499" y="1065.4141">Proposal(13, 1)</text><polygon fill="#000000" points="89,1110.7773,79,1114.7773,89,1118.7773,85,1114.7773" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="83" x2="617" y1="1114.7773" y2="1114.7773"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="95" y="1094.7246">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="95" y="1110.0352">Proposal(13, 1)</text><polygon fill="#000000" points="737,1155.3984,747,1159.3984,737,1163.3984,741,1159.3984" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="628" x2="743" y1="1159.3984" y2="1159.3984"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="635" y="1139.3457">Accept</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="635" y="1154.6563">Proposal(13, 1)</text><line style="stroke: #000000; stroke-width: 1.0;" x1="759" x2="801" y1="1204.0195" y2="1204.0195"/><line style="stroke: #000000; stroke-width: 1.0;" x1="801" x2="801" y1="1204.0195" y2="1217.0195"/><line style="stroke: #000000; stroke-width: 1.0;" x1="760" x2="801" y1="1217.0195" y2="1217.0195"/><polygon fill="#000000" points="770,1213.0195,760,1217.0195,770,1221.0195,766,1217.0195" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="766" y="1183.9668">chosen</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="766" y="1199.2773">Proposal(13, 1)</text><!--
+@startuml
+title Paxos 3
+
+skinparam sequence {
+ArrowColor black
+LifeLineBorderColor black
+
+ParticipantBorderColor black
+ParticipantBackgroundColor white
+ParticipantPadding 20
+}
+
+
+participant proposer1
+activate proposer1
+participant proposer2
+activate proposer2
+
+participant acceptor1
+activate acceptor1
+participant acceptor2
+activate acceptor2
+participant acceptor3
+activate acceptor3
+
+participant learner1
+activate learner1
+
+
+proposer1 -> acceptor1:Prepare request \nProposal(7, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 - -> proposer1:Promise Success\nProposal(7, 1)
+acceptor2 - -> proposer1
+acceptor3 - -> proposer1
+
+proposer1 -> acceptor3:Accept Request \nProposal(7, 1)
+acceptor3 - -> proposer1: Accept \nProposal(7,1)
+acceptor3 -> learner1:Accept \nProposal(7, 1)
+
+
+proposer2 -> acceptor1:Prepare request \nProposal(8, 2)
+proposer2 -> acceptor2
+proposer2 -> acceptor3
+
+acceptor1 - -> proposer2:Promise Success\nProposal(8, 2)
+acceptor2 - -> proposer2
+acceptor3 - -> proposer2:Promise Success \nBut Accepted \nProposal(7, 1)
+
+proposer1 -> acceptor1:Accept request \nProposal(7, 1)
+proposer1 -> acceptor2
+
+acceptor1 - -> proposer1:Accept Fail\nPromised \nProposal(8, 2)
+acceptor2 - -> proposer1
+
+
+proposer1 -> acceptor1:Prepare request \nProposal(13, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 - -> proposer1:Promise Success\nProposal(13, 1)
+acceptor2 - -> proposer1
+acceptor3 - -> proposer1
+
+
+proposer1 -> acceptor1:Accept request \nProposal(13, 1)
+proposer1 -> acceptor2
+proposer1 -> acceptor3
+
+acceptor1 - -> proposer1:Accept \nProposal(13, 1)
+acceptor1 -> learner1:Accept \nProposal(13, 1)
+
+acceptor2 - -> proposer1:Accept \nProposal(13, 1)
+acceptor2 -> learner1:Accept \nProposal(13, 1)
+
+
+
+acceptor3 - -> proposer1:Accept \nProposal(13, 1)
+acceptor3 -> learner1:Accept \nProposal(13, 1)
+
+learner1 -> learner1:chosen \nProposal(13, 1)
+
+@enduml
+
+PlantUML version 1.2019.01(Sun Feb 10 00:32:04 JST 2019)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.1+13
+Operating System: Mac OS X
+OS Version: 10.13.6
+Default Encoding: UTF-8
+Language: ja
+Country: JP
+--></g></svg>
\ No newline at end of file
Binary file final_pre/images/proof-of-work-fork.graffle has changed
Binary file final_pre/images/proof-of-work-fork.pdf has changed
Binary file final_pre/images/proof-of-work.graffle has changed
Binary file final_pre/images/proof-of-work.pdf has changed
Binary file final_pre/images/ring.pdf has changed
Binary file final_pre/images/target.png has changed
Binary file final_pre/images/targetfig.png has changed
Binary file final_pre/images/timeline.png has changed
Binary file final_pre/images/名称未設定3.graffle has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_pre/jlisting.sty	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,216 @@
+\NeedsTeXFormat{LaTeX2e}
+\def\filedate{2006/02/20}
+\def\fileversion{0.2}
+\ProvidesPackage{jlisting}[\filedate\space\fileversion\space(Thor)]
+%
+\newcount\lst@nextchar
+\let\lst@@ProcessSpace\lst@ProcessSpace
+\def\lst@ProcessSpace#1{%
+   \lst@check@chartype{#1}%
+      \lst@@ProcessSpace
+      \lst@whitespacetrue}
+\let\lst@@ProcessLetter\lst@ProcessLetter
+\def\lst@ProcessLetter#1#2{%
+   \lst@check@chartype{#2}%
+      {\lst@@ProcessLetter{#1}}%
+      \relax}
+\let\lst@@ProcessDigit\lst@ProcessDigit
+\def\lst@ProcessDigit#1#2{%
+   \lst@check@chartype{#2}%
+      {\lst@@ProcessDigit{#1}}%
+      \relax}
+\let\lst@@ProcessOther\lst@ProcessOther
+\def\lst@ProcessOther#1#2{%
+   \lst@check@chartype{#2}%
+      {\lst@@ProcessOther{#1}}%
+      \relax}
+\let\lst@@ProcessTabulator\lst@ProcessTabulator
+\def\lst@ProcessTabulator#1{%
+   \lst@check@chartype{#1}%
+      \lst@@ProcessTabulator
+      \relax}
+\def\lst@check@chartype#1#2#3{%
+   \edef\@tempa{\lst@nextchar=`\string#1\relax}%
+   \afterassignment\remove@to@nnil
+   \@tempa\@nnil
+   #2%
+   \ifnum\lst@nextchar<\@cclvi
+      #3%
+   \else
+      \lst@ifletter \else \lst@OutputOther \fi
+      \lst@whitespacefalse
+      \expandafter\lst@AppendJchar
+   \fi
+   #1}
+\def\lst@AppendJchar#1#2{%
+   \lst@check@chartype{#2}%
+      {\advance\lst@length\@ne\lst@Append{#1}}%
+      \relax}
+\def\lst@check@chartype@BOL#1{%
+   \edef\@tempa{\lst@nextchar=`\string#1\relax}%
+   \afterassignment\remove@to@nnil
+   \@tempa\@nnil
+   \ifnum\lst@nextchar<\@cclvi\else
+      \lst@whitespacefalse
+      \expandafter\lst@AppendJchar
+   \fi
+   #1}
+\def\lst@InputListing#1{%
+   \begingroup
+      \lsthk@PreSet \gdef\lst@intname{#1}%
+      \expandafter\lstset\expandafter{\lst@set}%
+      \lsthk@DisplayStyle
+      \catcode\active=\active
+      \lst@Init\relax \let\lst@gobble\z@
+      \lst@SkipToFirst
+      \lst@ifprint \def\lst@next{\lst@get@filecontents{#1}}%
+      \else        \let\lst@next\@empty
+      \fi
+      \lst@next
+      \lst@DeInit
+   \endgroup}
+\newread\lst@inputfile
+\def\lst@get@filecontents#1{%
+   \let\lst@filecontents\@empty
+   \openin\lst@inputfile=#1\relax
+   \let\@lst@get@filecontents@prevline\relax
+   \lst@get@filecontents@loop
+   \closein\lst@inputfile
+   \lst@filecontents\empty}
+\def\lst@get@filecontents@loop{%
+   \read\lst@inputfile to\@lst@get@filecontents@currline
+   \ifx\@lst@get@filecontents@prevline\relax\else
+      \expandafter\expandafter\expandafter\def
+      \expandafter\expandafter\expandafter\lst@filecontents
+      \expandafter\expandafter\expandafter{%
+         \expandafter\lst@filecontents\@lst@get@filecontents@prevline}%
+   \fi
+   \let\@lst@get@filecontents@prevline\@lst@get@filecontents@currline
+   \ifeof\lst@inputfile\else
+      \expandafter\lst@get@filecontents@loop
+   \fi}
+%%% [$B$3$N=hM}$b!$AjEv6/0z$G$9!%(B]
+\def\lst@BOLGobble{%
+   \ifnum\lst@gobble>\z@
+      \@tempcnta\lst@gobble\relax
+      \expandafter\lst@BOLGobble@
+   \else
+      \expandafter\lst@check@chartype@BOL
+   \fi}
+\def\lst@BOLGobble@#1{%
+   \let\lst@next#1%
+   \ifx \lst@next\relax\else
+   \ifx \lst@next\lst@MProcessListing\else
+   \ifx \lst@next\lst@ProcessFormFeed\else
+   \ifx \lst@next\lstenv@backslash
+      \let\lst@next\lstenv@BOLGobble@@
+   \else
+      \let\lst@next\lst@BOLGobble@@
+      \ifx #1\lst@ProcessTabulator
+         \advance\@tempcnta-\lst@tabsize\relax
+         \ifnum\@tempcnta<\z@
+            \lst@length-\@tempcnta \lst@PreGotoTabStop
+         \fi
+      \else
+         \edef\@tempa{\lst@nextchar=`\string#1\relax}%
+         \@tempa
+         \ifnum\lst@nextchar<\@cclvi\else
+            \advance\@tempcnta\m@ne
+         \fi
+         \advance\@tempcnta\m@ne
+      \fi
+   \fi \fi \fi \fi
+   \lst@next}
+\def\lst@BOLGobble@@{%
+   \ifnum\@tempcnta>\z@
+      \expandafter\lst@BOLGobble@
+   \else
+      \expandafter\lst@check@chartype@BOL
+   \fi
+}
+%
+%    \begin{$B=$@5;v9`(B}{1.3}
+% $B$A$g$C$H$7$?=$@5(B
+\gdef\lst@breakProcessOther#1{\lst@ProcessOther#1}
+% $B%=!<%9%3!<%IL\<!$K$*$1$kJ8;z$HHV9f$N6u$-(B
+\let \l@lstlisting = \l@figure
+% $B%-%c%W%7%g%s$H%=!<%9%3!<%IL\<!$KBP$9$kF|K\8lBP1~(B
+\def\lstlistingname{$B%=!<%9%3!<%I(B}
+\def\lstlistlistingname{$B%=!<%9%3!<%IL\<!(B}
+%    \end{$B=$@5;v9`(B}
+\endinput
+% 
+%#!platex
+\documentclass[papersize]{jsarticle}
+% Macros
+\IfFileExists{dvipdfmx.def}{%
+  \usepackage[dvipdfmx]{color,graphicx}%
+}{%
+  \usepackage[dvipdfm]{color,graphicx}%
+}
+\usepackage{listings}[2004/09/07]
+\usepackage{jlisting}[2006/02/20]
+\usepackage{url} 
+\usepackage{verbatim}
+
+\makeatletter
+% Original Macros
+\def\email#1{\gdef\@email{\texttt{#1}}}
+\def\homepage#1{\gdef\@homepage{\texttt{#1}}}
+\def\mac#1{\textsf{#1}}
+\def\URL#1{\texttt{#1}}
+\def\src#1{\texttt{#1}}
+
+% Dvipdfmx.def 
+\def\dvipdfmxDefi{http://tex.dante.jp/ok/dvipdfmx/}
+\def\dvipdfmxDefii{http://ftp.ktug.or.kr/KTUG/dvipdfmx/contrib/latex/}
+
+\IfFileExists{dvipdfmx.def}{%
+   \let \IfDvipdfmxDef = \empty \relax}{%
+   \typeout{^^Jget dvipdfmx.def at \dvipdfmxDefi^^J
+            or \dvipdfmxDefii^^J}%
+   \def\IfDvipdfmxDef{Get \src{dvipdfmx.def} at \URL \dvipdfmxDefii \\ 
+      or \URL \dvipdfmxDefi.}%
+}
+
+% Author Info
+\author   {Th\'or Watanabe\thanks \@email \space \thanks \@homepage}
+\title    {\mac{jlisting.sty}\\
+          ---Japanese Localized Patch File of \mac{listings}---}
+\email    {thor@tex.dante.jp}
+\homepage {http://tex.dante.jp/typo/}
+\date     {2006/02/20}
+
+\makeatother
+
+\begin{document}
+\maketitle
+%\IfDvipdfmxDef
+
+\section{$B$A$g$C$H$7$?@bL@(B}% Short Description
+ 
+$B1|B<@2I';a$N7G<(HD$N!VHFMQE*$JIbF0BN!W$H$$$&0lO"$N=q$-9~$_$+$i(B
+$BE>:\$7$^$7$?!#(B
+
+\begin{quote}
+ \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21172.html}\\
+ \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21184.html}\\
+ \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21189.html}\\
+ \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21197.html}
+\end{quote}
+
+ Copyright $B$O5H1JE/H~;a$K$"$k$N$@$H;W$$$^$9!%(B
+ 
+\section{$B99?7MzNr(B}% ChageLogs
+
+\begin{description}
+ \item[ver.~0.1 (2004/03/24)]
+   $B$H$j$"$($:8x3+!%(B
+ \item[ver.~0.2 (2006/02/20)] 
+   \verb|\lst@breakProcessOther| $BL?Na$NDj5A$NDI2C!%(B
+\end{description}
+
+\section{$B%=!<%9%3!<%I(B}
+\par\narrowbaselines
+\verbatiminput{jlisting.sty}
+\end{document}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_pre/picins.sty	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,578 @@
+%       PICINS.STY --- Style File zum Einbinden von Bildern
+%       Autor:  J. Bleser, E. Lang
+%       Hochschulrechenzentrum
+%       Technische Hochschule Darmstadt
+%       !!!  Dieses Style-File ist urheberrechtlich geschuetzt  !!!
+%       !!!  Aenderungen nur mit Zustimmung der Autoren         !!!
+\message{Option `picins' Version 3.0  Sep. 1992, TH Darmstadt/HRZ}
+\newbox\@BILD%
+\newbox\@TEXT%
+\newdimen\d@breite%
+\newdimen\d@hoehe%
+\newdimen\d@xoff%
+\newdimen\d@yoff%
+\newdimen\d@shad%
+\newdimen\d@dash%
+\newdimen\d@boxl%
+\newdimen\d@pichskip%
+\newdimen\d@tmp
+\newdimen\d@tmpa
+\newdimen\d@bskip
+\newdimen\hsiz@%
+\newdimen\p@getot@l%
+\newcount\c@breite
+\newcount\c@hoehe
+\newcount\c@xoff
+\newcount\c@yoff
+\newcount\c@pos
+\newcount\c@shad
+\newcount\c@dash
+\newcount\c@boxl
+\newcount\c@zeilen%
+\newcount\@changemode%
+\newcount\c@piccaption%
+\newcount\c@piccaptionpos%
+\newcount\c@picpos
+\newcount\c@whole%
+\newcount\c@half%
+\newcount\c@tmp
+\newcount\c@tmpa
+\newcount\c@tmpb
+\newcount\c@tmpc
+\newcount\c@tmpd
+\newskip\d@leftskip
+\newif\if@list \@listfalse%
+\newif\if@offset%
+
+
+\c@piccaptionpos=1%
+\c@picpos=0
+\d@shad=4pt%
+\d@dash=4pt%
+\d@boxl=10pt%
+\d@pichskip=1em%
+\@changemode=0%
+\def\@captype{figure}%
+\let\old@par=\par%
+
+\def\pichskip#1{\d@pichskip #1\relax}
+
+
+\def\shadowthickness#1{\d@shad #1\relax}
+
+
+\def\dashlength#1{\d@dash #1\relax}
+
+
+\def\boxlength#1{\d@boxl #1\relax}
+
+
+\def\picchangemode{\@changemode=1}%
+\def\nopicchangemode{\@changemode=0}%
+
+
+\def\piccaptionoutside{\c@piccaptionpos=1}%
+\def\piccaptioninside{\c@piccaptionpos=2}%
+\def\piccaptionside{\c@piccaptionpos=3}%
+\def\piccaptiontopside{\c@piccaptionpos=4}%
+
+\def\piccaption{\@ifnextchar [{\@piccaption}{\@piccaption[]}}
+\def\@piccaption[#1]#2{\c@piccaption=1\def\sh@rtf@rm{#1}\def\capti@nt@xt{#2}}
+\def\make@piccaption{%
+ \hsiz@\d@breite%
+ \ifnum\c@piccaptionpos=2%
+   \advance\hsiz@ -2\fboxsep%
+ \fi%
+ \ifnum\c@piccaptionpos>2%
+   \hsiz@\hsize\advance\hsiz@-\d@breite\advance\hsiz@-\d@pichskip%
+ \fi%
+ \setbox\@TEXT=\vbox{\hsize\hsiz@\caption[\sh@rtf@rm]{\capti@nt@xt}}%
+}
+
+
+
+\def\newcaption{\refstepcounter\@captype\@dblarg{\@newcaption\@captype}}
+\long\def\@newcaption#1[#2]#3{%
+  \old@par%
+  \addcontentsline{\csname ext@#1\endcsname }{#1}%
+    {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}
+  \begingroup\@parboxrestore\normalsize%
+    \@newmakecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\old@par%
+  \endgroup%
+}
+\long\def\@newmakecaption#1#2{%
+  \vskip 10pt%
+  \setbox\@tempboxa \hbox {#1: #2}%
+  \ifdim \wd\@tempboxa >\hsize%
+    \setbox0=\hbox{#1: }\dimen0=\hsize\advance\dimen0 by-\wd0
+    \setbox1=\vtop{\hsize=\dimen0 #2}
+    \hbox{\box0 \box1}
+    \par
+  \else \hbox to\hsize {\hfil \box \@tempboxa \hfil}
+  \fi
+}
+
+
+
+
+
+\def\parpic{%
+  \@ifnextchar ({\iparpic}{\iparpic(0pt,0pt)}
+}
+\def\iparpic(#1,#2){%
+  \@ifnextchar ({\@offsettrue\iiparpic(#1,#2)}%
+                {\@offsetfalse\iiparpic(#1,#2)(0pt,0pt)}
+}
+\def\iiparpic(#1,#2)(#3,#4){%
+  \@ifnextchar [{\iiiparpic(#1,#2)(#3,#4)}{\iiiparpic(#1,#2)(#3,#4)[l]}
+}
+\def\iiiparpic(#1,#2)(#3,#4)[#5]{%
+  \@ifnextchar [{\ivparpic(#1,#2)(#3,#4)[#5]}{\ivparpic(#1,#2)(#3,#4)[#5][]}
+}
+\def\ivparpic(#1,#2)(#3,#4)[#5][#6]#7{%
+ \let\par=\old@par\par%
+ \hangindent0pt\hangafter1%
+ \setbox\@BILD=\hbox{#7}%
+ \d@breite=#1\d@breite=\the\d@breite%
+ \ifdim\d@breite=0pt\d@breite=\wd\@BILD\fi%
+ \c@breite=\d@breite\divide\c@breite by65536%
+ \multiply\c@piccaption\c@piccaptionpos%
+ \d@hoehe=#2\d@hoehe=\the\d@hoehe%
+ \ifdim\d@hoehe=0pt\d@hoehe=\ht\@BILD\advance\d@hoehe by\dp\@BILD\fi%
+ \c@hoehe=\d@hoehe\divide\c@hoehe by65536%
+ \d@xoff=#3\c@xoff=\d@xoff\divide\c@xoff by65536%
+ \d@yoff=\d@hoehe%
+ \advance\d@yoff by-#4\c@yoff=\d@yoff\divide\c@yoff by65536%
+ \c@pos=1\unitlength1pt%
+ \if@offset%
+   \setbox\@BILD=\hbox{%
+     \begin{picture}(\c@breite,\c@hoehe)%
+       \put(0,0){\makebox(\c@breite,\c@hoehe){}}%
+       \put(\c@xoff,\c@yoff){\box\@BILD}%
+     \end{picture}%
+   }%
+ \else%
+   \setbox\@BILD=\hbox{%
+     \begin{picture}(\c@breite,\c@hoehe)%
+       \put(0,0){\makebox(\c@breite,\c@hoehe)[#6]{\box\@BILD}}%
+     \end{picture}%
+   }%
+ \fi%
+ \ifnum\c@piccaption=2%
+   \make@piccaption%
+   \advance\d@hoehe\ht\@TEXT\advance\d@hoehe\dp\@TEXT%
+   \c@hoehe=\d@hoehe\divide\c@hoehe by65536%
+   \setbox\@BILD=\vbox{\box\@BILD\vspace{-5pt}%
+                       \hbox{\hspace{\fboxsep}\box\@TEXT}%
+                       \vspace{4pt}}%
+ \fi%
+ \@tfor\@tempa := #5\do{%
+   \if\@tempa f\setbox\@BILD=\hbox{\Rahmen(\c@breite,\c@hoehe){\box\@BILD}}\fi%
+   \if\@tempa s\setbox\@BILD=\hbox{\Schatten(\c@breite,\c@hoehe){\box\@BILD}}\fi%
+   \if\@tempa o\setbox\@BILD=\hbox{\Oval(\c@breite,\c@hoehe){\box\@BILD}}\fi%
+   \if\@tempa d\setbox\@BILD=\hbox{\Strich(\c@breite,\c@hoehe){\box\@BILD}}\fi%
+   \if\@tempa x\setbox\@BILD=\hbox{\Kasten(\c@breite,\c@hoehe){\box\@BILD}}\fi%
+   \if\@tempa l\c@pos=1\fi%
+   \if\@tempa r\c@pos=2\fi%
+ }%
+ \ifnum\c@piccaption=1%
+   \make@piccaption%
+   \advance\d@hoehe\ht\@TEXT\advance\d@hoehe\dp\@TEXT%
+   \c@hoehe=\d@hoehe\divide\c@hoehe by65536%
+   \setbox\@BILD=\vbox{\box\@BILD\vspace{-5pt}\hbox{\box\@TEXT}\vspace{4pt}}%
+ \fi%
+ \ifodd\count0\c@picpos=0\else\c@picpos=\@changemode\fi%
+ \pagetotal=\the\pagetotal%
+ \d@tmp=\pagegoal\advance\d@tmp by-\pagetotal\advance\d@tmp by-\baselineskip%
+ \ifdim\d@hoehe>\d@tmp%
+   \vskip 0pt plus\d@hoehe\relax\pagebreak[3]\vskip 0pt plus-\d@hoehe\relax%
+   \ifnum\c@picpos=1\c@picpos=0\else\c@picpos=\@changemode\fi%
+ \fi%
+ \ifnum\c@picpos=1\ifnum\c@pos=1\c@pos=2\else\c@pos=1\fi\fi%
+ \ifnum\@listdepth>0
+   \@listtrue\parshape 0%
+   \advance\hsize -\rightmargin%
+   \d@leftskip \leftskip%
+   \leftskip \@totalleftmargin%
+   \if@inlabel\rule{\linewidth}{0pt}\vskip-\baselineskip\relax\fi%
+ \else\@listfalse\medskip%
+ \fi%
+ \if@list\d@tmpa=\linewidth\else\d@tmpa=\hsize\fi%
+ \ifnum\c@piccaption=3%
+   \make@piccaption%
+   \d@tmp\ht\@TEXT\advance\d@tmp\dp\@TEXT%
+   \ifdim\d@hoehe>\d@tmp%
+     \setbox\@TEXT=\vbox to\d@hoehe{\vfill\box\@TEXT\vspace{.2\baselineskip}\vfill}%
+   \else%
+     \setbox\@BILD=\vbox to\d@tmp{\vfill\box\@BILD\vfill}%
+     \d@hoehe\d@tmp%
+   \fi%
+ \fi%
+ \ifnum\c@piccaption=4%
+   \make@piccaption%
+   \d@tmp\ht\@TEXT\advance\d@tmp\dp\@TEXT%
+   \setbox\@TEXT=\vbox to\d@hoehe{\vspace{-10pt}\box\@TEXT\vfil}%
+   \advance\d@hoehe-\d@tmp%
+ \fi%
+ \ifnum\c@pos=1\d@tmpa=0pt%
+   \ifnum\c@piccaption>2%
+      \setbox\@BILD=\hbox{\box\@BILD\hspace{\d@pichskip}\hbox{\box\@TEXT}}%
+   \fi%
+ \else\advance\d@tmpa by-\wd\@BILD\d@breite=-\d@breite%
+   \ifnum\c@piccaption>2%
+      \d@tmpa=0pt%
+      \setbox\@BILD=\hbox{\hbox{\box\@TEXT}\hspace{\d@pichskip}\box\@BILD}%
+   \fi%
+ \fi%
+ \p@getot@l\the\pagetotal%
+ \d@bskip\d@hoehe\advance\d@bskip by\parskip\advance\d@bskip by.3\baselineskip%
+ {\noindent\hspace*{\d@tmpa}\relax%
+  \box\@BILD\nopagebreak\vskip-\d@bskip\relax\nopagebreak}%
+ \d@tmp=-\d@hoehe\divide\d@tmp by\baselineskip%
+ \c@zeilen=\d@tmp\advance\c@zeilen by-1%
+ \ifdim\d@breite<0pt\advance\d@breite by-\d@pichskip%
+ \else\advance\d@breite by\d@pichskip%
+ \fi%
+ \hangindent=\d@breite%
+ \hangafter=\c@zeilen%
+ \let\par=\x@par%
+ \ifnum\c@piccaption=3%
+    \hangindent0pt\hangafter1\let\par=\old@par%
+    \vskip\d@hoehe\vskip.2\baselineskip%
+ \fi%
+ \c@piccaption=0%
+}
+
+
+
+
+\newdimen\ptoti
+\newdimen\ptotii
+\def\x@par{%
+ \ptoti\pagetotal%
+ \old@par%
+ \ptotii\pagetotal%
+ \ifdim\ptoti=\ptotii%
+   \d@tmp\d@hoehe%
+ \else%
+   \d@tmp\baselineskip%
+   \multiply\d@tmp by\prevgraf%
+   \advance\d@tmp by\parskip%
+   \global\advance\d@hoehe by-\d@tmp\d@tmp=\d@hoehe%
+ \fi%
+ \ifdim\d@hoehe>0pt%
+   \divide\d@tmp by\baselineskip\c@zeilen=-\d@tmp\advance\c@zeilen by-1%
+   \c@zeilen=\the\c@zeilen%
+ \else\c@zeilen=0
+ \fi
+ \ifnum\c@zeilen<0\hangafter=\c@zeilen\hangindent=\d@breite%
+ \else\let\par=\old@par%
+   \hangindent 0pt%
+   \leftskip \d@leftskip%
+   \if@list\parshape \@ne \@totalleftmargin \linewidth%
+     \advance\hsize \rightmargin%
+   \fi%
+ \fi%
+}
+
+
+\def\picskip#1{%
+ \let\par=\old@par%
+ \par%
+ \pagetotal\the\pagetotal%
+ \c@tmp=#1\relax%
+ \ifnum\c@tmp=0%
+   \d@tmp\baselineskip\multiply\d@tmp by\prevgraf\advance\d@tmp\parskip%
+   \ifdim\p@getot@l<\pagetotal
+     \advance\d@hoehe by-\d@tmp\advance\d@hoehe by1ex%
+     \ifdim\d@hoehe>0pt\vspace*{\d@hoehe}\fi%
+   \fi%
+   \ifdim\p@getot@l=\pagetotal%
+     \advance\d@hoehe by-\d@tmp\advance\d@hoehe by1ex%
+     \ifdim\d@hoehe>0pt\vspace*{\d@hoehe}\fi%
+   \fi%
+ \else\hangafter=-\c@tmp\hangindent=\d@breite%
+ \fi%
+ \leftskip \d@leftskip%
+ \if@list\parshape \@ne \@totalleftmargin \linewidth%
+   \advance\hsize \rightmargin%
+ \fi%
+}
+
+
+
+
+
+
+\def\hpic{%
+  \@ifnextchar ({\ihpic}{\ihpic(0pt,0pt)}
+}
+\def\ihpic(#1,#2){%
+  \@ifnextchar ({\@offsettrue\iihpic(#1,#2)}%
+                {\@offsetfalse\iihpic(#1,#2)(0pt,0pt)}
+}
+\def\iihpic(#1,#2)(#3,#4){%
+  \@ifnextchar [{\iiihpic(#1,#2)(#3,#4)}{\iiihpic(#1,#2)(#3,#4)[l]}
+}
+\def\iiihpic(#1,#2)(#3,#4)[#5]{%
+  \@ifnextchar [{\ivhpic(#1,#2)(#3,#4)[#5]}{\ivhpic(#1,#2)(#3,#4)[#5][]}
+}
+\def\ivhpic(#1,#2)(#3,#4)[#5][#6]#7{%
+  \setbox\@BILD=\hbox{#7}%
+  \d@breite=#1\d@breite=\the\d@breite%
+  \ifdim\d@breite=0pt\d@breite=\wd\@BILD\fi%
+  \c@breite=\d@breite\divide\c@breite by65536%
+  \d@hoehe=#2\d@hoehe=\the\d@hoehe%
+  \ifdim\d@hoehe=0pt\d@hoehe=\ht\@BILD\advance\d@hoehe by\dp\@BILD\fi%
+  \c@hoehe=\d@hoehe\divide\c@hoehe by65536%
+  \d@xoff=#3\c@xoff=\d@xoff\divide\c@xoff by65536%
+  \d@yoff=\d@hoehe%
+  \advance\d@yoff by-#4\c@yoff=\d@yoff\divide\c@yoff by65536%
+  \c@pos=0\d@tmpa=\parindent\parindent=0pt\unitlength1pt%
+  \if@offset
+    \setbox\@BILD=\hbox{%
+      \begin{picture}(\c@breite,\c@hoehe)%
+        \put(0,0){\makebox(\c@breite,\c@hoehe){}}%
+        \put(\c@xoff,\c@yoff){\box\@BILD}%
+      \end{picture}%
+    }%
+  \else%
+    \setbox\@BILD=\hbox{%
+      \begin{picture}(\c@breite,\c@hoehe)%
+        \put(0,0){\makebox(\c@breite,\c@hoehe)[#6]{\box\@BILD}}%
+      \end{picture}%
+    }%
+  \fi%
+  \@tfor\@tempa := #5\do{%
+    \if\@tempa f\setbox\@BILD=\hbox{\Rahmen(\c@breite,\c@hoehe){\box\@BILD}}\fi%
+    \if\@tempa s\setbox\@BILD=\hbox{\Schatten(\c@breite,\c@hoehe){\box\@BILD}}\fi%
+    \if\@tempa o\setbox\@BILD=\hbox{\Oval(\c@breite,\c@hoehe){\box\@BILD}}\fi%
+    \if\@tempa d\setbox\@BILD=\hbox{\Strich(\c@breite,\c@hoehe){\box\@BILD}}\fi%
+    \if\@tempa x\setbox\@BILD=\hbox{\Kasten(\c@breite,\c@hoehe){\box\@BILD}}\fi%
+    \if\@tempa t\c@pos=1\fi%
+    \if\@tempa b\c@pos=2\fi%
+  }%
+ \ifnum\c@pos=0\parbox{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi%
+ \ifnum\c@pos=1\parbox[t]{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi%
+ \ifnum\c@pos=2\parbox[b]{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi%
+ \parindent=\d@tmpa%
+}
+
+
+
+
+
+
+\def\Rahmen(#1,#2)#3{%
+  \c@whole=\@wholewidth\divide\c@whole by65536%
+  \c@half=\@halfwidth\divide\c@half by65536%
+  \c@tmpa=#1\advance\c@tmpa by\c@whole\advance\c@tmpa by\c@whole%
+  \c@tmpb=#2\advance\c@tmpb by\c@whole\advance\c@tmpb by\c@whole%
+  \begin{picture}(\c@tmpa,\c@tmpb)%
+    \put(\c@whole,\c@half){\framebox(#1,#2){#3}}%
+  \end{picture}%
+  \global\advance\d@breite by2\@wholewidth%
+  \global\advance\d@hoehe by2\@wholewidth%
+}
+
+
+\def\Schatten(#1,#2)#3{%
+  \c@whole=\@wholewidth\divide\c@whole by65536%
+  \c@half=\@halfwidth\divide\c@half by65536%
+  \c@shad=\d@shad\divide\c@shad by65536%
+  \c@tmp=\c@whole\advance\c@tmp by\c@whole\c@tmpd=\c@tmp%
+  \advance\c@tmp by\c@shad%
+  \advance\c@tmpd by#1%
+  \advance\c@half by\c@shad%
+  \c@tmpa=#1\advance\c@tmpa by\c@tmp%
+  \c@tmpb=#2\advance\c@tmpb by\c@tmp%
+  \begin{picture}(\c@tmpa,\c@tmpb)%
+    \put(\c@whole,\c@half){\framebox(#1,#2){#3}}%
+    \put(\c@shad,0){\rule{\c@tmpd pt}{\c@shad pt}}%
+    \put(\c@tmpd,0){\rule{\c@shad pt}{#2 pt}}%
+  \end{picture}%
+  \global\advance\d@breite by2\@wholewidth\global\advance\d@breite by\d@shad%
+  \global\advance\d@hoehe by2\@wholewidth\global\advance\d@hoehe by\d@shad%
+}
+
+
+\def\Oval(#1,#2)#3{%
+  \@wholewidth=0.4pt%
+  \c@tmpa=\the#1\divide\c@tmpa by2%
+  \c@tmpb=\the#2\divide\c@tmpb by2%
+  \begin{picture}(#1,#2)%
+    \put(\c@tmpa,\c@tmpb){\oval(#1,#2)}%
+    \put(0.4,0.4){#3}%
+  \end{picture}%
+  \global\advance\d@breite by1pt\global\advance\d@hoehe by1pt%
+}
+
+
+\def\Strich(#1,#2)#3{%
+  \c@whole=\@wholewidth\divide\c@whole by65536%
+  \c@half=\@halfwidth\divide\c@half by65536%
+  \c@dash=\d@dash\divide\c@dash by65536%
+  \c@tmp=\c@whole\advance\c@tmp by\c@whole%
+  \c@tmpa=#1\advance\c@tmpa by\c@tmp%
+  \c@tmpb=#2\advance\c@tmpb by\c@tmp%
+  \c@tmpc=#1\advance\c@tmpc by\c@whole%
+  \c@tmpd=#2\advance\c@tmpd by\c@whole%
+  \begin{picture}(\c@tmpa,\c@tmpb)%
+    \put(\c@half,\c@half){\dashbox{\c@dash}(\c@tmpc,\c@tmpd){#3}}%
+  \end{picture}%
+  \global\advance\d@breite by2\@wholewidth%
+  \global\advance\d@hoehe by2\@wholewidth%
+}
+
+
+\def\Kasten(#1,#2)#3{%
+  \@wholewidth=0.4pt%
+  \c@boxl=\d@boxl\divide\c@boxl by65536\c@boxl=\the\c@boxl%
+  \c@tmpa=#1\advance\c@tmpa by\c@boxl%
+  \c@tmpb=#2\advance\c@tmpb by\c@boxl%
+  \c@tmp=#2%
+  \begin{picture}(\c@tmpa,\c@tmpb)%
+    \put(0,\c@boxl){\framebox(#1,#2){#3}}%
+    \put(\c@boxl,0){\line(-1,1){\c@boxl}}%
+    \put(\c@boxl,0){\line(1,0){#1}\line(-1,1){\c@boxl}}%
+    \put(\c@boxl,0){\put(#1,0){\line(0,1){\c@tmp}%
+         \put(0,\c@tmp){\line(-1,1){\c@boxl}}}}%
+  \end{picture}%
+  \global\advance\d@breite by\d@boxl%
+  \global\advance\d@hoehe by\d@boxl%
+}
+
+
+
+
+
+\newbox\env@box%
+\newdimen\d@envdp
+\newcount\c@hsize
+\newcount\c@envdp
+\newdimen\d@envb
+
+\long\def\frameenv{\@ifnextchar [{\@frameenv}{\@frameenv[\textwidth]}}
+\long\def\@frameenv[#1]{%
+ \hsiz@=\textwidth  \textwidth=#1  \d@envb=#1
+ \advance\textwidth by-2\@wholewidth
+ \advance\textwidth by-2\fboxsep
+ \hsize=\textwidth   \linewidth=\textwidth
+ \setbox\env@box=\vbox\bgroup}%
+\def\endframeenv{%
+ \egroup%
+ \hsize=\hsiz@  \textwidth=\hsiz@  \linewidth=\hsiz@
+ \c@breite=\d@envb   \divide\c@breite by65536
+ \advance\d@envb by-2\@wholewidth
+ \c@hsize=\d@envb  \divide\c@hsize by65536%
+ \d@envdp=\dp\env@box  \advance\d@envdp by\ht\env@box%
+ \advance\d@envdp by2\fboxsep%
+ \d@hoehe=\d@envdp   \advance\d@hoehe by2\@wholewidth
+ \c@hoehe=\d@hoehe   \divide\c@hoehe by65536
+ \c@envdp=\d@envdp   \divide\c@envdp by65536%
+ \c@tmp=\@wholewidth \divide\c@tmp by65536
+ \vskip\@wholewidth%
+ \unitlength 1pt\noindent%
+ \begin{picture}(\c@breite,\c@hoehe)(0,0)
+   \put(\c@tmp,\c@tmp){\framebox(\c@hsize,\c@envdp){\box\env@box}}
+ \end{picture}%
+}
+
+
+
+\long\def\shadowenv{\@ifnextchar [{\@shadowenv}{\@shadowenv[\textwidth]}}
+\long\def\@shadowenv[#1]{%
+ \hsiz@=\textwidth  \textwidth=#1  \d@envb=#1
+ \advance\textwidth by-2\@wholewidth
+ \advance\textwidth by-2\fboxsep
+ \advance\textwidth by-\d@shad%
+ \hsize=\textwidth   \linewidth=\textwidth
+ \setbox\env@box=\vbox\bgroup}%
+\def\endshadowenv{%
+ \egroup
+ \hsize=\hsiz@  \textwidth=\hsiz@  \linewidth=\hsiz@
+ \d@tmpa=\d@envb
+ \c@breite=\d@envb   \divide\c@breite by65536
+ \advance\d@envb by-2\@wholewidth  \advance\d@envb by-\d@shad
+ \c@hsize=\d@envb  \divide\c@hsize by65536%
+ \d@envdp=\dp\env@box  \advance\d@envdp by\ht\env@box%
+ \advance\d@envdp by2\fboxsep%
+ \c@envdp=\d@envdp   \divide\c@envdp by65536%
+ \d@hoehe=\d@envdp
+ \advance\d@hoehe by2\@wholewidth  \advance\d@hoehe by\d@shad
+ \c@hoehe=\d@hoehe    \divide\c@hoehe by65536
+ \c@shad =\d@shad     \divide\c@shad  by65536
+ \c@tmp=\@wholewidth  \divide\c@tmp by65536
+ \advance\d@tmpa by-2\d@shad
+ \c@xoff =\d@tmpa     \divide\c@xoff by65536
+ \advance\c@xoff by\c@shad  \advance\c@xoff by-1
+ \advance\d@envdp by\@wholewidth
+ \vskip\@halfwidth
+ \unitlength 1pt\noindent%
+ \begin{picture}(\c@breite,\c@hoehe)(0,0)
+    \put(\c@tmp,\c@shad){\framebox(\c@hsize,\c@envdp){\box\env@box}}
+    \put(\c@shad,0){\rule{\d@tmpa}{\d@shad}}%
+    \put(\c@xoff,0){\rule{\d@shad}{\d@envdp}}%
+ \end{picture}%
+ \vskip\@halfwidth
+}
+
+
+\long\def\dashenv{\@ifnextchar [{\@dashenv}{\@dashenv[\textwidth]}}
+\long\def\@dashenv[#1]{%
+ \hsiz@=\textwidth  \textwidth=#1  \d@envb=#1
+ \advance\textwidth by-2\@wholewidth  \advance\textwidth by-2\fboxsep
+ \hsize=\textwidth   \linewidth=\textwidth
+ \setbox\env@box=\vbox\bgroup}%
+\long\def\enddashenv{%
+ \egroup
+ \hsize=\hsiz@  \textwidth=\hsiz@  \linewidth=\hsiz@
+ \c@breite=\d@envb   \divide\c@breite by65536
+ \advance\d@envb by-\@wholewidth
+ \c@hsize=\d@envb  \divide\c@hsize by65536%
+ \d@envdp=\dp\env@box  \advance\d@envdp by\ht\env@box%
+ \advance\d@envdp by2\fboxsep%
+ \advance\d@envdp by\@wholewidth
+ \d@hoehe=\d@envdp   \advance\d@hoehe by2\@wholewidth
+ \c@hoehe=\d@hoehe   \divide\c@hoehe by65536
+ \c@envdp=\d@envdp   \divide\c@envdp by65536%
+ \c@dash=\d@dash     \divide\c@dash  by65536%
+ \c@whole=\@wholewidth  \divide\c@whole by65536
+ \c@half=\@halfwidth  \divide\c@half by 65536
+ \noindent\unitlength 1pt
+ \begin{picture}(\c@breite,\c@hoehe)(0,0)
+   \put(\c@half,\c@whole){\dashbox{\c@dash}(\c@hsize,\c@envdp){\box\env@box}}
+ \end{picture}%
+}
+
+
+\long\def\ovalenv{\@ifnextchar [{\@ovalenv}{\@ovalenv[\textwidth]}}%
+\long\def\@ovalenv[#1]{%
+ \hsiz@=\textwidth  \textwidth=#1  \d@envb=#1
+ \advance\textwidth by-4\fboxsep
+ \hsize=\textwidth   \linewidth=\textwidth
+ \setbox\env@box=\vbox\bgroup}%
+\long\def\endovalenv{%
+ \egroup
+ \hsize=\hsiz@  \textwidth=\hsiz@  \linewidth=\hsiz@
+ \@wholewidth=0.4pt
+ \c@breite=\d@envb   \divide\c@breite by65536
+ \advance\d@envb by-2\@wholewidth
+ \c@hsize=\d@envb  \divide\c@hsize by65536%
+ \d@envdp=\dp\env@box  \advance\d@envdp by\ht\env@box%
+ \advance\d@envdp by4\fboxsep%
+ \c@envdp=\d@envdp   \divide\c@envdp by65536%
+ \d@hoehe=\d@envdp   \advance\d@hoehe by2\@wholewidth
+ \c@hoehe=\d@hoehe   \divide\c@hoehe by65536
+ \c@tmpa=\c@hsize   \divide\c@tmpa by2%
+ \c@tmpb=\c@envdp   \divide\c@tmpb by2%
+ \d@tmpa=2\fboxsep   \advance\d@tmpa by\@wholewidth
+ \c@xoff=\d@tmpa     \divide\c@xoff  by65536%
+ \advance\d@tmpa by\dp\env@box
+ \c@yoff=\d@tmpa     \divide\c@yoff  by65536%
+ \unitlength 1pt\noindent
+ \begin{picture}(\c@breite,\c@hoehe)(0,0)
+   \put(\c@tmpa,\c@tmpb){\oval(\c@hsize,\c@envdp)}
+   \put(\c@xoff,\c@yoff){\box\env@box}%
+ \end{picture}%
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_pre/pre.aux	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,22 @@
+\relax 
+\@writefile{toc}{\contentsline {section}{\numberline {1}研究目的}{1}}
+\@writefile{toc}{\contentsline {section}{\numberline {2}HyperSolidTunesの概要}{1}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}UnrealEngine4(UE4)}{1}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}使用機材}{1}}
+\@writefile{toc}{\contentsline {section}{\numberline {3}HyperSolidTunesの実装}{1}}
+\citation{*}
+\bibstyle{junsrt}
+\bibdata{reference}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}ターゲット}{2}}
+\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces ターゲットと手をかざすプレイヤー}}{2}}
+\newlabel{bp}{{1}{2}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}ロングターゲット}{2}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}プレイヤーキャラクター}{2}}
+\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces playerのTimeline}}{2}}
+\newlabel{bp}{{2}{2}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}ジェネレーター}{2}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces ジェネレーターの曲同期部分}}{2}}
+\newlabel{bp}{{3}{2}}
+\@writefile{toc}{\contentsline {section}{\numberline {4}遅延の発生と回避}{2}}
+\@writefile{toc}{\contentsline {section}{\numberline {5}改善可能な点}{2}}
+\@writefile{toc}{\contentsline {section}{\numberline {6}まとめ}{2}}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_pre/pre.log	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,223 @@
+This is e-pTeX, Version 3.14159265-p3.8.0-180226-2.6 (utf8.euc) (TeX Live 2018) (preloaded format=platex 2018.11.8)  19 FEB 2019 21:36
+entering extended mode
+ restricted \write18 enabled.
+ file:line:error style messages enabled.
+ %&-line parsing enabled.
+**pre.tex
+(./pre.tex
+pLaTeX2e <2018-04-01>+1 (based on LaTeX2e <2018-04-01> patch level 2)
+Babel <3.18> and hyphenation patterns for 84 language(s) loaded.
+(/usr/local/texlive/2018/texmf-dist/tex/platex/base/jarticle.cls
+Document Class: jarticle 2018/02/04 v1.7h Standard pLaTeX class
+\c@@paper=\count83
+(/usr/local/texlive/2018/texmf-dist/tex/platex/base/jsize10.clo
+File: jsize10.clo 2018/02/04 v1.7h Standard pLaTeX file (size option)
+)
+\c@part=\count84
+\c@section=\count85
+\c@subsection=\count86
+\c@subsubsection=\count87
+\c@paragraph=\count88
+\c@subparagraph=\count89
+\c@figure=\count90
+\c@table=\count91
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\symmincho=\mathgroup4
+LaTeX Font Info:    Overwriting symbol font `mincho' in version `bold'
+(Font)                  JY1/mc/m/n --> JY1/gt/m/n on input line 614.
+\toclineskip=\dimen118
+\@lnumwidth=\dimen119
+\bibindent=\dimen120
+\heisei=\count92
+)
+(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphicx.sty
+Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR)
+
+(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks15
+)
+(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphics.sty
+Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR)
+
+(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/trig.sty
+Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
+)
+(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
+File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
+)
+Package graphics Info: Driver file: dvipdfmx.def on input line 99.
+
+(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-def/dvipdfmx.def
+File: dvipdfmx.def 2017/06/24 v5.0g Graphics/color driver for dvipdfmx
+))
+\Gin@req@height=\dimen121
+\Gin@req@width=\dimen122
+)
+(./picins.sty Option `picins' Version 3.0 Sep. 1992, TH Darmstadt/HRZ
+\@BILD=\box42
+\@TEXT=\box43
+\d@breite=\dimen123
+\d@hoehe=\dimen124
+\d@xoff=\dimen125
+\d@yoff=\dimen126
+\d@shad=\dimen127
+\d@dash=\dimen128
+\d@boxl=\dimen129
+\d@pichskip=\dimen130
+\d@tmp=\dimen131
+\d@tmpa=\dimen132
+\d@bskip=\dimen133
+\hsiz@=\dimen134
+\p@getot@l=\dimen135
+\c@breite=\count93
+\c@hoehe=\count94
+\c@xoff=\count95
+\c@yoff=\count96
+\c@pos=\count97
+\c@shad=\count98
+\c@dash=\count99
+\c@boxl=\count100
+\c@zeilen=\count101
+\@changemode=\count102
+\c@piccaption=\count103
+\c@piccaptionpos=\count104
+\c@picpos=\count105
+\c@whole=\count106
+\c@half=\count107
+\c@tmp=\count108
+\c@tmpa=\count109
+\c@tmpb=\count110
+\c@tmpc=\count111
+\c@tmpd=\count112
+\d@leftskip=\skip43
+\ptoti=\dimen136
+\ptotii=\dimen137
+\env@box=\box44
+\d@envdp=\dimen138
+\c@hsize=\count113
+\c@envdp=\count114
+\d@envb=\dimen139
+)
+(/usr/local/texlive/2018/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
+Package: fancyhdr 2017/06/30 v3.9a Extensive control of page headers and footer
+s
+\f@nch@headwidth=\skip44
+\f@nch@O@elh=\skip45
+\f@nch@O@erh=\skip46
+\f@nch@O@olh=\skip47
+\f@nch@O@orh=\skip48
+\f@nch@O@elf=\skip49
+\f@nch@O@erf=\skip50
+\f@nch@O@olf=\skip51
+\f@nch@O@orf=\skip52
+)
+(/usr/local/texlive/2018/texmf-dist/tex/latex/abstract/abstract.sty
+Package: abstract 2009/06/08 v1.2a configurable abstracts
+\abstitleskip=\skip53
+\absleftindent=\skip54
+\absrightindent=\skip55
+\absparindent=\skip56
+\absparsep=\skip57
+)
+(/usr/local/texlive/2018/texmf-dist/tex/latex/here/here.sty)
+(/usr/local/texlive/2018/texmf-dist/tex/latex/float/float.sty
+Package: float 2001/11/08 v1.3d Float enhancements (AL)
+\c@float@type=\count115
+\float@exts=\toks16
+\float@box=\box45
+\@float@everytoks=\toks17
+\@floatcapt=\box46
+)
+(/usr/local/texlive/2018/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16  ver 3.4  Verb mode for urls, etc.
+) (./dummy.tex)
+
+LaTeX Warning: Unused global option(s):
+    [9.5pt].
+
+(./pre.aux
+
+LaTeX Warning: Label `bp' multiply defined.
+
+
+LaTeX Warning: Label `bp' multiply defined.
+
+)
+\openout1 = `pre.aux'.
+
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 25.
+LaTeX Font Info:    ... okay on input line 25.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 25.
+LaTeX Font Info:    ... okay on input line 25.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 25.
+LaTeX Font Info:    ... okay on input line 25.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 25.
+LaTeX Font Info:    ... okay on input line 25.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 25.
+LaTeX Font Info:    ... okay on input line 25.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 25.
+LaTeX Font Info:    ... okay on input line 25.
+LaTeX Font Info:    Checking defaults for JY1/mc/m/n on input line 25.
+LaTeX Font Info:    ... okay on input line 25.
+LaTeX Font Info:    Checking defaults for JT1/mc/m/n on input line 25.
+LaTeX Font Info:    ... okay on input line 25.
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <12> on input line 41.
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <8> on input line 41.
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <6> on input line 41.
+LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <9> not available
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 41.
+LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <9> not available
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 41.
+LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <14.4> not available
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 44.
+LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <14.4> not available
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 44.
+LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <12> not available
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 52.
+LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <12> not available
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 52.
+
+
+LaTeX Warning: File `pic/emblem-bitmap.pdf' not found on input line 69.
+
+File: pic/emblem-bitmap.pdf Graphic file (type pdf)
+<pic/emblem-bitmap.pdf>
+
+Package Fancyhdr Warning: \headheight is too small (0.0pt): 
+ Make it at least 20.37784pt.
+ We now make it that large for the rest of the document.
+ This may cause the page layout to be inconsistent, however.
+
+[1
+
+
+]
+File: images/targetfig.png Graphic file (type bmp)
+<images/targetfig.png>
+File: images/timeline.png Graphic file (type bmp)
+<images/timeline.png>
+File: images/generator.png Graphic file (type bmp)
+<images/generator.png>
+
+No file pre.bbl.
+[2] (./pre.aux)
+
+LaTeX Warning: There were multiply-defined labels.
+
+ ) 
+Here is how much of TeX's memory you used:
+ 1150 strings out of 493281
+ 13927 string characters out of 6145041
+ 87027 words of memory out of 5000000
+ 5094 multiletter control sequences out of 15000+600000
+ 14928 words of font info for 58 fonts, out of 8000000 for 9000
+ 929 hyphenation exceptions out of 8191
+ 25i,15n,43p,733b,357s stack positions out of 5000i,500n,10000p,200000b,80000s
+
+Output written on pre.dvi (2 pages, 13100 bytes).
Binary file final_pre/pre.pdf has changed
Binary file final_pre/pre.synctex.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_pre/pre.tex	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,120 @@
+\documentclass[twocolumn,twoside,9.5pt]{jarticle}
+\usepackage[dvipdfmx]{graphicx}
+\usepackage{picins}
+\usepackage{fancyhdr}
+\usepackage{abstract}
+\usepackage{here}
+\usepackage{url}
+%\pagestyle{fancy}
+\lhead{\parpic{\includegraphics[height=1zw,keepaspectratio,bb=0 0 251 246]{pic/emblem-bitmap.pdf}}琉球大学主催 工学部情報工学科 卒業研究発表会}
+\rhead{}
+\cfoot{}
+
+\setlength{\topmargin}{-1in \addtolength{\topmargin}{15mm}}
+\setlength{\headheight}{0mm}
+\setlength{\headsep}{5mm}
+\setlength{\oddsidemargin}{-1in \addtolength{\oddsidemargin}{11mm}}
+\setlength{\evensidemargin}{-1in \addtolength{\evensidemargin}{21mm}}
+\setlength{\textwidth}{181mm}
+\setlength{\textheight}{261mm}
+\setlength{\footskip}{0mm}
+\pagestyle{empty}
+
+\input{dummy.tex}
+\renewcommand{\abstractname}{Abstract}
+\begin{document}
+\title{VRフリーハンド音楽ゲーム「HyperSolidTunes」の実装}
+%\title{Supporting NAT in Screen Sharing System TreeVNC}
+\author{155718B 氏名 {浜瀬}{裕暉} 指導教員 : 河野 真治}
+\date{}
+\twocolumn [
+\maketitle
+\begin{onecolabstract}
+
+We use VR technologies in computer music game which competes with the musical performance of instruments. HMD (Head Mount Display) and LeapMotion (Hands Tracking Device) are used with UnrealEngine4 (UE4). In this game, bare hands work well in HMD reality without annoying controller in hands. We have solved interferences between hands and HMD visual using transparent display of hands.This game is implememted on UE4 BluePrints which is a visual programming language with wires and boxes. The effectiveness of convination of VR and LeapMotion in music game is confirmed.  
+
+\end{onecolabstract}] \thispagestyle{fancy} 
+
+\section{研究目的}
+
+コンピュータゲームの中には、音楽に合わせて楽器の演奏技術やリズム感の良さを競う音楽ゲームというジャンルが存在する。音楽ゲームとは、音楽に合わせてタイミングよくアクションを行うゲームである。VR技術を用いた音楽ゲームが存在するが、既存のVR音楽ゲームでは、コントローラーを手に持っておく必要がある。これは一部を除きVRに対する没入感を阻害する可能性がある。また、VRゲームはHMDやトラッキング能力を有したコントローラーを用いない通常のゲームと比較して手腕のダイナミックな動作を求めることがある。これによりプレイヤーはゲームプレイ中にコントローラーを上下左右に素早く移動させる必要がある。これは腕・肩の疲労をもたらし、連続するゲームプレイを阻害する。本論文では入力装置を把持する必要のない入力方法を使用したVR音楽ゲームを提案、実装する。
+
+\section{HyperSolidTunesの概要}
+
+HyperSolidTunesの最も重要な点は、プレイヤーが入力装置を把持する必要がないことである。これは、プレイヤーが深い没入感を得るための手段である。また、プレイヤーが重い入力装置を持つ必要がないので、連続したプレイングによる不必要な疲労を回避することができる。
+
+\subsection{UnrealEngine4(UE4)}
+UnrealEngine4(UE4)はEpicGamesが開発・公開しているオープンソースなゲームエンジンである。UE4は他の無償公開されたゲームエンジンと比較して、華麗なグラフィックを瞬時にレンダリングすることに優れている。
+UE4は、BluePrintsという独自ビジュアルプログラミング言語を使用することができる。BPにおいて型の異なる値ノードを接続しようとする時には、型変換ノードが自動で代入される又は型変換が不可である旨のメッセージが出現しノード間の接続を拒否するなど、不正なノード間接続が行われないため、コンパイルエラーが非常に起こりにくいという利点がある。本論文ではVR音楽ゲームを実現する上で、プロジェクトをVRに応用する際の簡易さや、ゲームとしてのグラフィックの質、デバッグの容易さ等を考慮した上で、UE4を採用した。
+
+\subsection{使用機材}
+今回VR機器に使用したものはOculusDK2と呼ばれる開発者向けのHMDである。OculusDK2は使用者の視界を外界と遮断し、左右の目に適切な差のある映像を映し出すことによりあたかも現実であるかのような立体映像を実現する。このHMDはトラッキング機能を有しており、使用者の頭部の角度・位置を取得することができる。この機能により、通常のモニタでは実現することが困難(高度に複雑化する等)な様々なアクション(体の向きを変えずに後ろを振り向く等)を実現することができる。
+
+フリーハンドでの入力装置として、LeapMotionを採用した。LeapMotionは小型のハンドトラッキングシステムである。これを使用することにより操作者の左右の手の位置、手の開閉具合および指・関節の位置を取得することが可能となる。
+
+
+\section{HyperSolidTunesの実装}
+HyperSolidTunesは3D空間でのタッチパネル方式を採用している。プレイヤーはターゲットに手をかざし、適切なタイミングでアクションを行う。
+実装したもののうち特に重要な4つについてその機能を解説する。
+
+\subsection{ターゲット}
+
+ターゲットは任意の折れ線状移動経路を走行させることができる。移動経路内の走行区間毎の速度も任意に指定可能である。また、ターゲットはプレイヤーによってかざされ、アクションを取られるとタイミングに応じて点数を追加し、消滅する。
+
+\begin{figure}[htbp]
+	\begin{center}
+		\includegraphics[width=8cm]{images/targetfig.png}
+	\end{center}
+	\caption{ターゲットと手をかざすプレイヤー}
+\label{bp}
+\end{figure}
+
+\subsection{ロングターゲット}
+
+ロングターゲットはターゲットと同等の機能を有するが、点数加算機能は有さない。ロングターゲットは帯状の軌跡を残す機能を有する。
+
+\subsection{プレイヤーキャラクター}
+
+プレイヤーキャラクターはかざしたターゲットを検出し、そのタイミングによって適切なターゲットにダメージを与え、点数を加算させる。ロングターゲットを検出すると、適切なアクションが取られている間点数を加算する。
+\begin{figure}[htbp]
+	\begin{center}
+		\includegraphics[width=8cm]{images/timeline.png}
+	\end{center}
+	\caption{playerのTimeline}
+\label{bp}
+\end{figure}
+
+\subsection{ジェネレーター}
+
+ジェネレータは主にターゲットの生成を行う。また、楽曲と譜面の同期を行う機能を有する。さらに、重要な機能としてゲーム内でのプレイヤー移動経路を定義し、移動を行う。
+
+\begin{figure}[htbp]
+	\begin{center}
+		\includegraphics[width=8cm]{images/generator.png}
+	\end{center}
+	\caption{ジェネレーターの曲同期部分}
+\label{bp}
+\end{figure}
+
+\section{遅延の発生と回避}
+
+単純なターゲット生成、タイミング制御のためのディレイ、の繰り返しでは膨大な遅延が発生する。これを回避するために、Sequenceによる並列的処理を行い遅延の回避を行なった。
+
+\section{改善可能な点}
+
+Sequence並列記述により大幅な遅延の回避を行なったが、Sequenceを木構造的に接続することでさらに遅延を改善することができると考える。但し、これは同時にターゲット生成順の認識難を引き起こすため、手作業でのジェネレーター作成は困難である。
+よって、ターゲットの生成タイミング・その経路・速度を定義すれば自動的にSequence木構造を構築するようなツールの作成が必須である。
+
+\section{まとめ}
+HyperSolidTunesはフリーハンドでプレイ可能なVR音楽ゲームであり、仮想空間に対する強い没入感を得ることができる。LeapMotionで取得した相対的な手の位置情報をゲーム内に合成する作業は想定と比較して非常に困難であった。Oculusでのトラッキングは十分な精度が得られた。UE4では予想した通りの華麗なグラフィックを簡易に作成することができた。
+
+LeapMotionによるフリーハンドなアクションは疲れにくいという点において有効であったが、直感的でない操作を要求するため初心者に操作方法を説明することが非常に困難であることがわかった。
+
+
+
+
+
+\nocite{*}
+\bibliographystyle{junsrt}
+\bibliography{reference}
+\end{document}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/final_pre/reference.bib	Mon Feb 03 18:36:31 2020 +0900
@@ -0,0 +1,60 @@
+%% This BibTeX bibliography file was created using BibDesk.
+%% http://bibdesk.sourceforge.net/
+
+%% Created for 赤堀 貴一 at 2018-11-14 23:03:28 +0900 
+
+
+%% Saved with string encoding Unicode (UTF-8) 
+
+
+
+@misc{dfs,
+	Author = {河野 真治},
+	Date-Added = {2018-11-14 13:43:20 +0000},
+	Date-Modified = {2018-11-14 14:03:24 +0000},
+	Howpublished = {IPSJ SIG Technical Report},
+	Month = {May},
+	Title = {分散フレームワークChristieと分散木構造データベースJungle},
+	Year = {2018}}
+
+@article{cbc,
+	Author = {Kaito TOKKMORI and Shinji KONO},
+	Date-Added = {2018-11-14 13:40:03 +0000},
+	Date-Modified = {2018-11-14 13:40:03 +0000},
+	Journal = {LOLA 2015},
+	Month = {July},
+	Title = {Implementing Continuation based language in LLVM and Clang},
+	Year = 2015}
+
+@misc{christie,
+	Author = {照屋 のぞみ},
+	Date-Added = {2018-11-14 13:36:55 +0000},
+	Date-Modified = {2018-11-14 13:42:27 +0000},
+	Month = {March},
+	Title = {分散フレームワークChristieの設計},
+	Year = {2018},
+	Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QNy4uLy4uL1BhcGVycy8yMDE4L25vem9taS1tYXN0ZXIvcGFwZXIvbm96b21pLW1hc3Rlci5wZGbSFwsYGVdOUy5kYXRhTxEBsAAAAAABsAACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAAAAAAEJEAAH/////EW5vem9taS1tYXN0ZXIucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAgAFAAAKIGN1AAAAAAAAAAAAAAAAAAVwYXBlcgAAAgBaLzpVc2VyczplMTU1NzUzOlNwZWNpYWxpemVkX3N1YmplY3Q6a29ubzpQYXBlcnM6MjAxODpub3pvbWktbWFzdGVyOnBhcGVyOm5vem9taS1tYXN0ZXIucGRmAA4AJAARAG4AbwB6AG8AbQBpAC0AbQBhAHMAdABlAHIALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASAFhVc2Vycy9lMTU1NzUzL1NwZWNpYWxpemVkX3N1YmplY3Qva29uby9QYXBlcnMvMjAxOC9ub3pvbWktbWFzdGVyL3BhcGVyL25vem9taS1tYXN0ZXIucGRmABMAAS8AABUAAgAO//8AAIAG0hscHR5aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox0fIFZOU0RhdGFYTlNPYmplY3TSGxwiI1xOU0RpY3Rpb25hcnmiIiBfEA9OU0tleWVkQXJjaGl2ZXLRJidUcm9vdIABAAgAEQAaACMALQAyADcAQABGAE0AVQBgAGcAagBsAG4AcQBzAHUAdwCEAI4AyADNANUCiQKLApACmwKkArICtgK9AsYCywLYAtsC7QLwAvUAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAAC9w==}}
+
+@misc{paxos,
+	Author = {Leslie Lamport},
+	Date-Added = {2018-11-14 13:29:50 +0000},
+	Date-Modified = {2018-11-14 13:41:19 +0000},
+	Month = {01 Nov},
+	Read = {0},
+	Title = {Paxos Made Simple},
+	Year = {2001}}
+
+@comment{BibDesk Static Groups{
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<array>
+	<dict>
+		<key>group name</key>
+		<string>Group</string>
+		<key>keys</key>
+		<string></string>
+	</dict>
+</array>
+</plist>
+}}