changeset 0:9e88a388ec83

first commit
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Tue, 05 Nov 2013 23:18:04 +0900
parents
children f4b3de446113
files paper/Makefile paper/Makefile.bk paper/benchmark1.tex paper/bib.tex paper/bibliography.tex paper/book.bib paper/cerium.bib paper/cerium.tex paper/cerium_gpu.tex paper/conclusion.tex paper/data_parallel.tex paper/dummy.tex paper/fancyvrb.sty paper/fft_benchmark.tex paper/images/cell_arch.bb paper/images/cell_arch.graffle paper/images/cell_arch.pdf paper/images/cell_arch.xbb paper/images/cpu_arch.bb paper/images/cpu_arch.graffle paper/images/cpu_arch.pdf paper/images/cpu_arch.xbb paper/images/createTask.bb paper/images/createTask.graffle paper/images/createTask.pdf paper/images/createTask.xbb paper/images/fft_busytime.pdf paper/images/fft_each_task.pdf paper/images/fft_runtime.pdf paper/images/gpu_arch.bb paper/images/gpu_arch.graffle paper/images/gpu_arch.pdf paper/images/gpu_arch.xbb paper/images/workitem.bb paper/images/workitem.graffle paper/images/workitem.pdf paper/images/workitem.xbb paper/introduction.tex paper/ipsj.tex paper/ipsjcommon.sty paper/ipsjdrafts.sty paper/ipsjpapers.cls paper/ipsjpapers.sty paper/ipsjsort.bst paper/ipsjunsrt.bst paper/opencl.tex paper/scheduling.tex
diffstat 47 files changed, 13471 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/Makefile	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,28 @@
+TARGET = ipsj
+
+SRC = $(wildcard *.tex)
+
+LATEX = platex
+BIBTEX = pbibtex
+DVIPS = dvips
+DVIPDFM = dvipdfmx
+RM = rm -f
+
+DVIPSOPT = -D 720 -O 0mm, 0mm -N0
+LATEXOPT =  -shell-escape
+
+.SUFFIXES: .tex .dvi
+
+
+all: pdf# $(TARGET).ps
+	open $(TARGET).pdf
+dvi:
+	$(LATEX) $(LATEXOPT) $(TARGET)
+	$(LATEX) $(LATEXOPT) $(TARGET)
+	$(LATEX) $(LATEXOPT) $(TARGET)
+
+pdf: dvi
+	$(DVIPDFM) $(DVIPDFMOPT) $(TARGET)
+
+clean:
+	rm **/images/*.xbb ipsj.log ipsj.dvi ipsj.aux ipsj.pdf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/Makefile.bk	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,36 @@
+
+TARGET = sigos
+
+LATEX   = platex
+BIBTEX  = pbibtex
+#DVIPS   = dvips
+#DVIPDFM = dvipdfmx
+RM      = rm -f
+DVIPDF=dvipdfmx -p a4
+#  Option definitions
+#DVIPDFMOPT = 
+#DVIPSOPT   = -D 720 -mode esphi -O 0mm,0mm -N0 
+
+#  Suffixes definitions
+.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 *~ *.core
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/benchmark1.tex	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,12 @@
+\section{benchmark}\label{section:benchmark1}
+Bitonic Sortの例題を用いて計測した。入力として100,000要素の配列をsortする例題である。
+これを GPU, CPU 上, 及び CPU + GPU 上で同時実行して比較を行った。
+
+実験環境
+\begin{itemize}
+\item OS : MacOS 10.9
+\item CPU : 2*2.66GHz 6-CoreIntel Xeon
+\item Memory : 16GB
+\item Compiler : Apple clang version 4.1 (based on LLVM 3.1svn)
+\item GPU : AMD ATI Radeon HD 5870 1024MB
+\end{itemize}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/bib.tex	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,2 @@
+\bibliographystyle{ipsjunsrt}
+\bibliography{ipsj}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/bibliography.tex	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,32 @@
+
+\begin{thebibliography}{10}
+
+\bibitem{akira}
+{Akira KAMIZATO.}: Cell を用いたゲームフレームワークの提案,琉球大学工学部情報工学科平成19年度学位論文(修士) (2008).
+
+\bibitem{toma:2012a}
+{Daichi TOMA and Shinji KONO}:Cerium Task Manager におけるマルチコア上での並列実行機構の実装(2012)
+
+\bibitem{gongo:2008a}
+{nd Shinji KONO}:Cerium Task Manager におけるマルチコア上での並列実行機構の実装(2012)
+
+\bibitem{opencl:ref}
+{Aaftab Munshi, Khronos OpenCL Working Group}:The OpenCL Specification Version 1.0 (2007)
+
+\bibitem{cell}
+{Sony Corporation.}: {\em Cell broadband engine architecture} (2005).
+
+\bibitem{spurs}
+{Keisuke INOUE.}: Cell プロセッサ向け実行環境(SPU Centric Execution
+  Model),先進的計算基盤システムシンポジウム SACSIS (2006).
+
+\bibitem{kono}
+{Shinji KONO.}: 検証を自身で表現できるハードウェア、ソフトウェア記述言語
+  Continuation ba sed C と、その Cell
+  への応用,電子情報通信学会VLSI設計技術研究会 (2008).
+
+\bibitem{fuchita}
+{Yoshihiko, FUCHITA.}: 分散プログラミングモデル Federated Linda
+  と分散デバッグ開発,琉球大学工学部情報工学科平成19年度学位論文(修士) (2008).
+
+\end{thebibliography}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/book.bib	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,25 @@
+@BOOK{clay200912, 
+	title={並行コンピューティング技法 - 実践マルチコア/マルチスレッドプログラミング},
+	author={Clay Breshears},
+	publisher={オライリージャパン},
+	year={2009},
+	month={12},
+	isbn={9784873114354},
+	url={http://amazon.co.jp/o/ASIN/4873114357/},
+	price={¥ 3,360},
+	totalpages={284},
+	timestamp={2011.11.17},
+}
+
+@BOOK{fix200609, 
+	title={マルチコアCPUのための並列プログラミング - 並列処理\&マルチスレッド入門},
+	author={安田 絹子 and 飯塚 博道 and 青柳 信吾 and 小林 林広 and 阿部 貴之},
+	publisher={秀和システム},
+	year={2006},
+	month={9},
+	isbn={9784798014623},
+	url={http://amazon.co.jp/o/ASIN/4798014621/},
+	price={¥ 3,360},
+	totalpages={367},
+	timestamp={2011.11.17},
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/cerium.bib	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,315 @@
+@manual{cell_abi,
+author = "{International Business Machines Corporation, Sony Computer Entertainment Incorporated, Toshiba Corporation}",
+title ="{Cell Broadband Engine Linux Reference Implementation Application Binary Interface Specification}",
+year = 2007
+}
+
+@manual{cell_cpp,
+author = "{International Business Machines Corporation, Sony Computer Entertainment Incorporated, Toshiba Corporation}",
+title = "{C/C++ Language Extensions for Cell Broadband Engine Architecture Version 2.6}",
+year = 2008
+}
+
+@misc{osmesa,
+author = "",
+title = "{The Mesa 3D Graphics Library}",
+howpublished = "{http://www.mesa3d.org/}"
+}
+
+@misc{fedora,
+author = "",
+title = "{Fedora Project}",
+howpublished = "{http://fedoraproject.org/}"
+}
+
+@misc{ydl,
+author = "",
+title = "{Yellow Dog Linux for PowerPC Computers}",
+howpublished = "{http://us.fixstars.com/products/ydl/}"
+}
+
+@book{amdahl,
+author = "{Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug Lea}",
+title = "{Java Concurrency in Prac-tice}",
+publisher = "{Addison-Wesley Professional}",
+year = "2005"
+}
+
+@misc{cerium,
+author = "",
+title = "{SourceForge.JP: Cerium Rendering Engine}",
+howpublished = "{https//sourceforge.jp/projects/cerium/}"
+}
+
+@misc{spurs,
+author = "{Keisuke Inoue}",
+title = "{SPU Centric Execution Model}",
+text = "SACSIS 2006",
+year = 2006
+}
+
+@manual{cell,
+author = "{Sony Corporation}",
+title = "{Cell BroadbandEngine \texttrademark アーキテクチャ}",
+year = 2006
+}
+
+@manual{cell_sdk,
+author = "{International Business Machines Corporation}",
+title = "{Software Development Kit for Multicore Acceleration Version 3.1}",
+year = 2008
+}
+
+@manual{libspe2,
+author = "{International Business Machines Corporation, Sony Computer Entertainment Incorporated, Toshiba Corporation}",
+title = "{SPE Runtime Management Library Version 2.3}",
+year = 2008
+}
+
+
+@misc{blender,
+title = "{blender.org}",
+howpublished = "{http://blender.org/}"
+}
+
+@article{spufs,
+author = "{Toshiyuki SANUKI}",
+title = "{Cell Broadband Engine \texttrademark を用いたブレード・サーバーの設計と実装}",
+journal = "{IBM PROVISION No.48}",
+year = 2006
+}
+
+@misc{sdl,
+author = "",
+title = "{Simple DirectMedia Layer}",
+howpublished = "{http://www.libsdl.org/}"
+}
+
+@misc{sdl_image,
+author = "",
+title = "{SDL\_image}",
+howpublished = "{http://www.libsdl.org/projects/SDL\_image/}"
+}
+
+@manual{opencl,
+author = "{Aaftab Munshi, Khronos OpenCL Working Group}",
+title ="{The OpenCL Specification Version 1.0}",
+year = 2007
+}
+
+@manual{opencl:ref,
+author = "{Khronos OpenCL Working Group}",
+title ="{OpenCL 1.2 Reference Pages}",
+year = 2012
+}
+
+@misc{gallium,
+author = "",
+title = "{Gallium3D}",
+howpublished = "{http://www.tungstengraphics.com/wiki/index.php/Gallium3D}"
+}
+
+@inproceedings{cellbe-overview-conference,
+author = {Pham, D. and Asano, S. and Bolliger, M.and Day, M. N. and Hofstee, H. P. and Johns, C. and Kahle, J. and Kameyama, A. and Keaty, J. and Masubuchi, Y. and Riley, M. and Shippy, D. and Stasiak, D. and Suzuoki, M. and Wang, M. and Warnock, J. and Weitzel, S. and Wendel, D. and Yamazaki, T. and Yazawa, K. },
+booktitle = {Solid-State Circuits Conference, 2005. Digest of Technical Papers. ISSCC. 2005 IEEE International},
+pages = {184--592 Vol. 1},
+title = {The design and implementation of a first-generation CELL processor},
+year = {2005}
+}
+
+@INPROCEEDINGS{KOKKEVIS06high-performancephysics,
+author = {V KOKKEVIS and S OSMAN and E L},
+title = {High-performance physics solver design for next generation consoles},
+booktitle = {In Game Developers Conference},
+year = {2006}
+}
+
+@misc{Cellteto,
+author = "{Williams, J. Carter, L. Oliker, J. Shalf, K. Yelick}",
+title = "{3D Lattice Boltzmann Magneto-hydrodynamics (LBMHD3D)}",
+howpublished = "{UTK Summit on Software and Algorithms for the Cell Processor}",
+year = {2006}
+}
+
+@inproceedings{cellbe-spe-overview-conference,
+uthor = {Flachs, B.  and Asano, S.  and Dhong, S. H.  and Hotstee, P.  and Gervais, G.  and Kim, R.  and Le, T.  and Liu, P.  and Leenstra, J.  and Liberty, J.  and Michael, B.  and Oh, H.  and Mueller, S. M.  and Takahashi, O.  and Hatakeyama, A.  and Watanabe, Y.  and Yano, N. },
+journal = {Solid-State Circuits Conference, 2005. Digest of Technical Papers. ISSCC. 2005 IEEE International},
+pages = {134--135 Vol. 1},
+title = {A streaming processing unit for a CELL processor},
+year = {2005}
+}
+
+@article{Cellteto2,
+  author = {A. E. Eichenberger},
+  title =  {Using advanced compiler technology to exploit the performance of the Cell Broadband Engine \texttrademark architecture},
+  journal = {IBM System Journal Vol 45, No.1},
+  year =  {2006},
+}
+
+
+@INPROCEEDINGS{Benthin06raytracing,
+    author = {Carsten Benthin and Ingo Wald and Michael Scherbaum and Heiko Friedrich},
+    title = {Ray Tracing on the CELL Processor},
+    booktitle = {In Proceedings of the 2006 IEEE Symposium on Interactive Ray Tracing},
+    year = {2006},
+    pages = {15--23}
+}
+
+@inproceedings{citeulike:1905188,
+author = {Blagojevic, Filip   and Nikolopoulos, Dimitris  S.  and Stamatakis, Alexandros   and Antonopoulos, Christos  D. },
+booktitle = {PPoPP '07: Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming},
+pages = {90--100},
+publisher = {ACM},
+title = {Dynamic multigrain parallelization on the cell broadband engine},
+year = {2007}
+}
+
+@article{DBLP:journals/cphysics/Fabritiis07,
+  author    = {G. De Fabritiis},
+  title     = {Performance of the Cell processor for biomolecular simulations},
+  journal   = {Computer Physics Communications},
+  volume    = {176},
+  number    = {11-12},
+  year      = {2007},
+  pages     = {660-664},
+  ee        = {http://dx.doi.org/10.1016/j.cpc.2007.02.107},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@article{1272431,
+ author = {Kurzak,, Jakub and Dongarra,, Jack},
+ title = {Implementation of mixed precision in solving systems of linear equations on the Cell processor: Research Articles},
+ journal = {Concurr. Comput. : Pract. Exper.},
+ volume = {19},
+ number = {10},
+ year = {2007},
+ issn = {1532-0626},
+ pages = {1371--1385},
+ publisher = {John Wiley and Sons Ltd.},
+}
+
+@inproceedings{1128027,
+ author = {Williams,, Samuel and Shalf,, John and Oliker,, Leonid and Kamil,, Shoaib and Husbands,, Parry and Yelick,, Katherine},
+ title = {The potential of the cell processor for scientific computing},
+ booktitle = {CF '06: Proceedings of the 3rd conference on Computing frontiers},
+ year = {2006},
+ isbn = {1-59593-302-6},
+ pages = {9--20},
+ publisher = {ACM}
+}
+@Comment LocalWords:  SACSIS BroadbandEngine sdk Multicore
+
+
+@article{kono:2008a,
+        author = "河野真治",
+        title = "検証を自身で表現できるハードウェア、ソフトウェア記述言語 Continuation based C と、そのCell への応用",
+        journal = "電子情報通信学会VLSI設計技術研究会",
+        month = "March",
+        year = 2008
+}
+
+@article{akira:2008a,
+        author = "神里 晃 and 宮國 渡 and 杉山 千秋 and 河野 真治",
+        title = "CからCellアーキテクチャを利用したCbCへの変換",
+        journal = "電子情報通信学会VLSI設計技術研究会",
+        month = "March",
+        year = 2008
+}
+
+@article{akira:2006a,
+        author = "神里 晃 and 河野 真治",
+        title = "Continuation based CによるPS3 Cell のシミュレーション",
+        journal = "情報処理学会システムソフトウェアとオペレーティング・システム研究会",
+        month = "May",
+        year = 2006
+}
+
+
+@mastersthesis{akira:master,
+        author = "神里 晃",
+        title = "Cell を用いたゲームフレームワークの提案",
+        school = "琉球大学理工学研究科情報工学専攻",
+        month = "Feb",
+        year = 2008
+}
+
+
+@mastersthesis{gongo:master,
+        author = "宮國 渡",
+        title = "Cell用の Fine-Grain Task Manager の実装",
+        school = "琉球大学理工学研究科情報工学専攻",
+        month = "Feb",
+        year = 2009
+}
+
+@article{gongo:2008a,
+        author = "宮國 渡 and 河野 真治 and 神里 晃 and 杉山 千秋",
+        title = "Cell 用の Fine-grain Task Manager の実装",
+        journal = "情報処理学会 システムソフトウェアとオペレーティング・システム研究会",
+        month = "April",
+        year = 2008
+}
+
+@article{chiaki:thesis,
+        author = "杉山 千秋",
+        title = "SceneGraph と StatePattern を用いたゲームフレームワークの設計と実装",
+        journal = "琉球大学工学部情報工学科 平成19年度卒業論文",
+        year = 2008
+}
+
+@article{akamine:2010a,
+        author = "赤嶺 一樹 and 河野 真治",
+        title = "Meta Engine を用いた Federated Linda の実験",
+        journal = "日本ソフトウェア科学会第 27 会大会(2010 年度)",
+        month = "Sep",
+        year = 2010
+}
+
+@mastersthesis{kaito:master,
+        author = "多賀野 海人",
+        title = "Cell Task Manager Cerium における Task を用いたパイプラインの改良",
+        school = "琉球大学理工学研究科情報工学専攻",
+        month = "Feb",
+        year = 2011
+}
+
+
+@article{yutaka:2010a,
+        author = "金城 裕 and 河野 真治",
+        title = "Fine Grain Task Manager Cerium  のチューニング",
+        journal = "日本ソフトウェア科学会第 27 会大会(2010 年度)",
+        month = "Sep",
+        year = 2010
+}
+
+@article{yutaka:2011a,
+        author = "金城 裕 and 河野 真治",
+        title = "ゲームフレームワーク Cerium TaskManager の改良",
+        journal = "情報処理学会システムソフトウェアとオペレーティング・システム研究会",
+        month = "Apr",
+        year = 2011
+}
+
+@article{yutaka:2011b,
+        author = "金城 裕 and 河野 真治",
+        title = "Cerium におけるDataSegment APIの設計",
+        journal = "日本ソフトウェア科学会第 28 会大会(2011 年度)",
+        month = "Sep",
+        year = 2011
+}
+
+@article{toma:2012a,
+        author = "當眞 大千 and 河野 真治",
+        title = "Cerium Task Manager におけるマルチコア上での並列実行機構の実装",
+        journal = " 第53回プログラミング・シンポジウム",
+        month = "Jan",
+        year = 2012
+}
+
+@article{yutaka:os,
+        author = "金城裕 and 河野真治 and 多賀野海人 and 小林佑亮(琉球大学)",
+        title = "ゲームフレームワークCerium TaskManagerの改良",
+        journal = "情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)",
+        month = "April",
+        year = 2011
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/cerium.tex	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,94 @@
+\section{Cerium での Task の生成}\label{section:cerium}
+Cerium では,user が createtask を行い、input data や依存関係の設定を行うと TaskManager で Task が生成される。
+
+\begin{figure}[ht]
+  \begin{center}
+    \includegraphics[scale=0.4]{./images/createTask.pdf}
+  \end{center}
+  \caption{Task Manager}
+  \label{fig:createTask}
+\end{figure}
+図\ref{fig:createTask}は Cerium が Task を作成/実行する場合のクラスの構成となる。
+Task 毎に依存関係を表す wait\_i と wait\_me というリストがあり、依存関係が解消されて実行可能になった
+Task は ActiveTaskList に移される。さらに、Scheduler に転送しやすい TaskList に変換してから各 Scheduler に
+転送される。
+\subsection{Taskの生成}
+以下に Task を生成する例題を示す。
+input data を二つ用意し、 input 同士を乗算し、 output に格納する multiply という例題となる。
+\begin{Verbatim}[fontsize=\footnotesize,xleftmargin=1cm]
+void
+multiply_init
+(HTaskPtr twice, int *i_data, int *o_data) {
+    multiply = 
+        manager->create_task(MULTIPLY_TASK);
+    // MULTIPLY_TASK is task id(enum)
+    multiply->set_inData(0, i_data1,
+                      sizeof(int)*length);
+    multiply->set_inData(1, i_data2,
+                      sizeof(int)*length);
+    multiply->set_outData(0, o_data,
+                      sizeof(int)*length);
+    multiply->set_param(0, (memaddr)length);
+    multiply->set_cpu(SPE_ANY);
+    multiply->spawn();
+}
+\end{Verbatim}
+
+\begin{tiny}
+  \begin{table}[ht]
+    \begin{center}
+      \caption{ Task 生成における API }
+      \label{table:create_taskAPI}
+      \scalebox{0.5}[0.9]
+      \small
+      \begin{tabular}[t]{c|l}
+        \hline
+        create\_task& Task を生成する \\
+        \hline
+        set\_inData & Task への入力データのアドレスを追加 \\
+        \hline
+        set\_outData & Task への入力データのアドレスを追加 \\
+        \hline
+        set\_param & Task へ値を一つ渡す。ここでは length \\
+        \hline
+        set\_cpu & Task を実行するデバイスの設定  \\
+        \hline
+        spawn& 生成した Task を ActiveTaskList に登録  \\
+        \hline
+      \end{tabular}
+    \end{center}
+  \end{table}
+\end{tiny}
+Task ( OpenCL における kernel )の記述は以下のようになる。
+\begin{Verbatim}[fontsize=\footnotesize,xleftmargin=1cm]
+static int
+run(SchedTask *s,void *rbuf, void *wbuf)
+{
+    float i_data1=(float*)s->get_input(rbuf,0);
+    float i_data2=(float*)s->get_input(rbuf,1);
+    float o_data=(float*)s->get_output(wbuf,0);
+    long length=(long)s->get_param(0); 
+    for (int i=0;i<length;i++) {
+        outdata[i]=indata1[i]*indata2[i];
+    }
+    return 0;
+}
+\end{Verbatim}
+\begin{tiny}
+  \begin{table}[ht]
+    \begin{center}
+      \caption{ Task 側で使用する API }
+      \label{table:taskAPI}
+      \small
+      \begin{tabular}[t]{c|l}
+        \hline
+        get\_input & Schedulerからinput dataを取得 \\
+        \hline
+        get\_output & Schedulerからoutput dataを取得 \\
+        \hline
+        get\_param & set\_paramした値を取得 \\
+        \hline
+      \end{tabular}
+    \end{center}
+  \end{table}
+\end{tiny}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/cerium_gpu.tex	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,14 @@
+\section{GPU上での実行の機構} \label{cerium_gpu}
+Scheduler と CpuThreads に対応させる形で、GpuScheduler 、GpuThreads を実装した。
+TaskList からメモリバッファを作成し、EnqueueWriteBuffer, EnqueueTask, EnqueueReadBuffer の順に 
+CommandQueue に enqueue する。
+Task の投入は CommandQueue を2つ用意しパイプライン的に実行を行う。Task の終了は、
+clWaitForEvent によって検出し、TaskManger 間の通信を担当する
+同期キューである mail を使って通知する(図:\ref{fig:createTask})。
+
+GpuScheduler 内で platform や device の ID の取得、context の生成、
+kernel の build と load 、等も行っているため並列計算のみに集中できる。
+
+現在は kernel の記述は、CPU 上で実行する場合と GPU 上で実行する場合のファイルは異なるものを用いる。
+両者はほとんど同じであるが、若干形式が異なる。
+これらは将来的には自動変換などを行うのが望ましいと考えられる。
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/conclusion.tex	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,11 @@
+\section{まとめ}
+本研究では Cerium Task Manager をデータ並列による実行に対応させ、更にベンチマークも行った。
+これにより、大量のデータに対して同一の処理を繰り返し行うというGPUが得意とする処理が可能となった。
+しかし、 GPU 実行の場合は充分な性能が出ているが、 Multi Core の場合は並列度が充分に出ているとは言えない。
+データの転送や測定の見直し等、チューニングが必要である。
+
+更に複数あるTaskをCPUとGPU、両方のアーキテクチャで実行できるように実装した。
+しかし、CPUとGPUは同じ性能が出るわけではない。
+更に GPU はデータの転送がネックになりやすいので、各Taskの計算量と実行時間が比例しない場合がある。
+そういった場合にCPUとGPUに均等にTaskを割り振ってしまうと、並列度が出ない。
+そこでCPUとGPUに対して最適にTaskを割り振るSchedulingの手法を提案した。
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/data_parallel.tex	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,87 @@
+\section{Ceriumにおけるデータ並列}\label{data_parallel}
+OpenCLで充分な並列度を得るには、データ並列による実行をサポートした方が良い。
+CeriumでOpenCLのデータ並列を使うために、iterateというAPIを用意した。
+
+ベンチマークをとるために、まずはCPU(many core)上でデータ並列の機構を実装した。
+OpenCLでデータ並列を行う際は、NDRangeの引数でワークアイテムのサイズを設定し、以下のようにkernelを書けばよい。
+
+\begin{Verbatim}[fontsize=\footnotesize,xleftmargin=1cm]
+__kernel void
+multi(__global const float *i_data1, 
+      __global const float *i_data2,
+      __global float *o_data)
+{
+    int i = get_global_id(0);
+    o_data[i] = i_data1[i]*i_data2[i];
+}
+
+\end{Verbatim}
+kernelを複数生成し、各kernelは自分が担当するindexをget\_global\_id APIで取得し、
+その部分だけ計算を行う。CPUで実行する場合もGPU実行時のkernelとなるべく近い形式で記述できるようにする。
+
+\subsection{データ並列実行の機構}
+データ並列で実行する場合はspawn APIではなく、iterate APIでTaskを生成すればよい。
+Scheduler内で引数分のTaskを生成し、それぞれに自分が担当するindexをパラメタとして設定していく。
+iterateにはlengthを引数として渡し、lengthの値と渡したlengthの個数で次元数や
+ワークアイテムのサイズをSchedulerが計算する。
+CPU実行時のkernelは以下のように記述する。
+
+\begin{Verbatim}[fontsize=\footnotesize,xleftmargin=1cm]
+static int // kernel
+run(SchedTask *s,void *rbuf, void *wbuf)
+{
+    float *indata1,*indata2,*outdata;
+
+    indata1 = (float*)s->get_input(rbuf, 0);
+    indata2 = (float*)s->get_input(rbuf, 1);
+    outdata = (float*)s->get_output(wbuf, 0);
+
+    long i = (long)s->get_param(0);
+    outdata[i]=indata1[i]*indata2[i];
+    return 0;
+}
+\end{Verbatim}
+
+\subsection{データ並列におけるindex割り当ての実装}
+Taskを生成するとき、dimensionとワークアイテムのサイズをもとに各Taskが担当するindexを計算し、set\_paramする。
+kernelはget\_paramでそのindexを取得してデータ並列で実行する。
+get\_param APIがOpenCLのget\_global\_id APIに相当する。
+
+例として、cpu数4、一次元で10個のdataにたいしてデータ並列実行を行った場合、
+各CPUが担当するindexは表:\ref{table:data_parallel_index}のようになる。
+
+この例だと各CPUに対するindexの割り当ては、
+CPU0はindex0、4、8、
+CPU1はindex1、5、9、
+CPU2はindex2、6、
+CPU3はindex3、7となっている。
+
+\begin{tiny}
+  \begin{table}[h]
+    \begin{center}
+      \caption{data並列実行時のindexの割り当て}
+      \label{table:data_parallel_index}
+      \small
+      \begin{tabular}[t]{c||c|c|c|c}
+        \hline
+        stage&CPU0& CPU1&CPU2&CPU3 \\
+        \hline
+        1&0&1&2&3 \\
+        \hline
+        2&4&5&6&7 \\
+        \hline
+        3&8&9& & \\
+        \hline
+      \end{tabular}
+    \end{center}
+  \end{table}
+
+\end{tiny}
+この実装により、Ceriumでデータ並列の実行が可能になった。
+並列プログラミングだと、並列化するTaskが全部同一であるという事は少なくない。
+その際、Taskを生成する部分をループで回すことなく、簡単なsyntaxで記述できる。
+
+データ並列で実行する場合は、inputとoutputを各Taskで共有するため、少ないコピーですむ。
+CPUならメモリ領域がTaskとmanagerで同じなので、dataのコピーで大きいオーバーヘッドにはならない。
+しかしCellとGPUはメモリ領域が異なるため、dataコピーのオーバーヘッドが大きく、
+データ並列による高速化が見込める。
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/dummy.tex	Tue Nov 05 23:18:04 2013 +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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/fancyvrb.sty	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,1415 @@
+%%
+%% This is file `fancyvrb.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% fancyvrb.dtx  (with options: `fancyvrb')
+%% 
+%% IMPORTANT NOTICE:
+%% 
+%% For the copyright see the source file.
+%% 
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from fancyvrb.sty.
+%% 
+%% For distribution of the original source see the terms
+%% for copying and modification in the file fancyvrb.dtx.
+%% 
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%%
+%% Package `fancyvrb'
+%%
+%% Timothy Van Zandt <tvz@zandtwerk.kellogg.nwu.edu>
+%% July 17, 1998
+%%
+%% COPYRIGHT 1992-1999, by Timothy Van Zandt <tvz@zandtwerk.kellogg.nwu.edu>
+%%
+%% This package may be distributed under the terms of the LaTeX Project Public
+%% License, as described in lppl.txt in the base LaTeX distribution.
+%% Either version 1.0 or, at your option, any later version.
+%%
+%% DESCRIPTION:
+%%   fancyvrb.sty is a LaTeX style option, containing flexible
+%%   verbatim environments and commands and extensive documentation.
+%%
+%%   This is a companion to the `fancybox' package.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\def\fileversion{2.6, with DG/SPQR fixes}
+\def\filedate{1998/07/17}
+\ProvidesPackage{fancyvrb}[\filedate]
+\message{Style option: `fancyvrb' v\fileversion \space  <\filedate> (tvz)}
+\csname fancyvrb@loaded\endcsname
+\let\fancyvrb@loaded\endinput
+\def\FV@Error#1#2{%
+  \edef\@tempc{#2}\expandafter\errhelp\expandafter{\@tempc}%
+  \errmessage{FancyVerb Error:^^J\space\space #1^^J}}
+
+\def\FV@eha{Your command was ignored. Type <return> to continue.}
+%% DG/SR modification begin - Jan. 21, 1998
+%% Suggested by Bernard Gaulle to solve a compatibility problem with `french'
+%% (it introduce the restriction to put \VerbatimFootnotes AFTER the preambule)
+%%\def\VerbatimFootnotes{\let\@footnotetext\V@footnotetext}
+\let\V@footnote\footnote
+\def\VerbatimFootnotes{%
+\let\@footnotetext\V@footnotetext%
+\let\footnote\V@footnote}
+%% DG/SR modification end
+\long\def\V@footnotetext{%
+  \afterassignment\V@@footnotetext
+  \let\@tempa}
+\def\V@@footnotetext{%
+  \insert\footins\bgroup
+  \csname reset@font\endcsname
+  \footnotesize
+  \interlinepenalty\interfootnotelinepenalty
+  \splittopskip\footnotesep
+  \splitmaxdepth\dp\strutbox
+  \floatingpenalty \@MM
+  \hsize\columnwidth
+  \@parboxrestore
+  \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}%
+  \@makefntext{}%
+  \rule{\z@}{\footnotesep}%
+  \bgroup
+  \aftergroup\V@@@footnotetext
+  \ignorespaces}
+\def\V@@@footnotetext{\strut\egroup}
+\RequirePackage{keyval}
+\def\define@booleankey#1#2#3#4{%
+  \@namedef{KV@#1@#2@default}{#3}%
+  \@namedef{KV@#1@#2@false}{#4}%
+  \@namedef{KV@#1@#2}##1{\KV@booleankey{##1}{#1}{#2}}}
+\def\KV@booleankey#1#2#3{%
+  \edef\@tempa{#1}\expandafter\KV@@booleankey\@tempa\relax\@nil{#2}{#3}}
+\def\KV@@booleankey#1#2\@nil#3#4{%
+  \@nameuse{KV@#3@#4@\if t#1default\else\if T#1default\else false\fi\fi}}
+\def\FV@None{none}
+\def\FV@Auto{auto}
+\def\fvset#1{\setkeys{FV}{#1}}
+\def\FV@Command#1#2{%
+  \@ifstar
+    {\def\FV@KeyValues{#1,showspaces}\FV@@Command{#2}}%
+    {\def\FV@KeyValues{#1}\FV@@Command{#2}}}
+\def\FV@@Command#1{%
+  \@ifnextchar[%
+    {\FV@GetKeyValues{\@nameuse{FVC@#1}}}%
+    {\@nameuse{FVC@#1}}}
+\def\FV@GetKeyValues#1[#2]{%
+  \expandafter\def\expandafter\FV@KeyValues\expandafter{\FV@KeyValues,#2}#1}
+\def\@CustomVerbatimCommand#1#2#3#4{%
+  \begingroup\fvset{#4}\endgroup  % If there are errors, it easier to locate.
+%% DG/SR modification begin - Jan. 13, 1998
+%%  \def\@tempa##1##2\@nil{\def\@tempa{##2}}%
+%%  \expandafter\@tempa\string#3\@empty\@nil
+%%  \@ifundefined{FVC@\@tempa}%
+  \@ifundefined{FVC@#3}%
+%% DG/SR modification end
+    {\FV@Error{Command `\string#3' is not a FancyVerb command.}\@eha}%
+    {#1{#2}{\FV@Command{#4}{#3}}}}
+\def\CustomVerbatimCommand{\@CustomVerbatimCommand\newcommand}
+\def\RecustomVerbatimCommand{\@CustomVerbatimCommand\renewcommand}
+\def\FV@Environment#1#2{%
+  \def\FV@KeyValues{#1}%
+  \catcode`\^^M=\active
+  \@ifnextchar[%
+    {\catcode`\^^M=5 \FV@GetKeyValues{\@nameuse{FVB@#2}}}%
+    {\catcode`\^^M=5 \@nameuse{FVB@#2}}}
+\def\CustomVerbatimEnvironment{\@CustomVerbatimEnvironment\newenvironment}
+\def\RecustomVerbatimEnvironment{\@CustomVerbatimEnvironment\renewenvironment}
+\def\@CustomVerbatimEnvironment#1#2#3#4{%
+  \begingroup\fvset{#4}\endgroup  % If there are errors, it easier to locate.
+  \@ifundefined{FVB@#3}%
+    {\FV@Error{`#3' is not a FancyVerb environment.}\@eha}%
+    {#1{#2}{\FV@Environment{#4}{#3}}{\@nameuse{FVE@#3}}%
+     #1{#2*}{\FV@Environment{#4,showspaces}{#3}}{\@nameuse{FVE@#3}}}}
+\def\DefineVerbatimEnvironment#1#2#3{%
+  \@namedef{#1}{\FV@Environment{#3}{#2}}%
+  \@namedef{end#1}{\@nameuse{FVE@#2}}%
+  \@namedef{#1*}{\FV@Environment{#3,showspaces}{#2}}%
+  \@namedef{end#1*}{\@nameuse{FVE@#2}}}
+\def\FV@UseKeyValues{%
+  \ifx\FV@KeyValues\@empty\else
+    \def\KV@prefix{KV@FV@}%
+    \expandafter\KV@do\FV@KeyValues,\relax,%
+    \def\FV@KeyValues{}%
+  \fi}
+\def\FV@CatCodes{%
+  \let\do\@makeother\dospecials  % The usual stuff.
+  \FV@ActiveWhiteSpace           % See below.
+  \FV@FontScanPrep               % See below.
+  \FV@CatCodesHook               % A style hook.
+  \FancyVerbCodes}               % A user-defined hook.
+\def\FV@ActiveWhiteSpace{%
+  \catcode`\^^M=\active          % End of line
+  \catcode`\ =\active            % Space
+  \catcode`\^^I=\active}         % Tab
+\def\FV@CatCodesHook{}
+\def\FV@AddToHook#1#2{%
+  \expandafter\def\expandafter#1\expandafter{#1#2\relax}}
+\define@key{FV}{codes}[]{\def\FancyVerbCodes{#1\relax}}
+\define@key{FV}{codes*}{%
+  \expandafter\def\expandafter\FancyVerbCodes\expandafter{%
+    \FancyVerbCodes#1\relax}}
+\fvset{codes}
+\define@key{FV}{commandchars}[\\\{\}]%
+  {\def\@tempa{#1}%
+    \ifx\@tempa\FV@None
+      \let\FV@CommandChars\relax
+    \else
+      \FV@DefineCommandChars#1\relax\relax\relax
+    \fi}
+\def\FV@DefineCommandChars#1#2#3{%
+  \def\FV@CommandChars{%
+    \catcode`#1=0\relax\catcode`#2=1\relax\catcode`#3=2\relax}}
+\FV@AddToHook\FV@CatCodesHook\FV@CommandChars
+\define@key{FV}{commentchar}[\%]{%
+  \def\@tempa{#1}%
+  \ifx\@tempa\FV@None
+    \let\FV@CommentChar\relax
+  \else
+    \def\FV@CommentChar{\catcode`#1=14}%
+  \fi}
+\FV@AddToHook\FV@CatCodesHook\FV@CommentChar
+\fvset{commandchars=none,commentchar=none}
+\define@key{FV}{firstline}{%
+  \afterassignment\FV@ParseStart\@tempcnta=0#1\relax\@nil{#1}}
+\def\FV@ParseStart#1\relax\@nil#2{%
+  \ifx\@nil#1\@nil
+    \edef\FancyVerbStartNum{\the\@tempcnta}%
+    \let\FancyVerbStartString\relax
+  \else
+    \edef\FancyVerbStartString{#2}%
+  \fi}
+\def\KV@FV@firstline@default{%
+  \let\FancyVerbStartNum\z@
+  \let\FancyVerbStartString\relax}
+\define@key{FV}{lastline}{%
+  \afterassignment\FV@ParseStop\@tempcnta=0#1\relax\@nil{#1}}
+\def\FV@ParseStop#1\relax\@nil#2{%
+  \ifx\@nil#1\@nil
+    \edef\FancyVerbStopNum{\the\@tempcnta}%
+    \let\FancyVerbStopString\relax
+  \else
+    \edef\FancyVerbStopString{#2}%
+  \fi}
+\def\KV@FV@lastline@default{%
+  \let\FancyVerbStopNum\z@
+  \let\FancyVerbStopString\relax}
+\fvset{firstline,lastline}
+\newcount\FV@CodeLineNo
+\def\FV@PreProcessLine{%
+  \global\advance\FV@CodeLineNo\@ne
+  \FV@FindStartStop}
+\def\FV@@PreProcessLine{%
+  \FV@StepLineNo
+  \FV@Gobble
+  \expandafter\FV@ProcessLine\expandafter{\FV@Line}}
+\def\FV@FindStartStop{\FV@DefineFindStart\FV@FindStartStop}
+%% \def\FV@DefinePreProcessLine{%
+%%   \setcounter{FancyVerbLine}{0}%
+%%   \FV@DefineFindStart}
+\def\FV@DefineFindStart{%
+  \ifx\FancyVerbStartString\relax
+    \ifnum\FancyVerbStartNum<\tw@
+      \FV@DefineFindStop
+    \else
+      \let\FV@FindStartStop\FV@FindStartNum
+    \fi
+  \else
+    \let\FV@FindStartStop\FV@FindStartString
+  \fi}
+\def\FV@FindStartNum{%
+  \ifnum\FancyVerbStartNum>\FV@CodeLineNo\else
+    \FV@DefineFindStop
+    \expandafter\FV@@PreProcessLine
+  \fi}
+%% SR modification begin - 1996
+\def\FV@FindStartString{%
+ \expandafter\FV@@FindStartString
+{\meaning\FV@Line}%
+{\meaning\FancyVerbStartString}%
+}
+\def\FV@@FindStartString#1#2{%
+\edef\@fooA{#1}\edef\@fooB{#2}%
+  \ifx\@fooA\@fooB
+    \FV@DefineFindStop
+  \fi
+}
+%% SR modification end
+\def\FV@DefineFindStop{%
+  \ifx\FancyVerbStopString\relax
+    \ifnum\FancyVerbStopNum<\@ne
+      \let\FV@FindStartStop\FV@@PreProcessLine
+    \else
+      \let\FV@FindStartStop\FV@FindStopNum
+    \fi
+  \else
+    \let\FV@FindStartStop\FV@FindStopString
+  \fi}
+\def\FV@FindStopNum{%
+  \ifnum\FancyVerbStopNum=\FV@CodeLineNo
+    \let\FV@FindStartStop\relax
+    \ifeof\FV@InFile\else
+      \immediate\closein\FV@InFile
+    \fi
+  \fi
+  \FV@@PreProcessLine}
+%% SR modification begin - 1996
+\def\FV@FindStopString{%
+ \expandafter\FV@@FindStopString
+{\meaning\FV@Line}%
+{\meaning\FancyVerbStopString}%
+}
+\def\FV@@FindStopString#1#2{%
+\edef\@fooA{#1}\edef\@fooB{#2}%
+  \ifx\@fooA\@fooB
+    \let\FV@FindStartStop\relax
+    \ifeof\FV@InFile\else
+      \immediate\closein\FV@InFile
+    \fi
+  \else
+    \expandafter\FV@@PreProcessLine
+  \fi}
+%% SR modification end
+\def\FV@@Gobble{%
+  \expandafter\expandafter\expandafter\FV@@@Gobble
+  \expandafter\FV@@@@Gobble\FV@Line
+    \@nil\@nil\@nil\@nil\@nil\@nil\@nil\@nil\@nil\@nil\@@nil}
+\def\FV@@@Gobble#1\@nil#2\@@nil{\def\FV@Line{#1}}
+\define@key{FV}{gobble}{%
+  \@tempcnta=#1\relax
+  \ifnum\@tempcnta<\@ne
+    \let\FV@Gobble\relax
+  \else
+    \ifnum\@tempcnta>9
+      \FV@Error{gobble parameter must be less than 10}\FV@eha
+    \else
+      \renewcommand{\FV@@@@Gobble}[\@tempcnta]{}%
+      \let\FV@Gobble\FV@@Gobble
+    \fi
+  \fi}
+\def\FV@@@@Gobble{}
+\def\KV@FV@gobble@default{\let\FV@Gobble\relax}
+\fvset{gobble}
+\def\FV@Scan{%
+    \FV@CatCodes
+    \VerbatimEnvironment
+    \FV@DefineCheckEnd
+    \FV@BeginScanning}
+\def\VerbatimEnvironment{%
+  \ifx\FV@EnvironName\relax\xdef\FV@EnvironName{\@currenvir}\fi}
+\let\FV@EnvironName\relax
+\begingroup
+\catcode`\!=0
+\catcode`\[=1
+\catcode`\]=2
+!gdef!FV@CheckEnd@i#1[!FV@@CheckEnd#1\end{}!@nil]
+!gdef!FV@@CheckEnd@i#1\end#2#3!@nil[!def!@tempa[#2]!def!@tempb[#3]]
+!gdef!FV@@@CheckEnd@i[\end{}]
+\catcode`!\=12
+
+!gdef!FV@CheckEnd@ii#1[!FV@@CheckEnd#1\end{}!@nil]
+!gdef!FV@@CheckEnd@ii#1\end#2#3!@nil[!def!@tempa[#2]!def!@tempb[#3]]
+!gdef!FV@@@CheckEnd@ii[\end{}]
+!catcode`!{=12
+!catcode`!}=12
+
+!gdef!FV@CheckEnd@iii#1[!FV@@CheckEnd#1\end{}!@nil]
+!gdef!FV@@CheckEnd@iii#1\end{#2}#3!@nil[!def!@tempa[#2]!def!@tempb[#3]]
+!gdef!FV@@@CheckEnd@iii[\end{}]
+!catcode`!\=0
+
+!gdef!FV@CheckEnd@iv#1[!FV@@CheckEnd#1\end{}!@nil]
+!gdef!FV@@CheckEnd@iv#1\end{#2}#3!@nil[!def!@tempa[#2]!def!@tempb[#3]]
+!gdef!FV@@@CheckEnd@iv[\end{}]
+\endgroup
+\def\FV@BadCodes#1{%
+  \FV@Error
+    {\string\catcode\space of \expandafter\@gobble\string#1 is wrong:
+    \the\catcode`#1}%
+    {Only the following catcode values are allowed:
+    ^^J\@spaces \expandafter\@gobble\string\\ \space\space --> 0 or 12.
+    ^^J\@spaces \string{ \string} --> 1 and 2, resp., or both 12.
+    ^^JTo get this error, either you are a hacker or you got bad advice.}%
+  \def\FV@CheckEnd##1{\iftrue}}
+\def\FV@DefineCheckEnd{%
+  \ifnum\catcode`\\=\z@
+    \ifnum\catcode`\{=\@ne
+      \let\FV@CheckEnd\FV@CheckEnd@i
+      \let\FV@@CheckEnd\FV@@CheckEnd@i
+      \let\FV@@@CheckEnd\FV@@@CheckEnd@i
+    \else
+      \ifnum\catcode`\{=12
+        \let\FV@CheckEnd\FV@CheckEnd@iv
+        \let\FV@@CheckEnd\FV@@CheckEnd@iv
+        \let\FV@@@CheckEnd\FV@@@CheckEnd@iv
+      \else
+        \FV@BadCodes\{%
+      \fi
+    \fi
+  \else
+    \ifnum\catcode`\\=12
+      \ifnum\catcode`\{=\@ne
+        \let\FV@CheckEnd\FV@CheckEnd@ii
+        \let\FV@@CheckEnd\FV@@CheckEnd@ii
+        \let\FV@@@CheckEnd\FV@@@CheckEnd@ii
+      \else
+        \ifnum\catcode`\{=12
+          \let\FV@CheckEnd\FV@CheckEnd@iii
+          \let\FV@@CheckEnd\FV@@CheckEnd@iii
+          \let\FV@@@CheckEnd\FV@@@CheckEnd@iii
+        \else
+          \FV@BadCodes\{%
+        \fi
+      \fi
+    \else
+      \FV@BadCodes\\%
+    \fi
+  \fi}
+\begingroup
+\catcode`\^^M=\active
+  \gdef\FV@BeginScanning#1^^M{%
+    \def\@tempa{#1}\ifx\@tempa\@empty\else\FV@BadBeginError\fi%
+    \FV@GetLine}%
+\endgroup
+\def\FV@BadBeginError#1{%
+  \expandafter\@temptokena\expandafter{\@tempa}%
+  \FV@Error
+    {Extraneous input `\the\@temptokena' between
+      \string\begin{\FV@EnvironName}[<key=value>] and line end}%
+   {This input will be discarded. Hit <return> to continue.}}
+%% DG/SR modification begin - May. 18, 1998 (added code to turn off ligatures)
+%% \def\FV@GetLine{\expandafter\FV@CheckScan\FancyVerbGetLine}
+\def\FV@GetLine{\@noligs\expandafter\FV@CheckScan\FancyVerbGetLine}
+%% DG/SR modification end
+\begingroup
+\catcode`\^^M=\active
+\gdef\FancyVerbGetLine#1^^M{%
+  \@nil
+  \FV@CheckEnd{#1}%
+  \ifx\@tempa\FV@EnvironName%            % True if end is found
+    \ifx\@tempb\FV@@@CheckEnd\else\FV@BadEndError\fi%
+    \let\next\FV@EndScanning%
+  \else%
+    \def\FV@Line{#1}%
+    \def\next{\FV@PreProcessLine\FV@GetLine}%
+  \fi%
+  \next}%
+\endgroup
+\def\FV@BadEndError{%
+  \expandafter\@temptokena\expandafter{\@tempb}%
+  \FV@Error
+      {Extraneous input `\the\@temptokena' between
+        \string\end{\FV@EnvironName} and line end}%
+      {This input will be discarded. Type <return> to continue.}}
+\def\FV@EndScanning{%
+  \edef\next{\noexpand\end{\FV@EnvironName}}%
+  \global\let\FV@EnvironName\relax
+  \next}
+\@ifundefined{@currenvline}{\let\@currenvline\@empty}{}
+\def\FV@CheckScan#1{\@ifnextchar\@nil{\@gobble}{\FV@EOF}}
+\def\FV@CheckScan#1{\ifx\@nil#1\@empty\else\expandafter\FV@EOF\fi}
+\def\FV@EOF{%
+  \FV@Error{Couldn't find `\string\end{\FV@EnvironName}' to end
+    a verbatim environment\@currenvline.}%
+    {Probably you mistyped the environment name or included an extraneous
+    ^^Jspace, or are using an improperly defined verbatim environment.
+    ^^JHit return and I will try to terminate this job.}%
+  \FV@EndScanning
+  \end{document}}
+                                % \subsection{Input}
+\newread\FV@InFile
+\def\FV@Input#1{%
+  \immediate\openin\FV@InFile #1\relax
+  \ifeof\FV@InFile
+    \FV@Error{No verbatim file #1}\FV@eha
+    \immediate\closein\FV@InFile
+  \else
+    \FV@CatCodes
+    \expandafter\FV@@Input
+  \fi}
+\def\FV@@Input{%
+  \def\FV@Line{}%
+  \FV@ReadLine
+  \ifeof\FV@InFile
+    \ifx\FV@Line\@empty\else
+      \FV@PreProcessLine
+    \fi
+    \immediate\closein\FV@InFile
+  \else
+    \FV@PreProcessLine
+    \expandafter\FV@@Input
+  \fi}
+\begingroup
+\catcode`\^^M=\active
+\gdef\FV@ReadLine{%
+  \ifeof\FV@InFile\else
+    \immediate\read\FV@InFile to\@tempa%
+    \expandafter\FV@@ReadLine\@tempa^^M\relax^^M\@nil%
+  \fi}
+\gdef\FV@@ReadLine#1^^M#2^^M#3\@nil{%
+  \expandafter\def\expandafter\FV@Line\expandafter{%
+    \FV@Line#1}%
+  \ifx\relax#2\@empty\expandafter\FV@ReadLine\fi}%
+\endgroup
+\def\FV@FormattingPrep{%
+  \global\FV@CodeLineNo\z@
+  \frenchspacing             % Cancels special punctuation spacing.
+  \FV@SetupFont              % See below.
+  \FV@DefineWhiteSpace       % See below.
+  \FancyVerbDefineActive
+  \FancyVerbFormatCom}       % A user-defined hook (formatcom parameter).
+\expandafter\ifx\csname selectfont\endcsname\relax
+\def\FV@SetupFont{%
+  \FV@BaseLineStretch
+  \ifx\@currsize\small\normalsize\else\small\fi\@currsize
+  \FV@FontSize
+  \FV@FontFamily}
+
+\else
+
+\def\FV@SetupFont{%
+  \FV@BaseLineStretch
+  \FV@FontSize
+  \FV@FontFamily
+  \FV@FontSeries
+  \FV@FontShape
+  \selectfont
+%% DG/SR modification begin - May. 18, 1998 (added code to turn off ligatures)
+  \@noligs}
+%% DG/SR modification end
+\fi
+\define@key{FV}{fontsize}{%
+  \def\@tempa{#1}%
+  \ifx\@tempa\FV@Auto
+    \let\FV@FontSize\relax
+  \else
+    \def\FV@FontSize{#1}%
+  \fi}
+\def\KV@FV@fontsize@default{\let\FV@FontSize\relax}
+\define@key{FV}{baselinestretch}[auto]{%
+  \def\@tempa{#1}%
+  \ifx\@tempa\FV@Auto
+    \let\FV@BaseLineStretch\relax
+  \else
+    \def\FV@BaseLineStretch{\def\baselinestretch{#1}}%
+  \fi}
+\def\KV@FV@baselinestretch@default{\let\FV@BaseLineStretch\relax}
+\define@key{FV}{fontfamily}{%
+  \@ifundefined{FV@fontfamily@#1}%
+    {\def\FV@FontScanPrep{}\def\FV@FontFamily{\fontfamily{#1}}}
+    {\csname FV@fontfamily@#1\endcsname}}
+\define@key{FV}{fontseries}{%
+  \def\@tempa{#1}%
+  \ifx\@tempa\FV@Auto
+    \let\FV@FontSeries\relax
+  \else
+    \def\FV@FontSeries{\fontseries{#1}}%
+  \fi}
+\define@key{FV}{fontshape}{%
+  \def\@tempa{#1}%
+  \ifx\@tempa\FV@Auto
+    \let\FV@FontShape\relax
+  \else
+    \def\FV@FontShape{\fontshape{#1}}%
+  \fi}
+\def\FV@MakeActive#1{%
+  \catcode`#1=\active
+  \def\next##1{\expandafter\def\expandafter\FV@MakeUnActive\expandafter{%
+    \FV@MakeUnActive\def##1{\string##1}}}%
+  \begingroup\lccode`~=`#1\relax\expandafter\next\expandafter~\endgroup}
+\def\FV@MakeUnActive{}
+\begingroup
+\catcode`\`=\active
+\gdef\FV@fontfamily@tt{%
+  \def\FV@FontScanPrep{\FV@MakeActive\`}%
+%% SR modification begin - 1995
+%%  \def\FV@FontFamily{\tt`{{\string`}}}}
+  \def\FV@FontFamily{\ttfamily\edef`{{\string`}}}}
+%% SR modification end
+\gdef\FV@fontfamily@cmtt{%
+  \def\FV@FontScanPrep{\FV@MakeActive\`}%
+  \def\FV@FontFamily{\edef`{{\string`}}\fontfamily{cmtt}}}
+\endgroup
+\@namedef{FV@fontfamily@cmtt-spanish}{%
+  \def\FV@FontScanPrep{}%
+  \def\FV@FontFamily{\fontfamily{cmtt}}}
+\@namedef{FV@fontfamily@courier}{%
+  \def\FV@FontScanPrep{}%
+%% SR modification begin - 1995
+%%  \def\FV@FontFamily{\fontfamily{rpcr}}}
+  \def\FV@FontFamily{\fontfamily{pcr}}}
+%% SR modification end
+\@namedef{FV@fontfamily@helvetica}{%
+  \def\FV@FontScanPrep{}%
+%% SR modification begin - 1995
+%%  \def\FV@FontFamily{\fontfamily{rphv}}}
+  \def\FV@FontFamily{\fontfamily{phv}}}
+%% SR modification end
+\fvset{fontfamily=tt,fontsize=auto,fontshape=auto,fontseries=auto,
+  baselinestretch=auto}
+\begingroup
+\catcode`\ =\active
+\catcode`\^^I=\active
+\gdef\FV@DefineWhiteSpace{\def {\FV@Space}\def^^I{\FV@Tab}}%
+\endgroup
+\define@key{FV}{defineactive}[]{\def\FancyVerbDefineActive{#1\relax}}
+\define@key{FV}{defineactive*}{%
+  \expandafter\def\expandafter\FancyVerbDefineActive\expandafter{%
+    \FancyVerbDefineActive#1\relax}}
+\fvset{defineactive}
+\define@booleankey{FV}{showspaces}%
+  {\def\FV@Space{{\FancyVerbSpace}}}%
+  {\def\FV@Space{\ }}
+{\catcode`\ =12 \gdef\FancyVerbSpace{\tt }}
+\fvset{showspaces=false}
+\def\FV@Tab{\hbox to\FancyVerbTabSize\fontdimen2\font{\hss\FV@TabChar}}
+\define@key{FV}{tabsize}{%
+  \@tempcnta=#1\relax
+  \ifnum\@tempcnta>100
+    \FV@Error{Tab size too large: `\the\@tempcnta'. (Max size = 100)}\FV@eha
+  \else
+    \edef\FancyVerbTabSize{\the\@tempcnta}%
+  \fi}
+\define@booleankey{FV}{showtabs}%
+  {\def\FV@TabChar{\FancyVerbTab}}%
+  {\let\FV@TabChar\relax}
+\fvset{tabsize=8,showtabs=false}
+\def\FancyVerbTab{%
+    \valign{%
+      \vfil##\vfil\cr
+      \hbox{$\scriptscriptstyle-$}\cr
+      \hbox to 0pt{\hss$\scriptscriptstyle\rangle\mskip -.8mu$}\cr
+      \hbox{$\scriptstyle\mskip -3mu\mid\mskip -1.4mu$}\cr}}
+\newbox\FV@TabBox
+\def\FV@@ObeyTabsInit{%
+  \@tempdimb=\FancyVerbTabSize\fontdimen\tw@\font
+  \edef\FV@ObeyTabSize{\number\@tempdimb}%
+  \advance\@tempdimb\fontdimen\tw@\font
+  \advance\@tempdimb-\FancyVerbTabSize sp  % Allow for rounding errors.
+  \edef\FV@@ObeyTabSize{\number\@tempdimb}%
+  \let\FV@ObeyTabs\FV@@ObeyTabs
+  \let\FV@Tab\FV@TrueTab}
+\def\FV@@ObeyTabs#1{\setbox\FV@TabBox=\hbox{#1}\box\FV@TabBox}
+\let\FV@ObeyTabs\relax
+\def\FV@TrueTab{%
+  \egroup
+  \@tempdima=\FV@ObeyTabSize sp\relax
+  \@tempcnta=\wd\FV@TabBox
+  \advance\@tempcnta\FV@@ObeyTabSize\relax
+  \divide\@tempcnta\@tempdima
+  \multiply\@tempdima\@tempcnta
+  \advance\@tempdima-\wd\FV@TabBox
+  \setbox\FV@TabBox=\hbox\bgroup
+    \unhbox\FV@TabBox\kern\@tempdima\hbox to\z@{\hss\FV@TabChar}}
+\define@booleankey{FV}{obeytabs}%
+  {\let\FV@ObeyTabsInit\FV@@ObeyTabsInit}%
+  {\let\FV@ObeyTabsInit\relax}
+\fvset{obeytabs=false}
+\define@key{FV}{formatcom}[]{\def\FancyVerbFormatCom{#1\relax}}
+\define@key{FV}{formatcom*}{%
+  \expandafter\def\expandafter\FancyVerbFormatCom\expandafter{%
+    \FancyVerbFormatCom#1\relax}}
+\fvset{formatcom}
+\def\FancyVerbFormatLine#1{\FV@ObeyTabs{#1}}
+\define@key{FV}{xleftmargin}{\def\FV@XLeftMargin{#1}}
+\let\FV@XLeftMargin\z@
+\define@key{FV}{xrightmargin}{\def\FV@XRightMargin{#1}}
+\let\FV@XRightMargin\z@
+\define@booleankey{FV}{resetmargins}%
+  {\let\if@FV@ResetMargins\iftrue}
+  {\let\if@FV@ResetMargins\iffalse}
+\fvset{resetmargins=false}
+\define@key{FV}{listparameters}{\def\FV@ListParameterHook{#1}}
+\def\FV@ListParameterHook{}
+\define@key{FV}{hfuzz}{%
+  \@tempdima=#1\relax
+  \edef\FancyVerbHFuzz{\number\@tempdima sp}}
+\fvset{hfuzz=2pt}
+\define@booleankey{FV}{samepage}%
+  {\def\FV@InterLinePenalty{\interlinepenalty\@M}}%
+  {\let\FV@InterLinePenalty\relax}
+\fvset{samepage=false}
+\def\FV@List#1{%
+  \begingroup
+  \FV@UseKeyValues
+  \FV@LeaveVMode
+  \if@inlabel\else\setbox\@labels=\box\voidb@x\fi
+  \FV@ListNesting{#1}%
+  \FV@ListParameterHook
+  \FV@ListVSpace
+  \FV@SetLineWidth
+  \FV@InterLinePenalty
+  \let\FV@ProcessLine\FV@ListProcessLine@i
+  \FV@CatCodes
+  \FV@FormattingPrep
+  \FV@ObeyTabsInit
+  \FV@BeginListFrame}
+\def\FV@LeaveVMode{%
+  \if@noskipsec
+    \leavevmode
+  \else
+    \if@FV@ResetMargins\if@inlabel\leavevmode\fi\fi
+  \fi
+  \ifvmode\@noparlisttrue\else\@noparlistfalse\unskip\par\fi}
+\def\FV@ListNesting#1{%
+  \if@FV@ResetMargins
+    \@listdepth=\z@
+  \else
+    \ifnum\@listdepth>5\relax
+      \@toodeep
+    \else
+      \advance\@listdepth\@ne
+    \fi
+  \fi
+  \rightmargin\z@
+  \csname @list\romannumeral\the\@listdepth\endcsname
+  \ifnum#1=\z@
+    \rightmargin\z@
+    \leftmargin\z@
+  \fi}
+\def\FV@ListVSpace{%
+  \@topsepadd\topsep
+  \if@noparlist\advance\@topsepadd\partopsep\fi
+  \if@inlabel
+    \vskip\parskip
+  \else
+    \if@nobreak
+      \vskip\parskip
+      \clubpenalty\@M
+    \else
+      \addpenalty\@beginparpenalty
+      \@topsep\@topsepadd
+      \advance\@topsep\parskip
+      \addvspace\@topsep
+    \fi
+  \fi
+  \global\@nobreakfalse
+  \global\@inlabelfalse
+  \global\@minipagefalse
+  \global\@newlistfalse}
+\def\FV@SetLineWidth{%
+  \if@FV@ResetMargins\else
+    \advance\leftmargin\@totalleftmargin
+  \fi
+  \advance\leftmargin\FV@XLeftMargin\relax
+  \advance\rightmargin\FV@XRightMargin\relax
+  \linewidth\hsize
+  \advance\linewidth-\leftmargin
+  \advance\linewidth-\rightmargin
+  \hfuzz\FancyVerbHFuzz\relax}
+\def\FV@ListProcessLine#1{%
+  \hbox to \hsize{%
+    \kern\leftmargin
+    \hbox to \linewidth{%
+      \FV@LeftListNumber
+      \FV@LeftListFrame
+      \FancyVerbFormatLine{#1}\hss
+%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on)
+%%      \FV@RightListFrame}%
+      \FV@RightListFrame
+      \FV@RightListNumber}%
+%% DG/SR modification end
+    \hss}}
+\def\FV@ListProcessLine@i#1{%
+  \hbox{%
+    \ifvoid\@labels\else
+      \hbox to \z@{\kern\@totalleftmargin\box\@labels\hss}%
+    \fi
+    \FV@ListProcessLine{#1}}%
+  \let\FV@ProcessLine\FV@ListProcessLine@ii}
+\def\FV@ListProcessLine@ii#1{%
+  \setbox\@tempboxa=\FV@ListProcessLine{#1}%
+  \let\FV@ProcessLine\FV@ListProcessLine@iii}
+\def\FV@ListProcessLine@iii#1{%
+  {\advance\interlinepenalty\clubpenalty\penalty\interlinepenalty}%
+  \box\@tempboxa
+  \setbox\@tempboxa=\FV@ListProcessLine{#1}%
+  \let\FV@ProcessLine\FV@ListProcessLine@iv}
+\def\FV@ListProcessLine@iv#1{%
+  \penalty\interlinepenalty
+  \box\@tempboxa
+  \setbox\@tempboxa=\FV@ListProcessLine{#1}}%
+\def\FV@EndList{%
+  \FV@ListProcessLastLine
+  \FV@EndListFrame
+  \@endparenv
+  \endgroup
+  \@endpetrue}
+\def\FV@ListProcessLastLine{%
+  \ifx\FV@ProcessLine\FV@ListProcessLine@iv
+    {\advance\interlinepenalty\widowpenalty\penalty\interlinepenalty}%
+    \box\@tempboxa
+  \else
+    \ifx\FV@ProcessLine\FV@ListProcessLine@iii
+      {\advance\interlinepenalty\widowpenalty
+        \advance\interlinepenalty\clubpenalty
+        \penalty\interlinepenalty}%
+      \box\@tempboxa
+    \else
+      \ifx\FV@ProcessLine\FV@ListProcessLine@i
+        \FV@Error{Empty verbatim environment}{}%
+        \FV@ProcessLine{}%
+      \fi
+    \fi
+  \fi}
+\def\FV@VerbatimBegin{\FV@List\z@}
+\def\FV@VerbatimEnd{\FV@EndList}
+\def\FVB@Verbatim{\FV@VerbatimBegin\FV@Scan}
+\def\FVE@Verbatim{\FV@VerbatimEnd}
+\DefineVerbatimEnvironment{Verbatim}{Verbatim}{}
+\def\FV@UseVerbatim#1{%
+  \FV@VerbatimBegin#1\FV@VerbatimEnd
+  \@doendpe\global\@ignorefalse\ignorespaces}
+\def\VerbatimInput{\FV@Command{}{VerbatimInput}}
+\def\FVC@VerbatimInput#1{\FV@UseVerbatim{\FV@Input{#1}}}
+\def\FV@LVerbatimBegin{\FV@List\@ne}
+\def\FV@LVerbatimEnd{\FV@EndList}
+\def\FVB@LVerbatim{\FV@LVerbatimBegin\FV@Scan}
+\def\FVE@LVerbatim{\FV@LVerbatimEnd}
+\DefineVerbatimEnvironment{LVerbatim}{LVerbatim}{}
+\def\FV@LUseVerbatim#1{%
+  \FV@LVerbatimBegin#1\FV@LVerbatimEnd
+  \@doendpe\global\@ignorefalse\ignorespaces}
+\def\LVerbatimInput{\FV@Command{}{LVerbatimInput}}
+\def\FVC@LVerbatimInput#1{\FV@LUseVerbatim{\FV@Input{#1}}}
+\def\FV@Frame@none{%
+  \let\FV@BeginListFrame\relax
+  \let\FV@LeftListFrame\relax
+  \let\FV@RightListFrame\relax
+  \let\FV@EndListFrame\relax}
+\def\FV@Frame@single{%
+  \let\FV@BeginListFrame\FV@BeginListFrame@Single
+  \let\FV@LeftListFrame\FV@LeftListFrame@Single
+  \let\FV@RightListFrame\FV@RightListFrame@Single
+  \let\FV@EndListFrame\FV@EndListFrame@Single}
+\def\FV@Frame@lines{%
+  \let\FV@BeginListFrame\FV@BeginListFrame@Lines
+  \let\FV@LeftListFrame\relax
+  \let\FV@RightListFrame\relax
+  \let\FV@EndListFrame\FV@EndListFrame@Lines}
+\def\FV@Frame@topline{%
+  \let\FV@BeginListFrame\FV@BeginListFrame@Lines
+  \let\FV@LeftListFrame\relax
+  \let\FV@RightListFrame\relax
+  \let\FV@EndListFrame\relax}
+\def\FV@Frame@bottomline{%
+  \let\FV@BeginListFrame\relax
+  \let\FV@LeftListFrame\relax
+  \let\FV@RightListFrame\relax
+  \let\FV@EndListFrame\FV@EndListFrame@Lines}
+%% To define a frame with only a left line
+\def\FV@Frame@leftline{%
+  % To define the \FV@FrameFillLine macro (from \FV@BeginListFrame)
+  \ifx\FancyVerbFillColor\relax
+    \let\FV@FrameFillLine\relax
+  \else
+    \@tempdima\FV@FrameRule\relax
+    \multiply\@tempdima-\tw@
+    \edef\FV@FrameFillLine{%
+      {\noexpand\FancyVerbFillColor{\vrule\@width\number\@tempdima sp}%
+      \kern-\number\@tempdima sp}}%
+  \fi
+  \let\FV@BeginListFrame\relax
+  \let\FV@LeftListFrame\FV@LeftListFrame@Single
+  \let\FV@RightListFrame\relax
+  \let\FV@EndListFrame\relax}
+\def\FV@BeginListFrame@Single{%
+  \lineskip\z@
+  \baselineskip\z@
+  \ifx\FancyVerbFillColor\relax
+    \let\FV@FrameFillLine\relax
+  \else
+    \@tempdima\FV@FrameRule\relax
+    \multiply\@tempdima-\tw@
+    \edef\FV@FrameFillLine{%
+      {\noexpand\FancyVerbFillColor{\vrule\@width\number\@tempdima sp}%
+      \kern-\number\@tempdima sp}}%
+  \fi
+%% DG/SR modification begin - May. 19, 1998
+%%  \FV@SingleFrameLine
+  \FV@SingleFrameLine{\z@}%
+%% DG/SR modification end
+  \penalty\@M
+  \FV@SingleFrameSep
+  \penalty\@M}
+%% DG/SR modification begin - May. 19, 1998
+\define@key{FV}{label}{%
+  \def\@tempa{#1}%
+  \ifx\@tempa\FV@None
+    \let\FV@LabelBegin\relax
+    \let\FV@LabelEnd\relax
+  \else
+    \FV@Label@i#1\@nil%
+  \fi}
+\def\FV@Label@i{\@ifnextchar[{\FV@Label@ii}{\FV@Label@ii[]}}
+\def\FV@Label@ii[#1]#2\@nil{%
+  \def\@tempa{#1}%
+  \ifx\@tempa\empty
+    \def\FV@LabelBegin{#2}%
+  \else
+    \def\FV@LabelBegin{#1}%
+    \def\FV@LabelPositionBottomLine{\@ne}%
+  \fi
+  \def\FV@LabelEnd{#2}}
+\fvset{label=none}
+\define@key{FV}{labelposition}[none]{%
+  \@ifundefined{FV@LabelPosition@#1}%
+    {\FV@Error{Label position `#1' not defined.}\FV@eha}%
+    {\@nameuse{FV@LabelPosition@#1}}}
+\def\FV@LabelPosition@none{%
+  \let\FV@LabelPositionTopLine\relax%
+  \let\FV@LabelPositionBottomLine\relax}
+\def\FV@LabelPosition@topline{%
+  \def\FV@LabelPositionTopLine{\@ne}%
+  \let\FV@LabelPositionBottomLine\relax}
+\def\FV@LabelPosition@bottomline{%
+  \let\FV@LabelPositionTopLine\relax%
+  \def\FV@LabelPositionBottomLine{\@ne}}
+\def\FV@LabelPosition@all{%
+  \def\FV@LabelPositionTopLine{\@ne}%
+  \def\FV@LabelPositionBottomLine{\@ne}}
+\fvset{labelposition=topline}
+%% DG/SR modification end
+%% DG/SR modification begin - May. 19, 1998
+%% \def\FV@SingleFrameLine{%
+\def\FV@SingleFrameLine#1{%
+%% DG/SR modification end
+  \hbox to\z@{%
+    \kern\leftmargin
+%% DG/SR modification begin - Jun. 22, 1998
+    \ifnum#1=\z@
+      \let\FV@Label\FV@LabelBegin
+    \else
+      \let\FV@Label\FV@LabelEnd
+    \fi
+    \ifx\FV@Label\relax
+%% DG/SR modification end
+      \FancyVerbRuleColor{\vrule \@width\linewidth \@height\FV@FrameRule}%
+%% DG/SR modification begin - Jun. 22, 1998
+    \else
+      \ifnum#1=\z@
+        \setbox\z@\hbox{\strut\enspace\FV@LabelBegin\enspace\strut}%
+      \else
+        \setbox\z@\hbox{\strut\enspace\FV@LabelEnd\enspace\strut}%
+      \fi
+      \@tempdimb=\dp\z@
+      \advance\@tempdimb -.5\ht\z@
+      \@tempdimc=\linewidth
+      \advance\@tempdimc -\wd\z@
+      \divide\@tempdimc\tw@
+      \ifnum#1=\z@              % Top line
+        \ifx\FV@LabelPositionTopLine\relax
+          \FancyVerbRuleColor{\vrule \@width\linewidth \@height\FV@FrameRule}%
+        \else
+          \FV@FrameLineWithLabel
+        \fi
+      \else                     % Bottom line
+        \ifx\FV@LabelPositionBottomLine\relax
+          \FancyVerbRuleColor{\vrule \@width\linewidth \@height\FV@FrameRule}%
+        \else
+          \FV@FrameLineWithLabel
+        \fi
+      \fi
+    \fi
+%% DG/SR modification end
+    \hss}}
+%% DG/SR modification begin - May. 19, 1998
+\def\FV@FrameLineWithLabel{%
+  \ht\z@\@tempdimb\dp\z@\@tempdimb%
+  \FancyVerbRuleColor{%
+    \vrule \@width\@tempdimc \@height\FV@FrameRule
+    \raise\@tempdimb\box\z@
+    \vrule \@width\@tempdimc \@height\FV@FrameRule}}
+%% DG/SR modification end
+\def\FV@BeginListFrame@Lines{%
+  \begingroup
+    \lineskip\z@skip
+%% DG modification begin - June 18, 1997 (effect of \baselineskip too earlier)
+%%    \baselineskip\z@skip
+%%    \FV@SingleFrameLine
+%% DG/SR modification begin - May. 19, 1998
+%%    \FV@SingleFrameLine
+    \FV@SingleFrameLine{\z@}%
+%% DG/SR modification end
+    \kern-0.5\baselineskip\relax
+    \baselineskip\z@skip
+%% DG modification end
+    \kern\FV@FrameSep\relax
+  \endgroup}%
+\def\FV@EndListFrame@Lines{%
+  \begingroup
+    \baselineskip\z@skip
+    \kern\FV@FrameSep\relax
+%% DG/SR modification begin - May. 19, 1998
+%%    \FV@SingleFrameLine
+    \FV@SingleFrameLine{\@ne}%
+%% DG/SR modification end
+  \endgroup}
+\def\FV@SingleFrameSep{%
+  \hbox to \z@{%
+    \kern\leftmargin
+    \hbox to\linewidth{%
+      \FancyVerbRuleColor{%
+%% DG modification begin - June 18, 1997 (\FV@FrameSep missing)
+        \ifx\FancyVerbFillColor\relax
+          \vrule\@width 0pt\@height\FV@FrameSep\relax
+        \fi
+%% DG modification end
+        \vrule\@width\FV@FrameRule\relax
+        \ifx\FancyVerbFillColor\relax
+          \hfil
+        \else
+          {\FancyVerbFillColor\leaders\hrule\@height\FV@FrameSep\hfil}%
+        \fi
+%% DG modification begin - June 18, 1997 (\FV@FrameSep missing)
+        \ifx\FancyVerbFillColor\relax
+          \vrule\@width 0pt\@height\FV@FrameSep\relax
+        \fi
+%% DG modification end
+        \vrule\@width\FV@FrameRule\relax}}%
+    \hss}}
+\def\FV@LeftListFrame@Single{%
+  \strut
+  {\FancyVerbRuleColor{\vrule \@width\FV@FrameRule}}%
+  \FV@FrameFillLine
+%% DG modification begin - June 18, 1997 (to fill color on left side)
+%%  \kern\FV@FrameSep}
+  \ifx\FancyVerbFillColor\relax
+    \kern\FV@FrameSep
+  \else
+    {\noexpand\leavevmode\FancyVerbFillColor{\vrule\@width\FV@FrameSep}}%
+  \fi}
+%% DG modification end
+\def\FV@RightListFrame@Single{%
+%% DG modification begin - June 18, 1997 (to fill color on right side)
+%%  \kern\FV@FrameSep
+  \ifx\FancyVerbFillColor\relax
+    \kern\FV@FrameSep
+  \else
+    {\noexpand\leavevmode\FancyVerbFillColor{\vrule\@width\FV@FrameSep}}%
+  \fi
+  {\noexpand\leavevmode\FancyVerbRuleColor{\vrule\@width\FV@FrameRule}}}
+%% DG modification end
+\def\FV@EndListFrame@Single{%
+  \penalty\@M
+  \FV@SingleFrameSep
+  \penalty\@M
+%% DG/SR modification begin - May. 19, 1998
+%%  \FV@SingleFrameLine}
+  \FV@SingleFrameLine{\@ne}}
+%% DG/SR modification end
+\define@key{FV}{framerule}{%
+  \@tempdima=#1\relax
+  \edef\FV@FrameRule{\number\@tempdima sp\relax}}
+\def\KV@FV@framerule@default{\let\FV@FrameRule\fboxrule}
+\define@key{FV}{framesep}{%
+  \@tempdima=#1\relax
+  \edef\FV@FrameSep{\number\@tempdima sp\relax}}
+\def\KV@FV@framesep@default{\let\FV@FrameSep\fboxsep}
+\fvset{framerule,framesep}
+\define@key{FV}{rulecolor}{%
+  \def\@tempa{#1}%
+  \ifx\@tempa\FV@None
+    \let\FancyVerbRuleColor\relax
+  \else
+    \let\FancyVerbRuleColor\@tempa
+  \fi}
+\define@key{FV}{fillcolor}{%
+  \def\@tempa{#1}%
+  \ifx\@tempa\FV@None
+    \let\FancyVerbFillColor\relax
+  \else
+    \let\FancyVerbFillColor\@tempa
+  \fi}
+\fvset{rulecolor=none,fillcolor=none}
+\def\FV@Frame@double{%
+  \let\FV@FrameBegin\FV@FrameBegin@double
+  \let\FV@FrameLine\FV@FrameLine@double
+  \let\FV@FrameEnd\FV@FrameEnd@double}
+\define@key{FV}{frame}[none]{%
+  \@ifundefined{FV@Frame@#1}%
+    {\FV@Error{Frame style `#1' not defined.}\FV@eha}%
+    {\@nameuse{FV@Frame@#1}}}
+\fvset{frame=none}
+\newcounter{FancyVerbLine}
+\define@key{FV}{firstnumber}[auto]{%
+  \def\@tempa{#1}\def\@tempb{auto}%
+  \ifx\@tempa\@tempb
+    \def\FV@SetLineNo{%
+      \c@FancyVerbLine\FV@CodeLineNo
+      \advance\c@FancyVerbLine\m@ne}%
+  \else
+    \def\@tempb{last}%
+    \ifx\@tempa\@tempb
+      \let\FV@SetLineNo\relax
+    \else
+%% DG/SR modification begin - Jan. 19, 1998
+%%      \def\FV@SetLineNo{\c@FancyVerbLine#1}%
+      \def\FV@SetLineNo{%
+        \c@FancyVerbLine#1
+        \advance\c@FancyVerbLine\m@ne}%
+%% DG/SR modification end
+    \fi
+  \fi}
+\define@booleankey{FV}{numberblanklines}%
+  {\let\if@FV@NumberBlankLines\iftrue}
+  {\let\if@FV@NumberBlankLines\iffalse}
+\fvset{numberblanklines=true}
+%% DG/SR modification begin - May. 20, 1998
+%%\def\refstepcounter#1{% Adapted from latex.ltx
+\def\FV@refstepcounter#1{%
+%% DG/SR modification end
+  \stepcounter{#1}%
+  \protected@edef\@currentlabel
+    {\csname p@#1\endcsname\arabic{FancyVerbLine}}}
+\def\FV@StepLineNo{%
+  \FV@SetLineNo
+%% DG/SR modification begin - Apr. 28, 1998 and May 20, 1998
+%%  \def\FV@StepLineNo{\refstepcounter{FancyVerbLine}}%
+  \def\FV@StepLineNo{%
+    \if@FV@NumberBlankLines
+      \FV@refstepcounter{FancyVerbLine}
+    \else
+      \ifx\FV@Line\empty
+      \else
+        \FV@refstepcounter{FancyVerbLine}
+      \fi
+    \fi}%
+%% DG/SR modification end
+  \FV@StepLineNo}
+%% DG/SR modification begin - 1995
+%%\def\theFancyVerbLine{\rm\tiny\arabic{FancyVerbLine}}
+\def\theFancyVerbLine{\rmfamily\tiny\arabic{FancyVerbLine}}
+%% DG/SR modification end
+\define@key{FV}{numbers}[none]{%
+  \@ifundefined{FV@Numbers@#1}%
+    {\FV@Error{Numbers style `#1' not defined.}\FV@eha}%
+    {\@nameuse{FV@Numbers@#1}}}
+%% DG modification begin - Dec. 20, 1995 and Jan. 28, 1998
+%%\def\FV@Numbers@none{\let\FV@LeftListNumber\relax}
+\def\FV@Numbers@none{%
+\let\FV@LeftListNumber\relax
+\let\FV@RightListNumber\relax}
+\newcount\FV@StepNumber
+\define@key{FV}{stepnumber}{\FV@StepNumber#1}
+\def\KV@FV@stepnumber@default{\FV@StepNumber\@ne}
+\fvset{stepnumber}
+%% DG modification begin - Dec. 20, 1995
+%%\def\FV@Numbers@left{%
+%%  \def\FV@LeftListNumber{\hbox to\z@{%
+%%    \hss\theFancyVerbLine\kern\FV@NumberSep}}}
+\def\FV@Numbers@left{%
+%% DG/SR modification begin - Apr. 28, 1998
+  \let\FV@RightListNumber\relax
+%% DG/SR modification end
+  \def\FV@LeftListNumber{%
+  \@tempcnta=\FV@CodeLineNo
+  \@tempcntb=\FV@CodeLineNo
+  \divide\@tempcntb\FV@StepNumber
+  \multiply\@tempcntb\FV@StepNumber
+  \ifnum\@tempcnta=\@tempcntb
+%% DG/SR modification begin - Apr. 28, 1998
+%%    \hbox to\z@{\hss\theFancyVerbLine\kern\FV@NumberSep}%
+      \if@FV@NumberBlankLines
+        \hbox to\z@{\hss\theFancyVerbLine\kern\FV@NumberSep}%
+      \else
+        \ifx\FV@Line\empty
+        \else
+          \hbox to\z@{\hss\theFancyVerbLine\kern\FV@NumberSep}%
+        \fi
+      \fi
+%% DG/SR modification end
+  \fi}}
+\def\FV@Numbers@right{%
+%% DG/SR modification begin - Apr. 28, 1998
+  \let\FV@LeftListNumber\relax
+%% DG/SR modification end
+  \def\FV@RightListNumber{%
+  \@tempcnta=\FV@CodeLineNo
+  \@tempcntb=\FV@CodeLineNo
+  \divide\@tempcntb\FV@StepNumber
+  \multiply\@tempcntb\FV@StepNumber
+  \ifnum\@tempcnta=\@tempcntb
+%% DG/SR modification begin - Apr. 28, 1998
+%%    \hbox to \z@{\kern\FV@NumberSep\theFancyVerbLine\hss}%
+      \if@FV@NumberBlankLines
+        \hbox to\z@{\kern\FV@NumberSep\theFancyVerbLine\hss}%
+      \else
+        \ifx\FV@Line\empty
+        \else
+          \hbox to\z@{\kern\FV@NumberSep\theFancyVerbLine\hss}%
+        \fi
+      \fi
+%% DG/SR modification end
+  \fi}}
+%% DG modification end
+\define@key{FV}{numbersep}{%
+  \@tempdima=#1\relax
+  \edef\FV@NumberSep{\number\@tempdima sp\relax}}
+\fvset{numbers=none,numbersep=12pt,firstnumber=auto}
+\def\FV@BVerbatimBegin{%
+  \begingroup
+    \FV@UseKeyValues
+    \FV@BeginVBox
+    \let\FV@ProcessLine\FV@BProcessLine
+    \FV@FormattingPrep
+    \FV@ObeyTabsInit}%
+\def\FV@BVerbatimEnd{\FV@EndVBox\endgroup}
+\def\FV@BeginVBox{%
+  \leavevmode
+  \hbox\ifx\FV@boxwidth\relax\else to\FV@boxwidth\fi\bgroup
+  \ifcase\FV@baseline\vbox\or\vtop\or$\vcenter\fi\bgroup}
+\def\FV@EndVBox{\egroup\ifmmode$\fi\hfil\egroup}
+\define@key{FV}{boxwidth}{%
+  \def\@tempa{#1}\def\@tempb{auto}%
+  \ifx\@tempa\@tempb
+    \let\FV@boxwidth\relax
+  \else
+    \@tempdima=#1\relax
+    \edef\FV@boxwidth{\number\@tempdima sp}%
+  \fi}
+\def\KV@FV@boxwidth@default{\let\FV@boxwidth\relax}
+\define@key{FV}{baseline}{%
+  \if t#1\@empty\let\FV@baseline\@ne\else
+    \if c#1\@empty\let\FV@baseline\tw@\else\let\FV@baseline\z@\fi
+  \fi}
+\fvset{baseline=b,boxwidth}
+\def\FV@BProcessLine#1{\hbox{\FancyVerbFormatLine{#1}}}
+\def\FVB@BVerbatim{\FV@BVerbatimBegin\FV@Scan}
+\def\FVE@BVerbatim{\FV@BVerbatimEnd}
+\DefineVerbatimEnvironment{BVerbatim}{BVerbatim}{}
+\def\FV@BUseVerbatim#1{\FV@BVerbatimBegin#1\FV@BVerbatimEnd}
+\def\BVerbatimInput{\FV@Command{}{BVerbatimInput}}
+\def\FVC@BVerbatimInput#1{\FV@BUseVerbatim{\FV@Input{#1}}}
+\def\SaveVerbatim{\FV@Environment{}{SaveVerbatim}}
+\def\FVB@SaveVerbatim#1{%
+  \@bsphack
+  \begingroup
+    \FV@UseKeyValues
+%%    \FV@BeginVBox
+%%    \let\FV@ProcessLine\FV@BProcessLine
+%%    \FV@FormattingPrep
+%%    \FV@ObeyTabsInit%
+%%
+    \def\SaveVerbatim@Name{#1}%
+    \gdef\FV@TheVerbatim{}%
+    \def\FV@ProcessLine##1{%
+      \expandafter\gdef\expandafter\FV@TheVerbatim\expandafter{%
+        \FV@TheVerbatim\FV@ProcessLine{##1}}}%
+    \gdef\FV@TheVerbatim{}%
+    \FV@Scan}
+\def\FVE@SaveVerbatim{%
+  \expandafter\global\expandafter\let
+  \csname FV@SV@\SaveVerbatim@Name\endcsname\FV@TheVerbatim
+%%  \expandafter\gdef
+%%    \csname FV@SV@\SaveVerbatim@Name\endcsname{\FV@TheVerbatim}
+%%    \FV@EndVBox
+%%  \endgroup}
+  \endgroup\@esphack}
+\DefineVerbatimEnvironment{SaveVerbatim}{SaveVerbatim}{}
+\def\FV@CheckIfSaved#1#2{%
+  \@ifundefined{FV@SV@#1}%
+  {\FV@Error{No verbatim text has been saved under name `#1'}\FV@eha}%
+  {#2{\csname FV@SV@#1\endcsname}}}
+\def\UseVerbatim{\FV@Command{}{UseVerbatim}}
+\def\FVC@UseVerbatim#1{\FV@CheckIfSaved{#1}{\FV@UseVerbatim}}
+\def\LUseVerbatim{\FV@Command{}{LUseVerbatim}}
+\def\FVC@LUseVerbatim#1{\FV@CheckIfSaved{#1}{\FV@LUseVerbatim}}
+\def\BUseVerbatim{\FV@Command{}{BUseVerbatim}}
+\def\FVC@BUseVerbatim#1{\FV@CheckIfSaved{#1}{\FV@BUseVerbatim}}
+\newwrite\FV@OutFile
+\def\VerbatimOut{\FV@Environment{}{VerbatimOut}}
+\def\FVB@VerbatimOut#1{%
+  \@bsphack
+  \begingroup
+    \FV@UseKeyValues
+    \FV@DefineWhiteSpace
+    \def\FV@Space{\space}%
+    \FV@DefineTabOut
+    \def\FV@ProcessLine{\immediate\write\FV@OutFile}%
+    \immediate\openout\FV@OutFile #1\relax
+    \let\FV@FontScanPrep\relax
+%% DG/SR modification begin - May. 18, 1998 (to avoid problems with ligatures)
+    \let\@noligs\relax
+%% DG/SR modification end
+    \FV@Scan}
+\def\FVE@VerbatimOut{\immediate\closeout\FV@OutFile\endgroup\@esphack}
+\DefineVerbatimEnvironment{VerbatimOut}{VerbatimOut}{}
+\def\FV@DefineTabOut{%
+  \def\FV@Tab{}%
+  \@tempcnta=\FancyVerbTabSize\relax
+  \loop\ifnum\@tempcnta>\z@
+    \edef\FV@Tab{\FV@Tab\space}%
+    \advance\@tempcnta\m@ne
+  \repeat}
+\def\SaveVerb{\FV@Command{}{SaveVerb}}
+\begingroup
+\catcode`\^^M=\active%
+\gdef\FVC@SaveVerb#1#2{%
+  \@namedef{FV@SV@#1}{}%
+  \begingroup%
+    \FV@UseKeyValues%
+    \FV@CatCodes%
+    \outer\def^^M{\FV@EOL}%
+    \global\let\@tempg\FancyVerbAfterSave%
+    \catcode`#2=12%
+    \def\@tempa{\def\FancyVerbGetVerb####1####2}%
+    \expandafter\@tempa\string#2{\endgroup\@namedef{FV@SV@#1}{##2}\@tempg}%
+    \FancyVerbGetVerb\FV@EOL}%
+\endgroup
+\def\FV@EOL{%
+  \endgroup
+  \FV@Error%
+    {Could not find the end delimiter of a short verb command}%
+    {You probably just forget the end delimiter of a \string\Verb\space or
+      \string\SaveVerb^^J%
+      command, or you broke the literal text across input lines.^^J%
+      Hit <return> to procede.}}
+\define@key{FV}{aftersave}{\def\FancyVerbAfterSave{#1}}
+\fvset{aftersave=}
+\def\FV@UseVerb#1{\mbox{\FV@UseKeyValues\FV@FormattingPrep#1}}
+\def\UseVerb{\FV@Command{}{UseVerb}}
+\def\FVC@UseVerb#1{%
+  \@ifundefined{FV@SV@#1}%
+    {\FV@Error{Short verbatim text never saved to name `#1'}\FV@eha}%
+    {\FV@UseVerb{\@nameuse{FV@SV@#1}}}}
+\def\Verb{\FV@Command{}{Verb}}
+\begingroup
+\catcode`\^^M=\active%
+\gdef\FVC@Verb#1{%
+  \begingroup%
+    \FV@UseKeyValues%
+    \FV@FormattingPrep%
+    \FV@CatCodes%
+    \outer\def^^M{}%
+    \catcode`#1=12%
+    \def\@tempa{\def\FancyVerbGetVerb####1####2}%
+    \expandafter\@tempa\string#1{\mbox{##2}\endgroup}%
+    \FancyVerbGetVerb\FV@EOL}%
+\endgroup
+\def\DefineShortVerb{\FV@Command{}{DefineShortVerb}}
+\def\FVC@DefineShortVerb#1{%
+  \@ifundefined{FV@CC@\string#1}%
+    {\FVC@@DefineShortVerb#1}%
+    {\FV@Error{`\expandafter\@gobble\string#1' is already a short
+      verb character.}\FV@eha}}
+\def\FVC@@DefineShortVerb#1{%
+  \begingroup
+    \lccode`\~=`#1%
+    \lowercase{\gdef\@tempg{\edef~}\global\let\@temph~}%
+  \endgroup
+  \expandafter\let\csname FV@AC@\string#1\endcsname\@temph
+  \expandafter\edef\csname FV@CC@\string#1\endcsname{\the\catcode`#1}%
+  \expandafter\let\csname FV@KV@\string#1\endcsname\FV@KeyValues
+  \@tempg{%
+    \let\noexpand\FV@KeyValues\expandafter\noexpand
+      \csname FV@KV@\string#1\endcsname
+    \noexpand\FVC@Verb\expandafter\@gobble\string#1}%
+  \expandafter\def\expandafter\dospecials\expandafter{\dospecials\do#1}%
+  \expandafter\def\expandafter\@sanitize\expandafter{\@sanitize\@makeother#1}%
+  \catcode`#1=\active}%
+\def\UndefineShortVerb#1{%
+  \@ifundefined{FV@CC@\string#1}%
+    {\FV@Error{`\expandafter\@gobble\string#1' is not a short
+      verb character}\FV@eha}%
+    {\FV@UndefineShortVerb#1}}
+\def\FV@UndefineShortVerb#1{%
+  \catcode`#1=\csname FV@CC@\string#1\endcsname
+%% DG/SR modification begin - Jun. 12, 1998
+  \expandafter\let\csname FV@CC@\string#1\endcsname\relax
+%% DG/SR modification end
+  \begingroup
+    \lccode`\~=`#1%
+    \lowercase{\gdef\@tempg{\let~}}%
+  \endgroup
+  \expandafter\@tempg\csname FV@AC@\string#1\endcsname
+  \def\@tempa##1\do#1##2\@nil##3\@nil##4\@@nil{##3\def\dospecials{##1##2}\fi}%
+  \expandafter\@tempa\dospecials\@nil\iftrue\@nil\do#1\@nil\iffalse\@nil\@@nil
+  \def\@tempa##1\@makeother#1##2\@nil##3\@nil##4\@@nil{%
+    ##3\def\@sanitize{##1##2}\fi}%
+  \expandafter\@tempa\@sanitize\@nil\iftrue\@nil\do#1\@nil\iffalse\@nil\@@nil}
+\def\SaveMVerb{\FV@Command{}{SaveMVerb}}
+\begingroup
+\catcode`\^^M=\active%
+\gdef\FVC@SaveMVerb#1#2{%
+  \@ifundefined{FV@SVM@#1}{}%
+    {\FV@Error{Moving verbatim name `#1' already used}%
+      {I will overwrite the old definition. Hit <return> to continue.}}%
+  \global\@namedef{FV@SVM@#1}{}%
+  \begingroup%
+    \let\FV@SavedKeyValues\FV@KeyValues%
+    \FV@UseKeyValues%
+    \FV@CatCodes%
+    \outer\def^^M{}%
+    \global\let\@tempg\FancyVerbAfterSave%
+    \catcode`#2=12%
+    \def\@tempa{\def\FancyVerbGetVerb####1####2}%
+    \expandafter\@tempa\string#2{%
+      \if@filesw
+        \FV@DefineWhiteSpace%
+        \let\FV@Space\space%
+        \let\FV@Tab\space%
+        \FV@MakeUnActive%
+        \let\protect\string
+        \immediate\write\@auxout{%
+          \noexpand\SaveGVerb[\FV@SavedKeyValues]{#1}\string#2##2\string#2}%
+      \fi
+      \endgroup%
+      \@namedef{FV@SV@#1}{##2}%
+      \@tempg}%
+    \FancyVerbGetVerb\FV@EOL}%
+\endgroup
+\def\SaveGVerb{\FV@Command{}{SaveGVerb}}
+\begingroup
+\catcode`\^^M=\active%
+\gdef\FVC@SaveGVerb#1#2{%
+  \global\@namedef{FV@SVG@#1}{}%
+  \begingroup%
+    \FV@UseKeyValues%
+    \FV@CatCodes%
+    \outer\def^^M{}%
+    \catcode`#2=12%
+    \def\@tempa{\def\FancyVerbGetVerb####1####2}%
+    \expandafter\@tempa\string#2{\endgroup\global\@namedef{FV@SVG@#1}{##2}}%
+    \FancyVerbGetVerb\FV@EOL}%
+\endgroup
+\def\UseMVerb{\protect\pUseMVerb}
+\def\pUseMVerb{\FV@Command{}{pUseMVerb}}
+\def\FVC@pUseMVerb#1{%
+  \expandafter\ifx \csname FV@SVM@#1\endcsname\relax
+    \expandafter\ifx \csname FV@SVG@#1\endcsname\relax
+      \@warning{Moving verbatim text not defined for name `#1'}\FV@eha
+      {\bf ??}%
+    \else
+      \FV@UseVerb{\@nameuse{FV@SVG@#1}}%
+    \fi
+  \else
+    \FV@UseVerb{\@nameuse{FV@SVM@#1}}%
+  \fi}
+\expandafter\ifx\csname documentclass\endcsname\relax
+  \def\lrbox#1{%
+    \edef\@tempa{%
+      \endgroup
+      \setbox#1\hbox{%
+        \begingroup\aftergroup}%
+          \def\noexpand\@currenvir{\@currenvir}}%
+          %\def\noexpand\@currenvline{\on@line}}%
+    \@tempa
+      \@endpefalse
+      \bgroup
+        \ignorespaces}
+  \def\endlrbox{\unskip\egroup}
+\fi
+%% DG/SR modification begin - Jan. 22, 1998
+%%\@input{fancyvrb.rc}
+\@input{fancyvrb.cfg}
+%% DG/SR modification end
+\endinput
+%%
+%% End of file `fancyvrb.sty'.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/fft_benchmark.tex	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,72 @@
+\section{Benchmark}\label{fft_benchmark}
+続いて、フーリエ変換と周波数フィルタによる画像処理を行う例題を用いてベンチマークを行った。
+512*512の画像を High Pass Filter で変換する例題である。
+
+実験環境
+\begin{itemize}
+\item OS : MacOS 10.9
+\item CPU : 2*2.66GHz 6-CoreIntel Xeon
+\item Memory : 16GB
+\item Compiler : Apple clang version 4.1 (based on LLVM 3.1svn)
+\item GPU : AMD ATI Radeon HD 5870 1024MB
+\end{itemize}
+
+\subsection{Run Time}
+\begin{tiny}
+  \begin{table}[h]
+    \begin{center}
+      \caption{Run Time}
+      \label{table:fft_runtime}
+      \small
+      \begin{tabular}[t]{c||r}
+        \hline
+        &Run Time \\
+        \hline
+        1 CPU&453 ms \\
+        \hline
+        2 CPU&261 ms \\
+        \hline
+        4 CPU&178 ms \\
+        \hline
+        8 CPU&117 ms \\
+        \hline
+        GPU&94 ms \\
+        \hline
+      \end{tabular}
+    \end{center}
+  \end{table}
+\end{tiny}
+
+表\ref{table:fft_runtime}は CPU,GPU 上,及び CPU + GPU 上で同時実行して比較を行った。
+1 CPU を利用した場合と比較して,2 CPU では約 1.7 倍,GPU では約 4.8 倍の速度向上が見られる。しかしながら,8 CPU を利用した場合,4 CPU を利用した場合と比較して速度はあがっているが速度上昇率は約 1.5 倍に落ちている。これはアムダールの法則から,並列化率が低いために速度向上が頭打ちになっていると考えられる。
+
+\subsection{Busy Time}
+次に,RDTSC 命令を用い Busy Time の測定を行った。
+
+\begin{tiny}
+  \begin{table}[h]
+    \begin{center}
+      \caption{Busy Time}
+      \label{table:fft_busytime}
+      \small
+      \begin{tabular}[t]{c||r|r}
+        \hline
+        &Time Stamp&Busy Time \\
+        \hline
+        1 CPU&1202282702&451 ms \\
+        \hline
+        2 CPU&687813186&258 ms \\
+        \hline
+        4 CPU&421398464&158 ms \\
+        \hline
+        8 CPU&265192153&99 ms \\
+        \hline
+        GPU&3532807&1.3 ms \\
+        \hline
+      \end{tabular}
+    \end{center}
+  \end{table}
+\end{tiny}
+
+CPU を利用した場合,表\ref{table:fft_runtime}とほぼ同様の結果が得られた。
+しかしながら,GPU を利用した場合,Busy Time が 1.3 ms なのに対し,表\ref{table:fft_runtime}の Run Time は 94 ms となっている。この結果から,GPU 上で実行する場合,データの転送がネックになっていることがわかる。
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/cell_arch.bb	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,5 @@
+%%Title: ./cell_arch.pdf
+%%Creator: extractbb 20120420
+%%BoundingBox: 0 0 250 207
+%%CreationDate: Fri Feb 22 14:24:38 2013
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/cell_arch.graffle	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,706 @@
+<?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">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGraffle</string>
+		<string>139.16.0.171715</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {558.99997329711914, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>BaseZoom</key>
+	<integer>0</integer>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2013-04-01 03:32:49 +0000</string>
+	<key>Creator</key>
+	<string>yuhi</string>
+	<key>DisplayScale</key>
+	<string>1 0/72 in = 1.0000 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>8</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Bounds</key>
+			<string>{{155, 271}, {82, 60}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>45</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 I/O\
+Device}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>44</integer>
+			<key>Points</key>
+			<array>
+				<string>{194, 184}</string>
+				<string>{194, 271}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{202, 210}, {82, 28}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>43</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 PPE}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>42</integer>
+			<key>Points</key>
+			<array>
+				<string>{241, 184}</string>
+				<string>{241, 210}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{54.5, 195}, {32, 22}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>40</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 Cell}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{60, 271}, {82, 60}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>39</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 Main Memory}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>41</integer>
+			<key>Points</key>
+			<array>
+				<string>{99, 184}</string>
+				<string>{99, 271}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>33</integer>
+			<key>Points</key>
+			<array>
+				<string>{242.5, 135}</string>
+				<string>{242.5, 161}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>32</integer>
+			<key>Points</key>
+			<array>
+				<string>{171.5, 135}</string>
+				<string>{171.5, 161}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>31</integer>
+			<key>Points</key>
+			<array>
+				<string>{101, 135}</string>
+				<string>{101, 161}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>1</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{65, 156}, {214, 28}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>6</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 Element interconnect bus}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{145, 81}, {54, 54}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>4</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 SPE}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{216, 81}, {54, 54}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>3</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 SPE}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{74, 81}, {54, 54}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>1</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 SPE}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{48, 64}, {251, 181}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>5</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>Layer 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2013-04-01 11:35:42 +0000</string>
+	<key>Modifier</key>
+	<string>yuhi</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSHorizonalPagination</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{594.99997329711914, 842}</string>
+		</array>
+		<key>NSPrintReverseOrientation</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>Canvas 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array>
+			<dict>
+				<key>name</key>
+				<string>Canvas 1</string>
+			</dict>
+		</array>
+		<key>Frame</key>
+		<string>{{1327, -286}, {693, 922}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>120</integer>
+		<key>VisibleRegion</key>
+		<string>{{0, 0}, {558, 783}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>Canvas 1</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+</dict>
+</plist>
Binary file paper/images/cell_arch.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/cell_arch.xbb	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,8 @@
+%%Title: ./images/cell_arch.pdf
+%%Creator: extractbb 20130405
+%%BoundingBox: 0 0 273 289
+%%HiResBoundingBox: 0.000000 0.000000 273.000000 289.000000
+%%PDFVersion: 1.3
+%%Pages: 1
+%%CreationDate: Tue Oct 22 15:47:16 2013
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/cpu_arch.bb	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,5 @@
+%%Title: ./cpu_arch.pdf
+%%Creator: extractbb 20120420
+%%BoundingBox: 0 0 250 207
+%%CreationDate: Fri Feb 22 14:24:38 2013
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/cpu_arch.graffle	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,581 @@
+<?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">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGraffle</string>
+		<string>139.16.0.171715</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {558.99997329711914, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>BaseZoom</key>
+	<integer>0</integer>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2013-04-01 03:32:49 +0000</string>
+	<key>Creator</key>
+	<string>yuhi</string>
+	<key>DisplayScale</key>
+	<string>1 0/72 in = 1 0/72 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>8</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Bounds</key>
+			<string>{{51, 195}, {39, 22}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>40</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 CPU}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{66.5, 239}, {214, 28}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>39</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 Main Memory}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>41</integer>
+			<key>Points</key>
+			<array>
+				<string>{171.5, 213}</string>
+				<string>{171.5, 239}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>33</integer>
+			<key>Points</key>
+			<array>
+				<string>{242.5, 135}</string>
+				<string>{242.5, 161}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>32</integer>
+			<key>Points</key>
+			<array>
+				<string>{171.5, 135}</string>
+				<string>{171.5, 161}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>31</integer>
+			<key>Points</key>
+			<array>
+				<string>{101, 135}</string>
+				<string>{101, 161}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>1</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{65, 156}, {214, 28}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>6</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 Shared Cache}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{145, 81}, {54, 54}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>4</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 core}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{216, 81}, {54, 54}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>3</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 core}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{74, 81}, {54, 54}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>1</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 core}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{48, 64}, {251, 153}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>5</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>Layer 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2013-04-01 03:45:03 +0000</string>
+	<key>Modifier</key>
+	<string>yuhi</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSHorizonalPagination</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{594.99997329711914, 842}</string>
+		</array>
+		<key>NSPrintReverseOrientation</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>Canvas 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array>
+			<dict>
+				<key>name</key>
+				<string>Canvas 1</string>
+			</dict>
+		</array>
+		<key>Frame</key>
+		<string>{{191, 136}, {693, 922}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>120</integer>
+		<key>VisibleRegion</key>
+		<string>{{0, 0}, {558, 783}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>Canvas 1</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+</dict>
+</plist>
Binary file paper/images/cpu_arch.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/cpu_arch.xbb	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,8 @@
+%%Title: ./images/cpu_arch.pdf
+%%Creator: extractbb 20130405
+%%BoundingBox: 0 0 273 225
+%%HiResBoundingBox: 0.000000 0.000000 273.000000 225.000000
+%%PDFVersion: 1.3
+%%Pages: 1
+%%CreationDate: Tue Oct 22 15:47:17 2013
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/createTask.bb	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,4 @@
+%%Title: ./createTask.pdf
+%%Creator: extractbb 20110311
+%%BoundingBox: 0 0 887 380
+%%CreationDate: Mon Nov 21 19:50:14 2011
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/createTask.graffle	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,1256 @@
+<?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">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGraffle</string>
+		<string>139.16.0.171715</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {558.99997329711914, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>BaseZoom</key>
+	<integer>0</integer>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2013-02-18 07:20:36 +0000</string>
+	<key>Creator</key>
+	<string>yuhi</string>
+	<key>DisplayScale</key>
+	<string>1 0/72 in = 1.0000 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>8</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>56</integer>
+			</dict>
+			<key>ID</key>
+			<integer>57</integer>
+			<key>Points</key>
+			<array>
+				<string>{279.5, 80}</string>
+				<string>{279.49998664855957, 114.99999999999994}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>3</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{227.49998664855957, 114.99999999999994}, {104, 27}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>56</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 mail}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>53</integer>
+			</dict>
+			<key>ID</key>
+			<integer>55</integer>
+			<key>Points</key>
+			<array>
+				<string>{94, 259}</string>
+				<string>{94, 302}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>52</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>52</integer>
+				<key>Info</key>
+				<integer>2</integer>
+			</dict>
+			<key>ID</key>
+			<integer>54</integer>
+			<key>Points</key>
+			<array>
+				<string>{279.49998664855957, 141.99999999999994}</string>
+				<string>{94, 212}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>56</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{48, 302}, {92, 47}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>53</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 FifoScheduler}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{48, 212}, {92, 47}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>52</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 FifoManager}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{191, 329}, {92, 47}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>51</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Scheduler}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{182, 320}, {92, 47}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>50</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Scheduler}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{173, 311}, {92, 47}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>49</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Scheduler}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{125, 36}, {53, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>48</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 2:spawn()}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{125, 23}, {74, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>47</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 1:createtask()}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>46</integer>
+			<key>Points</key>
+			<array>
+				<string>{145, 73}</string>
+				<string>{194, 50}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>31</integer>
+			<key>Points</key>
+			<array>
+				<string>{150, 80}</string>
+				<string>{199, 57}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>9</integer>
+			</dict>
+			<key>ID</key>
+			<integer>45</integer>
+			<key>Points</key>
+			<array>
+				<string>{362, 259}</string>
+				<string>{362, 302}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>7</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>8</integer>
+			</dict>
+			<key>ID</key>
+			<integer>44</integer>
+			<key>Points</key>
+			<array>
+				<string>{210, 259}</string>
+				<string>{210, 302}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>6</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>7</integer>
+				<key>Info</key>
+				<integer>2</integer>
+			</dict>
+			<key>ID</key>
+			<integer>43</integer>
+			<key>Points</key>
+			<array>
+				<string>{279.49998664855957, 141.99999999999994}</string>
+				<string>{362, 212}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>54</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>6</integer>
+				<key>Info</key>
+				<integer>2</integer>
+			</dict>
+			<key>ID</key>
+			<integer>42</integer>
+			<key>Points</key>
+			<array>
+				<string>{279.49998664855957, 141.99999999999994}</string>
+				<string>{210, 212}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>56</integer>
+				<key>Info</key>
+				<integer>1</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>5</integer>
+				<key>Info</key>
+				<integer>4</integer>
+			</dict>
+			<key>ID</key>
+			<integer>41</integer>
+			<key>Points</key>
+			<array>
+				<string>{325.5, 56.5}</string>
+				<string>{426, 167}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>3</integer>
+				<key>Info</key>
+				<integer>3</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>4</integer>
+				<key>Info</key>
+				<integer>4</integer>
+			</dict>
+			<key>ID</key>
+			<integer>40</integer>
+			<key>Points</key>
+			<array>
+				<string>{325.5, 56.5}</string>
+				<string>{426, 98}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>3</integer>
+				<key>Info</key>
+				<integer>3</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>3</integer>
+				<key>Info</key>
+				<integer>4</integer>
+			</dict>
+			<key>ID</key>
+			<integer>39</integer>
+			<key>Points</key>
+			<array>
+				<string>{133, 103.5}</string>
+				<string>{233.5, 56.5}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>0</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>1</integer>
+				<key>Info</key>
+				<integer>3</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{316, 302}, {92, 47}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>9</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 GpuScheduler}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{164, 302}, {92, 47}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>8</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Scheduler}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{316, 212}, {92, 47}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>7</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 GpuThreads}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{164, 212}, {92, 47}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>6</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 CpuThreads}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{426, 149}, {92, 36}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>5</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 WaitTaskList}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{426, 80}, {92, 36}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>4</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 AcriveTaskList}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{233.5, 33}, {92, 47}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>3</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 TaskManager}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{53, 80}, {80, 47}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>1</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 User Task}</string>
+			</dict>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>Layer 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2013-04-01 12:12:25 +0000</string>
+	<key>Modifier</key>
+	<string>yuhi</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSHorizonalPagination</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{594.99997329711914, 842}</string>
+		</array>
+		<key>NSPrintReverseOrientation</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>Canvas 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array>
+			<dict>
+				<key>name</key>
+				<string>Canvas 1</string>
+			</dict>
+		</array>
+		<key>Frame</key>
+		<string>{{32, 116}, {693, 922}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>120</integer>
+		<key>VisibleRegion</key>
+		<string>{{0, 0}, {558, 783}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>Canvas 1</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+</dict>
+</plist>
Binary file paper/images/createTask.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/createTask.xbb	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,8 @@
+%%Title: ./images/createTask.pdf
+%%Creator: extractbb 20130405
+%%BoundingBox: 0 0 492 373
+%%HiResBoundingBox: 0.000000 0.000000 492.000000 373.000000
+%%PDFVersion: 1.3
+%%Pages: 1
+%%CreationDate: Tue Oct 22 15:47:16 2013
+
Binary file paper/images/fft_busytime.pdf has changed
Binary file paper/images/fft_each_task.pdf has changed
Binary file paper/images/fft_runtime.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/gpu_arch.bb	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,5 @@
+%%Title: ./gpu_arch.pdf
+%%Creator: extractbb 20120420
+%%BoundingBox: 0 0 557 557
+%%CreationDate: Fri Feb 22 14:24:38 2013
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/gpu_arch.graffle	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,1045 @@
+<?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">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGraffle</string>
+		<string>139.16.0.171715</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {558.99997329711914, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>FontInfo</key>
+		<dict>
+			<key>Font</key>
+			<string>Helvetica</string>
+			<key>Size</key>
+			<real>24</real>
+		</dict>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>BaseZoom</key>
+	<integer>0</integer>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2013-02-19 08:47:40 +0000</string>
+	<key>Creator</key>
+	<string>yuhi</string>
+	<key>DisplayScale</key>
+	<string>1 0/72 in = 1.0000 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>8</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>52</integer>
+				<key>Info</key>
+				<integer>2</integer>
+			</dict>
+			<key>ID</key>
+			<integer>53</integer>
+			<key>Points</key>
+			<array>
+				<string>{267.14305177111726, 367.85576923076894}</string>
+				<string>{266.91691589355469, 421.17307692307679}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>3</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{176.67782592773438, 421.17307692307679}, {180.47817993164062, 67}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>52</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs48 \cf0 CPU}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>51</integer>
+			<key>Points</key>
+			<array>
+				<string>{266.4168937329701, 127.55288461538498}</string>
+				<string>{266.77690735694864, 189.45673076923114}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{376.79291553133561, 25.913461538461661}, {47.926430517711204, 23.423076923076913}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>50</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs48 \cf0 kernel}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{205.41961852861044, 25.913461538461661}, {47.926430517711204, 23.423076923076913}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>49</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs48 \cf0 kernel}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{45.301771117166396, 25.913461538461661}, {47.926430517711204, 23.423076923076913}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>48</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs48 \cf0 kernel}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>46</integer>
+			<key>Points</key>
+			<array>
+				<string>{449.4087193460503, 128.80769230769241}</string>
+				<string>{449.76873297002828, 185.69230769230779}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>45</integer>
+			<key>Points</key>
+			<array>
+				<string>{108.29598092643064, 134.24519230769249}</string>
+				<string>{108.65599455040895, 187.36538461538518}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>8</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{376.79291553133601, 72.341346153846331}, {125.26226158038153, 61.90384615384616}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>44</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs48 \cf0 Local Memory}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{365.17438692098119, 25.076923076923364}, {145.23160762942791, 128.82692307692295}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>43</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>5</real>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{205.41961852861078, 72.341346153846331}, {125.26226158038153, 61.90384615384616}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>42</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs48 \cf0 Local Memory}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{195.25340599455092, 25.076923076923364}, {145.23160762942791, 128.82692307692295}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>41</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>5</real>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{45.664850136239878, 72.341346153846331}, {125.26226158038153, 61.90384615384616}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>8</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs48 \cf0 Local Memory}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{34.046321525885674, 25.076923076923364}, {145.23160762942791, 128.82692307692295}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>40</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>CornerRadius</key>
+					<real>5</real>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>3</integer>
+			</dict>
+			<key>ID</key>
+			<integer>38</integer>
+			<key>Points</key>
+			<array>
+				<string>{267.14305177111726, 219.65384616576142}</string>
+				<string>{267.14305177111726, 317.66346153846126}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+				</dict>
+			</dict>
+			<key>Tail</key>
+			<dict>
+				<key>ID</key>
+				<integer>6</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{27.873978201634969, 232.53846153846195}, {39.212534059945547, 23.423076923076913}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>7</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs48 \cf0 GPU}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{50.747956403269711, 180.67307692307705}, {432.79019073569509, 38.480769230769226}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>6</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs48 \cf0 Global Memory}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{5.0000000000000568, 5.0000000000003411}, {533.00000000000057, 250.96153846153823}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>5</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{6.0892372767998424, 505.88462477463929}, {82.782016348773894, 23.423076923076913}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>4</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs48 \cf0 host}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{50.747956403269683, 317.66346153846121}, {432.79019073569515, 50.192307692307686}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>3</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs48 \cf0 Memory Buffer}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{5, 278.34615384615358}, {533.00000000000057, 250.96153846153823}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FontInfo</key>
+			<dict>
+				<key>Font</key>
+				<string>Helvetica</string>
+				<key>Size</key>
+				<real>24</real>
+			</dict>
+			<key>ID</key>
+			<integer>1</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>Layer 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2013-04-01 04:10:15 +0000</string>
+	<key>Modifier</key>
+	<string>yuhi</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSHorizonalPagination</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{594.99997329711914, 842}</string>
+		</array>
+		<key>NSPrintReverseOrientation</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>Canvas 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array>
+			<dict>
+				<key>name</key>
+				<string>Canvas 1</string>
+			</dict>
+		</array>
+		<key>Frame</key>
+		<string>{{34, 95}, {805, 922}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>120</integer>
+		<key>VisibleRegion</key>
+		<string>{{-56, 0}, {670, 783}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>Canvas 1</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+</dict>
+</plist>
Binary file paper/images/gpu_arch.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/gpu_arch.xbb	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,8 @@
+%%Title: ./images/gpu_arch.pdf
+%%Creator: extractbb 20130405
+%%BoundingBox: 0 0 556 548
+%%HiResBoundingBox: 0.000000 0.000000 556.000000 548.000000
+%%PDFVersion: 1.4
+%%Pages: 1
+%%CreationDate: Tue Oct 22 15:47:16 2013
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/workitem.bb	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,4 @@
+%%Title: ./workitem.pdf
+%%Creator: extractbb 20120420
+%%BoundingBox: 0 0 609 280
+%%CreationDate: Fri Feb 22 14:24:38 2013
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/workitem.graffle	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,1645 @@
+<?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">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGraffle</string>
+		<string>139.16.0.171715</string>
+	</array>
+	<key>AutoAdjust</key>
+	<true/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {558.99997329711914, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>BaseZoom</key>
+	<integer>0</integer>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2013-02-22 05:08:45 +0000</string>
+	<key>Creator</key>
+	<string>yuhi</string>
+	<key>DisplayScale</key>
+	<string>1 0/72 in = 1.0000 in</string>
+	<key>GraphDocumentVersion</key>
+	<integer>8</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Bounds</key>
+			<string>{{40, 130}, {83, 18}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>82</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 \'83\'8f\'81\'5b\'83\'4e\'83\'41\'83\'43\'83\'65\'83\'80}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>Head</key>
+			<dict>
+				<key>ID</key>
+				<integer>3</integer>
+				<key>Info</key>
+				<integer>4</integer>
+			</dict>
+			<key>ID</key>
+			<integer>31</integer>
+			<key>Points</key>
+			<array>
+				<string>{127, 134}</string>
+				<string>{196.5, 68}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>TailArrow</key>
+					<string>0</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{240, 230.5}, {24, 29}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>81</integer>
+			<key>Rotation</key>
+			<real>90</real>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs48 \cf0 \'85}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{63, 39}, {60, 18}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>50</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 \'83\'8d\'81\'5b\'83\'4a\'83\'8bID}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{51, 83}, {72, 18}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>49</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 \'83\'4f\'83\'8d\'81\'5b\'83\'6f\'83\'8bID}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{30, 10}, {94, 18}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>48</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 \'83\'8f\'81\'5b\'83\'4e\'83\'4f\'83\'8b\'81\'5b\'83\'76ID}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>Group</string>
+			<key>Graphics</key>
+			<array>
+				<dict>
+					<key>Bounds</key>
+					<string>{{221.5, 201}, {7, 14}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>FitText</key>
+					<string>YES</string>
+					<key>Flow</key>
+					<string>Resize</string>
+					<key>ID</key>
+					<integer>52</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>fill</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Pad</key>
+						<integer>0</integer>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 5}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+					<key>Wrap</key>
+					<string>NO</string>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{240.5, 201}, {7, 14}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>FitText</key>
+					<string>YES</string>
+					<key>Flow</key>
+					<string>Resize</string>
+					<key>ID</key>
+					<integer>53</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>fill</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Pad</key>
+						<integer>0</integer>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 6}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+					<key>Wrap</key>
+					<string>NO</string>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{259.5, 201}, {7, 14}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>FitText</key>
+					<string>YES</string>
+					<key>Flow</key>
+					<string>Resize</string>
+					<key>ID</key>
+					<integer>54</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>fill</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Pad</key>
+						<integer>0</integer>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 7}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+					<key>Wrap</key>
+					<string>NO</string>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{202.5, 201}, {7, 14}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>FitText</key>
+					<string>YES</string>
+					<key>Flow</key>
+					<string>Resize</string>
+					<key>ID</key>
+					<integer>55</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>fill</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Pad</key>
+						<integer>0</integer>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 4}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+					<key>Wrap</key>
+					<string>NO</string>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{221.5, 157}, {7, 14}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>FitText</key>
+					<string>YES</string>
+					<key>Flow</key>
+					<string>Resize</string>
+					<key>ID</key>
+					<integer>56</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>fill</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Pad</key>
+						<integer>0</integer>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 1}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+					<key>Wrap</key>
+					<string>NO</string>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{240.5, 157}, {7, 14}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>FitText</key>
+					<string>YES</string>
+					<key>Flow</key>
+					<string>Resize</string>
+					<key>ID</key>
+					<integer>57</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>fill</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Pad</key>
+						<integer>0</integer>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 2}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+					<key>Wrap</key>
+					<string>NO</string>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{259.5, 157}, {7, 14}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>FitText</key>
+					<string>YES</string>
+					<key>Flow</key>
+					<string>Resize</string>
+					<key>ID</key>
+					<integer>58</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>fill</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Pad</key>
+						<integer>0</integer>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 3}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+					<key>Wrap</key>
+					<string>NO</string>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{202.5, 157}, {7, 14}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>FitText</key>
+					<string>YES</string>
+					<key>Flow</key>
+					<string>Resize</string>
+					<key>ID</key>
+					<integer>59</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>fill</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Pad</key>
+						<integer>0</integer>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 0}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+					<key>Wrap</key>
+					<string>NO</string>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{189, 130}, {7, 14}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>FitText</key>
+					<string>YES</string>
+					<key>Flow</key>
+					<string>Resize</string>
+					<key>ID</key>
+					<integer>60</integer>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>fill</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+						<key>stroke</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+					<key>Text</key>
+					<dict>
+						<key>Pad</key>
+						<integer>0</integer>
+						<key>Text</key>
+						<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 1}</string>
+						<key>VerticalPad</key>
+						<integer>0</integer>
+					</dict>
+					<key>Wrap</key>
+					<string>NO</string>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{253.5, 175}, {19, 22}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>61</integer>
+					<key>Magnets</key>
+					<array>
+						<string>{0, 1}</string>
+						<string>{0, -1}</string>
+						<string>{1, 0}</string>
+						<string>{-1, 0}</string>
+						<string>{1, 1}</string>
+						<string>{1, -1}</string>
+						<string>{-1, 1}</string>
+						<string>{-1, -1}</string>
+					</array>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{234.5, 175}, {19, 22}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>62</integer>
+					<key>Magnets</key>
+					<array>
+						<string>{0, 1}</string>
+						<string>{0, -1}</string>
+						<string>{1, 0}</string>
+						<string>{-1, 0}</string>
+						<string>{1, 1}</string>
+						<string>{1, -1}</string>
+						<string>{-1, 1}</string>
+						<string>{-1, -1}</string>
+					</array>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{215.5, 175}, {19, 22}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>63</integer>
+					<key>Magnets</key>
+					<array>
+						<string>{0, 1}</string>
+						<string>{0, -1}</string>
+						<string>{1, 0}</string>
+						<string>{-1, 0}</string>
+						<string>{1, 1}</string>
+						<string>{1, -1}</string>
+						<string>{-1, 1}</string>
+						<string>{-1, -1}</string>
+					</array>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{196.5, 175}, {19, 22}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>64</integer>
+					<key>Magnets</key>
+					<array>
+						<string>{0, 1}</string>
+						<string>{0, -1}</string>
+						<string>{1, 0}</string>
+						<string>{-1, 0}</string>
+						<string>{1, 1}</string>
+						<string>{1, -1}</string>
+						<string>{-1, 1}</string>
+						<string>{-1, -1}</string>
+					</array>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+				</dict>
+				<dict>
+					<key>Bounds</key>
+					<string>{{182, 130}, {124, 97}}</string>
+					<key>Class</key>
+					<string>ShapedGraphic</string>
+					<key>ID</key>
+					<integer>65</integer>
+					<key>Magnets</key>
+					<array>
+						<string>{0, 1}</string>
+						<string>{0, -1}</string>
+						<string>{1, 0}</string>
+						<string>{-1, 0}</string>
+						<string>{1, 1}</string>
+						<string>{1, -1}</string>
+						<string>{-1, 1}</string>
+						<string>{-1, -1}</string>
+					</array>
+					<key>Shape</key>
+					<string>Rectangle</string>
+					<key>Style</key>
+					<dict>
+						<key>shadow</key>
+						<dict>
+							<key>Draws</key>
+							<string>NO</string>
+						</dict>
+					</dict>
+				</dict>
+			</array>
+			<key>ID</key>
+			<integer>51</integer>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{221.5, 83}, {7, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>19</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 1}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{240.5, 83}, {7, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>18</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 2}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{259.5, 83}, {7, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>17</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 3}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{202.5, 83}, {7, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>16</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 0}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{221.5, 39}, {7, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>15</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 1}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{240.5, 39}, {7, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>14</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 2}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{259.5, 39}, {7, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>13</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 3}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{202.5, 39}, {7, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>9</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 0}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{189, 12}, {7, 14}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>7</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 0}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{253.5, 57}, {19, 22}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>6</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{234.5, 57}, {19, 22}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>5</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{215.5, 57}, {19, 22}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>4</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{196.5, 57}, {19, 22}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>3</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{182, 12}, {124, 97}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>1</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+				<string>{1, 1}</string>
+				<string>{1, -1}</string>
+				<string>{-1, 1}</string>
+				<string>{-1, -1}</string>
+			</array>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<false/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>Layer 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2013-03-28 17:03:12 +0000</string>
+	<key>Modifier</key>
+	<string>yuhi</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSHorizonalPagination</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{594.99997329711914, 842}</string>
+		</array>
+		<key>NSPrintReverseOrientation</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>Canvas 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array>
+			<dict>
+				<key>name</key>
+				<string>Canvas 1</string>
+			</dict>
+		</array>
+		<key>Frame</key>
+		<string>{{435, 0}, {693, 922}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>120</integer>
+		<key>VisibleRegion</key>
+		<string>{{0, 0}, {558, 783}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>Canvas 1</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+</dict>
+</plist>
Binary file paper/images/workitem.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/workitem.xbb	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,8 @@
+%%Title: ./images/workitem.pdf
+%%Creator: extractbb 20130405
+%%BoundingBox: 0 0 296 266
+%%HiResBoundingBox: 0.000000 0.000000 296.000000 266.000000
+%%PDFVersion: 1.3
+%%Pages: 1
+%%CreationDate: Tue Oct 22 15:47:17 2013
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/introduction.tex	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,6 @@
+\section{研究の目的}
+当研究室では Cell および Linux 、Mac OS X 上で動く並列プログラミングフレームワーク、Cerium Task Manager \cite{gongo:2008a}の開発・改良を行っている。
+いままで Ceruim Task Mnager では,関数やサブルーチンを一つの Task として Queue に登録し並列処理を行ってきた。
+しかし,この方法では大量の Data を処理するために,渡す Data を変更しながら同一の Task をループで何度も生成する必要がある。
+また,一度に大量の Task を生成すると Memory が足りなくなり Swap が起こるという問題があった。
+当研究では,これらの問題を解決するため Data 並列処理のための API を実装し,fft について実行速度を測定し考察を行う。
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/ipsj.tex	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,51 @@
+\documentclass[techrep]{ipsjpapers}
+\usepackage[dvipdfmx]{graphicx}
+\usepackage{fancyvrb}
+\usepackage{url}
+
+\input{dummy.tex} %% Font 
+
+% ユーザが定義したマクロなど.
+\makeatletter
+
+\begin{document}
+
+% 和文表題
+\title{Cerium Task Manager における Data 並列処理の実装}
+
+% 和文著者名
+\author{
+  学籍番号:105744J 氏名:小久保 翔平 指導教員:河野 真治
+}
+
+% 和文概要
+\begin{abstract}
+  Cerium Task Managerは並列プログラミングフレームワークである。
+  今回、MultiCore CPU での Data 並列処理を行うために iterator という API を用意した。
+  この API を用いて fft を実装し,benchmark を取り、結果から iterator の性能と問題について考察を行った。
+\end{abstract}
+
+% 表題などの出力
+\maketitle
+
+% 本文はここから始まる
+
+\input{introduction}   % 研究目的
+\input{cerium}         % Cerium
+\input{opencl}           % Open  CL
+\input{cerium_gpu}     % GPU上での実行の機構
+\input{data_parallel}
+\input{fft_benchmark}
+%\input{benchmark1}
+\input{scheduling}
+\input{conclusion}     % まとめ
+%\input{manycore}       % many core system
+%\input{osmesa}         % OSMesa
+%\input{compare}        % 評価と考察
+
+
+\bibliographystyle{ipsjunsrt}
+\input{bibliography}   % 参考文献
+
+
+\end{document}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/ipsjcommon.sty	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,995 @@
+% Copyright (C) 1995-2007 by Hiroshi Nakashima, Yasuki Saito and
+%                            The Editorial Board of the IPSJ Journal
+%
+% ipsjcommon.sty 15-Jun-07 by Hiroshi Nakashima (ver 2.12)
+% (revision history deleted)
+% ipsjcommon.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0)
+
+%%%%%% Sectioning Commands %%%%%%
+
+% \section:	2 rows
+% others:	1 row
+%
+% Note that \paragraph and \subparagraph act as \subsubsubsection and
+% \subsubsubsubsection resp.
+%
+% The form of sectioning header is;
+%	<1 Kanji sp> \the<sect-command> [`.' if \section] <1 Kanji sp> <title>
+% Nothe that <1 Kanji sp> is that of \normalsize.
+
+\def\section{\@startsection
+	{section}{1}{\@mojihaba}{\sec@aboveskip}{\sec@belowskip}{\fs@sec\bf}}
+\let\ipsj@section\section					% 2.04(1)
+\def\subsection{\@startsection
+	{subsection}{2}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
+\def\subsubsection{\@startsection
+	{subsubsection}{3}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
+\def\paragraph{\@startsection
+	{paragraph}{4}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
+\def\subparagraph{\@startsection
+	{subparagraph}{5}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}
+
+\newcounter{section}
+\newcounter{subsection}[section]
+\newcounter{subsubsection}[subsection]
+\newcounter{paragraph}[subsubsection]
+\newcounter{subparagraph}[paragraph]
+
+\def\thesection{\arabic{section}}
+\def\sec@section@postfix{.}
+\def\thesubsection{\thesection.\arabic{subsection}}
+\def\thesubsubsection{\thesubsection.\arabic{subsubsection}}
+\def\theparagraph{\thesubsubsection.\arabic{paragraph}}
+\def\thesubparagraph{\theparagraph.\arabic{subparagraph}}
+
+\setcounter{secnumdepth}{5}
+
+\def\appendix{\let\sec@sec\section
+	\def\section{\@startsection
+		{section}{1}{\@mojihaba}{\z@}{\z@}{\fs@subsec\bf}}%
+	\def\thesection{\appendixprefix\arabic{section}}%
+	\def\sec@section@postfix{\appendixpostfix}%
+	\stepcounter{section}\setcounter{section}{0}%
+	\@ifnextchar[%]
+		     {\sec@oappendix}{\sec@xappendix}}
+\def\sec@xappendix{\@ifstar{\let\section\sec@sec}%
+	{\sec@sec*{\ifDS@english Appendix\else\ipsj@j@app \fi}}}% 2.12(1b)
+\def\sec@oappendix[#1]{\sec@sec*{\ifDS@english Appendix: \else
+	\ipsj@j@app\hskip\jspaceskip\fi #1}}			% 2.12(1b)
+\def\appendixprefix{A.}
+\def\appendixpostfix{}
+
+\def\acknowledgment{\par
+	{\bf \ifDS@english Acknowledgments \else\ipsj@j@ack\fi}%% 2.12(1b)
+	\hskip\@mojihaba \ignorespaces}
+\let\endacknowledgment\par
+
+\newif\ifipsj@recommendation \ipsj@recommendationfalse		% 2.04(1) >>
+\def\recommendation#1{\global\ipsj@recommendationtrue
+	\ifDS@draft\else \ra@putrcvacc\fi
+	\ipsj@section*{#1}
+}
+\def\endrecommendation{\par\vskip\baselineskip\penalty\opt@magicpenalty}
+								% 2.04(1) <<
+
+% Modified \@startsection has a trick for "2-row" of \section, which must
+% work even if \section appears the top of a page.  The BEFORESKIP must be
+% inserted with respect to the previous baseline.  So, we must go back to
+% the imaginary previous baseline at the top of a page.  That is, we do;
+%	\vskip\baselineskip \vspace*{-\baselineskip}
+% which resuls;
+% 	<a> do nothing at midpage
+%	<b> go to the first baseline by \topskip, then go back to 0th
+%	    baseline by \vspace*.
+% The trick "\vskip-\prevdepth \prevdepth\z@" will assure exact vertical
+% space even when the last line has much depth.
+%
+% \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
+\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi
+	\par \@tempskipa #4\relax
+	\@afterindenttrue
+	\ifdim\@tempskipa<\z@ \@tempskipa-\@tempskipa \@afterindentfalse\fi
+	\if@nobreak \everypar{}\else \addpenalty{\@secpenalty}\fi
+	\ifdim\@tempskipa>\z@
+% Here is the trick for \section.
+		\vskip-\prevdepth \prevdepth\z@ \vskip\baselineskip
+		\vspace*{-\baselineskip}\vskip\@tempskipa\fi
+	\@ifstar
+	{\@ssect{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+
+% \@sect is modified to cope with `.' for \section and MOJI-DORI
+%
+% \@sect{NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}[TITLE]{TITLE}
+\def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth
+	\def\@svsec{}\else 
+	\refstepcounter{#1}
+								% 2.00(1)>>
+	\let\@@protect\protect \def\protect{\noexpand\protect\noexpand}
+	\edef\@svsec{\csname the#1\endcsname \csname sec@#1@postfix\endcsname
+		\hskip\@mojihaba} \let\protect\@@protect\fi	% 2.00(1)<<
+	\@tempskipa #5\relax
+	\ifdim \@tempskipa<\z@ 
+        	\def\@svsechd{#6\hskip #3\relax\@svsec #8}	% 2.00(1)
+	\else
+        	\begingroup #6\relax
+		\@hangfrom{\hskip #3\relax\@svsec}%
+			{\interlinepenalty\@M \sec@mojidori{#8}\par}%
+		\endgroup
+	\fi \@xsect{#5}}
+
+% \@ssect is modified to cope with MOJI-DORI
+%
+% \@sect{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}{TITLE}
+\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax
+	\ifdim \@tempskipa<\z@ \def\@svsechd{#4\hskip #1\relax #5}%
+	\else \begingroup #4%
+		\@hangfrom{\hskip #1}{\interlinepenalty\@M
+			\sec@mojidori{#5}\par}\endgroup
+	\fi \@xsect{#3}}
+
+%% Modify \@xsect to avoid (buggy) \clubpenalty=10000. (H.N.)
+\def\@xsect#1{\@tempskipa #1\relax
+	\ifdim \@tempskipa<\z@
+		\glboal\@nobreakfalse \global\@noskipsectrue
+		\everypar{\global\@noskipsecfalse \hskip-\parindent
+			\begingroup \@svsechd \endgroup \unskip
+			\hskip -#1\everypar{}}%
+	\else
+		\par \nobreak
+		\vskip \@tempskipa \global\@nobreaktrue
+		\everypar{\global\@nobreakfalse
+			\if@afterindent\else {\setbox0\lastbox}\fi \everypar{}}
+	\fi\ignorespaces}
+
+% Here is a trick for MOJI-DORI of sectioning tilte.  The rule is;
+%	2 - 4 Kanji char -> 5 Kanji char
+%	otherwise    -> natural width
+%
+\def\sec@mojidori#1{\ifDS@english #1\else			% 2.12(1b)
+	\setbox0\hbox{#1}\settowidth\@tempdimb{\ipsj@j@a}%	% 2.12(1b)
+	\ifdim\wd0>4.5\@tempdimb #1\else
+	\ifdim\wd0<1.5\@tempdimb #1\else
+	\jintercharskip\fill \jasciikanjiskip\fill \jmathkanjiskip\fill
+	\leavevmode\hbox to5\@tempdimb{#1\hfil}\fi\fi\fi}
+
+%%%%%% List-like Environments %%%%%%
+%
+%		LM	RM	LW	LS	LPI	II
+% default	2K	0	0.75K	0.25K	0	0
+% \enumerate	3K	0	3K	0	0	0
+% \Enumerate	0	0	3K	0	0	3K
+% \ENUMERATE	0	0	3K	0	0	4K
+% \enumerate*	1K	0	3K	0	0	2K
+% \itemize	2K	0	2K	0	0	0
+% \Itemize	0	0	2K	0	0	2K
+% \ITEMIZE	0	0	2K	0	0	3K
+% \itemize*	1K	0	2K	0	0	1K
+% \description	2K	0	0	1K	0	-1K
+% \Description	0	0	0	1K	0	1K
+% \DESCRIPTION	0	0	0	1K	0	2K
+% \description*	1K	0	0	1K	0	0
+% \verse	3K	2K	0.75K	0.25K	-1K	-1K
+% \quotation	2K	2K	0.75K	0.25K	1K	1K
+% \quote	2K	2K	0.75K	0.25K	0	0
+%
+% where LM is \leftmargin, RM is \rightmargin, LW is \labelwidth, LS is
+% \labelsep, \LPI is \listparindent, II is \itemindent, and K is Kanji char
+% width (\@mojihaba).
+%
+% All vertical space parameters, \topsep, \partopsep, \itemsep and \parsep,
+% are 0pt.
+
+\leftmargini2\@mojihaba
+\leftmarginii2\@mojihaba
+\leftmarginiii2\@mojihaba
+\leftmarginiv2\@mojihaba
+\leftmarginv2\@mojihaba
+\leftmarginvi2\@mojihaba
+
+\def\lst@listi{\labelsep.75\@mojihaba \labelwidth.25\@mojihaba
+	\rightmargin\z@ \listparindent\z@ \itemindent\z@
+	\partopsep\z@ \parsep\z@ \topsep\z@ \itemsep\z@}
+\def\@listi{\leftmargin\leftmargini \lst@listi}
+\def\@listii{\leftmargin\leftmarginii \lst@listi}
+\def\@listiii{\leftmargin\leftmarginiii \lst@listi}
+\def\@listiv{\leftmargin\leftmarginiv \lst@listi}
+\def\@listv{\leftmargin\leftmarginv \lst@listi}
+\def\@listvi{\leftmargin\leftmarginvi \lst@listi}
+
+\@listi
+
+\def\labelenumi{(\,\theenumi\,)} 
+\def\theenumi{\arabic{enumi}} 
+\def\labelenumii{(\,\theenumii\,)}
+\def\theenumii{\alph{enumii}}
+\def\p@enumii{\theenumi}
+\def\labelenumiii{(\,\theenumiii\,)}
+\def\theenumiii{\roman{enumiii}}
+\def\p@enumiii{\theenumi(\theenumii)}
+\def\labelenumiv{(\,\theenumiv\,)}
+\def\theenumiv{\Alph{enumiv}}
+\def\p@enumiv{\p@enumiii\theenumiii}
+\def\enumerate{\ifnum \@enumdepth >3 \@toodeep\else
+	\advance\@enumdepth \@ne 
+	\edef\@enumctr{enum\romannumeral\the\@enumdepth}
+	\list{\csname label\@enumctr\endcsname}{\usecounter
+		{\@enumctr}\def\makelabel##1{##1\hss}%
+		\leftmargin3\@mojihaba \labelwidth3\@mojihaba \labelsep\z@}\fi}
+\let\endenumerate\endlist
+
+\def\labelitemi{$\bullet$}
+\def\labelitemii{\bf --}
+\def\labelitemiii{$\ast$}
+\def\labelitemiv{$\cdot$}
+\def\itemize{\ifnum \@itemdepth >3 \@toodeep\else \advance\@itemdepth \@ne
+	\edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
+	\list{\csname\@itemitem\endcsname}{\def\makelabel##1{\hss##1\hss}%
+		\labelwidth2\@mojihaba \labelsep\z@}\fi}
+\let\enditemize\endlist
+
+\def\description{\list{}{\labelwidth\z@ \labelsep\@mojihaba
+	\itemindent\labelsep \advance\itemindent-\leftmargin
+	\def\makelabel##1{\bf ##1}}}
+\let\enddescription\endlist
+
+\let\latex@trivlist\@trivlist
+\def\lst@trivlist#1#2{\leftmargin#1\relax
+	\itemindent\labelwidth \advance\itemindent\labelsep
+	\advance\itemindent#2\relax
+	\let\@trivlist\latex@trivlist \@trivlist}
+
+\def\lst@Trivlist{\def\@trivlist{\lst@trivlist\z@\z@}}
+\def\Enumerate{\lst@Trivlist \enumerate}
+\let\endEnumerate\endlist
+\def\Itemize{\lst@Trivlist \itemize}
+\let\endItemize\endlist
+\def\Description{\lst@Trivlist \description}
+\let\endDescription\endlist
+
+\def\lst@TRIVLIST{\def\@trivlist{\lst@trivlist\z@\@mojihaba}}
+\def\ENUMERATE{\lst@TRIVLIST \enumerate}
+\let\endENUMERATE\endlist
+\def\ITEMIZE{\lst@TRIVLIST \itemize}
+\let\endITEMIZE\endlist
+\def\DESCRIPTION{\lst@TRIVLIST \description}
+\let\endDESCRIPTION\endlist
+
+\def\lst@strivlist{\def\@trivlist{\lst@trivlist\@mojihaba{-\@mojihaba}}}
+\@namedef{enumerate*}{\lst@strivlist \enumerate}
+\@namedef{endenumerate*}{\endlist}
+\@namedef{itemize*}{\lst@strivlist \itemize}
+\@namedef{enditemize*}{\endlist}
+\@namedef{description*}{\lst@strivlist \description}
+\@namedef{enddescription*}{\endlist}
+
+\def\verse{\let\\=\@centercr 
+	\list{}{\itemindent-\@mojihaba \listparindent\itemindent 
+	\rightmargin\leftmargin \advance\leftmargin\@mojihaba}\item[]}
+\let\endverse\endlist
+\def\quotation{\list{}{\listparindent\@mojihaba	\itemindent\listparindent
+	\rightmargin\leftmargin}\item[]}
+\let\endquotation\endlist
+\def\quote{\list{}{\rightmargin\leftmargin}\item[]}
+\let\endquote\endlist
+
+\def\newtheorem{\@ifstar
+	{\theo@newtheorem{\theo@it}{\ }}{\theo@newtheorem{}{\theo@sp}}}
+\def\theo@newtheorem#1#2#3{\@namedef{theo@it@#3}{#1}\@namedef{theo@sp@#3}{#2}%
+	\@ifnextchar[%]
+		     {\@othm{#3}}{\@nthm{#3}}}
+\def\@begintheorem#1#2{\DESCRIPTION \csname theo@it@\@currenvir\endcsname
+	\item[#1\csname theo@sp@\@currenvir\endcsname #2]}
+\def\@opargbegintheorem#1#2#3{\DESCRIPTION
+	\csname theo@style@\@currenvir\endcsname
+	\item[#1\csname theo@sp@\@currenvir\endcsname #2\ (#3)]}
+\let\@endtheorem\endlist					% 1.02(2)
+\ifDS@english
+\let\theo@it\it \let\theo@sp\ %
+\else
+\let\theo@it\relax \let\theo@sp\relax
+\fi
+
+%%%%%% Bibliography %%%%%%
+%
+% 1. Label format is "<nn>)".
+% 2. \leftmargin 24Q (or 2K)
+% 3. \labelsep is 6Q (or 0.5K)
+% 4. \baselineskip is 16Q(j)/15Q(e)/normal(d)
+% 5. ~ and \ is null but stretchable and (hardly) breakable.	% 2.09(1)
+
+\def\thebibliography#1{%
+	\section*{\hskip-\@mojihaba\hfill\hbox{\bib@refname}\hfill\hskip\z@}
+	\ifDS@draft \@tempdima\@mojihaba \else\@tempdima12\@Q\fi
+	\list{\arabic{enumi}\rlap{%(
+			   	  )}}%
+	     {\fs@bibliography \leftmargin2\@tempdima \labelwidth\z@
+		\labelsep\@tempdima \itemindent.5\@tempdima
+		\usecounter{enumi}\def\makelabel##1{\hss\llap{##1}}}
+	\def\newblock{\hskip .11em plus .33em minus .07em}
+	\sloppy \frenchspacing
+	\def\ {\hskip\z@ plus\fontdimen\thr@@\font \penalty5000\relax}
+								% 2.09(1)
+	\ifDS@english\else \ipsj@defcolonforbib \fi}		% 2.12(1b)(2)
+
+% (removal of \bib@refname)					% 2.12(1a)
+
+\newdimen\bib@adjustheight \bib@adjustheight-\maxdimen
+\def\endthebibliography{\endlist \par \@normalsize
+	\@tempdima\@colht \advance\@tempdima-\@colroom
+	\advance\@tempdima\pagetotal \advance\@tempdima-\prevdepth
+	\advance\@tempdima-\topskip
+	\@tempdimb\@tempdima \divide\@tempdima\baselineskip
+	\@tempcnta\@tempdima \@tempdima\@tempcnta\baselineskip
+	\advance\@tempdima-\@tempdimb
+	\ifdim\@tempdima<\z@ \advance\@tempdima\baselineskip \fi
+	\vskip-\prevdepth \vskip\@tempdima \prevdepth\z@
+	\bib@adjustheight\@tempdimb \advance\bib@adjustheight\@tempdima
+	\global\advance\bib@adjustheight\topskip
+	\if@firstcolumn\else\global\advance\bib@adjustheight\@M pt\fi}
+
+
+%%%%%% Floats %%%%%%
+
+% You may need to change following parameters
+\setcounter{topnumber}{4}
+\setcounter{bottomnumber}{4}
+\setcounter{totalnumber}{8}
+\setcounter{dbltopnumber}{4}
+\def\topfraction{.9}
+\def\bottomfraction{.9}
+\def\textfraction{.1}
+\def\dbltopfraction{.9}
+\def\floatpagefraction{.9}
+\def\dblfloatpagefraction{.9}
+
+\newcounter{figure}
+\newcounter{table}
+\def\thefigure{\@arabic\c@figure}
+\def\thetable{\@arabic\c@table}
+\def\fps@figure{tbp}
+\def\fps@table{tbp}
+\def\ftype@figure{1}
+\def\ftype@table{2}
+\def\fnum@figure{\fname@figure\thefigure}
+\def\fnum@table{\fname@table\thetable}
+\ifDS@english
+\def\fname@figure{Fig.\,}					% 2.06(1)
+\def\fname@Figure{Figure~}
+\def\fname@table{Table~}
+\def\fname@figures{Figs.\,}					% 2.12(8)>>
+\def\fname@Figures{Figures~}
+\def\fname@tables{Tables~}					% 2.12(8)<<
+\else
+\def\fname@figure{\ipsj@j@fig\fref@nobreak}		% 1.06(1), 2.12(1b)
+\let\fname@Figure\fname@figure
+\def\fname@table{\ipsj@j@tab\fref@nobreak}		% 1.06(1), 2.12(1b)
+\let\fname@figures\fname@figure					% 2.12(8)>>
+\let\fname@Figures\fname@figure
+\let\fname@tables\fname@table					% 2.12(8)<<
+\fi
+\def\fnum@efigure{Fig.\,\thefigure}				% 2.06(1)
+\def\fnum@etable{Table~\thetable}
+
+% 1.06(3) >>
+\def\figure{\let\cap@afterskip\relax \let\flt@fontsize\relax \@float{figure}}
+\def\endfigure{\end@float}
+\@namedef{figure*}{\let\cap@afterskip\relax \let\flt@fontsize\relax
+	\@dblfloat{figure}}
+\@namedef{endfigure*}{\end@dblfloat}
+
+%% Default font for table env. is \footnotesize (H.N.)
+\def\table{\let\cap@beforeskip\relax \let\flt@fontsize\fs@table
+	\@float{table}}
+\def\endtable{\end@float}
+\@namedef{table*}{\let\cap@beforeskip\relax \let\flt@fontsize\fs@table
+	\@dblfloat{table}}					% 2.01(2)
+\@namedef{endtable*}{\end@dblfloat}
+% 1.06(3) <<
+
+\let\latex@float\@float
+\let\latex@dbflt\@dbflt
+\def\@float{\cap@linewidth\hsize \cap@hsize\hsize \latex@float}
+\def\@dbflt{\cap@linewidth.8\textwidth \cap@hsize.667\textwidth \latex@dbflt}
+\let\latex@xfloat\@xfloat					% 1.06(3)
+\def\@xfloat#1[#2]{\latex@xfloat#1[#2]\flt@fontsize}
+								% 1.06(3)
+\def\end@float{\flt@endfloat
+	\ifdim\bib@adjustheight=-\maxdimen\else
+		\advance\bib@adjustheight\@tempdima
+		\global\advance\bib@adjustheight\baselineskip \fi
+	\ifnum\@floatpenalty <\z@
+		\@nameuse{@largefloatcheck}%			% 2.00(2)
+		\@cons\@currlist\@currbox
+	\ifdim \ht\@currbox >\textheight 
+		\ht\@currbox\textheight \fi
+	\ifnum\@floatpenalty < -\@Mii 
+        	\penalty -\@Miv 
+		\@tempdima\prevdepth \vbox{} \prevdepth\@tempdima
+		\penalty\@floatpenalty
+	\else \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@esphack
+	\fi\fi}
+\def\end@dblfloat{\if@twocolumn \flt@endfloat
+	\ifnum\@floatpenalty <\z@ \@cons\@dbldeferlist\@currbox\fi
+	\ifnum \@floatpenalty =-\@Mii \@esphack\fi\else\end@float\fi}
+\def\flt@endfloat{\par \boxmaxdepth\dp\strutbox			% 2.12(7c)
+	\global\@minipagefalse \@nameuse{outer@nobreak}\egroup	% 2.00(2)
+	\@nameuse{color@endbox}\@normalsize			% 2.00(2)
+	\@tempdima\ht\@currbox \advance\@tempdima\dp\@currbox
+	\divide\@tempdima\baselineskip \@tempcnta\@tempdima
+	\advance\@tempcnta\@ne \@tempdima\@tempcnta\baselineskip
+	\global\setbox\@currbox\vbox to\@tempdima{\box\@currbox\vfil}}
+								% 2.10(1)
+% 2.12(7a,b)>>
+\let\ipsj@cflb\@cflb
+\let\ipsj@comflelt\@comflelt
+\def\@cflb{\let\ipsj@botfigrule\botfigrule \let\botfigrule\vfil 
+	\let\@comflelt\ipsj@comfleltbot \ipsj@cflb
+	\let\@comflelt\ipsj@comflelt \let\botfigrule\ipsj@botfigrule}
+\def\ipsj@comfleltbot#1{%
+	\setbox#1\vbox to\ht#1{\vfil\unvbox#1\unskip}\ipsj@comflelt{#1}}
+% 2.12(7a,b)<<
+
+\def\cap@beforeskip{\nointerlineskip\vskip5pt}
+\def\cap@afterskip{\nointerlineskip\vskip5pt}
+\long\def\@caption#1[#2]#3{\par\begingroup
+	\fs@caption \cap@beforeskip
+	\@makecaption{{\bf \csname fnum@#1\endcsname}}{\ignorespaces#3}\par
+	\ifDS@english \cap@afterskip \fi
+	\endgroup}
+\def\ecaption{\@dblarg{\@ecaption\@captype}}
+\long\def\@ecaption#1[#2]#3{\par
+	\begingroup \fs@caption
+	\@makecaption{\csname fnum@e#1\endcsname}{\ignorespaces #3}\par
+	\cap@afterskip
+	\endgroup}
+
+\newif\ifcap@sw
+\newdimen\cap@linewidth
+\newdimen\cap@hsize
+\newcount\cap@prevgraf
+\newbox\cap@box
+\let\latex@label\label
+\long\def\@makecaption#1#2{\begingroup \gdef\cap@label{}\let\label\@gobble
+	\setbox0\hbox{#1\hskip\jspaceskip}
+	\advance\cap@linewidth-\wd0 \advance\cap@hsize-\wd0
+	\cap@makepar\cap@linewidth{#2}{\def\label##1{{%		    %1.03(1)
+		\def\protect{\noexpand\protect\noexpand}	    %1.03(1)
+		\xdef\cap@label{\cap@label\protect\label{##1}}}}}   %1.03(1)
+	\cap@swtrue
+	\ifnum\cap@prevgraf=\@ne
+		\setbox1\vbox{\unvcopy1\cap@getbox1
+			\ifhbox1 \global\setbox\cap@box\hbox{\unhbox1}
+			\ifdim\wd\cap@box>\cap@linewidth\else
+				\global\cap@swfalse \fi\fi}
+		\ifcap@sw\else
+			\cap@put{\vtop{\box\cap@box\hbox{}}}
+		\fi\fi
+	\ifcap@sw \cap@makepar\cap@hsize{#2}\relax
+	\ifnum\cap@prevgraf=\tw@
+		\setbox1\vbox{\unvcopy1\cap@getbox2\cap@getbox3
+			\ifhbox2\ifhbox3
+				\setbox2\hbox{\unhbox2}\setbox3\hbox{\unhbox3}
+				\ifdim\wd2>\cap@hsize\else
+				\ifdim\wd3>\cap@hsize\else
+				\global\cap@swfalse
+				\global\setbox\cap@box\vtop{\box3\box2\hbox{}}
+				\fi\fi\fi\fi}\fi
+	\ifcap@sw \setbox1\vtop{\hsize\cap@hsize
+		\@parboxrestore #2\par\hbox{}}\cap@put{\box1}
+	\else\cap@put{\box\cap@box}\fi
+	\fi
+	\endgroup \cap@label}
+\long\def\cap@makepar#1#2#3{\setbox1\vbox{\hsize#1\@parboxrestore
+	\rightskip\@flushglue \hfuzz\maxdimen
+	\exhyphenpenalty\z@ \finalhyphendemerits\z@
+	\let\@@par\cap@par \let\par\cap@par \global\cap@prevgraf\z@
+	#3#2\cap@par}}
+\let\cap@@par\@@par
+\def\cap@par{\cap@@par\global\advance\cap@prevgraf\prevgraf \prevgraf\z@}
+\def\cap@put#1{\hbox to\hsize{\hss\box0#1\hss}
+	\vskip-\baselineskip\prevdepth\z@}
+\def\cap@getbox#1{\@tempcnta10\relax\@whilenum\@tempcnta>0\do{%
+	\unskip\unkern\unpenalty\advance\@tempcnta\m@ne}\setbox#1\lastbox}
+
+\def\figref{\fref@ref\fname@figure}
+\def\Figref{\fref@ref\fname@Figure}
+\def\tabref{\fref@ref\fname@table}
+\let\Tabref\tabref
+\def\fref@ref#1{\@ifstar{\fref@sref{#1}}{\fref@iref\bf{#1}}}
+\def\fref@iref#1#2#3{{\@ifundefined{fref@r@#3}%
+	{#1#2\fref@doref{#3}\global\@namedef{fref@r@#3}{}}{#2\fref@doref{#3}}}}
+\def\fref@sref#1#2{#1\fref@doref{#2}}
+\def\fref@doref#1{{\let\null\relax\ref{#1}}}			% 1.06(2)
+\def\fref@nobreak{\nobreak\ifASCII\else\hskip\@@jasciikanjiskip\fi}
+								% 1.06(1)
+\def\figsref{\fref@refs\fname@figures}				% 2.12(8)>>
+\def\Figsref{\fref@refs\fname@Figures}
+\def\tabsref{\fref@refs\fname@tables}
+\let\Tabsref\tabsref
+\def\fref@refs#1{\@ifstar{\fref@irefs\relax{#1}}{\fref@irefs\bf{#1}}}
+\def\fref@irefs#1#2#3{\def\fref@list{#3}\@tempswafalse \@tempcnta\z@
+	\@for\fref@elem:=\fref@list\do{%
+		\@ifundefined{fref@r@\fref@elem}{\@tempswatrue}{}%
+		\advance\@tempcnta\@ne}%
+	\ifx#1\relax \@tempswafalse\fi
+	\ifDS@english {\if@tempswa #1\fi #2}\let\fref@temp\relax
+	\else \def\fref@temp{#2}\fi
+	\@for\fref@elem:=\fref@list\do{%
+		\if@tempswa \fref@iref{#1}{\fref@temp}{\fref@elem}%
+		\else \fref@temp\fref@doref{\fref@elem}\fi
+		\advance\@tempcnta\m@ne
+		\ifnum\@tempcnta=\@ne \fref@and
+		\else\ifnum\@tempcnta>\@ne \fref@comma \fi\fi}}
+\ifDS@english
+\def\fref@and{ and~}
+\def\fref@comma{, }
+\else
+\def\fref@and{\ipsj@j@comma}
+\let\fref@comma\fref@and
+\fi
+
+\ifDS@printer
+\def\figures{{\bf\fname@figures}}
+\def\Figures{{\bf\fname@Figures}}
+\def\tables{{\bf\fname@tables}}
+\let\Tables\tables
+\def\Ref{\fref@iref\bf\relax}
+\fi								% 2.12(8)<<
+
+\def\fig@extraspace{3mm}					%1.04(4)
+\def\figspace#1{\vskip#1\vskip\fig@extraspace}			%1.04(4)
+
+%%%%%% Footnote %%%%%%
+
+%% The following codes are from pfnote.sty, by H. Nakashima of Kyoto Univ.,
+%% to reset footnote counter at the begining of every page. (H.N.)
+
+% 1.04(2c)>>
+\def\footnote{\@ifnextchar[%]
+	{\@xfootnote}{{\PF@adjustfnote \stepcounter{\@mpfn}%
+		\def\protect{\noexpand\protect\noexpand}%
+		\xdef\@thefnmark{\thempfn}}\@footnotemark\@footnotetext}}
+\def\footnotemark{\@ifnextchar[%]
+	{\@xfootnotemark}{{\PF@adjustfnote \stepcounter{footnote}%
+		\def\protect{\noexpand\protect\noexpand}%
+		\xdef\@thefnmark{\thefootnote}}\@footnotemark}}
+% 1.04(2c)<<
+
+\newcount\PF@fnotectr\global\PF@fnotectr=\z@
+\newcount\PF@page\global\PF@page=-\@M
+\def\PF@thepage{\number\c@page}
+\def\PF@adjustfnote{\global\advance\PF@fnotectr\@ne
+	\expandafter\ifx\csname PF@fn\number\PF@fnotectr\endcsname\relax
+		\global\c@footnote\z@\else
+	\expandafter\@tempcnta\csname PF@fn\number\PF@fnotectr\endcsname\relax
+	\ifnum\@tempcnta=\PF@page\else
+		\global\PF@page\@tempcnta \global\c@footnote\z@ \fi\fi
+	\@tempcnta\c@footnote \multiply\@tempcnta\@M
+	\advance\@tempcnta\PF@fnotectr
+	\if@filesw{\let\PF@thepage\relax
+		\xdef\@gtempa{\write\@auxout{\string\PF@fnpage
+		{\number\@tempcnta}{\PF@thepage}}}}%
+		\@gtempa\fi}
+% 1.04(2a)<<
+
+% 1.04(2a)>>
+\def\PF@fnpage#1#2{\@tempcnta#1\relax \@tempcntb\@tempcnta \divide\@tempcnta\@M
+	\expandafter\xdef\csname PF@fnpage#2\endcsname{\number\@tempcnta}
+	\multiply\@tempcnta\@M \advance\@tempcntb-\@tempcnta	
+	\global\@namedef{PF@fn\number\@tempcntb}{#2}}
+% 1.04(2a)<<
+%% End of quote from pfnote.sty. (H.N.)
+
+\long\def\@makefntext#1{\leftskip20\@Q
+	\noindent\llap{\@makefnmarkforfn\hskip-\scriptspace\hskip5\@Q}#1}
+								% 1.04(2e)
+\def\@makefnmarkstar{$\@thefnmark$}				% 2.12(3)
+\def\@makefnmarkdagger{$\@thefnmark$}
+\def\@makefnmarkast{$\@thefnmark$}				% 2.12(3)
+\let\@makefnmarkforfn\@makefnmarkstar
+
+\def\@makefnmark{\smash{$^{\@thefnmark}$}}			% 2.12(3)
+								% 1.04(2d)
+						% smashed to make it
+						% zero height
+
+\def\thefootnote{\ifnum\c@footnote>0\relax{\star}\number\c@footnote\fi}
+								% 2.12(3)
+
+%%%%%% Citation %%%%%%
+
+%% The following codes for \cite are from overcite.sty by D. Arseneau, but
+%% modified for Trans. IPSJ (H.N.)
+%     O V E R C I T E . S T Y
+%
+%     version 3.2  (Mar 1993)
+%
+%     Compressed, sorted lists of superscript numerical citations.
+%     see also CITE.STY and DRFTCITE.STY
+%
+%     Copyright (C) 1989-1993 by Donald Arseneau
+%     These macros may be freely transmitted, reproduced, or modified for
+%     non-commercial purposes provided that this notice is left intact.
+%
+\def\cite{\protect\@p@cite}
+\def\@p@cite{\let\@citeY\@citey \@p@@cite}
+\def\Cite{\protect\@p@Cite}
+\def\@p@Cite{\let\@citeY\@Citey \@p@@cite}
+\def\@p@@cite{\@ifnextchar[%]
+		          {\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
+\def\@citex[#1]#2{\@citeY{\@p@citen{#2}}\if@tempswa\space[#1]\fi}
+\def\@citey#1{\leavevmode\unskip\kern\z@$\let\@cite@tiestyle\ipsj@j@citescript
+%     								% 2.06(2)
+								% 2.12(4)
+	\def\@cite@punct{,}\m@th^{\hbox{\scriptsize#1}}$\spacefactor\@m}
+\def\@Citey#1{\let\@cite@tiestyle\ipsj@j@citetext		% 2.12(4)
+								% 1.04(1)>>
+	\ifDS@english \def\@cite@punct{,\space\penalty\@highpenalty}
+	\else\def\@cite@punct{\ipsj@j@comma}\fi#1\spacefactor\@m}
+								% 1.04(1)<<
+								% 2.12(1b)
+\def\@p@citen#1{%
+	\edef\@tempa{\@ignspaftercomma,#1, \@end, }%
+	\edef\@tempa{\expandafter\@ignendcommas\@tempa\@end}%
+	\if@filesw \immediate\write\@auxout{\string\citation{\@tempa}}\fi
+	\@tempcntb\m@ne \let\@h@ld\relax \let\@citea\@empty
+	\let\@celt\relax \def\@cite@list{}%			% 2.06(3)
+	\@for\@citeb:=\@tempa\do{\@make@cite@list}%
+	\def\protect{\noexpand\protect\noexpand}%
+	\@tempcnta\m@ne \let\@celt\@compress@cite \@cite@list
+	\let\protect\relax \@h@ld}
+\def\@ignspaftercomma#1, {\ifx\@end#1\@empty\else
+	#1,\expandafter\@ignspaftercomma\fi}
+\def\@ignendcommas,#1,\@end{#1}
+
+%(
+\let\@cite@rp)
+\chardef\@cite@escape`\\
+\def\@make@cite@list{%
+    \expandafter\let\expandafter\@B@citeB\csname b@\@citeb\endcsname
+    \ifx\@B@citeB\relax
+	\@citea {\bf ?}\@cite@rp \let\@citea\@cite@punct
+	\@latex@warning{Citation `\@citeb' on page \thepage\space undefined}%
+								% 2.00(3)
+	\global\@namedef{b@\@citeb}{{\bf ?}}%
+    \else
+	\ifcat \@cite@escape\ifnum\z@<0\@B@citeB \@cite@escape\else A\fi
+	    \@tempcnta\@B@citeB \relax
+	    \ifnum \@tempcnta>\@tempcntb
+		\edef\@cite@list{\@cite@list \@celt{\@B@citeB}}%
+		\@tempcntb\@tempcnta
+	     \else
+		\edef\@cite@list{\expandafter\@sort@celt\@cite@list\@gobble @}%
+		\fi
+	\else \@citea \@B@citeB \@cite@rp \let\@citea\@cite@punct
+    \fi\fi}
+
+\def\@sort@celt#1#2{\ifx \@celt #1% parameters are \@celt {num}
+	\ifnum #2<\@tempcnta % number goes later in list
+	    \@celt{#2}\expandafter\expandafter\expandafter\@sort@celt
+	\else \@celt{\number\@tempcnta}\@celt{#2}\fi\fi}
+
+\def\@compress@cite#1{\advance\@tempcnta\@ne
+	\ifnum #1=\@tempcnta
+		\ifx\@h@ld\relax \edef\@h@ld{\@citea #1\@cite@rp}%
+		\else \edef\@h@ld{\@cite@tie{\protect\@cite@tiestyle}%
+								% 2.12(4)
+			\penalty\@highpenalty #1\@cite@rp}\fi
+	\else \@h@ld \@citea #1\@cite@rp
+		\let\@h@ld\relax
+	\fi \@tempcnta#1\relax \let\@citea\@cite@punct}
+
+%% End of quote from overcite.sty. (H.N.)
+
+\def\multicite{\protect\@p@multicite}
+\def\@p@multicite#1#2{\@citey{\@p@citen{#1}%
+	\@cite@tie\ipsj@j@citescript \@p@citen{#2}}}		% 2.12(4)
+\def\multiCite{\protect\@p@multiCite}
+\def\@p@multiCite#1#2{\@Citey{\@p@citen{#1}\@cite@tie\relax	% 2.12(4)
+	\penalty\@highpenalty \@p@citen{#2}}}
+
+
+%%%%%% Box Height Adjustment and Displayed Math %%%%%%
+
+\newbox\adj@boxa \newbox\adj@boxb
+\newdimen\adj@height
+\@tempdima\baselineskip \advance\@tempdima-\topskip
+\edef\adj@minaboveclearance{\the\@tempdima}
+\@tempdima\baselineskip \advance\@tempdima-1ex
+\edef\adj@maxaboveclearance{\the\@tempdima}
+
+\def\adj@setbhd#1{\setbox0\hbox{#1}				% 2.12(1c)>>
+	\@tempdima\baselineskip \advance\@tempdima-\ht0 \advance\@tempdima\dp0
+	\edef\adj@bhd{\the\@tempdima}}				% 2.12(1c)<<
+
+% 2.01(1) >>
+\def\adjustvboxheight{\ifinner \let\@tempa\relax
+	\let\endadjustvboxheight\relax \let\@endadjustvboxheight\relax
+	\else \let\@tempa\@adjustvboxheight \fi \@tempa}
+\def\@adjustvboxheight{\par\penalty\z@
+	\global\setbox\adj@boxa\vbox\bgroup\relax		% 1.01(3)
+	\let\@footnotetext\@mpfootnotetext			% 2.02(1)
+%								% 2.05(1)
+	\hsize\columnwidth}
+% 2.01(1) <<
+\def\endadjustvboxheight{\adj@closebox \adj@putbox
+	\ifvoid\@mpfootins\else\insert\footins{\unvbox\@mpfootins}\fi
+%								% 2.02(1)
+	\global\@ignoretrue\@endparenv}
+\def\adj@closebox{\egroup \normalsize \boxmaxdepth\@maxdepth	% 1.01(1,3)
+	\setbox\adj@boxa\vbox{\unvbox\adj@boxa}			% 1.01(3)
+	\adj@height\ht\adj@boxa
+	\advance\adj@height\adj@minaboveclearance\relax
+	\@tempdima\adj@height \divide\adj@height\baselineskip
+	\@tempcnta\adj@height \adj@height\@tempcnta\baselineskip
+	\ifdim\adj@height<\@tempdima \advance\adj@height\baselineskip\fi}
+\def\adj@putbox{\vskip-\prevdepth \prevdepth\z@ \vskip\baselineskip
+	\vspace*{-\baselineskip}\advance\@tempdima-\adj@height
+	\@tempdima-\@tempdima \advance\@tempdima\adj@minaboveclearance\relax
+	\@tempdimb\dp\adj@boxa
+	\ifdim\@tempdima>\adj@maxaboveclearance\relax
+		\advance\@tempdima-\@tempdimb \advance\@tempdima\adj@bhd\relax
+		\divide\@tempdima\tw@
+		\vbox to\adj@height{\vskip\@tempdima \box\adj@boxa \vss}
+	\else	\vbox to\adj@height{\vfil\box\adj@boxa\vskip-\@tempdimb}\fi}
+
+\newcount\adj@deadcycle
+\@namedef{adjustvboxheight*}{\adjustvboxheight}
+\@namedef{endadjustvboxheight*}{\@endadjustvboxheight}
+\def\@endadjustvboxheight{\global\adj@deadcycle10\relax
+	\@iendadjustvboxheight
+	\ifvoid\@mpfootins\else\insert\footins{\unvbox\@mpfootins}\fi
+%								% 2.05(2)
+	\global\@ignoretrue\@endparenv}
+\def\@iendadjustvboxheight{\adj@closebox
+	\ifnum\adj@deadcycle<\@ne
+	\ipsj@error{I cannot adjust too tall/deep box}{\@ehd}\fi    % 2.00(3)
+	\global\advance\adj@deadcycle\m@ne
+	\ifdim\pagegoal=\maxdimen
+		\@tempdimb\@colht \advance\@tempdimb-\topskip
+		\advance\@tempdimb\baselineskip
+	\else \@tempdimb\pagegoal
+		\advance\@tempdimb-\pagetotal \advance\@tempdimb-\pagedepth
+		\advance\@tempdimb\prevdepth \fi		% 1.01(4a)
+	\let\next\relax
+	\ifdim\adj@height<\@tempdimb \adj@putbox \else
+	\ifdim\adj@height=\@tempdimb \adj@putbox \else
+	\divide\@tempdimb\baselineskip \@tempcnta\@tempdimb	% 1.01(4b)>>
+	\@tempdimb\@tempcnta\baselineskip
+	\advance\@tempdimb-\adj@minaboveclearance\relax		% 1.01(4b)<<
+	\setbox\adj@boxa\vbox{\allowbreak\unvbox\adj@boxa}
+	\vbadness\@M \splittopskip\z@ \splitmaxdepth\@maxdepth	%1.01(1)
+	\setbox\@tempboxa\vsplit\adj@boxa to\@tempdimb
+	\setbox\adj@boxb\copy\adj@boxa
+	\setbox\@tempboxa\vbox{\unvbox\@tempboxa}
+	\@tempdimb\ht\@tempboxa \advance\@tempdimb\dp\@tempboxa
+	\ifdim\@tempdimb>\z@
+		\setbox\adj@boxa\vbox\bgroup\unvbox\@tempboxa
+		\adj@closebox \adj@putbox \newpage
+	\else \newpage \fi
+	\setbox\adj@boxa\vbox\bgroup\unvbox\adj@boxb
+	\let\next\@iendadjustvboxheight \fi\fi \next}
+
+\def\adj@eqindent{2\@mojihaba}
+\def\[{\adjustvboxheight\advance\@totalleftmargin\adj@eqindent\relax
+	\hbox to\hsize\bgroup\hskip\@totalleftmargin$\displaystyle}
+\def\]{$\hfill\egroup\endadjustvboxheight\@doendpe\ignorespaces} % 2.03(1)
+\def\equation{\refstepcounter{equation}\[}
+\def\endequation{\hfill\@eqnnum$\egroup\endadjustvboxheight}
+\def\theequation{\arabic{equation}}
+\def\@eqnnum{{\rm (\theequation)\hskip\@mojihaba}} 
+
+\def\adj@eqnlineskip{3pt}
+\def\adj@eqnlineskiplimit{2pt}
+\def\eqnarray{\futurelet\@tempa\adj@eqnarray}
+\def\adj@eqnarray{\ifx\@tempa[%]
+	\let\next\adj@ieqnarray\else\let\next\adj@xeqnarray\fi\next}
+\def\adj@ieqnarray[#1]{\@ifundefined{adj@xeqnarray#1}%
+	{\ipsj@warning{Unknown eqnarray option `#1'}\adj@xeqnarray}% 2.00(3)
+	{\@nameuse{adj@xeqnarray#1}}}
+\def\adj@xeqnarray{\adjustvboxheight
+	\advance\@totalleftmargin\adj@eqindent\relax
+	\stepcounter{equation}\let\@currentlabel=\theequation
+	\global\@eqnswtrue
+	\global\@eqcnt\z@\tabskip\z@\let\\=\@eqncr
+	\lineskip\adj@eqnlineskip \lineskiplimit\adj@eqnlineskiplimit \jot\z@
+	\halign to \hsize\bgroup\@eqnsel\hskip\@totalleftmargin
+		\hfil$\displaystyle{##}$&\global\@eqcnt\@ne	% 1.01(2)
+		\hfil$\displaystyle{}\mathrel{##}{}$\hfil
+		&\global\@eqcnt\tw@ $\displaystyle{##}$\hfil
+		\tabskip\@centering&\llap{##}\tabskip\z@\cr}
+\def\adj@xeqnarrays{\let\endadjustvboxheight\@endadjustvboxheight
+	\adj@xeqnarray}
+\@namedef{adj@xeqnarrays!}{\par\let\adjustvboxheight\relax
+	\let\endadjustvboxheight\relax \adj@xeqnarray}
+\def\endeqnarray{\@@eqncr \egroup \global\advance\c@equation\m@ne
+	\endadjustvboxheight}
+
+
+%%%%%% Miscellaneous %%%%%%
+
+%% \doublerulesep is 1pt (H.N.)
+\arraycolsep5pt \tabcolsep6pt \arrayrulewidth.4pt \doublerulesep1pt 
+\tabbingsep.5\@mojihaba
+
+\skip\@mpfootins\skip\footins
+\fboxsep3pt \fboxrule.4pt 
+
+%% We simply allow (not encourage) club and widow lines. (H.N.)
+\clubpenalty\z@ \widowpenalty\z@ \displaywidowpenalty\z@
+
+% The following redefinition influences \linebreak etc.
+\def\sloppy{\tolerance9999\hbadness9999\hfuzz.5\p@ \vfuzz.5\p@}
+
+%% For heading of TBIO papers
+\ifDS@TBIO							% 2.11(1)>>
+\def\TBIOpapercategory#1{\def\ipsj@TBIO@pcat{#1}\ignorespaces}
+\def\ipsj@TBIO@pcat{original}
+\def\ipsj@TBIO@pcat@original{Original Paper}
+\def\ipsj@TBIO@pcat@survey{Survey Paper}
+\def\ipsj@TBIO@pcat@database{Database/Software Paper}
+\def\ipsj@TBIO@pcatref{\@ifundefined{ipsj@TBIO@pcat@\ipsj@TBIO@pcat}%
+    {\ipsj@warning{TBIO paper category \ipsj@TBIO@pcat\space is undefined.}}%
+    \relax
+  \@nameuse{ipsj@TBIO@pcat@\ipsj@TBIO@pcat}}
+\fi								% 2.11(1)<<
+
+
+% 2.12(1a)>>
+\let\ipsj@j@citescript\scriptsize				% 2.12(4)>>
+\let\ipsj@j@citetext\normalsize
+\def\@cite@tie#1{\hbox{#1--}}					% 2.12(4)<<
+\def\bib@refname{References}
+\adj@setbhd{A}
+
+\ifipsj@nonjp \let\next\endinput \else \let\next\relax \fi
+\next
+
+\def\ipsj@j@a{あ}
+\def\ipsj@j@app{付録}
+\def\ipsj@j@ack{謝辞}
+\def\ipsj@j@bib{参考文献}
+\def\ipsj@j@fig{図}
+\def\ipsj@j@tab{表}
+\def\ipsj@j@comma{,}
+\def\ipsj@j@technote{テクニカルノート}
+\def\ipsj@j@invited{招待論文}
+\def\ipsj@j@sigrec{研究会推薦論文}
+\def\ipsj@j@talkabst{発表概要}
+\def\ipsj@j@presently{現在,}
+\def\ipsj@j@jipsj{情報処理学会論文誌}
+\def\ipsj@j@regpaper{論文}
+\def\ipsj@j@contactto{連絡先}
+\def\ipsj@j@abstract{概要}
+\def\ipsj@j@colon{:}
+\def\ipsj@j@year{年}
+\def\ipsj@j@month{月}
+\def\ipsj@j@day{日}
+\def\ipsj@j@lp{(}
+\def\ipsj@j@rp{)}
+\def\ipsj@j@edinch{担当編集委員}
+\def\ipsj@j@rerec{再受付}
+\def\ipsj@j@received{受付}
+\def\ipsj@j@accepted{採録}
+\def\ipsj@j@presented{発表}
+\def\ipsj@j@member{正会員}
+\def\ipsj@j@stmember{学生会員}
+\def\ipsj@j@nomember{非会員}
+
+\ifDS@english\else \ifDS@draft\else
+\sec@setskips{\ipsj@j@a}
+\fi\fi
+
+\expandafter\let\csname c@巻数\endcsname\c@volume
+\expandafter\let\csname c@号数\endcsname\c@number
+\expandafter\let\csname c@月数\endcsname\c@number
+\expandafter\let\csname c@年数\endcsname\c@year
+
+\def\ipsj@sig@PRO@j{プログラミング}
+\def\ipsj@sig@TOM@j{数理モデル化と応用}
+\def\ipsj@sig@TOD@j{データベース}
+\def\ipsj@sig@HPS@j{ハイパフォーマンスコンピューティングシステム}
+\def\ipsj@sig@CVIM@j{コンピュータビジョンとイメージメディア}
+\def\ipsj@sig@ACS@j{コンピューティングシステム}			% 2.09(2)
+
+\def\ra@nengo{平成}	%% Change here when ...
+\let\受付\received
+\let\採録\accepted
+\let\発表\presented						% 2.07(7)
+\let\再受付\rereceived
+
+\def\々{\hskip\jintercharskip\hbox to\jspaceskip{\hfil 々\hfil}%% 2.12(5)
+	\hskip\jintercharskip}
+
+\ifDS@english\else \ifDS@draft\else
+{\fs@sec \@tempdima7\jspaceskip
+\xdef\bib@refname{\hbox to\the\@tempdima{\jintercharskip\fill\ipsj@j@bib}}}
+\adj@setbhd\ipsj@j@a
+\fi\fi
+
+\def\ipsj@j@colon@command{{\nobreak				% 2.12(2)>>
+	\hbox to.7\jspaceskip{:\hss}\allowbreak
+	\@tempdima.3\jspaceskip \hskip\@tempdima minus\@tempdima
+	\allowbreak
+	\hskip\z@ minus-\@tempdima}\ignorespaces}
+\def\ipsj@defcolonforbib{\let\:\ipsj@j@colon@command}
+\ifDS@printer \ipsj@defcolonforbib \fi				% 2.12(2)<<
+
+
+%%%%%% Kinsoku Parameters %%%%%%
+
+% 1.04(3)>>
+\ifASCII
+\postbreakpenalty`\`=\@M
+\prebreakpenalty`'=\@M
+\prebreakpenalty`)=\@M
+\postbreakpenalty`(=\@M
+\prebreakpenalty`]=\@M
+\postbreakpenalty`[=\@M
+\prebreakpenalty`\}=\@M
+\postbreakpenalty`\{=\@M
+
+\prebreakpenalty`・=\@M
+\prebreakpenalty`:=\@M
+\prebreakpenalty`;=\@M
+\prebreakpenalty`?=\@M
+\prebreakpenalty`!=\@M
+
+\prebreakpenalty\jis"212D=\@M		% ´
+\postbreakpenalty\jis"212E=\@M		% `
+\postbreakpenalty\jis"2146=\@M		% ‘
+\prebreakpenalty\jis"2147=\@M		% ’
+\postbreakpenalty\jis"2148=\@M		% “
+\prebreakpenalty\jis"2149=\@M		% ”
+
+\prebreakpenalty`)=\@M
+\postbreakpenalty`(=\@M
+\prebreakpenalty`}=\@M
+\postbreakpenalty`{=\@M
+\prebreakpenalty`]=\@M
+\postbreakpenalty`[=\@M
+\postbreakpenalty`‘=\@M
+\prebreakpenalty`’=\@M
+
+\postbreakpenalty\jis"214C=\@M		%〔
+\prebreakpenalty\jis"214D=\@M		% 〕
+\postbreakpenalty\jis"2152=\@M		% 〈
+\prebreakpenalty\jis"2153=\@M		% 〉
+\postbreakpenalty\jis"2154=\@M		% 《
+\prebreakpenalty\jis"2155=\@M		% 》
+\postbreakpenalty\jis"2156=\@M		% 「
+\prebreakpenalty\jis"2157=\@M		% 」
+\postbreakpenalty\jis"2158=\@M		% 『
+\prebreakpenalty\jis"2159=\@M		% 』
+\postbreakpenalty\jis"215A=\@M		% 【
+\prebreakpenalty\jis"215B=\@M		% 】
+
+\prebreakpenalty`ー=\@M						% 2.12(6)
+\prebreakpenalty`〜=\@M						% 2.12(6)
+
+\prebreakpenalty`ぁ=\@M
+\prebreakpenalty`ぃ=\@M
+\prebreakpenalty`ぅ=\@M
+\prebreakpenalty`ぇ=\@M
+\prebreakpenalty`ぉ=\@M
+\prebreakpenalty`っ=\@M
+\prebreakpenalty`ゃ=\@M
+\prebreakpenalty`ゅ=\@M
+\prebreakpenalty`ょ=\@M
+\prebreakpenalty\jis"246E=\@M		% ゎ
+\prebreakpenalty`ァ=\@M
+\prebreakpenalty`ィ=\@M
+\prebreakpenalty`ゥ=\@M
+\prebreakpenalty`ェ=\@M
+\prebreakpenalty`ォ=\@M
+\prebreakpenalty`ッ=\@M
+\prebreakpenalty`ャ=\@M
+\prebreakpenalty`ュ=\@M
+\prebreakpenalty`ョ=\@M
+\prebreakpenalty\jis"256E=\@M		% ヮ
+\prebreakpenalty\jis"2575=\@M		% ヵ
+\prebreakpenalty\jis"2576=\@M		% ヶ
+
+\fi
+% 1.04(3)<<
+% 2.12(1a)<<
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/ipsjdrafts.sty	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,392 @@
+% Copyright (C) 1995-2007 by Hiroshi Nakashima, Yasuki Saito and
+%                            The Editorial Board of the IPSJ Journal
+%
+% ipsjdrafts.sty 15-Jun-07 by Hiroshi Nakashima (ver 2.12)
+% (revision history deleted)
+% ipsjdrafts.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0)
+
+%%%%%% Fonts %%%%%%
+% All font loading are removed.
+
+\ifipsj@nonjp\else						% 2.12(1a)
+\ifASCII
+\let\latex@setsize\@setsize
+\def\@setsize#1#2#3#4{\latex@setsize{#1}{#2}{#3}{#4}\jspaceskip1zw}
+
+\newcount\jfsize
+\let\setjglues\relax
+\let\jintercharskip\kanjiskip
+\let\jasciikanjiskip\xkanjiskip
+\let\jmathkanjiskip\xkanjiskip
+\newdimen\jspaceskip
+
+\def\defjintercharskip#1#2#3#4{\@asciiwarning{\defjintercharskip}}
+\def\defjasciikanjiskip#1#2#3#4{\@asciiwarning{\defjasciicharskip}}
+\def\defmathkanjiskip#1#2#3#4{\@asciiwarning{\defmathcharskip}}
+\def\defjspaceskip#1#2#3#4{\@asciiwarning{\defjspaceskip}}
+
+\def\@asciiwarning#1{\ipsj@warning{\string#1\space		% 2.00(1)
+	is not supported in ASCII version}}
+
+\if@LaTeX@eN							% 2.00(2)>>
+\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc}
+\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt}
+\fi								% 2.00(2)<<
+
+\def\dg{\gt}							% 1.06(1)
+\def\dm{\mc}							% 1.06(1)
+
+\else	% This is necessary even in 2e.
+\ifx\sixdm\undefined \jfont\sixdm=dm6 \fi			% 1.01(1)
+								% 1.06(2)
+\fi \fi
+
+\if@LaTeX@eN							% 2.00(2)>>
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
+\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
+\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
+\fi								% 2.00(2)<<
+
+%%%%%% Basic Font Size Macros %%%%%%
+% Nothing at all.
+
+
+%%%%%% Font Size Macros %%%%%%
+
+\def\fs@setsize#1#2#3#4{\normalsize\dimen@\normalbaselineskip
+	\@ifstar{\@setsize{#1}{\dimen@}{#3}{#4}}%
+		{\@setsize{#1}{#2}{#3}{#4}}}
+
+% \baselineskip's are almost 1.25 times those defined in NTT jart12.
+
+\def\@normalsize{\@setsize\normalsize{20pt}\xiipt\@xiipt}
+\def\small{\fs@setsize\small{17pt}\xipt\@xipt}
+\def\footnotesize{\fs@setsize\footnotesize{14pt}\xpt\@xpt}
+\def\scriptsize{\@setsize\scriptsize{11.875pt}\viiipt\@viiipt}
+\def\tiny{\@setsize\tiny{8.75pt}\vipt\@vipt}
+\def\large{\@setsize\large{20pt}\xivpt\@xivpt}			% 1.06(3)
+\def\Large{\@setsize\Large{25pt}\xviipt\@xviipt}
+\def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt}
+\let\huge\LARGE
+\let\Huge\LARGE
+
+\if@LaTeX@e							% 2.00(3)>>
+\let\normalsize\@normalsize
+\fi								% 2.00(3)<<
+
+\let\fs@sec\large
+\let\fs@subsec\normalsize
+\let\fs@bibliography\normalsize
+\let\fs@caption\normalsize
+\let\fs@table\normalsize
+\let\fs@footnote\footnotesize
+{\tiny \xdef\fn@fontv{\ifipsj@nonjp \the\font \else		% 2.12(1a)
+	\ifASCII \the\jfont \else \sixdm \fi\fi}}
+\let\fn@fontvi\fn@fontv
+
+\@normalsize 
+
+\ifipsj@nonjp\else						% 2.12(1a)
+\ifASCII\else							% 1.06(2) >>
+\ifx\setjglue\undefined\else					% 2.04(1)
+\def\@tempc{\edef\@tempa{\the\ja}
+	\edef\@tempa{\expandafter\string\@tempa}
+	\expandafter\@tempb\@tempa\@nil
+	\expandafter\defjintercharskip\csname\@tempa\endcsname}
+\let\@tempd\@namedef
+{\catcode`j=12\catcode`a=12\gdef\@tempb#1#2ja\@nil{\@tempd{@tempa}{#2}}}
+\dg\@tempc{0pt}{1.4pt}{0.14pt}
+\dm\@tempc{0pt}{1.4pt}{0.14pt}
+\setjglues
+\fi\fi\fi							% 1.06(2) <<
+
+\@tempdima.55\baselineskip
+\edef\sec@aboveskip{\the\@tempdima}
+\@tempdima.45\baselineskip
+\edef\sec@belowskip{\the\@tempdima}
+
+\ifipsj@nonjp\else						% 2.12(1a)
+\if@LaTeX@e\else						% 2.04(2)
+\let\latex@bf\bf						% 1.06(1)
+\def\bf{\dg\latex@bf}						% 1.06(1)
+\fi\fi								% 2.04(2)
+
+
+%%%%%% Page Layout Parameters %%%%%%
+
+\newdimen\@mojihaba
+\ifipsj@nonjp							% 2.12(1a)>>
+	\@mojihaba11.54659pt
+	\let\jspaceskip\@mojihaba
+\else
+	\@mojihaba\jspaceskip
+\fi								% 2.12(1a)<<
+
+% No heads
+\headheight\z@
+\headsep\z@
+
+\setbox0\hbox{$\displaystyle X^X$}
+\topskip\ht0
+
+% 1 page = 32 lines
+\textheight31\baselineskip \advance\textheight\topskip \advance\textheight100sp
+
+% \topmargin is (A4height-\textheight)/2 - 1in
+\topmargin296mm \advance\topmargin-\textheight \divide\topmargin\tw@
+\advance\topmargin-1in
+\ifASCII\if@LaTeX@e\ifipsj@nonjp\else
+	\@@topmargin\topmargin \fi\fi\fi		% 2.00(4),2.12(1a)
+
+\footskip 1.5\baselineskip
+
+% 1 page = 35 Kanji chars
+\ifDS@english							% 1.06(4) >>
+\textwidth404.13048pt
+\else
+\textwidth35\@mojihaba
+\fi								% 1.06(4) <<
+
+% \oddsidemargin is (A4width-\textwidth)/2 - 1in
+\oddsidemargin210mm \advance\oddsidemargin-\textwidth \divide\oddsidemargin\tw@
+\advance\oddsidemargin-1in
+
+% As jart12
+\footnotesep10pt
+\skip\footins 10.8pt plus 4pt minus 2pt 
+\def\footnoterule{\kern-3\p@ \hrule width.4\columnwidth \kern2.6\p@}
+
+\floatsep \baselineskip \textfloatsep \baselineskip 
+\intextsep \baselineskip \@maxsep \baselineskip
+\dblfloatsep \baselineskip \dbltextfloatsep \baselineskip
+\@dblmaxsep \baselineskip
+\@fptop 0pt plus 1fil \@fpsep 0pt plus 2fil \@fpbot 0pt plus 1fil 
+\@dblfptop 0pt plus 1fil \@dblfpsep 0pt plus 2fil \@dblfpbot 0pt plus 1fil
+
+\parskip\z@ \parindent \@mojihaba
+\@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 
+\@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty 
+
+
+%%%%%% Title and Authors %%%%%%
+%
+% Format of title, author names and abstract.
+%
+%	\leftline{\LARGE <<paper-category>>}
+%	\vfill
+%	\beign{center}\LARGE\bf <Japanese title>\end{center}
+%	\vfill
+%	\begin{center}\LARGE\bf <Engilish title>\end{center}
+%	\vfill\vfill
+%	\newpage
+%	\large <Japanese author names>
+%	\vfill
+%	<<contact info>>
+%	\begin{itemize}\item[]\large <Contact address>\end{itemize}
+%	\vfill\vfill
+%	\newpage
+%	\normalsize <Japanese abstract>
+%	\normalsize <English abstract>
+
+\def\maketitle{\@maketitle}
+
+% default title header
+
+\def\title{\@dblarg{\@xtitle}}
+\def\@xtitle[#1]#2{\gdef\@title{#2}}
+\def\@title{\leavevmode\mkt@warning\title}
+\long\def\author#1{\long\gdef\@author{#1}}
+\def\@author{\mkt@warning\author}
+
+\newbox\@abstractbox
+
+\def\abstract{\global\let\@abstract\relax
+	\global\setbox\@abstractbox\vtop\bgroup}
+\def\endabstract{\par\hbox{}\egroup}
+\def\@abstract{\mkt@warning{abstract env}}
+
+%% We need English title, author name(s) and abstract. (H.N.)
+%% English author names are simply ignored.
+\def\etitle#1{\gdef\@etitle{#1}}
+\def\@etitle{\leavevmode\mkt@warning\etitle}
+\long\def\eauthor#1{}
+
+\newbox\@eabstractbox
+\def\eabstract{\global\let\@eabstract\relax
+	\global\setbox\@eabstractbox\vtop\bgroup}
+\let\endeabstract\endabstract
+\def\@eabstract{\mkt@warning{eabstract env}}
+
+\ifDS@english \let\abstract\eabstract \let\@eabstract\@abstract \fi
+
+% Contact address is no longer required even in draft.
+\def\contact{\long\def\mkt@contact}
+\def\mkt@contact{}						% 2.12(4)
+
+\def\@maketitle{\newpage\thispagestyle{empty}
+	\leftline{\LARGE
+		\ifDS@TBIO \ipsj@TBIO@pcatref			% 2.11(1)
+		\else\ifDS@english \ifDS@technote Technical Note\else
+			Regular Paper\fi
+		\else \ifDS@technote \ipsj@j@technote		% 2.12(1b)
+			       \else \ipsj@j@regpaper\fi\fi\fi}
+	\vfill
+	\begin{center}\LARGE\bf\@title\end{center}
+	\ifDS@english\else 
+		\vfill
+		\begin{center}\LARGE\bf\@etitle\end{center}\fi
+	\@thanks
+	\vfill\vfill
+%								% 2.12(4)>>
+%	\ifDS@anonymous\else					% 2.10(1)>>
+%	    \newpage\thispagestyle{empty}
+%	    \begingroup\large\vspace*{\fill}\rightskip0pt plus1fil
+%	    \parindent\z@\parskip.5\baselineskip\hangindent2em\hangafter\@ne
+%	    \def\par{{\@@par}}
+%	    \mkt@makeauthor
+%	    \par\vfill
+%	    \noindent
+%	    \ifDS@english Contact To:\else \ipsj@j@contactto \fi% 2.12(1b)
+%	    \endgroup
+%	    \begin{itemize}\large\item[]\mkt@contact\end{itemize}
+%	    \vfill\vfill
+%	\fi							% 2.10(1)<<
+%								% 2.12(4)<<
+	\newpage \setcounter{page}{1}\def\thepage{\roman{page}}
+	\ifDS@english\else \@abstract \centerline{\bf \ipsj@j@abstract}
+%								% 2.12(1b)
+		\vskip-\prevdepth\vskip\baselineskip\vskip-\ht\@abstractbox
+		\unvbox\@abstractbox\prevdepth\z@ \fi
+	\centerline{\bf Abstract}
+	\vskip-\prevdepth \vskip\baselineskip\vskip-\ht\@eabstractbox
+	\@eabstract \unvbox\@eabstractbox
+	\newpage \def\thepage{\arabic{page}}\setcounter{page}{1}}
+
+\def\mkt@makeauthor{\let\member\mkt@member \let\nomember\mkt@nomember
+	\let\stmember\mkt@stmember
+	\expandafter\mkt@imakeauthor\@author\and\@nil\and}
+\def\mkt@imakeauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil\let\next\relax
+	\else #1\par\let\next\mkt@imakeauthor\fi\next}
+
+% Macros to specify author's affiliation easily.
+\ifDS@english
+\def\paffilabel#1#2{\affilabel{#1}{Presently with #2}}
+\else
+\def\paffilabel#1#2{\affilabel{#1}{\ipsj@j@presently #2}}
+\fi
+% Ignore English affiliation even if given.
+\def\affilabel#1#2{\@ifundefined{affi@r@#1}%
+		{\expandafter\xdef\csname affi@r@#1\endcsname
+			{\affi@cuteng#2\\\@nil}}
+		{\ipsj@warning{Affiliation label `#1' multiply defined}}}
+								% 2.00(1)
+\def\affiref#1{\@ifundefined{affi@r@#1}%
+		{\ipsj@warning{%				% 2.00(1)
+			Affiliation reference `#1' undefined}\hbox{(???)}}
+		{\setbox\@tempboxa\hbox{(\csname affi@r@#1\endcsname)}%
+			\@tempdima\wd\@tempboxa \advance\@tempdima2em\relax
+			\ifdim\@tempdima>\hsize
+				\newline\unhbox\@tempboxa
+			\else\ \box\@tempboxa\fi}}
+\def\affi@cuteng#1\\#2\@nil{#1}
+
+% Membership of aurthor is required in draft.
+\ifDS@english
+\def\mkt@member#1{\ \hbox{[Regular Member\##1]}}
+\def\mkt@nomember{\ \hbox{[Non Member]}}
+\def\mkt@stmember#1{\ \hbox{[Student Member\##1]}}
+\else
+\def\mkt@member#1{\ \hbox{[\ipsj@j@member\##1]}}
+\def\mkt@nomember{\ \hbox{[\ipsj@j@nomember]}}
+\def\mkt@stmember#1{\ \hbox{[\ipsj@j@stmember\##1]}}
+\fi
+
+%%%%%% Page Header and Footer %%%%%% 
+
+\mark{{}{}} 
+
+% The following counters are not used, but may appear.
+\let\c@volpage\c@page						% 2.00(5)
+\def\thevolpage{\thepage}					% 2.00(5)
+\newcounter{volpageoffset} % You must set this to appropriate value
+\newcounter{volume}						% 2.12(1b)>>
+\newcounter{number}
+\newcounter{year}						% 2.12(1b)<<
+
+\def\ps@plain{\let\@mkboth\@gobbletwo
+	\def\@oddhead{\@checklines}\let\@evenhead\@oddhead
+	\def\@oddfoot{\rm \hfil\thepage\hfil}\let\@evenfoot\@oddfoot}
+
+\def\transaction#1#2#3{}					% 2.11(2)
+\long\def\copyrightnotice#1{}					% 2.11(2)
+
+% \checklines enables to draw a horizontal rule onto each baselines.
+
+\newif\if@checklines \@checklinesfalse
+\def\checklines{\@checklinestrue}
+\def\@checklines{\if@checklines \rlap{\smash{\vtop{
+	\hbox{} \vskip\headsep \hrule width\textwidth\vskip-.4pt \vskip\topskip
+	\hrule\vskip-.4pt
+	\@tempcnta31\relax\@@checklines}}}\hfil\fi}
+\def\@@checklines{\ifnum\@tempcnta>\z@
+	\vskip\normalbaselineskip \hrule\vskip-.4pt \advance\@tempcnta\m@ne
+	\let\next\@@checklines\else\let\next\relax\fi\next}
+
+\pagestyle{plain}
+\pagenumbering{arabic}
+
+\ifDS@english\else
+\def\today{\the\year\ipsj@j@year \the\month\ipsj@j@month \the\day\ipsj@j@day}
+								% 2.12(1b)
+\fi
+
+
+%%%%%% Output Routine %%%%%%
+% Nothing at all.
+
+
+%%%%%% Biography %%%%%%
+% Almost nothing.
+
+\def\received#1#2#3{}						% 2.12(1b)>>
+\def\accepted#1#2#3{}
+\def\rereceived#1#2#3{}						% 2.11(2)>>
+% definition of \released is removed				% 2.12(2)
+\def\edInCharge#1{}						% 2.11(2)<<
+%								% 2.12(1b)<<
+
+\def\biography{\let\member\@gobble \let\nomember\@gobble \let\stmember\@gobble
+	\ifDS@english \let\author\@gobble \fi			% 2.12(3)
+	\let\adjust\@gobble \setbox0\vbox\bgroup
+	\tolerance\@M \hbadness\@M \hfuzz\maxdimen}
+\def\endbiography{\egroup\setbox0\hbox{}}
+
+
+%%%%%% Miscellaneous %%%%%%
+
+\raggedbottom
+
+\input{ipsjcommon.sty}
+
+% Redefine \acknowledgment to put it separately.
+\newbox\ack@box
+\let\@acknowledgment\acknowledgment
+
+\def\acknowledgment{\global\setbox\ack@box\vtop\bgroup\@acknowledgment}
+\def\endacknowledgment{\par\egroup}
+
+%								% 2.12(4)>>
+%\let\id@enddocument\enddocument
+%\def\enddocument{\clearpage
+%	\ifDS@anonymous\else \unvbox\ack@box \fi		% 2.10(1)
+%	\id@enddocument}
+%								% 2.12(4)<<
+
+\endinput
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/ipsjpapers.cls	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,16 @@
+% Copyright (C) 1995-2007 by Hiroshi Nakashima, Yasuki Saito and
+%                            The Editorial Board of the IPSJ Journal
+%
+% ipsjpapers.cls 13-Mar-07 by Hiroshi Nakashima (ver 2.12)
+% (revision history deleted)
+% ipsjpapers.cls  1-Apr-96 by Hiroshi Nakashima (ver 2.00)
+
+\ifx\pfmtname\undefined
+\NeedsTeXFormat{LaTeX2e}
+\else
+\NeedsTeXFormat{pLaTeX2e}
+\fi
+
+\ProvidesClass{ipsjpapers}[2007/06/15 ver 2.12]
+\input{ipsjpapers.sty}
+\endinput
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/ipsjpapers.sty	Tue Nov 05 23:18:04 2013 +0900
@@ -0,0 +1,1919 @@
+% Copyright (C) 1995-2007 by Hiroshi Nakashima, Yasuki Saito and
+%                            The Editorial Board of the IPSJ Journal
+%
+% ipsjpapers.sty 15-Jun-07 by Hiroshi Nakashima (ver 2.12)
+% (revision history deleted)
+% ipsjpapers.sty 24-Apr-95 by Hiroshi Nakashima (ver 1.0)
+% ipsjpapers.sty 30-Nov-93 by Hiroshi Nakashima
+% ipsjpapers.sty 3-Feb-93 by Yaski Saito
+% compsoft.sty 22-April-92 by Yaski Saito
+% compsoft.sty 18-July-90 by Hideki Isozaki 
+% j-article.sty 10-Feb-89 from report.sty 16-Mar-88
+
+%%%%%% LaTeX Version %%%%%%
+
+% 2.00(1) >>
+%% \ifASCII is true if ASCII version Japanese TeX, which doesn't have
+%% \jintercharskip (H.N.)
+\newif\ifipsj@nonjp \ipsj@nonjpfalse				% 2.12(1a)
+\newif\ifASCII \ASCIIfalse
+\ifx\jintercharskip\undefined \ASCIItrue
+\ifx\kanjiskip\undefined \ipsj@nonjptrue			% 2.12(1a)
+\fi\fi
+\newif\if@LaTeX@e \@LaTeX@efalse				% 1.06(1)
+\newif\if@LaTeX@eN \@LaTeX@eNfalse				% 2.00(1)
+\def\@tempa{LaTeX2e}						% 1.06(1)
+\ifx\fmtname\@tempa \@LaTeX@etrue				% 1.06(1)
+\ifx\xpt\undefined \@LaTeX@eNtrue \fi\fi			% 2.00(1)
+% 2.00(1) <<
+
+
+
+%%%%%% Document Styles %%%%%%
+
+% 2.00(2) >>
+\newif\ifDS@printer \DS@printerfalse
+\newif\ifDS@english \DS@englishfalse
+\newif\ifDS@technote \DS@technotefalse
+\newif\ifDS@preface \DS@prefacefalse
+\newif\ifDS@draft \DS@draftfalse
+\newif\ifDS@techrep \DS@techrepfalse				% 1.05(2)
+\newif\ifDS@sigrecommended \DS@sigrecommendedfalse		% 2.04(1)
+\newif\ifDS@invited \DS@invitedfalse				% 2.06(1)
+\newif\ifDS@abstract \DS@abstractfalse				% 2.07(7)
+\newif\ifDS@private \DS@privatefalse				% 2.07(8)
+\newif\ifDS@anonymous \DS@anonymousfalse			% 2.10(1)
+\newif\ifDS@TBIO \DS@TBIOfalse					% 2.11(1)
+\newif\ifDS@online \DS@onlinefalse				% 2.12(4a)
+
+\if@LaTeX@eN
+\DeclareOption{printer}{\DS@printertrue}			% 2.09(1)
+								% 2.12(2)
+\DeclareOption{english}{\DS@englishtrue}
+\DeclareOption{technote}{\DS@technotetrue}
+\DeclareOption{preface}{\DS@prefacetrue}
+\DeclareOption{draft}{\DS@drafttrue}
+\DeclareOption{techrep}{\DS@techreptrue}
+\DeclareOption{sigrecommended}{\DS@sigrecommendedtrue}		% 2.04(1)
+\DeclareOption{invited}{\DS@invitedtrue}			% 2.06(1)
+\DeclareOption{abstract}{\DS@abstracttrue}			% 2.07(7)
+\DeclareOption{private}{\DS@privatetrue}			% 2.07(8)
+\DeclareOption{anonymous}{\DS@anonymoustrue}			% 2.10(1)
+\DeclareOption{TBIO}{\DS@TBIOtrue \DS@englishtrue}		% 2.11(1)
+\DeclareOption{online}{\DS@onlinetrue \DS@printertrue \DS@englishtrue}
+								% 2.12(4a)
+\DeclareOption{10pt}{\def\@ptsize{0}}
+\DeclareOption{11pt}{\def\@ptsize{1}}
+\DeclareOption{12pt}{\def\@ptsize{2}}
+\ExecuteOptions{10pt}
+\ProcessOptions
+\def\ipsj@warning{\ClassWarning{ipsjpapers}}			% 2.00(3)
+\def\ipsj@error{\ClassError{ipsjpapers}}			% 2.00(3)
+\newskip \old@latex@skip					% 2.00(14)
+\let\@maxsep\old@latex@skip					% 2.00(14)
+\let\@dblmaxsep\old@latex@skip					% 2.00(14)
+
+\else
+\expandafter\ifx\csname ver@ipsjpapers.cls\endcsname\relax
+\typeout{Document Style `ipsjpapers' (ver 2.12) <15 Jun 2007>.}	% 2.05(1)
+\fi % \ifx
+
+\def\ds@printer{\relax}						% 2.09(1)
+\def\ds@english{\DS@englishtrue}
+\def\ds@technote{\DS@technotetrue}
+\def\ds@preface{\DS@prefacetrue}
+\def\ds@draft{\DS@drafttrue}
+\def\ds@techrep{\DS@techreptrue}				% 1.05(2)
+\def\ds@sigrecommended{\DS@sigrecommendedtrue}			% 2.04(1)
+\def\ds@invited{\DS@invitedtrue}				% 2.06(1)
+\def\ds@abstract{\DS@abstracttrue}				% 2.07(7)
+\def\ds@private{\DS@privatetrue}				% 2.07(8)
+\def\ds@anonymous{\DS@anonymoustrue}				% 2.10(1)
+\def\ds@TBIO{\DS@TBIOtrue \DS@englishtrue}			% 2.11(1)
+\def\ds@online{\DS@onlinetrue \DS@printertrue \DS@englishtrue}	% 2.12(4a)
+
+% 1.04(3)>>
+\def\@ptsize{0}
+\@namedef{ds@11pt}{\def\@ptsize{1}}
+\@namedef{ds@12pt}{\def\@ptsize{2}} 
+% 1.04(3)<<
+
+\@options
+\let\ipsj@warning\@warning					% 2.00(3)
+\let\@latex@warning\@warning					% 2.00(3)
+\def\ipsj@error#1#2{\errhlp{#2}\errmessge{#1}}			% 2.00(3)
+\fi % \if@LaTeX@eN
+% 2.00(2) <<
+
+\ifx\@classoptionslist\undefined\else				% 2.03(1) >>
+\def\ipsj@draft@option{draft}
+\def\ipsj@remove@draft@option{\def\@tempb{}%
+	\@for\@tempa:=\@classoptionslist\do{%
+		\ifx\@tempa\ipsj@draft@option\else
+		\edef\@tempb{\@tempb,\@tempa}\fi}%
+	\ifx\@tempb\@empty \def\@classoptionslist{}\else
+	\expandafter\ipsj@remove@draft@ption\@tempb\@nil\fi}
+\def\ipsj@remove@draft@ption,#1\@nil{%
+	\def\@classoptionslist{#1}}
+\ipsj@remove@draft@option
+\fi % \ifx							% 2.03(1) <<
+
+\ifipsj@nonjp \DS@englishtrue \fi				% 2.12(1a)
+
+%%%%%% Basics %%%%%%
+
+\newdimen\@Q \@Q=0.25mm
+
+\lineskip\z@ \normallineskip\z@ 
+\lineskiplimit\z@ \normallineskiplimit\z@
+\abovedisplayskip\z@ \belowdisplayskip\z@
+\abovedisplayshortskip\z@ \belowdisplayshortskip\z@
+
+\def\baselinestretch{1}
+\jot\z@ 
+
+\ifDS@draft\def\next{\input{ipsjdrafts.sty}\endinput}\else\let\next\relax\fi
+\next
+
+\@twosidetrue
+
+%%%%%% Fonts %%%%%%
+% \finvedm(dg)		dm5		\vpt	\tiny		fn-mark
+% \sixdm(dg)		dm6		\vipt	\scriptsize
+% \sevendm(dg)		dm7		\vipt	\footnotesize	f-note, capt
+%	10Q = 7.11304pt -> w(min7) = 6.73550pt
+% \eightdm(dg)		dm8		\viiipt	\small		abst, header
+%	11Q = 7.82434pt -> w(min8) = 7.69772pt
+% \eightdm(dg)half	dm9		\ixpt	\normalsize	main text
+%	12Q = 8.53564pt -> w(min9) = 8.65994
+% \tendm(dg)		dm10		\xpt	\large		sec title
+%	13Q = 9.24695pt -> w(min10) = 9.62216pt
+% \tendm(dg)half	dm10*1095	\xipt	\Large		author names
+%	15Q =10.66956pt -> w(min10*1095) = 10.53625pt
+% (\twlvdm)		(dm12)		\xiipt	\LARGE		e-title
+% \twelvedm(dg)half	dm12*1095	\xivpt	\huge		title
+%			min10*1440
+%	18Q =12.80347pt -> w(min10*1440) = 13.8559pt
+%
+% Note that cm fonts follows LaTeX standard. (e.g. \viiipt -> cmr8, etc.)
+
+% 2.00(4)>>
+\if@LaTeX@e
+\ifASCII
+\def\ipsj@declare@font#1#2#3{{\fontsize{#3}{\z@}#2\selectfont	    % 2.00(5)>>
+	\edef\@tempa{\ifipsj@nonjp \the\font \else \the\jfont \fi}  % 2.12(1b)
+	\expandafter\global\expandafter\let\expandafter#1\@tempa}}  % 2.00(5)<<
+
+\iffalse	% ASCII LaTeX2e printer settings is removed	% 2.12(2a)
+\else		% ASCII LaTeX2e non-printer
+\ifipsj@nonjp							% 2.12(1b)>>
+\ipsj@declare@font\fn@fontv\rmfamily\@vpt
+\ipsj@declare@font\fn@fontvi\rmfamily\@vpt
+\ipsj@declare@font\fn@fontvii\rmfamily\@vpt
+% no declaration for \fn@fontxv					% 2.12(1b)<<
+\else % \ifipsj@nonjp
+\ipsj@declare@font\fn@fontv\mcfamily\@vpt
+\ipsj@declare@font\fn@fontvi\mcfamily\@vpt
+\ipsj@declare@font\fn@fontvii\mcfamily\@vpt
+\ipsj@declare@font\fn@fontxv\gtfamily\@xipt
+\fi\fi %\ifipsj@nonjp\iffalse
+
+\else % \ifASCII = NTT LaTeX2e
+\def\ipsj@declare@font#1#2#3{{\fontsize{#3}{\z@}#2\selectfont	    % 2.00(5)
+	\xdef#1{\expandafter\noexpand\csname\jf@ntn@me\endcsname}}} % 2.00(5)
+\ipsj@declare@font\fn@fontv\dm\@vpt
+\ipsj@declare@font\fn@fontvi\dm\@vpt
+\ipsj@declare@font\fn@fontvii\dm\@vpt
+\ipsj@declare@font\fn@fontxv\dg\@xipt
+\fi % \ifASCII
+% 2.00(4) <<
+
+\else % \if@LaTeX@e = LaTeX 2.09				% 2.00(4)
+%% Fonts for ASCII TeX. (H.N.)
+\ifASCII
+\iffalse	% ASCII LaTeX 2.09 printer settings is removed	% 2.12(2a)
+\else \ifipsj@nonjp\else					% 2.12(1b)
+\font\fivedm		min5
+\font\fivedg		goth5
+\font\sixdm		min6
+\font\sixdg		goth6
+\font\sevendm		min7
+\font\sevendg		goth7
+\font\eightdm		min8
+\font\eightdg		goth8
+\font\eightdmhalf	min9
+\font\eightdghalf	goth9
+\font\tendm		min10
+\font\tendg		goth10
+\font\tendmhalf		min10 scaled\magstephalf
+\font\tendghalf		goth10 scaled\magstephalf
+\font\twelvedm		min10 scaled\magstep1
+\font\twelvedg		goth10 scaled\magstep1
+\font\twelvedmhalf	min10 scaled\magstep2
+\font\twelvedghalf	goth10 scaled\magstep2
+\let\fn@fontv\fivedm
+\let\fn@fontvi\fivedm
+\let\fn@fontvii\fivedm
+\let\fn@fontxv\tendghalf
+
+\fi\fi % \ifipsj@nonjp\iffalse
+
+%% ASCII doesn't have \old@Npt. (H.N.)
+\let\old@@vpt\vpt
+\let\old@@vipt\vipt
+\let\old@@viipt\viipt
+\let\old@@viiipt\viiipt
+\let\old@@ixpt\ixpt
+\let\old@@xpt\xpt
+\let\old@@xipt\xipt
+\let\old@@xiipt\xiipt
+\let\old@@xivpt\xivpt
+
+\ifipsj@nonjp							% 2.12(1b)>>
+\def\old@vpt{\old@@vpt}
+\def\old@vipt{\old@@vipt}
+\def\old@viipt{\old@@viipt}
+\def\old@viiipt{\old@@viiipt}
+\def\old@ixpt{\old@@ixpt}
+\def\old@xpt{\old@@xpt}
+\def\old@xipt{\old@@xipt}
+\def\old@xiipt{\old@@xiipt}
+\def\old@xivpt{\old@@xivpt}					% 2.12(1b)<<
+\else % \ifipsj@nonjp
+\def\old@vpt{\old@@vpt\jspaceskip1zw\relax}
+\def\old@vipt{\old@@vipt\jspaceskip1zw\relax}
+\def\old@viipt{\old@@viipt\jspaceskip1zw\relax}
+\def\old@viiipt{\old@@viiipt\jspaceskip1zw\relax}
+\def\old@ixpt{\old@@ixpt\jspaceskip1zw\relax}
+\def\old@xpt{\old@@xpt\jspaceskip1zw\relax}
+\def\old@xipt{\old@@xipt\jspaceskip1zw\relax}
+\def\old@xiipt{\old@@xiipt\jspaceskip1zw\relax}
+\def\old@xivpt{\old@@xivpt\jspaceskip1zw\relax}
+\fi % \ifipsj@nonjp
+								% 2.00(6)
+								% 1.06(2)
+
+%% ASCII doesn't have \dg nor \dm. (H.N.)
+\ifipsj@nonjp\else						% 2.12(1b)
+\def\dg{\protect\pdg}
+\def\dm{\protect\pdm}
+%% Redefine \gt and \mc
+\def\gt{\protect\pdg}
+\def\mc{\protect\pdm}
+\let\pdm\relax
+\fi % \ifipsj@nonjp
+
+\else % \ifASCII
+%% Fonts for NTT jTeX
+%% \magstephalf and \magstep1 may cause trouble in older versions.
+
+\jfont\fivedm=dm5
+\jfont\fivedg=dg5
+\jfont\sixdm=dm6
+\jfont\sixdg=dg6
+\jfont\sevendm=dm7
+\jfont\sevendg=dg7
+\jfont\eightdm=dm8
+\jfont\eightdg=dg8
+\jfont\eightdmhalf=dm9
+\jfont\eightdghalf=dg9
+\jfont\tendm=dm10
+\jfont\tendg=dg10
+\jfont\tendmhalf=dm10 scaled 1095
+\jfont\tendghalf=dg10 scaled 1095
+\jfont\twelvedm=dm12
+\jfont\twelvedg=dg12
+\jfont\twelvedmhalf=dm12 scaled 1095
+\jfont\twelvedghalf=dg12 scaled 1095
+\let\fn@fontv\fivedm
+\let\fn@fontvi\fivedm
+\let\fn@fontvii\fivedm
+\let\fn@fontxv\tendghalf
+								% 1.06(3)
+\fi % \ifASCII
+\fi % \if@LaTeX@e
+
+\ifx\jfsize\undefined \newcount\jfsize \fi			% 1.06(2)
+
+\ifASCII						% 1.06(3),2.00(6)>>
+\ifipsj@nonjp\else						% 2.12(1b)
+\let\setjglues\relax
+\let\jintercharskip\kanjiskip
+\let\jasciikanjiskip\xkanjiskip
+\let\jmathkanjiskip\xkanjiskip
+\newdimen\jspaceskip
+
+\def\defjintercharskip#1#2#3#4{\@asciiwarning{\defjintercharskip}}
+\def\defjasciikanjiskip#1#2#3#4{\@asciiwarning{\defjasciicharskip}}
+\def\defmathkanjiskip#1#2#3#4{\@asciiwarning{\defmathcharskip}}
+\def\defjspaceskip#1#2#3#4{\@asciiwarning{\defjspaceskip}}
+							
+\def\@asciiwarning#1{\ipsj@warning{\string#1\space		% 2.00(3)
+	is not supported in ASCII version}}
+							% 1.06(3),2.00(6)<<
+\fi % \ifipsj@nonjp
+\else % \ifASCII						% 2.00(7)>>
+\if@LaTeX@e
+\ipsj@declare@font\fn@eightdmhalf\dm\@ixpt
+\ipsj@declare@font\fn@eightdghalf\dg\@ixpt
+\else
+\def\fn@eightdmhalf{\eightdmhalf}
+\def\fn@eightdghalf{\eightdghalf}
+\fi % \if@LaTeX@e
+\ifx\setjglues\undefined\else
+\expandafter\defjintercharskip\fn@eightdmhalf{0pt}{1.4pt}{0.5pt}
+\expandafter\defjintercharskip\fn@eightdghalf{0pt}{1.4pt}{0.5pt}
+\expandafter\defjasciikanjiskip\fn@eightdmhalf{2pt}{1pt}{1pt}
+\expandafter\defjasciikanjiskip\fn@eightdghalf{2pt}{1pt}{1pt}
+\expandafter\defjmathkanjiskip\fn@eightdmhalf{2pt}{1pt}{1pt}
+\expandafter\defjmathkanjiskip\fn@eightdghalf{2pt}{1pt}{1pt}
+\fi % \if@LaTeX@e						% 2.00(7)<<
+\fi % \ifASCII							% 2.00(4)
+
+\if@LaTeX@e							% 2.00(8)>>
+\if@LaTeX@eN
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
+\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
+\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
+\ifASCII \ifipsj@nonjp\else					% 2.12(1b)
+\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc}
+\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt}
+\fi\fi\fi % \ifipsj@nonjp\ifASCII\if@LaTeX@eN
+
+\ifASCII \ifipsj@nonjp\else					% 2.12(1b)
+\def\dm{\mc}
+\def\dg{\gt}
+\fi\fi\fi % \ifipsj@nonjp\ifASCII\if@LaTeX@e			% 2.00(8)<<
+
+%%%%%% Basic Font Size Macros %%%%%%
+
+\if@LaTeX@e					% 1.06(4),2.00(9),2.04(3)>>
+\def\@setsize#1#2#3#4{\@setfontsize#1{#4}{#2}\ipsj@setjspaceskip}
+\let\ipsj@setjspaceskip\relax			% 2.12(1b)>>
+\ifASCII \ifipsj@nonjp\else
+\def\ipsj@setjspaceskip{\jspaceskip1zw\relax}
+\fi\fi % \ifipsj@nonjp\ifASCII			% 2.12(1b)<<
+						% 1.06(4),2.00(9),2.04(3)<<
+
+%% \vipt etc. are redefined to use appropriate Japanese fonts.
+\else % \if@LaTeX@e						% 2.00(9)
+\ifipsj@nonjp\else						% 2.12(1b)
+\def\vpt{\old@vpt\fivedm\let\pdg\fivedg\let\pdm\fivedm\jfsize=5\relax}
+\def\vipt{\old@vipt\sixdm\let\pdg\sixdg\let\pdm\sixdm\jfsize=6\relax}
+\def\viipt{\old@viipt\sevendm\let\pdg\sevendg\let\pdm\sevendm\jfsize=7\relax}
+\def\viiipt{\old@viiipt\eightdm\let\pdg\eightdg\let\pdm\eightdm\jfsize=8\relax}
+\def\ixpt{\old@ixpt\eightdmhalf\let\pdg\eightdghalf\let\pdm\eightdmhalf
+	\jfsize=9\relax \@ixptboldmath}				% 1.02(2)
+\def\xpt{\old@xpt\tendm\let\pdg\tendg\let\pdm\tendm\jfsize=10\relax}
+\def\xipt{\old@xipt\tendmhalf\let\pdg\tendghalf\let\pdm\tendmhalf\jfsize=11
+	\relax}
+\def\xiipt{\old@xiipt\twelvedm\let\pdg\twelvedg\let\pdm\twelvedm
+	\jfsize=12\relax}
+\def\xivpt{\old@xivpt\twelvedmhalf\let\pdg\twelvedghalf\let\pdm\twelvedmhalf
+	\jfsize=14\relax}
+\fi\fi % \ifipsj@nonjp\if@LaTeX@e				% 2.00(9)
+
+\if@LaTeX@e							% 1.06(5)
+\let\@ixptboldmath\relax					% 1.06(5)
+\else								% 1.06(5)
+% 1.02(2) >>
+\iffalse	% printer setting removed			% 2.12(2a)
+\else
+\def\@ixptboldmath{%
+	\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+		\textfont\@ne\ninmi 
+		\textfont\tw@\ninsy \textfont\lyfam\ninly
+		\@boldfalse}\@boldfalse
+% 1.03(1) >>
+	\def\boldmath{\@ifundefined{ninmib}{\global\font\ninmib\@mbi 
+		\global\font\ninsyb\@mbsy\relax
+		\global\font\ninlyb\@lasyb\relax
+		\@addfontinfo\@ixpt
+			{\def\boldmath{\everymath{\mit}\everydisplay{\mit}%
+				\@prtct\@nomathbold
+				\textfont\@ne\ninmib \textfont\tw@\ninsyb 
+				\textfont\lyfam\ninlyb \@prtct\@boldtrue}}}{}%
+	\@ixpt\boldmath}}
+% 1.03(1) <<
+\fi % \iffalse
+% 1.02(2) <<
+\fi % \if@LaTeX@e						% 1.06(5)
+
+
+%%%%%% Font Size Macros %%%%%%
+
+\def\fs@setsize#1#2#3#4{\normalsize\dimen@\normalbaselineskip
+	\@ifstar{\@setsize{#1}{\dimen@}{#3}{#4}}%
+		{\@setsize{#1}{#2}{#3}{#4}}}
+
+% s = (3*b - (h' + d') - (h + d))/2
+% s_a = s + h' + d - b
+% s_b = s + h + d' - b
+\def\sec@setskips#1{\setbox0\hbox{\fs@sec\bf#1}\setbox1\hbox{#1}
+	\@tempdima3\baselineskip
+	\advance\@tempdima-\ht0 \advance\@tempdima-\dp0
+	\advance\@tempdima-\ht1 \advance\@tempdima-\dp1
+	\divide\@tempdima\tw@ \advance\@tempdima-\baselineskip
+	\@tempdimb\@tempdima
+	\advance\@tempdima\ht0 \advance\@tempdima\dp1
+	\advance\@tempdimb\ht1 \advance\@tempdimb\dp0
+	\edef\sec@aboveskip{\the\@tempdima}
+	\edef\sec@belowskip{\the\@tempdimb}}
+
+\ifDS@english
+% size		pt	\baselineskip	  size		\?pt	\baselineskip
+% \normalsize	10	16Q		  \large	11	18Q (*)
+% \small	 9	15Q		  \Large	12	22Q
+% \footnotesize	 8	13Q		  \LARGE	14	26Q (*)
+% \scriptsize	 6	8pt (*)		  \huge		18	30Q (*)
+% \tiny		 5	6pt (*)		  \Huge		18	30Q (*)
+% * : not measured
+
+\def\@normalsize{\@setsize\normalsize{16\@Q}\xpt\@xpt}
+\def\small{\fs@setsize\small{15\@Q}\ixpt\@ixpt}
+\def\footnotesize{\fs@setsize\footnotesize{13\@Q}\viiipt\@viiipt}
+\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt}
+\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
+\def\large{\@setsize\Large{18\@Q}\xipt\@xipt}
+\def\Large{\@setsize\LARGE{22\@Q}\xiipt\@xiipt}
+\def\LARGE{\@setsize\LARGE{26\@Q}\xivpt\@xivpt}
+\def\huge{\@setsize\Huge{30\@Q}\xviipt\@xviipt}
+\let\Huge\huge
+
+\ifDS@techrep							% 1.05(2)>>
+\def\@normalsize{\@setsize\normalsize{17\@Q}\xpt\@xpt}
+\fi								% 1.05(2)<<
+
+\if@LaTeX@e							% 2.00(10)>>
+\let\normalsize\@normalsize
+\fi								% 2.00(10)<<
+
+\let\fs@footnote\footnotesize
+\let\fs@caption\footnotesize
+\let\fs@table\footnotesize
+\let\fs@eabst\footnotesize
+\let\fs@header\footnotesize
+\let\fs@footer\footnotesize
+\let\fs@bibliography\small
+\let\fs@subsec\normalsize
+\let\fs@sec\normalsize
+\let\fs@type\large
+\let\fs@eauthor\large
+\let\fs@title\Large
+
+\@normalsize
+
+\sec@setskips{A}
+
+\else % \ifDS@english
+% size		pt	\baselineskip	  size		\?pt	\baselineskip
+% \normalsize	 9	19Q		  \large	10	19Q
+% \small	 8	14Q		  \Large	11	22Q
+% \footnotesize	 7	14Q		  \LARGE	12	18Q
+% \scriptsize	 6	8pt (*)		  \huge		14	26Q
+% \tiny		 5	6pt (*)		  \Huge		14	26Q
+% * : not measured
+
+\def\@normalsize{\@setsize\normalsize{19\@Q}\ixpt\@ixpt}
+\def\small{\fs@setsize\small{14\@Q}\viiipt\@viiipt}
+\def\footnotesize{\fs@setsize\footnotesize{14\@Q}\viipt\@viipt}
+\def\scriptsize{\@setsize\scriptsize{8pt}\vipt\@vipt}
+\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
+\def\large{\@setsize\large{19\@Q}\xpt\@xpt}
+\def\Large{\@setsize\Large{22\@Q}\xipt\@xipt}
+\def\LARGE{\@setsize\LARGE{18\@Q}\xiipt\@xiipt}
+\def\huge{\@setsize\Huge{26\@Q}\xivpt\@xivpt}
+\let\Huge\huge
+
+\ifDS@techrep							% 1.05(2)>>
+\def\@normalsize{\@setsize\normalsize{17\@Q}\ixpt\@ixpt}
+\fi								% 1.05(2)<<
+
+\if@LaTeX@e							% 2.00(10)>>
+\let\normalsize\@normalsize
+\fi								% 2.00(10)<<
+
+\let\fs@footnote\footnotesize
+\let\fs@caption\footnotesize
+\let\fs@table\footnotesize
+\let\fs@abst\small
+\def\fs@eabst{\small\baselineskip13\@Q}
+\let\fs@header\small
+\let\fs@footer\small
+\let\fs@subsec\normalsize
+\def\fs@bibliography{\normalsize\baselineskip16\@Q}
+\let\fs@sec\large
+\let\fs@type\fn@fontxv
+\let\fs@author\Large
+\def\fs@eauthor{\Large\baselineskip20\@Q}			% 2.12(7)
+\let\fs@etitle\LARGE
+\let\fs@title\huge
+
+\@normalsize 
+								% 2.00(7)
+\ifx\setjglues\undefined\else
+\setjglues
+\fi
+
+% \sec@setskips{<A of hiragana>} is moved to ipsjcommon		% 2.12(1c)
+\fi % \ifDS@englisth
+
+\if@LaTeX@e\else \ifipsj@nonjp\else			% 2.00(11),2.12(1b)
+\let\latex@bf\bf						% 1.06(6)
+\def\bf{\latex@bf \dg}						% 1.06(6)
+\fi\fi								% 2.00(11)
+
+
+%%%%%% Page Layout Parameters %%%%%%
+
+\newdimen\@mojihaba
+\ifipsj@nonjp \let\jspaceskip\@mojihaba	\fi			% 2.12(1b)
+
+\ifDS@printer							% 2.12(2b) >>
+\voffset=-20mm
+\hoffset=-14mm
+\fi								% 2.12(2b) <<
+
+\headheight 12\@Q
+
+% We want to allow a line containing $\displaystyle X^X$ to be a first line.
+\setbox0\hbox{$\displaystyle X^X$}
+\topskip\ht0
+
+\ifdim\maxdepth<\dp\strutbox \maxdepth\dp\strutbox \@maxdepth\maxdepth\fi
+
+\@tempswafalse							% 1.05(2)>>
+\ifDS@english \ifDS@techrep \else \@tempswatrue \fi\fi
+\if@tempswa							% 1.05(2)<<
+\topmargin 138\@Q \advance\topmargin-1in
+
+% \textheight = 53\baselineskip + \topskip + epsilon(100sp)
+\textheight53\baselineskip \advance\textheight\topskip \advance\textheight100sp
+
+% \headsep = 24Q - \topskip
+\headsep28\@Q \advance\headsep-\topskip				% 2.02(2)
+
+% Only first page has page number (footer) at the bottom
+\footskip 27\@Q
+
+\@mojihaba13\@Q
+
+\else % \if@tempswa
+\topmargin 131\@Q \advance\topmargin-1in
+
+% \textheight = 45\baselineskip + \topskip + epsilon(100sp)
+\textheight45\baselineskip \advance\textheight\topskip \advance\textheight100sp
+
+\ifDS@techrep							% 1.05(2)>>
+\textheight50\baselineskip \advance\textheight\topskip \advance\textheight100sp
+\fi % \ifDS@techrep						% 1.05(2)<<
+
+% \headsep = 28Q - \topskip
+\headsep28\@Q \advance\headsep-\topskip
+
+% Only first page has page number (footer) at the bottom
+\footskip24\@Q
+
+\@mojihaba12\@Q
+\fi % \if@tempswa
+
+\columnsep30\@Q
+
+% \textwidth - \columnwidth = 24 * 12Q * 2 + \columnsep = 606Q
+\textwidth606\@Q
+\columnseprule0pt
+
+\oddsidemargin210mm \advance\oddsidemargin-\textwidth \divide\oddsidemargin\tw@
+\advance\oddsidemargin-1in \evensidemargin\oddsidemargin
+
+\skip\footins\baselineskip \advance\skip\footins-.5\@mojihaba
+% \footnotesep = \baselineskip - depth(\strutbox)
+{\fs@footnote
+	\footnotesep\baselineskip
+	\global\advance\footnotesep-\dp\strutbox}
+
+\def\footnoterule{{\fs@footnote\kern-\dp\strutbox \hrule \kern-.4\p@
+	\kern\dp\strutbox}}
+
+\floatsep \baselineskip \textfloatsep \baselineskip 
+\intextsep \baselineskip \@maxsep \baselineskip
+\dblfloatsep \baselineskip \dbltextfloatsep \baselineskip
+\@dblmaxsep \baselineskip
+\@fptop 0pt plus 1fil \@fpsep 0pt plus 2fil \@fpbot 0pt plus 1fil 
+\@dblfptop 0pt plus 1fil \@dblfpsep 0pt plus 2fil \@dblfpbot 0pt plus 1fil
+
+\parskip\z@ \parindent\@mojihaba
+\@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 
+\@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty 
+
+
+%%%%%% Title and Authors %%%%%%
+%
+% Format of title, author names and abstract.
+%
+%	\huge\bf <Japanese title>
+%	\vskip 32Q
+%	\Large <Japanese author names>
+%	\vskip 32Q
+%	\small <Japanese abstract>
+%	\vskip 34Q
+%	\LARGE\bf <English title>
+%	\vskip 28Q
+%	\Large\sc <English author names>
+%	\vskip 28Q
+%	\small <English abstract>
+%	\vskip 25Q
+
+% 2.07(3)>>
+\def\ipsj@ohcheck#1#2#3{\fs@header\hskip12\@Q#1\qquad#2\qquad#3\hskip12\@Q}
+\def\ipsj@ohcvolno{Vol.~00\hskip12\@Q No.~SIG\ 00(\ipsj@sig@code\ 00)}
+
+\newif\ifipsj@trans \ipsj@transfalse				% 2.12(4f)
+\def\maketitle{\let\ipsj@oddhead@t\ipsj@oddhead@a
+	\ifipsj@trans
+	    \settowidth\@tempdima{%
+		\ipsj@ohcheck\ipsj@ohcvolno\@titlestring\ipsj@ohcvolno}%
+	    \ifdim\@tempdima>\textwidth
+		\let\ipsj@oddhead@t\ipsj@oddhead@b
+		\settowidth\@tempdima{%
+		    \ipsj@ohcheck\ipsj@ohcvolno\@titlestring{000}}%
+		\ifdim\@tempdima>\textwidth
+			\ipsj@warning{%				% 2.00(3)
+			\string\title\space for headding is too wide}%
+	    \fi \fi
+	\else
+	    \settowidth\@tempdima{\fs@header
+		\hskip12\@Q Vol.~00\hskip12\@Q No.~00\qquad\@titlestring\qquad
+		Vol.~00\hskip12\@Q No.~00\hskip12\@Q}
+	    \ifdim\@tempdima>\textwidth
+		\ipsj@warning{%					% 2.00(3)
+		\string\title\space for headding is too wide}%
+	\fi \fi
+	\par\twocolumn[\@maketitle]\thispagestyle{myheadings}\@thanks}
+% 2.07(3)<<
+
+% default title header
+
+\def\title{\@dblarg{\@xtitle}}
+\def\@xtitle[#1]#2{\gdef\@title{#2}%
+	{\def\protect{\noexpand\protect\noexpand}%
+		\ifDS@english\def\\{\unskip\ \ignorespaces}%
+		\else\def\\{\unskip\ignorespaces}\fi
+		\xdef\@titlestring{#1}}}			% 2.07(3)
+
+\def\@title{\mkt@warning\title}\def\@titlestring{}
+\long\def\author#1{\long\gdef\@author{#1}}
+\def\@author{\mkt@warning\author}
+
+\newbox\@abstractbox
+%% Introduce \@titlewidth because we now use this dimen repeatedly. (H.N.)
+%% \@titlewidth = 44 * 11Q = 484Q
+\newdimen\@titlewidth \@titlewidth 484\@Q
+
+\def\abstract{\global\let\@abstract\relax
+	\global\setbox\@abstractbox\hbox\bgroup
+		\begin{minipage}[b]{\@titlewidth}\fs@abst\parindent11\@Q}
+\def\endabstract{\end{minipage}\egroup}
+\def\@abstract{\mkt@warning{abstract env}}
+
+%% We need English title, author name(s) and abstract. (H.N.)
+\def\etitle#1{\gdef\@etitle{#1}}
+\def\@etitle{\mkt@warning\etitle}
+\long\def\eauthor#1{\long\gdef\@eauthor{#1}}
+\def\@eauthor{\mkt@warning\eauthor}
+
+\newbox\@eabstractbox
+\def\eabstract{\global\let\@eabstract\relax
+	\global\setbox\@eabstractbox\hbox\bgroup
+		\begin{minipage}[b]{\@titlewidth}\fs@eabst\parindent11\@Q}
+\let\endeabstract\endabstract
+\def\@eabstract{\mkt@warning{eabstract env}}
+
+\ifDS@english
+\let\author\eauthor \let\abstract\eabstract
+\let\@eauthor\@author \let\@eabstract\@abstract
+\fi
+
+\def\mkt@warning#1{\ipsj@warning{Missing \string#1}}		% 2.00(3)
+
+\newdimen\mkt@prevdepth
+\newbox\mkt@titlebox
+\def\@maketitle{\setbox\mkt@titlebox\vbox{
+	\ifDS@english \ifDS@preface
+		\hbox{}\vskip60\@Q \vskip-\headsep \vskip-\baselineskip
+	\else
+		\hbox{}\vskip26\@Q \vskip-\headsep \vskip-\baselineskip
+		\leftline{\fs@type\it
+		  	\ifDS@TBIO \ipsj@TBIO@pcatref		% 2.11(2)
+			\else\ifDS@technote Technical Note
+                        \else\ifDS@invited Invited Paper        % 2.06(1)
+			\else\ifDS@sigrecommended		% 2.04(1)
+				Recommended Paper		% 2.04(1)
+			\else\ifDS@abstract			% 2.07(7)
+				Abstract			% 2.07(7)
+			\else\ifDS@techrep\else			% 2.02(1)
+				Regular Paper\fi\fi\fi\fi\fi\fi}% 2.06(1)
+%								% 2.04(1)
+		\vskip32\@Q \vskip-\baselineskip \fi
+	\else							% 2.04(1) >>
+	\@tempswafalse	\ifDS@technote\@tempswatrue\fi
+			\ifDS@sigrecommended\@tempswatrue\fi
+                        \ifDS@invited\@tempswatrue\fi           % 2.06(1)
+			\ifDS@abstract\@tempswatrue\fi		% 2.07(7)
+	\if@tempswa
+		\vskip18\@Q \vskip-\headsep
+		\leftline{\vbox to28\@Q{\hrule height.8pt\vss
+			\hbox{\hskip7\@Q \fs@type
+				\ifDS@technote \ipsj@j@technote	% 2.12(1c)>>
+                                \else\ifDS@invited
+					\ipsj@j@invited		% 2.06(1)
+				\else\ifDS@sigrecommended
+					\ipsj@j@sigrec		% 2.06(1)
+				\else \ipsj@j@talkabst		% 2.07(7)
+				\fi\fi\fi			% 2.12(1c)<<
+				\hskip7\@Q}\vss\hrule height.8pt}}
+%								% 2.04(1) <<
+		\vskip40\@Q \vskip-\baselineskip
+	\else
+		\hbox{}\vskip60\@Q \vskip-\headsep \vskip-\baselineskip
+	\fi\fi
+	\@tempswafalse \ifDS@english\else\ifDS@preface\@tempswatrue\fi\fi
+	\mkt@maketitle{\fs@title\bf}\@title\title
+	\affi@labels
+	\ifDS@english\else
+	\vskip-\mkt@prevdepth \nointerlineskip\vskip32\@Q
+	\centerline{\vbox{\centering\hsize\@titlewidth\fs@author
+		\mkt@makeauthor}}
+	\ifDS@preface\else
+	\vskip-\prevdepth \nointerlineskip\vskip32\@Q
+	\centerline{\@abstract\box\@abstractbox}
+	\vskip-\prevdepth \nointerlineskip\vskip34\@Q
+	\mkt@maketitle{\fs@etitle\bf}\@etitle\etitle
+	\fi\fi
+	\if@tempswa\else
+	\vskip-\mkt@prevdepth \nointerlineskip\vskip28\@Q
+	\centerline{\vbox{\centering\hsize\@titlewidth\fs@eauthor\sc
+		\mkt@makeeauthor}}
+	\fi
+	\ifDS@preface\else
+	\vskip-\prevdepth \nointerlineskip\vskip28\@Q
+	\centerline{\@eabstract\box\@eabstractbox}
+	\fi
+	\vskip-\prevdepth \nointerlineskip\vskip25\@Q}
+	\@tempdimb\ht\mkt@titlebox \advance\@tempdimb\dp\mkt@titlebox
+	\@tempcnta\@tempdimb \@tempcntb\baselineskip
+	\divide\@tempcnta\@tempcntb \@tempdima\@tempcnta\baselineskip
+	\advance\@tempdima-\@tempdimb
+	\box\mkt@titlebox
+	\ifdim\@tempdima=\z@\else\advance\@tempdima\baselineskip
+		\vskip\@tempdima\fi}
+
+%% \mkt@maketitle puts Japanese/English title, whose lines should be
+%% properly broken with \\ by the user.  The result is flushed to left, then
+%% centered with respect to the longest line. (H.N.)
+\def\mkt@maketitle#1#2#3{\setbox\@tempboxa\vtop{
+	\def\\{\unskip\egroup\hbox\bgroup\ignorespaces}
+		#1\hbox\bgroup#2\unskip\egroup
+		\global\mkt@prevdepth\prevdepth}
+	\@tempdima\textwidth\advance\@tempdima-4\@mojihaba
+	\ifdim\wd\@tempboxa>\@tempdima
+		\ipsj@warning{%					% 2.00(3)
+			\string#3 is too wide. Break line(s) by \string\\}\fi
+	\centerline{\box\@tempboxa}}
+
+% Assignment of Japanese author names to lines:
+% 1 -> 1, 2 -> 2, 3 -> 3, 4 -> 2+2, 5 -> 3+2, 6 -> 3+3, 7 -> 3+2+2, 8 -> 3+3+2,
+% ...
+% Rule for N authors (N > 2, q := N div 3)
+%	N mod 3 = 0 -> 3 * q
+%	N mod 3 = 1 -> 3 * (q - 2) + 2 + 2
+%	N mod 3 = 2 -> 3 * (q - 1) + 2
+
+\newcount\mkt@cnta\newcount\mkt@cntb
+\newcount\mkt@sname\newcount\mkt@gname
+\newbox\mkt@boxa
+\newdimen\mkt@namewidth
+\def\mkt@makeauthor{\let\member\@gobble \let\nomember\relax
+	\let\stmember\@gobble	% Those are not necessary in final manuscript.
+	\def\@makefnmark{\smash{\rlap{$^{\affi@thefnmark}$}}}%	% 2.12(7)
+	\gdef\affi@thefnmark{}\leavevmode\let\+\ignorespaces
+	\settowidth\@tempdima{\ifipsj@nonjp x\else\ipsj@j@a \fi}% 2.12(1c)
+	\mkt@namewidth7\@tempdima\@tempcnta\z@
+	\expandafter\mkt@countauthor\@author\and\@nil\and
+	\ifnum\@tempcnta=\@ne\let\mkt@anhbox\mkt@anhboxc\mkt@makesingleauthor
+	\else
+		\@tempcntb\@tempcnta \divide\@tempcntb\thr@@
+		\multiply\@tempcntb\thr@@ \advance\@tempcntb-\@tempcnta
+		\ifnum\@tempcntb=\m@ne\relax\@tempcntb\tw@\else\@tempcntb\z@\fi
+		\mkt@cnta\thr@@
+		\let\mkt@anhbox\mkt@anhboxl
+		\expandafter\mkt@makemultiauthor\@author\and\and\fi}
+\def\mkt@countauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil\let\next\relax
+	\else\advance\@tempcnta\@ne \let\next\mkt@countauthor\fi\next}
+
+% If single author, author name has 9 KC width instead of 7.
+\def\mkt@makesingleauthor{\divide\mkt@namewidth7\multiply\mkt@namewidth9\relax
+	\expandafter\mkt@putauthor\@author\+ \@nil}
+
+\def\mkt@makemultiauthor#1\and{\ifnum\@tempcnta=\z@\unskip\let\next\relax\else
+	\leavevmode
+	\advance\mkt@cnta\m@ne \advance\@tempcnta\m@ne
+	\ifnum\mkt@cnta=\z@\mkt@maleft{#1}\mkt@cnta\thr@@\else
+	\ifnum\@tempcnta=\@tempcntb\mkt@maleft{#1}\mkt@cnta\tw@\else
+	\mkt@putauthor#1\+ \@nil\let\mkt@anhbox\mkt@anhboxc\fi\fi
+	\let\next\mkt@makemultiauthor\fi\next}
+\def\mkt@maleft#1{\let\mkt@anhbox\mkt@anhboxr\mkt@putauthor#1\+ \@nil
+	\par\let\mkt@anhbox\mkt@anhboxl}
+
+% Japanese author name format:
+%	Non Japanese : As is.
+%	Japanese w/o s/g delimitor : As is with warning.
+%	Japanese (s+g>6) : As is.
+%	Japanese (s+g<7) : Give 1-KC space to s/g delimitor, then insert
+%		infinit stretch between each character pair, assuming the
+%		s/g delimitor as a charcter, to make the name have 7-KC
+%		width.   An exception is 2s + 2g case, in which s/g
+%		delimitor has 0 width in order to have the result
+%		"S_S_G_G".
+
+\def\mkt@putauthor#1 #2\@nil{%
+	\ifipsj@nonjp \mkt@anhbox{#1 #2}\else
+	\setbox\@tempboxa\hbox{\let\affiref\@gobble \let\mkt@warning\@gobble
+		\jintercharskip\z@#1#2}%
+	\setbox\mkt@boxa\hbox{\let\affiref\@gobble \let\mkt@warning\@gobble
+		\jintercharskip1cm#1#2}%
+	\ifdim\wd\@tempboxa=\wd\mkt@boxa \mkt@anhbox{#1 #2}\else
+						% probably no Kanjis
+	\def\@tempa{#2}\ifx\@tempa\empty	% without space btwn s/g-name
+		{\let\affiref\@gobble \def\+{}%
+			\ipsj@warning{Author name #1 doesn't have a space}}%
+								% 2.00(3)
+		\mkt@anhbox{#1}\else
+	\mkt@getnamewidth\mkt@sname{#1}\mkt@getnamewidth\mkt@gname{#2}%
+	\mkt@cntb\mkt@sname \advance\mkt@cntb\mkt@gname
+	\ifnum\mkt@cntb>6\relax\mkt@anhbox{#1\ #2}\else
+	\jintercharskip\fill%
+	\@tempskipa\@tempdima plus2fill\relax
+	\ifnum\mkt@sname=\tw@ \ifnum\mkt@gname=\tw@ \@tempskipa\fill\fi\fi
+	\hbox to\mkt@namewidth{#1\hskip-\lastskip
+		\hskip\@tempskipa#2\hskip-\lastskip\@makefnmark}\fi\fi\fi
+	\fi
+	\gdef\affi@thefnmark{}\hskip\columnsep}
+
+% When an author name is formatted "as is", the following macros are used
+% according to their position (left, right, or center).
+\def\mkt@anhboxl#1{\hbox to\mkt@namewidth{\hss#1\@makefnmark}}
+\def\mkt@anhboxr#1{\hbox to\mkt@namewidth{#1\@makefnmark\hss}}
+\def\mkt@anhboxc#1{\setbox\@tempboxa\hbox{#1\@makefnmark}%
+	\ifdim\wd\@tempboxa>\mkt@namewidth\box\@tempboxa
+	\else\hbox to\mkt@namewidth{\hss\box\@tempboxa\hss}\fi}	% 2.08(1)
+
+\def\mkt@getnamewidth#1#2{\setbox\@tempboxa\hbox{\let\affiref\@gobble#2}%
+	\@tempdimb\wd\@tempboxa
+	\advance\@tempdimb.5\@tempdima #1\@tempdimb \mkt@cntb\@tempdima
+	\divide#1\mkt@cntb}
+
+% English author name format
+%	1 -> <name-1>^*
+%	2 -> <name-1>^* and~<name-2>^*
+%	3 or more -> <name-1>,^* <name-2>,^* ... <name-n-1>^* and~<name-n>^*
+% (be careful the position of comma).
+%
+% No special tricks for assignment names to line.  Names are simply put in a
+% \centering paragraph.
+
+\def\mkt@makeeauthor{\let\member\@gobble \let\nomember\relax
+	\let\stmember\@gobble	% Those are not necessary in final manuscript.
+	\leavevmode\let\mkt@and\relax\gdef\affi@thefnmark{}%
+	\def\@thefnmark{\affi@thefnmark}%
+	\expandafter\mkt@imakeeauthor\@eauthor\and\@nil\and}
+\def\mkt@imakeeauthor#1\and#2\and{\def\@tempa{#2}\ifx\@tempa\@nnil
+		#1\@makefnmark\let\next\relax
+	\else
+		\def\@tempb{#1}\def\next{\mkt@iimakeeauthor#2\and}%
+	\fi\next}
+\def\mkt@iimakeeauthor#1\and{\def\@tempa{#1}\ifx\@tempa\@nnil
+		\@makefnmark\ {\rm{and}~}\gdef\affi@thefnmark{}\hbox{\@tempb}%
+		\@makefnmark\let\next\relax
+	\else
+		\mkt@and\hbox{\@tempb}\let\mkt@and\mkt@andmid
+		\let\next\mkt@iimakeeauthor
+	\fi\def\@tempb{#1}\next}
+\def\mkt@andmid{,\@makefnmark\ \gdef\affi@thefnmark{}}
+
+% Macros to specify author's affiliation easily.
+% 2.12(7)>>
+\newcounter{affi@footnote} \c@affi@footnote\z@
+\newcounter{affi@pfootnote} \c@affi@pfootnote\z@
+\def\affilabel{\affi@deflabels\affi@affilabel}
+\def\paffilabel{\affi@deflabels\affi@paffilabel}
+\def\affi@deflabels#1#2#3{{\def\protect{\noexpand\protect\noexpand}%
+	\let\affi@affilabel\relax \let\affi@paffilabel\relax \let\\\relax
+	\xdef\affi@labels{\affi@labels#1{#2}{#3}}}}
+\def\affi@labels{}
+\def\affi@affilabel{\begingroup \affi@label{affi@footnote}\@makefnmarkdagger}
+\def\affi@paffilabel#1#2{\begingroup
+	\def\protect{\noexpand\protect\noexpand}%
+	\def\\{\noexpand\\Presently with \ignorespaces}%
+	\edef\@tempa{\ifDS@english Presently with \else		% 1.04(1d)
+		\ipsj@j@presently\fi#2}%			% 2.12(1c)
+	\affi@label{affi@pfootnote}\@makefnmarkast{#1}\@tempa}
+\def\affi@label#1#2#3#4{\stepcounter{#1}%
+	\@ifundefined{affi@r@#3}%
+		{\expandafter\xdef\csname affi@r@#3\endcsname{%
+			\csname the#1\endcsname}}%
+		{\ipsj@warning{Affiliation label `#3' multiply defined}}%
+								% 2.00(3)
+	\let\affi@footnotetext\relax\let\\\relax
+	\def\protect{\noexpand\protect\noexpand}%
+	\xdef\@thanks{\@thanks
+		\affi@footnotetext
+			{\csname the#1\endcsname}{\protect#2}{#4}}\endgroup}
+
+\def\affiref#1{\@ifundefined{affi@r@#1}%
+		{\ipsj@warning{Affiliation reference `#1' undefined}% 2.00(3)
+			\def\@tempa{?}}%
+		{\def\@tempa{\csname affi@r@#1\endcsname}}%
+	{\def\protect{\noexpand\protect\noexpand}%
+	\ifx\affi@thefnmark\empty \xdef\affi@thefnmark{\@tempa}\else
+	\xdef\affi@thefnmark{\affi@thefnmark,\hskip\z@\@tempa}\fi}}
+\def\affi@footnotetext#1#2#3{{\def\@thefnmark{#1}%
+	\def\@makefnmarkforfn{#2}\@footnotetext{#3}}}
+
+\def\theaffi@footnote{{\dagger}\number\c@affi@footnote}
+\def\theaffi@pfootnote{{\ast}\number\c@affi@pfootnote}
+
+\def\thanks#1{\begingroup
+	\stepcounter{affi@pfootnote}\let\thempfn\theaffi@pfootnote
+	\let\@thefnmark\thempfn \@makefnmark
+	\let\affi@footnotetext\relax\let\\\relax
+	\def\protect{\noexpand\protect\noexpand}%
+	\xdef\@thanks{\@thanks
+		\affi@footnotetext{\thempfn}{\protect\@makefnmarkast}{#1}}%
+	\endgroup}
+% 2.12(7)<<
+
+% \contact is necessary only for drafts.
+\long\def\contact#1{}
+
+
+%%%%%% Page Header and Footer %%%%%% 
+
+\mark{{}{}} 
+
+\newcounter{volpageoffset} % You must set this to appropriate value
+\setcounter{volpageoffset}{1} % for each issue!
+\ifDS@printer							% 2.12(4d)>>
+\def\LastPageNumber{\gdef\ipsj@last@page}
+\fi								% 2.12(4d)<<
+
+% 2.00(16)>>
+\let\latex@document\document
+\def\document{\latex@document
+	\ifDS@private\else
+	\ifDS@online \global\c@page\ipsj@olh@page		% 2.12(4)
+	\else \global\c@page\c@volpageoffset \fi \fi}		% 2.07(8)
+\let\c@volpage\c@page		% for backward compatibility
+\def\thevolpage{\thepage}	% for backward compatibility
+% 2.00(16)<<
+
+\newcounter{volume}						% 2.12(1c)>>
+\newcounter{number}
+\let\c@month\c@number						% 2.07(4)
+\newcounter{year}						% 2.12(1c)<<
+
+\ifDS@printer							% 2.12(4b)>>
+\def\SetOnlineHeaderInfo#1#2#3#4{%	% <vol><year><month><page>[<lastpage>]
+	\def\ipsj@olh@vol{#1}%
+	\def\ipsj@olh@year{#2}%
+	\def\ipsj@olh@month{#3}%
+	\def\ipsj@olh@page{#4}%
+	\@ifnextchar[%]
+		\ipsj@olh@setlastpage\relax}
+\def\ipsj@olh@setlastpage[#1]{\def\ipsj@olh@lastpage{#1}}
+\fi								% 2.12(4b)<<
+
+% 2.07(4)>>
+\ifDS@online							% 2.12(4b)
+\def\@thevolno{Vol.~\ipsj@olh@vol}				% 2.12(4b)
+\else
+\def\@thevolno{Vol.~\arabic{volume}\hskip\@mojihaba No.~%	% 2.12(1c)>>
+	\ifipsj@trans SIG\ \ipsj@sig@numa(\ipsj@sig@code\ \ipsj@sig@numb)%
+	\else \arabic{number}\fi}				% 2.12(1c)<<
+\fi
+% 2.07(4)<<
+% 2.00(15)>>
+% 2.12(1c)(4b)>>
+\def\@monthyear{%
+	\ifDS@online \ipsj@monthyear\ipsj@olh@month\ipsj@olh@year
+	\else \c@year1959 \advance\c@year\c@volume
+		\ipsj@monthyear\c@number\c@year \fi}
+\def\ipsj@monthyear#1#2{\ifcase#1\or Jan.\or Feb.\or Mar.\or Apr.\or May\or
+		June\or July\or Aug.\or Sep.\or Oct.\or Nov.\or Dec.\else\fi
+	\hskip.5\@mojihaba \number#2}
+% 2.12(1c)(4b)<<
+% 2.00(15)<<
+
+% 2.07(2)>>
+\def\transaction#1#2#3{\ipsj@transtrue
+	\def\ipsj@sig@code{#1}\def\ipsj@sig@numa{#2}\def\ipsj@sig@numb{#3}%
+	\expandafter\let\expandafter\ipsj@sig@title
+		\csname ipsj@sig@#1@\ifDS@english e\else j\fi\endcsname
+	\ifx\ipsj@sig@title\relax
+		\ipsj@warning{Transaction code #1 is unknown}\fi
+	\let\ipsj@oddhead@s\ipsj@oddhead@a
+	\ifDS@online\else					% 2.12(4c)
+	\settowidth\@tempdima{%
+	    \ipsj@ohcheck\ipsj@ohcvolno\hdr@tipsj\ipsj@ohcvolno}%
+	\ifdim\@tempdima>\textwidth
+	    \let\ipsj@oddhead@s\ipsj@oddhead@b
+	    \settowidth\@tempdima{\c@month3\relax	% "Mar." is longest
+		\ipsj@ohcheck\ipsj@ohcvolno\hdr@tipsj\@monthyear}%
+	    \ifdim\@tempdima>\textwidth
+		\let\ipsj@oddhead@s\ipsj@oddhead@c
+	\fi \fi \fi}
+
+\def\ipsj@sig@PRO@e{Programming}
+\def\ipsj@sig@TOM@e{Mathematical Modeling and Its Applications}
+\def\ipsj@sig@TOD@e{Databases}
+\def\ipsj@sig@HPS@e{High Performance Computing Systems}
+\def\ipsj@sig@CVIM@e{Computer Vision and Image Media}
+\def\ipsj@sig@ACS@e{Advanced Computing Systems}			% 2.09(2)
+\def\ipsj@sig@TBIO@e{Bioinformatics}				% 2.11(3)
+\def\ipsj@sig@SLDM@e{System LSI Design Methodology}		% 2.12(8)
+% 2.07(2)<<
+
+\def\copyrightnotice{\long\def\ipsj@cnotice}
+
+% 1.05(2)>>
+\ifDS@techrep
+\def\ps@headings{\let\@mkboth\markboth
+	\def\@oddhead{\@checklines\hss}\let\@evenhead\@oddhead
+	\def\@oddfoot{}\def\@evenfoot{}}
+\let\ps@myheadings\ps@headings
+
+\else\ifDS@private						% 2.07(8)>>
+\def\ps@headings{\let\@mkboth\markboth
+	\def\@oddhead{\@checklines\hfil\thepage\hskip12\@Q}%
+	\def\@evenhead{\@checklines\hskip12\@Q\thepage\hfil}
+	\def\@oddfoot{}\def\@evenfoot{}}
+\def\ps@myheadings{\ps@headings
+	\def\@oddhead{\@checklines
+		\smash{\parbox[b]{.75\textwidth}{\@nameuse{ipsj@cnotice}}}%
+		\hfil\thepage\hskip12\@Q}%
+	\let\@evenhead\@oddhead}
+								% 2.07(8)<<
+\else
+% 1.05(2)<<
+\def\ps@headings{\let\@mkboth\markboth