diff --git a/apps/medlda_release/README.txt b/apps/medlda_release/README.txt
new file mode 100644
index 0000000..5de289c
--- /dev/null
+++ b/apps/medlda_release/README.txt
@@ -0,0 +1,17 @@
+Input data file format:
+
+Each line represents 1 document, and consists of the following in order:
+
+ 0 or more integer labels [0 to num_label) in a one-hot encoding.
+
+ num_xtra real values as constant extra predictors in the classifier matrix.
+
+ num_target real values as regression targets (each regression target is a separate "task" to predict a scalar).
+
+ any number of word:count pairs where word is an arbitrary string containing no spaces or ':'s and count is a positive integer.
+
+
+
+
+
+
diff --git a/apps/medlda_release/dSFMT/CHANGE-LOG.txt b/apps/medlda_release/dSFMT/CHANGE-LOG.txt
new file mode 100644
index 0000000..faa6d35
--- /dev/null
+++ b/apps/medlda_release/dSFMT/CHANGE-LOG.txt
@@ -0,0 +1,93 @@
+ver 2.2.3
+-------
+change Makefile for nmake
+
+ver 2.2.2
+-------
+fix MSC 2012 compile error.
+
+ver 2.2.1
+-------
+The code for ALTIVEC is changed, to fit to the ISA manual.
+This was reported by Tao Yao, thanks.
+
+ver 2.2.0
+-------
+move do_recursion to dSFMT-common.h
+
+ver 2.1.1
+-------
+The initialization of the constants for sse2 is changed.
+Old version may cause trouble in parallel environment like OpenMP.
+
+ver 2.1
+-------
+This version supports the periods from 2^521-1 to 2^216091-1.
+We added new function dsfmt_genrand_uint32, which returns 32-bit
+unsigned integer. If you need many floating point pseudo random
+numbers and a few integers, you don't need to use another
+integer generator.
+
+ver 2.0
+-------
+The recursion formula of dSFMT is changed.
+The supported periods are changed.
+The output sequences are completely changed.
+The generation speed is improved.
+The variable for initialization check is removed, because it causes
+an execution error in cygwin.
+
+ver 1.3.1
+-------
+change dSFMT.h not to include dSFMT-params.h
+change Makefile to clean test files.
+
+ver 1.3
+-------
+add `dsfmt_' prefix to functions.
+changed to structure base code.
+put Intel Compiler into silence.
+bug fix checking BIG_ENDIAN and BYTE_ORDER
+change test.c not to include dSFMT.c
+dSFMT-alti.h and dSFMT-sse2.h are marged into dSFMT.c
+
+ver 1.2.1
+-------
+add #include to dSFMT.c
+
+ver 1.2
+-------
+The precision specifier of printf was too large in test.c
+CAUTION! *.out.txt is changed.
+add dSFMT-params216091.h
+gcc compile option changed form -O9 to -O3.
+add AltiVec parameter format for systems which are not OSX.
+change Makefile for systems which are not OSX and support AltiVec.
+change sample2 of howto-compile for Free BSD.
+change period certification code more smart.
+change source files for BORLANDC and Visual Studio.
+
+ver 1.1.1
+-------
+BUG in dSFMT-sse2.h is fixed.
+This bug didn't change the result.
+Change test.c
+
+ver 1.1
+-------
+add dSFMT-params132049.h
+fix bug in period_certification. It's a bug but result is the same for
+all parameter files.
+change macro definition names and global variables. Thank you, Adam Piatyszek.
+remove L suffix from floating point constants. It's Saito's misunderstanding.
+fix bug of sfmt_idxof definition for BIG ENDIAN machine.
+
+ver 1.0.1
+-------
+change name dSFMT-alti.c to SFMT-alti.h
+change name dSFMT-sse2.c to SFMT-sse2.h
+This version is not released.
+
+ver 1.0
+-------
+The first version.
diff --git a/apps/medlda_release/dSFMT/FILES.txt b/apps/medlda_release/dSFMT/FILES.txt
new file mode 100644
index 0000000..d1dcc9b
--- /dev/null
+++ b/apps/medlda_release/dSFMT/FILES.txt
@@ -0,0 +1,27 @@
+This archive contails following directories and files.
+
+TOP DIRECTORY
+FILES.txt: This file.
+CHANGE-LOG.txt change log.
+LICENSE.txt: License file.
+Makefile: Makefile for test programs.
+dSFMT.h: Header file.
+dSFMT-common.h: Header file.
+dSFMT-params.h: parameter file control for various Mersenne expornent
+dSFMT-params521.h: parameters for period of 2^{521}-1
+dSFMT-params1279.h: parameters for period of 2^{1279}-1
+dSFMT-params2203.h: parameters for period of 2^{2203}-1
+dSFMT-params4253.h: parameters for period of 2^{4253}-1
+dSFMT-params11213.h: parameters for period of 2^{11213}-1
+dSFMT-params19937.h: parameters for period of 2^{19937}-1
+dSFMT.c: C code for standard C (c99) and unix like systems.
+test.c: Test driver for standard C.
+check.sh: Test shell script.
+dSFMT.521.out.txt: correct output of dSFMT MEXP=521
+dSFMT.1279.out.txt: correct output of dSFMT MEXP=1279
+dSFMT.2203.out.txt: correct output of dSFMT MEXP=2203
+dSFMT.4253.out.txt: correct output of dSFMT MEXP=4253
+dSFMT.11213.out.txt: correct output of dSFMT MEXP=11213
+dSFMT.19937.out.txt: correct output of dSFMT MEXP=19937
+
+html DIRECTORY: The documents generated by doxygen.
diff --git a/apps/medlda_release/dSFMT/LICENSE.txt b/apps/medlda_release/dSFMT/LICENSE.txt
new file mode 100644
index 0000000..4570c46
--- /dev/null
+++ b/apps/medlda_release/dSFMT/LICENSE.txt
@@ -0,0 +1,32 @@
+Copyright (c) 2007, 2008, 2009 Mutsuo Saito, Makoto Matsumoto
+and Hiroshima University.
+Copyright (c) 2011, 2002 Mutsuo Saito, Makoto Matsumoto, Hiroshima
+University and The University of Tokyo.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of the Hiroshima University nor the names of
+ its contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/apps/medlda_release/dSFMT/Makefile b/apps/medlda_release/dSFMT/Makefile
new file mode 100644
index 0000000..978b2dd
--- /dev/null
+++ b/apps/medlda_release/dSFMT/Makefile
@@ -0,0 +1,198 @@
+# @file Makefile
+# @brief Makefile
+#
+# @author Mutsuo Saito (Hiroshima University)
+# @author Makoto Matsumoto (Hiroshima University)
+#
+# Copyright (C) 2007, 2008, 2013 Mutsuo Saito, Makoto Matsumoto and
+# Hiroshima University. All rights reserved.
+#
+# The new BSD License is applied to this software.
+# see LICENSE.txt
+#
+# @note
+# We could comple test-sse2-Mxxx using gcc 3.4.4 of cygwin.
+# We could comple test-sse2-Mxxx using gcc 4.0.1 of Linux.
+# We coundn't comple test-sse2-Mxxx using gcc 3.3.2 of Linux.
+# We could comple test-alti-Mxxx using gcc 3.3 of osx.
+# We could comple test-alti-Mxxx using gcc 4.0 of osx.
+
+WARN = -Wmissing-prototypes -Wall #-Winline
+#WARN = -Wmissing-prototypes -Wall -W
+#WARN = /Wall
+OPTI = -O3 -finline-functions -fomit-frame-pointer -DNDEBUG \
+-fno-strict-aliasing --param max-inline-insns-single=1800
+#--param inline-unit-growth=500 --param large-function-growth=900 #for gcc 4
+#OPTI = /Ot /Ob2 /Oy /Ox /Oi /GL /G6
+#STD =
+#STD = -std=c89 -pedantic
+#STD = -std=c99 -pedantic
+STD = -std=c99
+CC = gcc
+CCFLAGS = $(OPTI) $(WARN) $(STD)
+ALTIFLAGS = -mabi=altivec -maltivec -DHAVE_ALTIVEC
+OSXALTIFLAGS = -faltivec -maltivec -DHAVE_ALTIVEC
+SSE2FLAGS = -msse2 -DHAVE_SSE2
+#SSE2FLAGS = /arch:SSE2 /DHAVE_SSE2
+STD_TARGET = test-std-M19937
+ALL_STD_TARGET = test-std-M521 test-std-M1279 test-std-M2203 test-std-M4253 \
+test-std-M11213 test-std-M19937 test-std-M44497 test-std-M86243 \
+test-std-M132049 test-std-M216091
+ALTI_TARGET = $(STD_TARGET) test-alti-M19937
+ALL_ALTI_TARGET = test-alti-M521 test-alti-M1279 test-alti-M2203 \
+test-alti-M4253 test-alti-M11213 test-alti-M19937 test-alti-M44497 \
+test-alti-M86243 test-alti-M132049 test-alti-M216091
+SSE2_TARGET = $(STD_TARGET) test-sse2-M19937
+ALL_SSE2_TARGET = test-sse2-M521 test-sse2-M1279 test-sse2-M2203 \
+test-sse2-M4253 test-sse2-M11213 test-sse2-M19937 test-sse2-M44497 \
+test-sse2-M86243 test-sse2-M132049 test-sse2-M216091
+# ==========================================================
+# comment out or EDIT following lines to get max performance
+# ==========================================================
+# --------------------
+# for gcc 4
+# --------------------
+CCFLAGS += --param inline-unit-growth=500 \
+ --param large-function-growth=900
+# --------------------
+# for icl
+# --------------------
+#CC = icl /Wcheck /O3 /QxB /Qprefetch
+# --------------------
+# for icc
+# --------------------
+#CC = icc
+#OPTI = -O3 -finline-functions -fomit-frame-pointer -DNDEBUG \
+#-fno-strict-aliasing
+#CCFLAGS = $(OPTI) $(WARN) $(STD)
+# -----------------
+# for PowerPC
+# -----------------
+#CCFLAGS += -arch ppc
+# -----------------
+# for Pentium M
+# -----------------
+#CCFLAGS += -march=prescott
+# -----------------
+# for Athlon 64
+# -----------------
+#CCFLAGS += -march=athlon64
+
+.PHONY: std-check sse2-check alti-check
+
+std: $(STD_TARGET)
+
+sse2: $(SSE2_TARGET)
+
+alti: $(ALTI_TARGET)
+
+osx-alti:
+ $(MAKE) "ALTIFLAGS=$(OSXALTIFLAGS)" alti
+
+std-check: $(ALL_STD_TARGET)
+ ./check.sh test-std
+
+sse2-check: $(ALL_SSE2_TARGET)
+ ./check.sh test-sse2
+
+alti-check: $(ALL_ALTI_TARGET)
+ ./check.sh test-alti
+
+osx-alti-check:
+ make "ALTIFLAGS=$(OSXALTIFLAGS)" alti-check
+
+test-std-M521: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) -DDSFMT_MEXP=521 -o $@ dSFMT.c test.c
+
+test-alti-M521: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(ALTIFLAGS) -DDSFMT_MEXP=521 -o $@ dSFMT.c test.c
+
+test-sse2-M521: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(SSE2FLAGS) -DDSFMT_MEXP=521 -o $@ dSFMT.c test.c
+
+test-std-M1279: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) -DDSFMT_MEXP=1279 -o $@ dSFMT.c test.c
+
+test-alti-M1279: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(ALTIFLAGS) -DDSFMT_MEXP=1279 -o $@ dSFMT.c test.c
+
+test-sse2-M1279: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(SSE2FLAGS) -DDSFMT_MEXP=1279 -o $@ dSFMT.c test.c
+
+test-std-M2203: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) -DDSFMT_MEXP=2203 -o $@ dSFMT.c test.c
+
+test-alti-M2203: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(ALTIFLAGS) -DDSFMT_MEXP=2203 -o $@ dSFMT.c test.c
+
+test-sse2-M2203: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(SSE2FLAGS) -DDSFMT_MEXP=2203 -o $@ dSFMT.c test.c
+
+test-std-M4253: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) -DDSFMT_MEXP=4253 -o $@ dSFMT.c test.c
+
+test-alti-M4253: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(ALTIFLAGS) -DDSFMT_MEXP=4253 -o $@ dSFMT.c test.c
+
+test-sse2-M4253: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(SSE2FLAGS) -DDSFMT_MEXP=4253 -o $@ dSFMT.c test.c
+
+test-std-M11213: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) -DDSFMT_MEXP=11213 -o $@ dSFMT.c test.c
+
+test-alti-M11213: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(ALTIFLAGS) -DDSFMT_MEXP=11213 -o $@ dSFMT.c test.c
+
+test-sse2-M11213: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(SSE2FLAGS) -DDSFMT_MEXP=11213 -o $@ dSFMT.c test.c
+
+test-std-M19937: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) -DDSFMT_MEXP=19937 -o $@ dSFMT.c test.c
+
+test-alti-M19937: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(ALTIFLAGS) -DDSFMT_MEXP=19937 -o $@ dSFMT.c test.c
+
+test-sse2-M19937: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(SSE2FLAGS) -DDSFMT_MEXP=19937 -o $@ dSFMT.c test.c
+
+test-std-M44497: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) -DDSFMT_MEXP=44497 -o $@ dSFMT.c test.c
+
+test-alti-M44497: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(ALTIFLAGS) -DDSFMT_MEXP=44497 -o $@ dSFMT.c test.c
+
+test-sse2-M44497: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(SSE2FLAGS) -DDSFMT_MEXP=44497 -o $@ dSFMT.c test.c
+
+test-std-M86243: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) -DDSFMT_MEXP=86243 -o $@ dSFMT.c test.c
+
+test-alti-M86243: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(ALTIFLAGS) -DDSFMT_MEXP=86243 -o $@ dSFMT.c test.c
+
+test-sse2-M86243: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(SSE2FLAGS) -DDSFMT_MEXP=86243 -o $@ dSFMT.c test.c
+
+test-std-M132049: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) -DDSFMT_MEXP=132049 -o $@ dSFMT.c test.c
+
+test-alti-M132049: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(ALTIFLAGS) -DDSFMT_MEXP=132049 -o $@ dSFMT.c test.c
+
+test-sse2-M132049: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(SSE2FLAGS) -DDSFMT_MEXP=132049 -o $@ dSFMT.c test.c
+
+test-std-M216091: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) -DDSFMT_MEXP=216091 -o $@ dSFMT.c test.c
+
+test-alti-M216091: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(ALTIFLAGS) -DDSFMT_MEXP=216091 -o $@ dSFMT.c test.c
+
+test-sse2-M216091: test.c dSFMT.c dSFMT.h
+ $(CC) $(CCFLAGS) $(SSE2FLAGS) -DDSFMT_MEXP=216091 -o $@ dSFMT.c test.c
+
+.c.o:
+ $(CC) $(CCFLAGS) -c $<
+
+clean:
+ rm -f *.o *~ test-*-M*
diff --git a/apps/medlda_release/dSFMT/README.jp.txt b/apps/medlda_release/dSFMT/README.jp.txt
new file mode 100644
index 0000000..548f1b0
--- /dev/null
+++ b/apps/medlda_release/dSFMT/README.jp.txt
@@ -0,0 +1,52 @@
+ =================================================================
+ dSFMT ver. 2.1.1
+ 2011.11.10
+
+ double precision SIMD oriented Fast Mersenne Twister(dSFMT)
+ based on IEEE 754 floating point format.
+
+ Mutsuo Saito (Hiroshima University) and
+ Makoto Matsumoto (Hiroshima University)
+
+ Copyright (C) 2007, 2008, 2009 Mutsuo Saito, Makoto Matsumoto and
+ Hiroshima University.
+ Copyright (C) 2011 Mutsuo Saito, Makoto Matsumoto, Hiroshima
+ University and The University of Tokyo.
+ All rights reserved.
+
+ The (modified) BSD License is applied to this software, see
+ LICENSE.txt
+ =================================================================
+
+ ドキュメントは、たとえ英語が文法的に正しくない場合でも、英語版が正式な
+ ものです。
+
+ dSFMT2.0 および 2.1 はdSFMT1.x とは疑似乱数生成の漸化式が違います。つまり、
+ dSFMT1.xと同じ初期値を与えても異なる疑似乱数列を生成します。
+
+ doxygen によって生成されたドキュメント(英語)が、html ディレクトリの
+ 下にあるので参照してください。
+
+ このプログラムは IEEE754 形式の浮動小数点数を使用しているシステムでの
+ み動作します。
+
+ このプログラムは、C言語の構造体を使用しています。したがって、それをう
+ まく使えば、スレッド毎に別々の疑似乱数列を利用することができます。しか
+ し、dSFMT.cのコンパイル時と異なるDSFMT_MEXPをユーザープログラムのコン
+ パイル時に指定すると、問題が発生します。(スピードを犠牲にして、パラメー
+ タを全部構造体に入れるという方法もありますが、ここではスピードを優先し
+ ました)
+
+ とりあえずテストプログラムを走らせてみたいという人は、html ディレクト
+ リの下のhowto-compile.html(英語)をみて下さい。CPU がビッグエンディア
+ ンの場合は、注意が必要です。事前定義プリプロセッサマクロによって、エン
+ ディアンの判定をしていますが、明示的に DSFMT_BIG_ENDIAN マクロを定義し
+ た方が安全だと思います。
+
+ ソースコードを変更したりしなかったりしてこのプログラムを再配布したい人
+ は、LICENSE.txt(英語)を読んで下さい。
+
+ ファイルに変更を加えて再配布する場合は、どうか、配布物の中にあなたの連
+ 絡先を書いておいて、問題があったときは、私たちではなく、あなたにまず連
+ 絡するように利用者に伝えて下さい。
+
diff --git a/apps/medlda_release/dSFMT/README.txt b/apps/medlda_release/dSFMT/README.txt
new file mode 100644
index 0000000..e45aee4
--- /dev/null
+++ b/apps/medlda_release/dSFMT/README.txt
@@ -0,0 +1,41 @@
+ =================================================================
+ dSFMT ver. 2.2.1
+ 2011.11.10
+
+ double precision SIMD oriented Fast Mersenne Twister(dSFMT)
+ based on IEEE 754 floating point format.
+
+ Mutsuo Saito (Hiroshima University) and
+ Makoto Matsumoto (Hiroshima University)
+
+ Copyright (C) 2007, 2008, 2009 Mutsuo Saito, Makoto Matsumoto and
+ Hiroshima University.
+ Copyright (C) 2011, 2013 Mutsuo Saito, Makoto Matsumoto, Hiroshima
+ University and The University of Tokyo.
+ All rights reserved.
+
+ The (modified) BSD License is applied to this software, see
+ LICENSE.txt
+ =================================================================
+ The documents written in English is the official one.
+
+ dSFMT ver. 2.0 and ver. 2.1 are completely different from dSFMT ver 1.xx.
+ The algorithm is changed.
+
+ This program only works on systems which have IEEE754 floating point
+ format.
+
+ This version uses `struct' of C language.
+ Don't use different DSFMT_MEXP for compiling dSFMT.c and your program.
+
+ To see documents, see html/index.html.
+
+ To make test program, see html/howto-compile.html.
+ If your CPU is BIG ENDIAN and your compiler is not gcc,
+ define DSFMT_BIG_ENDIAN preprocessor macro, please.
+
+ If you want to redistribute and/or change source files, see LICENSE.txt.
+
+ When you change these files and redistribute them, PLEASE write your
+ e-mail address in redistribution and write to contact YOU first if
+ users of your changed source encounter troubles.
diff --git a/apps/medlda_release/dSFMT/check b/apps/medlda_release/dSFMT/check
new file mode 100755
index 0000000..ef56d57
--- /dev/null
+++ b/apps/medlda_release/dSFMT/check
@@ -0,0 +1,18 @@
+#!/bin/sh
+prefix=$1
+tmp=tmp.$$
+exps="521 1279 2203 4253 11213 19937 44497 86243 132049 216091"
+for mexp in $exps; do
+ compare=dSFMT.${mexp}.out.txt
+ command=${prefix}-M${mexp}
+ ./$command -v > $tmp
+ if diff -q -w $tmp $compare; then
+ echo $command output check OK
+ rm -f $tmp
+ else
+ echo $command output check NG!
+ rm -f $tmp
+ exit 1
+ fi
+done
+exit 0
diff --git a/apps/medlda_release/dSFMT/check.sh b/apps/medlda_release/dSFMT/check.sh
new file mode 100755
index 0000000..ef56d57
--- /dev/null
+++ b/apps/medlda_release/dSFMT/check.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+prefix=$1
+tmp=tmp.$$
+exps="521 1279 2203 4253 11213 19937 44497 86243 132049 216091"
+for mexp in $exps; do
+ compare=dSFMT.${mexp}.out.txt
+ command=${prefix}-M${mexp}
+ ./$command -v > $tmp
+ if diff -q -w $tmp $compare; then
+ echo $command output check OK
+ rm -f $tmp
+ else
+ echo $command output check NG!
+ rm -f $tmp
+ exit 1
+ fi
+done
+exit 0
diff --git a/apps/medlda_release/dSFMT/dSFMT-common.h b/apps/medlda_release/dSFMT/dSFMT-common.h
new file mode 100644
index 0000000..30c26c0
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT-common.h
@@ -0,0 +1,115 @@
+#pragma once
+/**
+ * @file dSFMT-common.h
+ *
+ * @brief SIMD oriented Fast Mersenne Twister(SFMT) pseudorandom
+ * number generator with jump function. This file includes common functions
+ * used in random number generation and jump.
+ *
+ * @author Mutsuo Saito (Hiroshima University)
+ * @author Makoto Matsumoto (The University of Tokyo)
+ *
+ * Copyright (C) 2006, 2007 Mutsuo Saito, Makoto Matsumoto and Hiroshima
+ * University.
+ * Copyright (C) 2012 Mutsuo Saito, Makoto Matsumoto, Hiroshima
+ * University and The University of Tokyo.
+ * All rights reserved.
+ *
+ * The 3-clause BSD License is applied to this software, see
+ * LICENSE.txt
+ */
+#ifndef DSFMT_COMMON_H
+#define DSFMT_COMMON_H
+
+#include "dSFMT.h"
+
+#if defined(HAVE_SSE2)
+# include
+union X128I_T {
+ uint64_t u[2];
+ __m128i i128;
+};
+union X128D_T {
+ double d[2];
+ __m128d d128;
+};
+/** mask data for sse2 */
+static const union X128I_T sse2_param_mask = {{DSFMT_MSK1, DSFMT_MSK2}};
+#endif
+
+#if defined(HAVE_ALTIVEC)
+inline static void do_recursion(w128_t *r, w128_t *a, w128_t * b,
+ w128_t *lung) {
+ const vector unsigned char sl1 = ALTI_SL1;
+ const vector unsigned char sl1_perm = ALTI_SL1_PERM;
+ const vector unsigned int sl1_msk = ALTI_SL1_MSK;
+ const vector unsigned char sr1 = ALTI_SR;
+ const vector unsigned char sr1_perm = ALTI_SR_PERM;
+ const vector unsigned int sr1_msk = ALTI_SR_MSK;
+ const vector unsigned char perm = ALTI_PERM;
+ const vector unsigned int msk1 = ALTI_MSK;
+ vector unsigned int w, x, y, z;
+
+ z = a->s;
+ w = lung->s;
+ x = vec_perm(w, (vector unsigned int)perm, perm);
+ y = vec_perm(z, (vector unsigned int)sl1_perm, sl1_perm);
+ y = vec_sll(y, sl1);
+ y = vec_and(y, sl1_msk);
+ w = vec_xor(x, b->s);
+ w = vec_xor(w, y);
+ x = vec_perm(w, (vector unsigned int)sr1_perm, sr1_perm);
+ x = vec_srl(x, sr1);
+ x = vec_and(x, sr1_msk);
+ y = vec_and(w, msk1);
+ z = vec_xor(z, y);
+ r->s = vec_xor(z, x);
+ lung->s = w;
+}
+#elif defined(HAVE_SSE2)
+/**
+ * This function represents the recursion formula.
+ * @param r output 128-bit
+ * @param a a 128-bit part of the internal state array
+ * @param b a 128-bit part of the internal state array
+ * @param d a 128-bit part of the internal state array (I/O)
+ */
+inline static void do_recursion(w128_t *r, w128_t *a, w128_t *b, w128_t *u) {
+ __m128i v, w, x, y, z;
+
+ x = a->si;
+ z = _mm_slli_epi64(x, DSFMT_SL1);
+ y = _mm_shuffle_epi32(u->si, SSE2_SHUFF);
+ z = _mm_xor_si128(z, b->si);
+ y = _mm_xor_si128(y, z);
+
+ v = _mm_srli_epi64(y, DSFMT_SR);
+ w = _mm_and_si128(y, sse2_param_mask.i128);
+ v = _mm_xor_si128(v, x);
+ v = _mm_xor_si128(v, w);
+ r->si = v;
+ u->si = y;
+}
+#else
+/**
+ * This function represents the recursion formula.
+ * @param r output 128-bit
+ * @param a a 128-bit part of the internal state array
+ * @param b a 128-bit part of the internal state array
+ * @param lung a 128-bit part of the internal state array (I/O)
+ */
+inline static void do_recursion(w128_t *r, w128_t *a, w128_t * b,
+ w128_t *lung) {
+ uint64_t t0, t1, L0, L1;
+
+ t0 = a->u[0];
+ t1 = a->u[1];
+ L0 = lung->u[0];
+ L1 = lung->u[1];
+ lung->u[0] = (t0 << DSFMT_SL1) ^ (L1 >> 32) ^ (L1 << 32) ^ b->u[0];
+ lung->u[1] = (t1 << DSFMT_SL1) ^ (L0 >> 32) ^ (L0 << 32) ^ b->u[1];
+ r->u[0] = (lung->u[0] >> DSFMT_SR) ^ (lung->u[0] & DSFMT_MSK1) ^ t0;
+ r->u[1] = (lung->u[1] >> DSFMT_SR) ^ (lung->u[1] & DSFMT_MSK2) ^ t1;
+}
+#endif
+#endif
diff --git a/apps/medlda_release/dSFMT/dSFMT-params.h b/apps/medlda_release/dSFMT/dSFMT-params.h
new file mode 100644
index 0000000..aa02478
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT-params.h
@@ -0,0 +1,87 @@
+#ifndef DSFMT_PARAMS_H
+#define DSFMT_PARAMS_H
+
+#include "dSFMT.h"
+
+/*----------------------
+ the parameters of DSFMT
+ following definitions are in dSFMT-paramsXXXX.h file.
+ ----------------------*/
+/** the pick up position of the array.
+#define DSFMT_POS1 122
+*/
+
+/** the parameter of shift left as four 32-bit registers.
+#define DSFMT_SL1 18
+ */
+
+/** the parameter of shift right as four 32-bit registers.
+#define DSFMT_SR1 12
+*/
+
+/** A bitmask, used in the recursion. These parameters are introduced
+ * to break symmetry of SIMD.
+#define DSFMT_MSK1 (uint64_t)0xdfffffefULL
+#define DSFMT_MSK2 (uint64_t)0xddfecb7fULL
+*/
+
+/** These definitions are part of a 128-bit period certification vector.
+#define DSFMT_PCV1 UINT64_C(0x00000001)
+#define DSFMT_PCV2 UINT64_C(0x00000000)
+*/
+
+#define DSFMT_LOW_MASK UINT64_C(0x000FFFFFFFFFFFFF)
+#define DSFMT_HIGH_CONST UINT64_C(0x3FF0000000000000)
+#define DSFMT_SR 12
+
+/* for sse2 */
+#if defined(HAVE_SSE2)
+ #define SSE2_SHUFF 0x1b
+#elif defined(HAVE_ALTIVEC)
+ #if defined(__APPLE__) /* For OSX */
+ #define ALTI_SR (vector unsigned char)(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4)
+ #define ALTI_SR_PERM \
+ (vector unsigned char)(15,0,1,2,3,4,5,6,15,8,9,10,11,12,13,14)
+ #define ALTI_SR_MSK \
+ (vector unsigned int)(0x000fffffU,0xffffffffU,0x000fffffU,0xffffffffU)
+ #define ALTI_PERM \
+ (vector unsigned char)(12,13,14,15,8,9,10,11,4,5,6,7,0,1,2,3)
+ #else
+ #define ALTI_SR {4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4}
+ #define ALTI_SR_PERM {15,0,1,2,3,4,5,6,15,8,9,10,11,12,13,14}
+ #define ALTI_SR_MSK {0x000fffffU,0xffffffffU,0x000fffffU,0xffffffffU}
+ #define ALTI_PERM {12,13,14,15,8,9,10,11,4,5,6,7,0,1,2,3}
+ #endif
+#endif
+
+#if DSFMT_MEXP == 521
+ #include "dSFMT-params521.h"
+#elif DSFMT_MEXP == 1279
+ #include "dSFMT-params1279.h"
+#elif DSFMT_MEXP == 2203
+ #include "dSFMT-params2203.h"
+#elif DSFMT_MEXP == 4253
+ #include "dSFMT-params4253.h"
+#elif DSFMT_MEXP == 11213
+ #include "dSFMT-params11213.h"
+#elif DSFMT_MEXP == 19937
+ #include "dSFMT-params19937.h"
+#elif DSFMT_MEXP == 44497
+ #include "dSFMT-params44497.h"
+#elif DSFMT_MEXP == 86243
+ #include "dSFMT-params86243.h"
+#elif DSFMT_MEXP == 132049
+ #include "dSFMT-params132049.h"
+#elif DSFMT_MEXP == 216091
+ #include "dSFMT-params216091.h"
+#else
+#ifdef __GNUC__
+ #error "DSFMT_MEXP is not valid."
+ #undef DSFMT_MEXP
+#else
+ #undef DSFMT_MEXP
+#endif
+
+#endif
+
+#endif /* DSFMT_PARAMS_H */
diff --git a/apps/medlda_release/dSFMT/dSFMT-params11213.h b/apps/medlda_release/dSFMT/dSFMT-params11213.h
new file mode 100644
index 0000000..4670e9b
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT-params11213.h
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS11213_H
+#define DSFMT_PARAMS11213_H
+
+/* #define DSFMT_N 107 */
+/* #define DSFMT_MAXDEGREE 11256 */
+#define DSFMT_POS1 37
+#define DSFMT_SL1 19
+#define DSFMT_MSK1 UINT64_C(0x000ffffffdf7fffd)
+#define DSFMT_MSK2 UINT64_C(0x000dfffffff6bfff)
+#define DSFMT_MSK32_1 0x000fffffU
+#define DSFMT_MSK32_2 0xfdf7fffdU
+#define DSFMT_MSK32_3 0x000dffffU
+#define DSFMT_MSK32_4 0xfff6bfffU
+#define DSFMT_FIX1 UINT64_C(0xd0ef7b7c75b06793)
+#define DSFMT_FIX2 UINT64_C(0x9c50ff4caae0a641)
+#define DSFMT_PCV1 UINT64_C(0x8234c51207c80000)
+#define DSFMT_PCV2 UINT64_C(0x0000000000000001)
+#define DSFMT_IDSTR "dSFMT2-11213:37-19:ffffffdf7fffd-dfffffff6bfff"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__) /* For OSX */
+ #define ALTI_SL1 (vector unsigned char)(3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3)
+ #define ALTI_SL1_PERM \
+ (vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
+ #define ALTI_SL1_MSK \
+ (vector unsigned int)(0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U)
+ #define ALTI_MSK (vector unsigned int)(DSFMT_MSK32_1, \
+ DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else /* For OTHER OSs(Linux?) */
+ #define ALTI_SL1 {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}
+ #define ALTI_SL1_PERM \
+ {2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
+ #define ALTI_SL1_MSK \
+ {0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U}
+ #define ALTI_MSK \
+ {DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS11213_H */
diff --git a/apps/medlda_release/dSFMT/dSFMT-params1279.h b/apps/medlda_release/dSFMT/dSFMT-params1279.h
new file mode 100644
index 0000000..78537a2
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT-params1279.h
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS1279_H
+#define DSFMT_PARAMS1279_H
+
+/* #define DSFMT_N 12 */
+/* #define DSFMT_MAXDEGREE 1376 */
+#define DSFMT_POS1 9
+#define DSFMT_SL1 19
+#define DSFMT_MSK1 UINT64_C(0x000efff7ffddffee)
+#define DSFMT_MSK2 UINT64_C(0x000fbffffff77fff)
+#define DSFMT_MSK32_1 0x000efff7U
+#define DSFMT_MSK32_2 0xffddffeeU
+#define DSFMT_MSK32_3 0x000fbfffU
+#define DSFMT_MSK32_4 0xfff77fffU
+#define DSFMT_FIX1 UINT64_C(0xb66627623d1a31be)
+#define DSFMT_FIX2 UINT64_C(0x04b6c51147b6109b)
+#define DSFMT_PCV1 UINT64_C(0x7049f2da382a6aeb)
+#define DSFMT_PCV2 UINT64_C(0xde4ca84a40000001)
+#define DSFMT_IDSTR "dSFMT2-1279:9-19:efff7ffddffee-fbffffff77fff"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__) /* For OSX */
+ #define ALTI_SL1 (vector unsigned char)(3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3)
+ #define ALTI_SL1_PERM \
+ (vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
+ #define ALTI_SL1_MSK \
+ (vector unsigned int)(0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U)
+ #define ALTI_MSK (vector unsigned int)(DSFMT_MSK32_1, \
+ DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else /* For OTHER OSs(Linux?) */
+ #define ALTI_SL1 {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}
+ #define ALTI_SL1_PERM \
+ {2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
+ #define ALTI_SL1_MSK \
+ {0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U}
+ #define ALTI_MSK \
+ {DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS1279_H */
diff --git a/apps/medlda_release/dSFMT/dSFMT-params132049.h b/apps/medlda_release/dSFMT/dSFMT-params132049.h
new file mode 100644
index 0000000..35b96ce
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT-params132049.h
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS132049_H
+#define DSFMT_PARAMS132049_H
+
+/* #define DSFMT_N 1269 */
+/* #define DSFMT_MAXDEGREE 132104 */
+#define DSFMT_POS1 371
+#define DSFMT_SL1 23
+#define DSFMT_MSK1 UINT64_C(0x000fb9f4eff4bf77)
+#define DSFMT_MSK2 UINT64_C(0x000fffffbfefff37)
+#define DSFMT_MSK32_1 0x000fb9f4U
+#define DSFMT_MSK32_2 0xeff4bf77U
+#define DSFMT_MSK32_3 0x000fffffU
+#define DSFMT_MSK32_4 0xbfefff37U
+#define DSFMT_FIX1 UINT64_C(0x4ce24c0e4e234f3b)
+#define DSFMT_FIX2 UINT64_C(0x62612409b5665c2d)
+#define DSFMT_PCV1 UINT64_C(0x181232889145d000)
+#define DSFMT_PCV2 UINT64_C(0x0000000000000001)
+#define DSFMT_IDSTR "dSFMT2-132049:371-23:fb9f4eff4bf77-fffffbfefff37"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__) /* For OSX */
+ #define ALTI_SL1 (vector unsigned char)(7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7)
+ #define ALTI_SL1_PERM \
+ (vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
+ #define ALTI_SL1_MSK \
+ (vector unsigned int)(0xffffffffU,0xff800000U,0xffffffffU,0xff800000U)
+ #define ALTI_MSK (vector unsigned int)(DSFMT_MSK32_1, \
+ DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else /* For OTHER OSs(Linux?) */
+ #define ALTI_SL1 {7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7}
+ #define ALTI_SL1_PERM \
+ {2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
+ #define ALTI_SL1_MSK \
+ {0xffffffffU,0xff800000U,0xffffffffU,0xff800000U}
+ #define ALTI_MSK \
+ {DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS132049_H */
diff --git a/apps/medlda_release/dSFMT/dSFMT-params19937.h b/apps/medlda_release/dSFMT/dSFMT-params19937.h
new file mode 100644
index 0000000..a600b0d
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT-params19937.h
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS19937_H
+#define DSFMT_PARAMS19937_H
+
+/* #define DSFMT_N 191 */
+/* #define DSFMT_MAXDEGREE 19992 */
+#define DSFMT_POS1 117
+#define DSFMT_SL1 19
+#define DSFMT_MSK1 UINT64_C(0x000ffafffffffb3f)
+#define DSFMT_MSK2 UINT64_C(0x000ffdfffc90fffd)
+#define DSFMT_MSK32_1 0x000ffaffU
+#define DSFMT_MSK32_2 0xfffffb3fU
+#define DSFMT_MSK32_3 0x000ffdffU
+#define DSFMT_MSK32_4 0xfc90fffdU
+#define DSFMT_FIX1 UINT64_C(0x90014964b32f4329)
+#define DSFMT_FIX2 UINT64_C(0x3b8d12ac548a7c7a)
+#define DSFMT_PCV1 UINT64_C(0x3d84e1ac0dc82880)
+#define DSFMT_PCV2 UINT64_C(0x0000000000000001)
+#define DSFMT_IDSTR "dSFMT2-19937:117-19:ffafffffffb3f-ffdfffc90fffd"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__) /* For OSX */
+ #define ALTI_SL1 (vector unsigned char)(3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3)
+ #define ALTI_SL1_PERM \
+ (vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
+ #define ALTI_SL1_MSK \
+ (vector unsigned int)(0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U)
+ #define ALTI_MSK (vector unsigned int)(DSFMT_MSK32_1, \
+ DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else /* For OTHER OSs(Linux?) */
+ #define ALTI_SL1 {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}
+ #define ALTI_SL1_PERM \
+ {2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
+ #define ALTI_SL1_MSK \
+ {0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U}
+ #define ALTI_MSK \
+ {DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS19937_H */
diff --git a/apps/medlda_release/dSFMT/dSFMT-params216091.h b/apps/medlda_release/dSFMT/dSFMT-params216091.h
new file mode 100644
index 0000000..c9e1943
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT-params216091.h
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS216091_H
+#define DSFMT_PARAMS216091_H
+
+/* #define DSFMT_N 2077 */
+/* #define DSFMT_MAXDEGREE 216136 */
+#define DSFMT_POS1 1890
+#define DSFMT_SL1 23
+#define DSFMT_MSK1 UINT64_C(0x000bf7df7fefcfff)
+#define DSFMT_MSK2 UINT64_C(0x000e7ffffef737ff)
+#define DSFMT_MSK32_1 0x000bf7dfU
+#define DSFMT_MSK32_2 0x7fefcfffU
+#define DSFMT_MSK32_3 0x000e7fffU
+#define DSFMT_MSK32_4 0xfef737ffU
+#define DSFMT_FIX1 UINT64_C(0xd7f95a04764c27d7)
+#define DSFMT_FIX2 UINT64_C(0x6a483861810bebc2)
+#define DSFMT_PCV1 UINT64_C(0x3af0a8f3d5600000)
+#define DSFMT_PCV2 UINT64_C(0x0000000000000001)
+#define DSFMT_IDSTR "dSFMT2-216091:1890-23:bf7df7fefcfff-e7ffffef737ff"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__) /* For OSX */
+ #define ALTI_SL1 (vector unsigned char)(7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7)
+ #define ALTI_SL1_PERM \
+ (vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
+ #define ALTI_SL1_MSK \
+ (vector unsigned int)(0xffffffffU,0xff800000U,0xffffffffU,0xff800000U)
+ #define ALTI_MSK (vector unsigned int)(DSFMT_MSK32_1, \
+ DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else /* For OTHER OSs(Linux?) */
+ #define ALTI_SL1 {7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7}
+ #define ALTI_SL1_PERM \
+ {2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
+ #define ALTI_SL1_MSK \
+ {0xffffffffU,0xff800000U,0xffffffffU,0xff800000U}
+ #define ALTI_MSK \
+ {DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS216091_H */
diff --git a/apps/medlda_release/dSFMT/dSFMT-params2203.h b/apps/medlda_release/dSFMT/dSFMT-params2203.h
new file mode 100644
index 0000000..7414834
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT-params2203.h
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS2203_H
+#define DSFMT_PARAMS2203_H
+
+/* #define DSFMT_N 20 */
+/* #define DSFMT_MAXDEGREE 2208 */
+#define DSFMT_POS1 7
+#define DSFMT_SL1 19
+#define DSFMT_MSK1 UINT64_C(0x000fdffff5edbfff)
+#define DSFMT_MSK2 UINT64_C(0x000f77fffffffbfe)
+#define DSFMT_MSK32_1 0x000fdfffU
+#define DSFMT_MSK32_2 0xf5edbfffU
+#define DSFMT_MSK32_3 0x000f77ffU
+#define DSFMT_MSK32_4 0xfffffbfeU
+#define DSFMT_FIX1 UINT64_C(0xb14e907a39338485)
+#define DSFMT_FIX2 UINT64_C(0xf98f0735c637ef90)
+#define DSFMT_PCV1 UINT64_C(0x8000000000000000)
+#define DSFMT_PCV2 UINT64_C(0x0000000000000001)
+#define DSFMT_IDSTR "dSFMT2-2203:7-19:fdffff5edbfff-f77fffffffbfe"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__) /* For OSX */
+ #define ALTI_SL1 (vector unsigned char)(3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3)
+ #define ALTI_SL1_PERM \
+ (vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
+ #define ALTI_SL1_MSK \
+ (vector unsigned int)(0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U)
+ #define ALTI_MSK (vector unsigned int)(DSFMT_MSK32_1, \
+ DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else /* For OTHER OSs(Linux?) */
+ #define ALTI_SL1 {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}
+ #define ALTI_SL1_PERM \
+ {2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
+ #define ALTI_SL1_MSK \
+ {0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U}
+ #define ALTI_MSK \
+ {DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS2203_H */
diff --git a/apps/medlda_release/dSFMT/dSFMT-params4253.h b/apps/medlda_release/dSFMT/dSFMT-params4253.h
new file mode 100644
index 0000000..34ef4c1
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT-params4253.h
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS4253_H
+#define DSFMT_PARAMS4253_H
+
+/* #define DSFMT_N 40 */
+/* #define DSFMT_MAXDEGREE 4288 */
+#define DSFMT_POS1 19
+#define DSFMT_SL1 19
+#define DSFMT_MSK1 UINT64_C(0x0007b7fffef5feff)
+#define DSFMT_MSK2 UINT64_C(0x000ffdffeffefbfc)
+#define DSFMT_MSK32_1 0x0007b7ffU
+#define DSFMT_MSK32_2 0xfef5feffU
+#define DSFMT_MSK32_3 0x000ffdffU
+#define DSFMT_MSK32_4 0xeffefbfcU
+#define DSFMT_FIX1 UINT64_C(0x80901b5fd7a11c65)
+#define DSFMT_FIX2 UINT64_C(0x5a63ff0e7cb0ba74)
+#define DSFMT_PCV1 UINT64_C(0x1ad277be12000000)
+#define DSFMT_PCV2 UINT64_C(0x0000000000000001)
+#define DSFMT_IDSTR "dSFMT2-4253:19-19:7b7fffef5feff-ffdffeffefbfc"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__) /* For OSX */
+ #define ALTI_SL1 (vector unsigned char)(3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3)
+ #define ALTI_SL1_PERM \
+ (vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
+ #define ALTI_SL1_MSK \
+ (vector unsigned int)(0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U)
+ #define ALTI_MSK (vector unsigned int)(DSFMT_MSK32_1, \
+ DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else /* For OTHER OSs(Linux?) */
+ #define ALTI_SL1 {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}
+ #define ALTI_SL1_PERM \
+ {2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
+ #define ALTI_SL1_MSK \
+ {0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U}
+ #define ALTI_MSK \
+ {DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS4253_H */
diff --git a/apps/medlda_release/dSFMT/dSFMT-params44497.h b/apps/medlda_release/dSFMT/dSFMT-params44497.h
new file mode 100644
index 0000000..03b607b
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT-params44497.h
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS44497_H
+#define DSFMT_PARAMS44497_H
+
+/* #define DSFMT_N 427 */
+/* #define DSFMT_MAXDEGREE 44536 */
+#define DSFMT_POS1 304
+#define DSFMT_SL1 19
+#define DSFMT_MSK1 UINT64_C(0x000ff6dfffffffef)
+#define DSFMT_MSK2 UINT64_C(0x0007ffdddeefff6f)
+#define DSFMT_MSK32_1 0x000ff6dfU
+#define DSFMT_MSK32_2 0xffffffefU
+#define DSFMT_MSK32_3 0x0007ffddU
+#define DSFMT_MSK32_4 0xdeefff6fU
+#define DSFMT_FIX1 UINT64_C(0x75d910f235f6e10e)
+#define DSFMT_FIX2 UINT64_C(0x7b32158aedc8e969)
+#define DSFMT_PCV1 UINT64_C(0x4c3356b2a0000000)
+#define DSFMT_PCV2 UINT64_C(0x0000000000000001)
+#define DSFMT_IDSTR "dSFMT2-44497:304-19:ff6dfffffffef-7ffdddeefff6f"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__) /* For OSX */
+ #define ALTI_SL1 (vector unsigned char)(3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3)
+ #define ALTI_SL1_PERM \
+ (vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
+ #define ALTI_SL1_MSK \
+ (vector unsigned int)(0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U)
+ #define ALTI_MSK (vector unsigned int)(DSFMT_MSK32_1, \
+ DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else /* For OTHER OSs(Linux?) */
+ #define ALTI_SL1 {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}
+ #define ALTI_SL1_PERM \
+ {2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
+ #define ALTI_SL1_MSK \
+ {0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U}
+ #define ALTI_MSK \
+ {DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS44497_H */
diff --git a/apps/medlda_release/dSFMT/dSFMT-params521.h b/apps/medlda_release/dSFMT/dSFMT-params521.h
new file mode 100644
index 0000000..f2351ef
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT-params521.h
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS521_H
+#define DSFMT_PARAMS521_H
+
+/* #define DSFMT_N 4 */
+/* #define DSFMT_MAXDEGREE 544 */
+#define DSFMT_POS1 3
+#define DSFMT_SL1 25
+#define DSFMT_MSK1 UINT64_C(0x000fbfefff77efff)
+#define DSFMT_MSK2 UINT64_C(0x000ffeebfbdfbfdf)
+#define DSFMT_MSK32_1 0x000fbfefU
+#define DSFMT_MSK32_2 0xff77efffU
+#define DSFMT_MSK32_3 0x000ffeebU
+#define DSFMT_MSK32_4 0xfbdfbfdfU
+#define DSFMT_FIX1 UINT64_C(0xcfb393d661638469)
+#define DSFMT_FIX2 UINT64_C(0xc166867883ae2adb)
+#define DSFMT_PCV1 UINT64_C(0xccaa588000000000)
+#define DSFMT_PCV2 UINT64_C(0x0000000000000001)
+#define DSFMT_IDSTR "dSFMT2-521:3-25:fbfefff77efff-ffeebfbdfbfdf"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__) /* For OSX */
+ #define ALTI_SL1 (vector unsigned char)(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
+ #define ALTI_SL1_PERM \
+ (vector unsigned char)(3,4,5,6,7,29,29,29,11,12,13,14,15,0,1,2)
+ #define ALTI_SL1_MSK \
+ (vector unsigned int)(0xffffffffU,0xfe000000U,0xffffffffU,0xfe000000U)
+ #define ALTI_MSK (vector unsigned int)(DSFMT_MSK32_1, \
+ DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else /* For OTHER OSs(Linux?) */
+ #define ALTI_SL1 {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
+ #define ALTI_SL1_PERM \
+ {3,4,5,6,7,29,29,29,11,12,13,14,15,0,1,2}
+ #define ALTI_SL1_MSK \
+ {0xffffffffU,0xfe000000U,0xffffffffU,0xfe000000U}
+ #define ALTI_MSK \
+ {DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS521_H */
diff --git a/apps/medlda_release/dSFMT/dSFMT-params86243.h b/apps/medlda_release/dSFMT/dSFMT-params86243.h
new file mode 100644
index 0000000..ca1a5fb
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT-params86243.h
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS86243_H
+#define DSFMT_PARAMS86243_H
+
+/* #define DSFMT_N 829 */
+/* #define DSFMT_MAXDEGREE 86344 */
+#define DSFMT_POS1 231
+#define DSFMT_SL1 13
+#define DSFMT_MSK1 UINT64_C(0x000ffedff6ffffdf)
+#define DSFMT_MSK2 UINT64_C(0x000ffff7fdffff7e)
+#define DSFMT_MSK32_1 0x000ffedfU
+#define DSFMT_MSK32_2 0xf6ffffdfU
+#define DSFMT_MSK32_3 0x000ffff7U
+#define DSFMT_MSK32_4 0xfdffff7eU
+#define DSFMT_FIX1 UINT64_C(0x1d553e776b975e68)
+#define DSFMT_FIX2 UINT64_C(0x648faadf1416bf91)
+#define DSFMT_PCV1 UINT64_C(0x5f2cd03e2758a373)
+#define DSFMT_PCV2 UINT64_C(0xc0b7eb8410000001)
+#define DSFMT_IDSTR "dSFMT2-86243:231-13:ffedff6ffffdf-ffff7fdffff7e"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__) /* For OSX */
+ #define ALTI_SL1 (vector unsigned char)(5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5)
+ #define ALTI_SL1_PERM \
+ (vector unsigned char)(1,2,3,4,5,6,7,31,9,10,11,12,13,14,15,0)
+ #define ALTI_SL1_MSK \
+ (vector unsigned int)(0xffffffffU,0xffffe000U,0xffffffffU,0xffffe000U)
+ #define ALTI_MSK (vector unsigned int)(DSFMT_MSK32_1, \
+ DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else /* For OTHER OSs(Linux?) */
+ #define ALTI_SL1 {5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5}
+ #define ALTI_SL1_PERM \
+ {1,2,3,4,5,6,7,31,9,10,11,12,13,14,15,0}
+ #define ALTI_SL1_MSK \
+ {0xffffffffU,0xffffe000U,0xffffffffU,0xffffe000U}
+ #define ALTI_MSK \
+ {DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS86243_H */
diff --git a/apps/medlda_release/dSFMT/dSFMT.11213.out.txt b/apps/medlda_release/dSFMT/dSFMT.11213.out.txt
new file mode 100644
index 0000000..61c4aa5
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT.11213.out.txt
@@ -0,0 +1,583 @@
+dSFMT2-11213:37-19:ffffffdf7fffd-dfffffff6bfff
+init_gen_rand(0) generated randoms [1, 2)
+1.181503558381645 1.731043322943541 1.039986179500985 1.586303905746746
+1.918899855723876 1.440493331081931 1.468391025018997 1.259058360242485
+1.839408810938974 1.996420751003233 1.846963144067767 1.963803534587744
+1.445499501417834 1.483052904846139 1.557763578951618 1.244952423899054
+1.224065364994470 1.156433830240398 1.818558649090364 1.315884741216990
+1.245731114100397 1.634542412135809 1.849194220973292 1.096982813334918
+1.308572615373784 1.689109028874307 1.716796530518651 1.533939061193447
+1.187665847440886 1.684638247947751 1.318375099380660 1.195515752610457
+1.379377673646172 1.530359684929592 1.672110577260798 1.057347765025508
+1.598203304465811 1.547760851680276 1.155030548867774 1.163455314171708
+1.686588701729889 1.467131528042580 1.910994537635679 1.801062698343150
+1.451244021433757 1.474429051886449 1.024295833598315 1.049567410247291
+1.838576436352897 1.029176415288787 1.969845915529520 1.353649254480166
+1.642198012280466 1.555260790070737 1.792704375048717 1.203735306300650
+1.722396082575852 1.906942608752719 1.766642460818205 1.337349940530977
+1.259646190345589 1.152813095855988 1.013025695110487 1.739703070588015
+1.665419509272552 1.778813848638816 1.136187530449853 1.225929339438576
+1.161324255892987 1.350051462017561 1.175119206487224 1.727361484344104
+1.317428745170620 1.382736911436513 1.226254527365948 1.794644575745935
+1.001301922418113 1.332307176657034 1.840328417475729 1.364440213157420
+1.345168857950589 1.384954515757991 1.524665990673269 1.239781870435794
+1.926948501084251 1.850706878375081 1.677740550231558 1.796221876541070
+1.317852601122407 1.406237654174799 1.063975167467764 1.748483980141748
+1.880209456676840 1.267684057777090 1.755542301912846 1.880497906684009
+1.835323044659132 1.441479294190250 1.194004863900302 1.598428394301880
+1.223299115837286 1.244032385809483 1.433255649065323 1.826641078627535
+1.764331975526857 1.323533455693433 1.324018461203187 1.028468600870397
+1.460274579299640 1.483505377200212 1.751714349625352 1.079491545546282
+1.381596356944625 1.005133976509243 1.413468729132887 1.337706313385278
+1.891925256409311 1.342272118229895 1.163447427831138 1.334324193443303
+1.411791088314896 1.651848865335494 1.675229052031225 1.446350996494761
+1.266622124443599 1.958729944890093 1.503419949299578 1.760682833125807
+1.259580196582578 1.076485721116899 1.293906699030576 1.139833348831599
+1.825729271013771 1.587766638363904 1.489976012364503 1.877252905574033
+1.854937382231196 1.733666846060390 1.852758618966330 1.919561368722841
+1.055965417742630 1.361521080982244 1.933579826037271 1.757404604768589
+1.285914087262030 1.187548281883414 1.566783263570936 1.682256446231821
+1.380155154968773 1.307397198151446 1.494087262804365 1.072469326658690
+1.382326089970463 1.292177437679956 1.351278322027925 1.634423439855476
+1.936199876161483 1.119463834340734 1.352945170186627 1.880686034025406
+1.530558314756718 1.708792254834220 1.266908738965653 1.788002531450933
+1.948652114532444 1.757804010641673 1.762456645842164 1.097495269496033
+1.147163749984733 1.576297570824489 1.300325703789508 1.874691144281150
+1.515744739948639 1.345955717292370 1.942681909563451 1.035247578272609
+1.283514135318420 1.314807854232039 1.573322682766725 1.574513774595243
+1.828044573260458 1.712713601027344 1.590726762824644 1.563969138328007
+1.386694795178386 1.522721710964341 1.275713855337409 1.731108683097704
+1.591465887155933 1.513340723963096 1.176801225703059 1.434536351340476
+1.578784855419878 1.301629776104429 1.929926785855622 1.289570728672952
+1.205977720202379 1.003689842045578 1.889008830631370 1.883163232215121
+1.645174992553137 1.252590697312637 1.774495117411565 1.382738491506675
+1.491125536217037 1.912093075248525 1.527519170184104 1.327173264499113
+1.144584409700572 1.261102147402312 1.858761772369285 1.429108301186990
+1.761814622390048 1.240286164631683 1.682233062136794 1.282781911274615
+1.182382109347646 1.692078187148138 1.590771681380315 1.718020109821122
+1.735395393053722 1.293082053131155 1.236726685913177 1.497331614096738
+1.161825786902307 1.182135240069986 1.151823679620760 1.974199765683906
+1.186211880561942 1.259680067543851 1.289615436454359 1.201377177401489
+1.377979874313116 1.862166574208142 1.839943407025350 1.090909260920215
+1.835051576578182 1.822372542722485 1.842026425409695 1.820764561083671
+1.182933498141570 1.994836781207340 1.775764911443317 1.459459906461581
+1.339668169733238 1.080626788036703 1.632904690364891 1.524266035157262
+1.452823572468255 1.741072052260028 1.015878940755996 1.441355605579825
+1.172464969079888 1.891898963022321 1.068862948520859 1.638586767257465
+1.437563075634224 1.832523638912209 1.793423504634927 1.437189116763254
+1.932217889837171 1.557401446279349 1.957278824200991 1.679449367445786
+1.727388312076874 1.215994321965333 1.343482301096508 1.965723459265464
+1.174365917960160 1.412334183268146 1.005808153073694 1.332246122276253
+1.421552830903774 1.736383216317563 1.774163868709055 1.942877594535564
+1.300172005436256 1.060438672058037 1.059256482195244 1.895743380019139
+1.797653012102767 1.451687344906899 1.910186385920250 1.375719431566697
+1.527055212747842 1.735046181518860 1.337101077757136 1.875727585017108
+1.262662767460110 1.164020733791884 1.246727123936263 1.870102088442595
+1.379350104320065 1.431222410496233 1.852824076519811 1.677890028040941
+1.468210666056291 1.964820224053944 1.710393577649966 1.588623012734641
+1.739774585091649 1.783816340646615 1.949915051334890 1.387969543681920
+1.938125377226224 1.711976480766437 1.258044767385399 1.213739349289792
+1.909320758532006 1.851056766640699 1.194155554195436 1.458931869228858
+1.710478685106064 1.909026672385980 1.928682092297997 1.792912261480649
+1.370842715316247 1.996540397369334 1.368572872261078 1.086483716127140
+1.063497064506867 1.710653991056790 1.159274167483337 1.495720121247915
+1.281488535742257 1.257698858220001 1.045001805310589 1.150219495953609
+1.483117103339906 1.396446731541836 1.365126639966851 1.570682009012462
+1.832935138908101 1.541661309805832 1.168365784253352 1.998779464038371
+1.865933328340024 1.675982766888608 1.945566467837951 1.816517750240827
+1.918112851549434 1.423888084191570 1.973249957101362 1.218807900061746
+1.778576302670792 1.838861767501807 1.482811453018327 1.247679065264969
+1.059985494558663 1.359543126888771 1.588573463727683 1.168635785850446
+1.864423660314076 1.937335427999893 1.741233424826319 1.878809752209550
+1.142191383807907 1.020331382161142 1.542417783874726 1.479432386201224
+1.295027716936634 1.574320474094031 1.698391908121788 1.008814784735669
+1.605606670494446 1.978902823554173 1.129508367936794 1.795605864593855
+1.687795514014363 1.499597935640900 1.765543691414273 1.803689247828165
+1.371870581415714 1.423608871097533 1.874886866622627 1.498411502810737
+1.634867903367269 1.893552044504889 1.357942428548533 1.245639680748877
+1.007115500114161 1.872148089683202 1.796459184004016 1.691775467781512
+1.273623065583289 1.505817378354078 1.779360007972242 1.716262382765402
+1.153128447838379 1.424508953060559 1.073868106848226 1.720692274906701
+1.090850825998094 1.408358116070048 1.167764231371631 1.440219257222023
+1.136485855486126 1.922907112582622 1.321506554307790 1.738086751470465
+1.590185785144894 1.485372323829527 1.116817089419274 1.614909379031230
+1.055506919628596 1.418252447134729 1.553581995230590 1.535748864217699
+1.498073462425985 1.000068433966434 1.267536711295599 1.954327971244934
+1.060575327729286 1.184866661854656 1.960347850369031 1.497536661131017
+1.851128882089508 1.712022620682699 1.565732403720586 1.032566692583970
+1.011542441271677 1.841162319578720 1.239624060966384 1.487548183751440
+1.051657813974962 1.335309733462229 1.688005412664909 1.873252176838071
+1.900481898326293 1.999009884781491 1.395489852035113 1.487243135399694
+1.495781350087353 1.748346824756507 1.976569529681090 1.392092325572655
+1.745043037577616 1.292736078832172 1.495887634366188 1.193698141369718
+1.913162118265308 1.943050409108249 1.930887457259986 1.346751766900472
+1.792420337531875 1.923410580377370 1.228531434393396 1.526176511030744
+1.052759920698847 1.104308787405557 1.195173729820621 1.558811949057789
+1.552965725654474 1.841081975960537 1.766318508256179 1.999225781485728
+1.740364638178412 1.695033467915510 1.916304508477532 1.480891534040302
+1.702759309625764 1.603839303145242 1.042552644637777 1.873062796585744
+1.593528423235622 1.539196873593494 1.128549017814889 1.683165451738909
+1.971268377016313 1.188317555167136 1.135301993575357 1.307152875684140
+1.432859111116679 1.604469859568026 1.902115025323774 1.097009868443398
+1.040048912786590 1.154280079077426 1.461614401375923 1.840754900633352
+1.595019467801959 1.223723777683929 1.631724639415629 1.577812058125785
+1.657187386744480 1.437259771395318 1.266334187803773 1.463994426667643
+1.870412486317102 1.258746328552743 1.673199849922752 1.844975346747609
+1.860975727461148 1.010560700742734 1.679689978230894 1.124425239385680
+1.670270180352561 1.246668793518991 1.918107311898546 1.357327783461837
+1.293935220856253 1.060107099217680 1.563382346816788 1.504896628917475
+1.071151629572175 1.468083055708820 1.868304191997799 1.821227503483460
+1.494905362238815 1.274150948606291 1.532265904060086 1.982325816702449
+1.987915857624636 1.151789329279206 1.441547783615874 1.147109896259745
+1.531999520849226 1.466013854343980 1.899994640482806 1.445849793263175
+1.679911724092598 1.238521076123820 1.315831093451211 1.586847042010717
+1.552237747421042 1.608119054681591 1.293257491508930 1.551402938221331
+1.362717345162958 1.854980007148888 1.681986481943653 1.107645384336926
+1.096868501891902 1.947214841516233 1.954485171427159 1.369969854054149
+1.223679497487524 1.983911941848973 1.444780398551704 1.356171850666962
+1.524583400834895 1.003506914656116 1.395200297754132 1.216429510454021
+1.104797104328485 1.573552149337030 1.450165926095062 1.184533610001212
+1.700492686084003 1.096017027560388 1.289507281943301 1.579306039546438
+1.628232017447720 1.803035235898273 1.929133833140088 1.063774698807801
+1.683777636354742 1.421365520062687 1.928216406411577 1.882983072025202
+1.343699388208914 1.632042556178419 1.297994688230140 1.894713903641935
+1.941797150759211 1.771421308830279 1.378652878010419 1.595450712976290
+1.884810430381372 1.950925424095815 1.179458279026501 1.322905416500271
+1.404934870266585 1.317648756980719 1.533522388570792 1.946219034868249
+1.113010182883403 1.232713248947698 1.247485018218063 1.052054701858568
+1.434506581119268 1.205352012792289 1.878315141320544 1.799970878951545
+1.883223934139542 1.792664629574468 1.725698839714880 1.645087613761266
+1.229396201906297 1.432777560795800 1.415898999496500 1.802413919608077
+1.723045954371938 1.563726838592009 1.369786889591470 1.522500297234385
+1.378999448975029 1.627005621970901 1.255335994810902 1.412531015745466
+1.957268559296287 1.317304446858156 1.012771977138850 1.180109146860733
+1.344517599753446 1.929175190484497 1.020402690001379 1.535202268650391
+1.357787540902572 1.615009812044269 1.512028051315352 1.729641548131623
+1.491721712316848 1.263812651335640 1.979510138768775 1.033479771906778
+1.774132184010759 1.958308734768764 1.927127376360521 1.030115651497741
+1.725653566631833 1.624464694823342 1.747609094630888 1.049046816732421
+1.265434810494546 1.213013148711189 1.675411225732459 1.647401058370579
+1.466454171870760 1.345366562646625 1.171259026587475 1.886285217057224
+1.824247026682402 1.479159590121498 1.803613011251899 1.102711745823651
+1.053438259836287 1.010950682137806 1.602615132817294 1.819362787487701
+1.729190336504770 1.211191391343746 1.419148118234875 1.872840714256227
+1.560999254480611 1.374061928956099 1.927574952719505 1.054921828882362
+1.027766713481264 1.952846054759756 1.763125583749713 1.768284636504022
+1.574857514856373 1.561982886830468 1.508438851409326 1.752290486348740
+1.537165093320193 1.174113532818524 1.522485431456626 1.910697025217521
+1.476429670351683 1.649380408290711 1.373776307923307 1.250240188443934
+1.265122781048196 1.587443621011073 1.843998316920776 1.476829706376551
+1.608462500651470 1.223084327055048 1.052815180199248 1.202878884447441
+1.449878539661503 1.082562150344771 1.451316924846592 1.563459127912533
+1.208050549140839 1.087353008130478 1.941861627607186 1.951998332825734
+1.225751334761776 1.968641413472235 1.163915752381524 1.149161141939927
+1.718497922104754 1.663920120710498 1.951975086236624 1.923671732354622
+1.449407320673145 1.573908988181626 1.194286869451023 1.637213382217403
+1.212233402808761 1.316934086687012 1.015925122713518 1.430230279493348
+1.616999469045566 1.827272189379700 1.132016991233676 1.164190956905208
+1.131528076722149 1.676737940975225 1.897276052260467 1.334152567461919
+1.812559713892204 1.343609024562606 1.716151677164890 1.029837339068326
+1.501637058776154 1.410003039243300 1.331577121444439 1.194174515595873
+1.243629821490265 1.560662792831219 1.962896353591382 1.931351707770461
+1.196470087370902 1.748860143698989 1.528580603510954 1.146992689593898
+1.279364471603390 1.679286131612653 1.450241097063424 1.501436942218311
+1.936282431784813 1.798513509336138 1.690060061284775 1.375826522687418
+1.058885079560250 1.094131798936223 1.096062172025912 1.329352382705695
+1.324576611788268 1.426843125842506 1.658771215239343 1.389633520632553
+1.756902833917981 1.573797316437742 1.323289672008800 1.240150310584660
+1.085841477050925 1.148415458671991 1.889503453428388 1.508940148035350
+1.785092478737281 1.678889527496645 1.770073480714495 1.270039073482222
+1.566938004414428 1.417156167931044 1.891881943184546 1.051841827872934
+1.415019603668056 1.564586608003412 1.274464610301014 1.113305241830556
+1.662721961482179 1.194593779689558 1.449860456962831 1.203094646925522
+1.029497648197001 1.457617525963223 1.030478571058842 1.470177155752817
+1.417647173018495 1.576700769630268 1.835416207378034 1.145318001820275
+1.507443236818029 1.193284663003559 1.061945677779735 1.997644656108541
+1.643096967025396 1.747932456654357 1.107225710120198 1.200388646500610
+1.525348722102778 1.859644456096009 1.281997845625517 1.250222979441608
+1.559222149794032 1.456608818014885 1.462781140342281 1.417055091499522
+1.266965914893395 1.332954773131522 1.186593290201902 1.941489076478192
+1.843345058033458 1.583905413935047 1.627965732174268 1.053200740136957
+1.842283161362918 1.218780248968700 1.547442982938818 1.886519687832889
+1.642442099342137 1.325210617127866 1.303652990431358 1.959787069764233
+1.797730252026976 1.060537391706403 1.576473739630614 1.432999186906889
+1.619583734403876 1.720618261542154 1.672782959090950 1.788191721997175
+1.181387037335470 1.449178702350343 1.978957033613830 1.272969136925908
+1.069090003038617 1.008011599103090 1.316984052845846 1.211876542434489
+1.189814607669329 1.887340391435525 1.648720144578025 1.170565739005902
+1.338397139832991 1.181496107186798 1.618965762122573 1.083199036547957
+1.279879472648966 1.219659323557586 1.975935000172014 1.796349639042017
+1.702470542994085 1.150458657449774 1.152658642493854 1.662376207363902
+1.569104098443184 1.722406015726289 1.158776707263796 1.735981664356332
+1.807387233736359 1.841972130597270 1.627097373499739 1.879195410673363
+1.152248940317155 1.186953835972758 1.544497604335182 1.819279577118026
+1.081440679895680 1.832670298121551 1.438591595454085 1.287696048076967
+1.551817582295891 1.790190104436298 1.683597815106577 1.640321955595819
+1.856164910472809 1.090073083170263 1.660370312240508 1.639292264818144
+1.477071156066173 1.148228001308301 1.959966376725195 1.367315626997250
+1.616042910194762 1.722334152008518 1.784020256853025 1.901492583478227
+1.359281943135394 1.930982170834824 1.319725622141917 1.751292575746979
+1.014018018957752 1.576777840228847 1.920940799347264 1.153967847286490
+1.353177008343702 1.800724731418156 1.044363495981520 1.158311521524589
+1.367300208315735 1.398684902861273 1.751744610466050 1.042906821915733
+1.271298910885637 1.111702990806544 1.378206663969781 1.473900954171194
+1.717273441585982 1.758041466075696 1.912675041634035 1.313300987778383
+1.311010085524843 1.080859710541704 1.956633799774623 1.492216480447057
+1.139387837023949 1.830769028489396 1.152982726742772 1.050710980239586
+1.109499952103088 1.719259022447802 1.973661948275105 1.819875723753659
+1.302691890957645 1.505860064613989 1.991877120371915 1.670744862285917
+1.610561885533104 1.066493537125372 1.878650051478877 1.118264644216180
+1.619211002960427 1.837662578933141 1.044791455789490 1.134760856218956
+1.299213486860270 1.145356946212000 1.865403570967645 1.254193806492637
+1.300394294075782 1.997150662755587 1.794412853860132 1.254931287429104
+1.707805323885901 1.538602282826548 1.577984889354721 1.042987635914299
+1.564038600674961 1.392389366825887 1.327640079223352 1.768366043911442
+1.897984223790475 1.290134904471313 1.138322133693787 1.537890667670148
+1.127234628434044 1.075399604334112 1.450575709463583 1.971989849261632
+1.125622091677718 1.043653494592289 1.519998264058048 1.392495756866560
+1.241461415272052 1.815214102311230 1.328633123760259 1.379566481682548
+1.837588901821663 1.479221453471263 1.406009833593042 1.788088163446038
+1.882690588537149 1.326036949639496 1.014856361490488 1.531818122034700
+1.259776328236883 1.628786492594881 1.900907143216087 1.399030569078722
+1.690628780115286 1.649563170632522 1.309918757629376 1.622342121199376
+1.163555877607187 1.588202672121352 1.417072632098665 1.592037263011384
+1.024019307094300 1.118164400363435 1.690402643086179 1.330774773667029
+1.391344554823132 1.890955327159098 1.196870350018152 1.535489758396616
+1.818625413085171 1.455481052211494 1.744628084012586 1.681400233675138
+1.019653664426986 1.842544483662391 1.483538454245493 1.311562200611514
+1.419852324325226 1.900582512746614 1.417866584129346 1.164385425771965
+1.902450071305102 1.377187111358117 1.989480172330361 1.375368501478232
+1.116390836448992 1.033615117990837 1.381089728973561 1.338210798290339
+1.466208815228885 1.677226418254145 1.954676792590627 1.118677644079673
+1.375764292670719 1.082944211138035 1.527440552380678 1.390923552078622
+init_gen_rand(0) generated randoms [0, 1)
+0.181503558381645 0.731043322943541 0.039986179500985 0.586303905746746
+0.918899855723876 0.440493331081931 0.468391025018997 0.259058360242485
+0.839408810938974 0.996420751003233 0.846963144067767 0.963803534587744
+init_gen_rand(1) generated randoms (0, 1]
+0.963684745154333 0.571016340205011 0.362082402236948 0.305665917354580
+0.102070317160527 0.403628052066152 0.513761331194790 0.473026425576278
+0.123684867263456 0.525282305477042 0.946619948271145 0.047869079429478
+init_gen_rand(2) generated randoms (0, 1)
+0.137049000173775 0.284220403145830 0.575114701527820 0.594856071012208
+0.437047378834815 0.976394699879323 0.655991175454351 0.763642835655244
+0.000441891080732 0.746223655157404 0.893073981410607 0.276879212662776
+init_gen_rand(3) generated randoms [1, 2)
+1.498908717922097 1.996180804385135 1.751259447023341 1.049159620877016
+1.087943949836268 1.968563014915355 1.291535597857181 1.805821453753079
+1.933237976926628 1.729762902669877 1.008606516267365 1.314218062844122
+init_gen_rand(4) generated randoms [0, 1)
+0.468691303912138 0.027314035537382 0.832781188175840 0.788285376418242
+0.657191631603973 0.191936433141470 0.586377277752353 0.633547163048286
+0.805904348442297 0.752245318309351 0.618248736787129 0.225332749360476
+init_gen_rand(5) generated randoms (0, 1]
+0.724679842853917 0.562259855400062 0.665918059898257 0.698340169569271
+0.366131419228391 0.654484201445447 0.516754542591891 0.793145813620681
+0.155173546454173 0.876408204767132 0.157724418133396 0.733108319608067
+init_gen_rand(6) generated randoms (0, 1)
+0.166467877031225 0.700555438204047 0.780222245369658 0.728022885908251
+0.009768788375504 0.456580882600894 0.050473225346549 0.629061686159083
+0.369031109721613 0.717734673698406 0.686074482232103 0.882134455762938
+init_gen_rand(7) generated randoms [1, 2)
+1.798430643737222 1.516774142609298 1.503684013420146 1.497493250268048
+1.137969718944356 1.096621888782349 1.750074707870874 1.704027223271664
+1.770628129940419 1.719275728746921 1.222876183395513 1.240203448208029
+init_gen_rand(8) generated randoms [0, 1)
+0.145594417641605 0.656715012492086 0.882185523874741 0.226020947041445
+0.590380323922954 0.983462923117057 0.469529987627192 0.231611645781400
+0.973616370300120 0.324802877524021 0.549630434253938 0.570100596264959
+init_gen_rand(9) generated randoms (0, 1]
+0.943694671600654 0.773663270099821 0.242490632056324 0.821945441236990
+0.332031757624848 0.919053179470680 0.376844827396835 0.349418878946262
+0.944147726053727 0.265269894999606 0.600219718576133 0.844877358030171
+init_gen_rand(10) generated randoms (0, 1)
+0.683403460418111 0.343262378501707 0.708413973012067 0.800052307562341
+0.575683916483860 0.533205063872000 0.837524859089275 0.350804458308149
+0.919977921118806 0.991472260425635 0.500855301984413 0.293260706041093
+init_gen_rand(11) generated randoms [1, 2)
+1.314259445265223 1.740199849077772 1.488579427855286 1.377105190256387
+1.720288466431272 1.536122386164422 1.980478726649462 1.661702632293279
+1.945223216730766 1.246075034045997 1.440375922859263 1.705912089477020
+init_gen_rand(12) generated randoms [0, 1)
+0.673314503765025 0.193823272483514 0.254601399999535 0.889990455094058
+0.120720028715510 0.274773918402688 0.230323910161863 0.771903702918926
+0.786409765475613 0.833413983724388 0.519296207220376 0.405056678812545
+init_gen_rand(13) generated randoms (0, 1]
+0.228330703716589 0.083707652845761 0.575000350277484 0.588496558471820
+0.622640405205573 0.625644717036925 0.766380723184564 0.438678639070277
+0.553888390348759 0.865911730246464 0.357472169433473 0.922567467736359
+init_gen_rand(14) generated randoms (0, 1)
+0.125457098903114 0.731177944845271 0.859403502644756 0.507418228697383
+0.221078031321711 0.671504688760071 0.389317221571860 0.381880380998315
+0.187696642782292 0.256589812586356 0.848270717523271 0.843199177502377
+init_gen_rand(15) generated randoms [1, 2)
+1.060539798047399 1.934181709891972 1.237542016566071 1.576081951714868
+1.589287364382687 1.548617620285070 1.809653414804196 1.524096233269848
+1.181680629743948 1.624330442139056 1.810304640667551 1.105338706297052
+init_gen_rand(16) generated randoms [0, 1)
+0.829761691647542 0.802741627292433 0.078346226053278 0.097138031599215
+0.209212082579908 0.471364327218975 0.530504039839123 0.574572482988680
+0.707528517646136 0.457143741639870 0.547916932770332 0.009136005048997
+init_gen_rand(17) generated randoms (0, 1]
+0.079816948824546 0.731931626965978 0.077578823514663 0.024651560015970
+0.630587937830447 0.639902945258729 0.034090174724157 0.607493504949063
+0.756911890539818 0.814853236610657 0.167376573599855 0.516192274865681
+init_gen_rand(18) generated randoms (0, 1)
+0.687527253386543 0.895829860413485 0.380275802190672 0.142368023689720
+0.329743313213155 0.990066728642289 0.472378043181990 0.543612705262237
+0.174288200490540 0.381221152356904 0.192282899844370 0.983193084821066
+init_gen_rand(19) generated randoms [1, 2)
+1.531700092578017 1.697194009111415 1.449251050264404 1.262990988864462
+1.822963332564419 1.507458891377459 1.698077535552422 1.097391065995660
+1.489776962061972 1.524018699781288 1.829834024211206 1.158249381580875
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.206098150187858 1.188748746890072 1.905790177292542 1.197683783679395
+1.581791707731582 1.472658741645999 1.219954195279126 1.314431817240350
+1.892557591486989 1.674182513956407 1.354716893683782 1.845844041376035
+1.826170986556681 1.967780635370779 1.862910750705555 1.389713394565989
+1.135424893818967 1.243226848863541 1.372568674168553 1.838416793915725
+1.012244536944503 1.931569056772462 1.754609079927966 1.620967147520305
+1.391088695717090 1.789722500832279 1.226084228480795 1.266447763415419
+1.968018607993182 1.870208478493540 1.932281824611828 1.723386231694753
+1.730336310862481 1.662669167476448 1.562447478451590 1.891495768900914
+1.249652028351600 1.808146878386367 1.585336869927527 1.996321952745465
+1.113662991918610 1.972612977890216 1.097411657776820 1.693401759056604
+1.759755552764595 1.244567771454269 1.158773815236758 1.556274684963345
+1.233387786791304 1.401710881013521 1.600853369181083 1.322570339034666
+1.734348613477966 1.057887523655255 1.808334479516933 1.003906648628919
+1.846156422092308 1.201498594394011 1.322572087614602 1.105346724586165
+1.343901406159838 1.094259599899319 1.969572703190689 1.780766350397862
+1.073781553196469 1.221980665005475 1.759514652387593 1.166896306200663
+1.898937807520922 1.517554638076569 1.944096436806515 1.353171177269937
+1.200582715941771 1.480632211655166 1.352001453890878 1.508859530717692
+1.660109073880372 1.440192933231079 1.273229503698787 1.571470416168754
+1.126205913788275 1.508441641071031 1.938942188462652 1.042398863913172
+1.796938194639067 1.865362761616441 1.125936825194942 1.867678311398446
+1.277014018518076 1.867466427227929 1.315905683511035 1.840472801640782
+1.951270068703061 1.832471052828448 1.272245081232231 1.860015082291731
+1.760326712466363 1.604847836059428 1.743974741376594 1.739732286705780
+1.407521204887955 1.398525729848922 1.910440883823940 1.943294006175731
+1.715159357497636 1.472638152995086 1.234715064301417 1.982976375806838
+1.942365701093447 1.658469905733718 1.338360914097831 1.067764676519867
+1.315618111944091 1.669097426662497 1.992314255288751 1.728983071251509
+1.995930177434656 1.925023543393769 1.849118341125080 1.283589825276536
+1.734184934697352 1.203814457615683 1.763570979327323 1.448354521087162
+1.734479418284181 1.360565968422691 1.850545173249331 1.466170554299295
+1.054846671527166 1.684326447621684 1.139555445238758 1.565433919506649
+1.577221805053484 1.878093836700687 1.808432303710301 1.459042115223978
+1.698955526022762 1.085528303156545 1.684943160938801 1.552474258002143
+1.949824618504357 1.515423750032027 1.895791162685879 1.238492805758267
+1.187730145586038 1.341069805590332 1.216077662104939 1.988635253234972
+1.248944146285759 1.641916789417921 1.799542369449253 1.363886886814253
+1.800571011934143 1.016610522697922 1.812508696246170 1.768953107137950
+1.098020792883931 1.578725543468319 1.081908945514303 1.082541292432410
+1.549052967548940 1.513949073402544 1.479511433496571 1.061430445272265
+1.983331222853338 1.640386814992549 1.057064936027084 1.842143414924113
+1.243736213533461 1.572947421572330 1.747276033454518 1.799949255760872
+1.469188217093883 1.757986147601496 1.251628956474618 1.969227195572660
+1.686996958676973 1.882856656277639 1.198652972441576 1.538017389506834
+1.877662459622841 1.083079331994161 1.796836190605605 1.330006609783738
+1.184840738426503 1.830756160845865 1.094160776775255 1.205295904230871
+1.543043742180091 1.023909143111772 1.881484595222184 1.248939048162057
+1.084278974136028 1.749884995906287 1.194437664103138 1.550839299069825
+1.469011607344095 1.718342926035642 1.958212359106692 1.069996104748743
+1.281391960817919 1.373513433130191 1.537675022214959 1.651326397329617
+1.577443043169454 1.381043702783772 1.608058108047318 1.571178348510878
+1.166176488411026 1.276188528907560 1.107194743603114 1.143919883043490
+1.447354454384987 1.472029397873889 1.663282491638162 1.798321258101559
+1.785282602848709 1.901979735901869 1.420643053988156 1.261696388889187
+1.077230955150031 1.403631533148167 1.466602559475690 1.825465219771135
+1.034129032300005 1.160709905452303 1.351089697363226 1.215983272139607
+1.790255136266424 1.779003607212979 1.698388703624249 1.471114846691784
+1.238112572387700 1.883794656868969 1.222787340986152 1.440576369822164
+1.281847873823598 1.105830590103899 1.446604887810230 1.438363344267490
+1.159712300229915 1.914509833819552 1.583005626636556 1.221204771144577
+1.527469945835818 1.843786377748764 1.977935291575817 1.881080617500412
+1.894205357782953 1.589982025391002 1.115330803358223 1.733847273211285
+1.630138379121449 1.419718823101398 1.612128168267440 1.436372945065481
+1.199258101262438 1.618966848981142 1.245672482547000 1.448176908039339
+1.040663904906283 1.190975926966735 1.771364618148479 1.021345474844265
+1.475948526305210 1.539497264577944 1.407768352687727 1.409642207054106
+1.140965233776068 1.903394474726890 1.974166517780065 1.047889587608426
+1.033028880303644 1.660677146591904 1.803257164853285 1.741404028278575
+1.859828320939215 1.139272751993761 1.393366393106486 1.845885657470626
+1.208637615898797 1.919582473747562 1.667050155024869 1.251198684687163
+1.194039823921933 1.001700951819137 1.640333380858645 1.533814224886507
+1.074914167614971 1.149843855463874 1.906608304961358 1.406238248126967
+1.025156869886204 1.704312448087065 1.467315363553278 1.790711316640123
+1.743251556460893 1.820427456878515 1.661607262316074 1.655574330968695
+1.974013792098274 1.094458443211566 1.850591214954622 1.510588367639067
+1.031781209293696 1.365025785845450 1.203747925262221 1.256156676336090
+1.549737970585663 1.424425139789950 1.821982427537492 1.247323555152168
+1.838853187228910 1.334209188438461 1.686272915239702 1.410458366939275
+1.773005478447520 1.333405014266176 1.787375208718708 1.915399629170453
+1.346218286599326 1.458445697435651 1.639851530542053 1.250664709701149
+1.903299832297467 1.041602788847649 1.199613287285723 1.738105402020526
+1.787825537260173 1.194119557139454 1.776408222721942 1.719865039169448
+1.415585951146063 1.859359656043870 1.666197232453683 1.502863549960196
+1.697573839923012 1.823973477850098 1.989853966391558 1.489356007564295
+1.170746149053088 1.963908666613808 1.702854482022602 1.823424940758064
+1.497141695228026 1.703654170322410 1.347149081889174 1.108706701346733
+1.668166540138150 1.602140704605501 1.620120799174946 1.317013344794105
+1.613622674626032 1.266817415878650 1.951148652845395 1.086189034507839
+1.204237601333800 1.484153069455919 1.298221225020113 1.951653070246117
+1.681210007342721 1.607294767965154 1.889756993010324 1.602002298100251
+1.986280305747781 1.317159529948046 1.464999014871213 1.824409387006231
+1.304903718955682 1.847832521108360 1.867799651882217 1.356702024855839
+1.667065039877186 1.013048752129014 1.610202480607149 1.473663373696290
+1.667805529661542 1.159375442486620 1.573768105299062 1.740877422745926
+1.503912594742844 1.077150064170861 1.505256394931882 1.609827284505588
+1.725040072470154 1.679663283207599 1.248453053872796 1.979257957558006
+1.933710822601446 1.003803969356382 1.246400464139800 1.342625052832995
+1.976806661966306 1.766888172271688 1.443308591004728 1.448123388060763
+1.214830076032698 1.055664481259652 1.134236682438523 1.600920823443795
+1.612497749730575 1.050636394668227 1.610555066667091 1.447373790664887
+1.998530012347378 1.867475615725271 1.470529412081768 1.952966318884798
+1.976413143960290 1.056446670343421 1.276814322126345 1.731017579848581
+1.247079268269831 1.659428000761801 1.186312588640912 1.311847449365740
+1.530901017510058 1.887611305757128 1.516713975193009 1.064518675224612
+1.045260662639523 1.433454093148510 1.821154626996843 1.388473401737431
+1.638275066455299 1.472523824391134 1.028419310491620 1.557275503004856
+1.627237925924185 1.455723997186102 1.960089274636415 1.327918993494431
+1.606865113372320 1.902999186363751 1.030820562309331 1.738198459302965
+1.970752799115080 1.523996824021566 1.136752720141866 1.984261312466465
+1.184119262029628 1.823046448178046 1.571985477494981 1.664620900643928
+1.274228351351863 1.410762397715130 1.899506876655597 1.709583647812157
+1.125699712839659 1.408863267398725 1.510865318909742 1.726225694701913
+1.061559797963264 1.399143955245338 1.671747333718323 1.354101583085926
+1.306984416402384 1.112415895046506 1.775267536528846 1.140033052675121
+1.677746994347288 1.393852410187217 1.325244782469692 1.938956172226570
+1.824690066592230 1.385141388495083 1.655518142690639 1.528930989788828
+1.018540931817782 1.055943984123425 1.716270850276942 1.154650217972658
+1.510121263453705 1.418645442674486 1.072148535235532 1.669505326279251
+1.663030495915608 1.654071354163020 1.467573755378029 1.124946525273422
+1.658697852343895 1.933354633434741 1.709111614031382 1.163926086756249
+1.103632036315546 1.388450680589475 1.832727332228545 1.342412249067033
+1.212271089328880 1.562932249504534 1.188929093213154 1.288154967942797
+1.246152638632182 1.949655969746906 1.023323518383518 1.480637440560198
+1.971720870858719 1.346931703317335 1.961350281597400 1.125857352706928
+1.948182620808880 1.591905083622564 1.221863379052723 1.661002115121018
+1.873281366196492 1.374515773992362 1.218309705285446 1.361969575371239
+1.914902314863452 1.597996748924783 1.572656713074583 1.432117710887580
+1.985110004390704 1.491053812394548 1.612742793084103 1.154603854908185
+1.244257824756790 1.843971047425434 1.473536724109727 1.141825251229448
+1.738402991569785 1.818991814103151 1.182030412867348 1.576773648819569
+1.778236846415923 1.425073798891842 1.412061051374121 1.271038291253917
+1.642447146206277 1.417360345840655 1.094117211162557 1.402711753492578
+1.437731842013042 1.940735628646168 1.486238553546232 1.469757321020485
+1.102603642674010 1.539972166271591 1.736149953079355 1.425870091251665
+1.023344485149622 1.396351062714517 1.495658818472190 1.338016068934864
+1.503286446181525 1.955655482362072 1.558310783910785 1.176081136753036
+1.381509663120811 1.000301616381958 1.002673696751501 1.800284842329420
+1.176104904104895 1.164174020741240 1.193427416439175 1.767578717287271
+1.383307444067030 1.262141888344764 1.062594511775824 1.799092154158012
+1.675953202280392 1.725394550208478 1.008718724376817 1.086970818447480
+1.219877816136299 1.923095483712109 1.336224882835378 1.203489552057569
+1.537195219004448 1.431078112775683 1.017200632046281 1.251423411016066
+1.354862170725357 1.875208889307104 1.494756983227655 1.301572550540400
+1.223348273838276 1.787208014784582 1.438119861816791 1.371633007547205
+1.233840153188799 1.194009255714330 1.453097891526349 1.347400117505267
+1.174808150185919 1.231816092273347 1.543299551161774 1.126376920827761
+1.090129804301227 1.698435714009315 1.751583437479439 1.572031459804891
+1.540083121636515 1.493923454418154 1.669852308709289 1.497919766144570
+1.881190846545053 1.287572487525301 1.294109240905186 1.010092576743366
+1.704827612657747 1.265946989978130 1.572738939797465 1.018355617196248
+1.401591850406782 1.031782928792309 1.383577670940695 1.956807449489721
+1.577068164092262 1.045037143954675 1.662865845844876 1.243799175822043
+1.947490990100281 1.998545517513242 1.621317454803624 1.552903214469952
+1.544238603315530 1.232795580330582 1.451254354147565 1.197894570234395
+1.022007787744245 1.564743115091007 1.003433865894958 1.386299105104410
+1.087872618084642 1.308569368335819 1.106620687363485 1.387987059758730
+1.713611443947233 1.601609785996697 1.899691244442171 1.598645775913561
+1.993338785720140 1.118233048358658 1.399891035325345 1.897588439732057
+1.576551384128024 1.089588525321154 1.690758702284689 1.049725109406927
+1.969102999670383 1.326539992381202 1.883400661185932 1.003548259435157
+1.427476489622558 1.116458763880323 1.356888766452469 1.387682536377998
+1.720300095989101 1.258566685765963 1.069224041237022 1.405131092867057
+1.684345895771991 1.023493557502005 1.474822799307986 1.035155451152851
+1.280516520142202 1.044984069905958 1.663767808747133 1.459515912447439
+1.523917602216071 1.612061931088363 1.929323649835787 1.601056744006904
+1.124174042355388 1.273851811240733 1.814477316834847 1.391544230410400
+1.997429471550456 1.792440617562135 1.185678296866946 1.341483066845865
+1.730365980760854 1.300505538736069 1.039007807138743 1.176305721270169
+1.919337790073066 1.758044226588710 1.300826234023255 1.812402114196227
+1.479352946492317 1.826096007517704 1.114995891165083 1.167780763821701
+1.704384558987050 1.588643560668957 1.051303215681821 1.169546614127677
+1.324682912731836 1.571477373711097 1.571075108952108 1.146383891980041
+1.208883693322497 1.084194427667732 1.597766549887608 1.758273547900677
+1.570637011288744 1.998857332614147 1.047199649151802 1.667096495407559
+1.590246930415090 1.193476245606482 1.060990256052323 1.946710651602097
+1.762281742887049 1.478349460279756 1.592248338842881 1.971378026128648
+1.154097244638224 1.568159956298438 1.403282132134291 1.497757554429148
+1.865494420597536 1.132963753950434 1.185908941694029 1.739819210432973
+1.684061111050857 1.127013349460139 1.223544917386751 1.580812626930392
+1.100775810183528 1.063105257994467 1.393937536802368 1.622064901100667
+1.808622406558397 1.253360551537903 1.145197252317815 1.006169493417341
+1.819298410587642 1.422150438386007 1.524140727372362 1.572903571806866
+1.085527809853397 1.046382960932468 1.943134691890350 1.283287928065182
+1.780235549375959 1.863961275152995 1.088222663132023 1.208668186151068
+1.995722691182925 1.739432343258851 1.898626012611142 1.029541706523636
+1.142271326372081 1.058397560112318 1.113374689095462 1.583111613446122
+1.985746070918984 1.295775533974701 1.327710044728412 1.077225927818732
+1.345606870228225 1.041006701420937 1.632976127436982 1.989016264217956
+1.825321588514718 1.928999950595723 1.492502342668272 1.676238456713323
+1.498191858647036 1.100565004434367 1.120378513587810 1.710038871526617
+1.313926209991997 1.348278535133934 1.647267366219046 1.827096107640441
+1.374524309509941 1.533155423766337 1.850326548908113 1.092464433128504
+1.332854598095326 1.153103041774098 1.114185166385642 1.291729755836158
+1.472669590513525 1.766080287740689 1.310864327525133 1.642153483139028
+1.545150480736298 1.061246781775631 1.622389478397432 1.000284702124750
+1.767984679320504 1.048285920082247 1.449923857202384 1.531096878483293
+1.135867571412834 1.445584277320247 1.027051181779893 1.898415935863562
+1.078114169985682 1.618747440874871 1.112680475830920 1.000306247809419
+1.516294249786907 1.289410659032900 1.411085963700354 1.205174604861325
+1.118058143755172 1.149508054425783 1.461481216712609 1.982925232504087
+1.410995445592506 1.784308597810532 1.991171350553786 1.070103499505315
+1.568326469774467 1.103575386240270 1.482663870308413 1.173258305894106
+1.659428439668888 1.300370758298481 1.531172634990592 1.879707196705264
+1.194694459437553 1.497553773674908 1.312479237972609 1.427284998017171
+1.203443402102538 1.351518884788947 1.661847289835853 1.151992623036915
+1.170443985393773 1.269023409241909 1.809122956878956 1.809167802041291
+1.354112336985234 1.876461797403716 1.271276773246668 1.649298271574700
+1.496075019898902 1.892253906657722 1.976431027082492 1.394415264307469
+1.325395703002605 1.674752378571618 1.160487161640089 1.638458532107156
+1.720136015965252 1.367831647307415 1.289707884576535 1.809474100143955
+1.679155536342638 1.371293363929820 1.353385145835665 1.926603906548139
+1.244824431490888 1.577868902888411 1.338486174925716 1.617137119128394
+1.343025900847185 1.203945412199111 1.265982671539985 1.180674980995038
+1.193045422630005 1.623522907155433 1.696624240814208 1.282608928610000
+1.993412448715858 1.903529406735217 1.970635890129493 1.151421402091539
+1.744106195727306 1.902867775871323 1.453814307231057 1.163311914526444
+1.886850393324044 1.803159706769869 1.613134018850731 1.838674275901527
+1.963014694591454 1.397157539843443 1.913452820366557 1.408830419817462
+1.820408053384011 1.977266007758004 1.935477934332976 1.060985294407855
+1.335343407000893 1.323726753561463 1.246891115380125 1.482320984926831
+1.060921391067578 1.318422751431146 1.958970276456729 1.624040251547288
+1.534031791938454 1.985121705921140 1.624149385801174 1.004045155216378
+1.984385239204379 1.663456201945229 1.816978630517690 1.320042234409870
+1.229684717856876 1.655017569986871 1.386431194668962 1.194455894936759
+1.153209777220729 1.086155166515588 1.876565404602320 1.608239653151829
+1.633257995730526 1.987511423499257 1.300806857877256 1.665943448528569
+1.524550080963260 1.251513438432653 1.487035756941710 1.459519699110899
+1.155736332651352 1.554182577780621 1.314509883765835 1.707306596908880
+1.997259303169420 1.209621247326992 1.678217782364604 1.604915739704378
+1.965015117412792 1.072778478439256 1.570192612872940 1.983015308245658
+1.165503088806620 1.501813990019178 1.787227963608649 1.555865070768528
+1.621292512756488 1.326032478377754 1.760178318348328 1.116126187820030
+1.084457945528726 1.847301032767868 1.044665813253637 1.352997153636349
+1.714585680180571 1.529708125463480 1.461069378978392 1.293963544310195
+1.283276139602990 1.345493034128683 1.438828220450840 1.193618842514659
+1.762494122689288 1.003118548926267 1.544192153735318 1.542055528033559
+1.039429203617603 1.786492079347767 1.277820001987822 1.188514482535946
+1.268282728792223 1.387993872456285 1.265242681087439 1.072849314187230
+1.207544401105804 1.568630784835170 1.425791129614700 1.931371392625575
+1.876012826951906 1.913324599187157 1.606333603746001 1.375114555265651
+1.180597513127108 1.894877699174480 1.207553275947068 1.140898441253836
+1.127483792921108 1.345904971620644 1.549835251021446 1.234093378813221
+1.851237930938627 1.765743444026746 1.215271214538165 1.695894287132785
+1.093458018072792 1.545958446808970 1.367703619157273 1.608058619204378
+1.737729327697169 1.371745332357260 1.293411339177172 1.956315835155433
+1.484886741939891 1.691341643340962 1.835982855684937 1.270484186300563
+1.081562765017267 1.947864516577593 1.320206825121111 1.350996159585220
+1.509320131637615 1.157835905435908 1.041200139794050 1.118261578383928
+1.314188638040959 1.896533001944445 1.753423792205019 1.445298349690707
diff --git a/apps/medlda_release/dSFMT/dSFMT.1279.out.txt b/apps/medlda_release/dSFMT/dSFMT.1279.out.txt
new file mode 100644
index 0000000..a7c0781
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT.1279.out.txt
@@ -0,0 +1,583 @@
+dSFMT2-1279:9-19:efff7ffddffee-fbffffff77fff
+init_gen_rand(0) generated randoms [1, 2)
+1.156831223459688 1.953102598919505 1.488013133047359 1.105592242939646
+1.756666504386507 1.690453480633489 1.365624648541421 1.753090951057517
+1.188492820321510 1.316363338748397 1.862503124432107 1.060669621217250
+1.079655348652178 1.753098694159565 1.241247999908893 1.345669684480899
+1.719305024420935 1.843159163987291 1.508015231349763 1.172186550392653
+1.219648475195565 1.924203146904178 1.815070203581003 1.917172564476775
+1.102311538972941 1.878408460002946 1.251644788821400 1.948223870239490
+1.044968458249336 1.105173227127808 1.398897002419337 1.058929203914090
+1.854494940686500 1.634447559829633 1.386042744905196 1.513651387167239
+1.190514158695152 1.210933600700949 1.436049539013006 1.751664448648160
+1.606077847063080 1.211097471630614 1.623685285393927 1.189218395724623
+1.239676236413326 1.526818372471840 1.297549363641707 1.522756144124025
+1.407407609563871 1.239658770743262 1.016650800241065 1.507996669431624
+1.082166236950395 1.592039438453422 1.201921846854314 1.349068197869612
+1.045672954666002 1.497344592793704 1.215486829998352 1.581095758511412
+1.831814855518728 1.914917033907067 1.115460402706716 1.836588528857294
+1.451003423569281 1.529707662356863 1.676283338278528 1.361986562755080
+1.042219216107680 1.827213009231513 1.822125284189564 1.383212188216497
+1.652193821444073 1.901955559670723 1.944834835148568 1.205009005944989
+1.990578597939247 1.409077349219510 1.244306609013208 1.530734993748317
+1.799076758531754 1.311473225620770 1.633545645026178 1.342543707921812
+1.400196635441060 1.161646319952320 1.720807327063207 1.090973221593006
+1.317569412361829 1.717788578418093 1.179285731772834 1.864400740597226
+1.979333096473101 1.895249815167755 1.408974344048483 1.148198186119606
+1.341037447969234 1.338395189692571 1.145539667894221 1.288054807402476
+1.304130583561173 1.513870592761358 1.661597871765747 1.638232027527948
+1.308110576438791 1.960051333425258 1.738612178945028 1.006034979044443
+1.825876403063155 1.042021808095839 1.439305670187313 1.839528880455942
+1.212624167964505 1.668640062637432 1.616953276327668 1.458294966374252
+1.592572412151134 1.382200046939877 1.126973005414268 1.404813484316637
+1.680906950115441 1.784949403094847 1.106969745704120 1.628848605150703
+1.791966694744996 1.529716964436896 1.942205004776965 1.913772737533591
+1.965683523354432 1.249041237631133 1.639834288160186 1.132186836865816
+1.756844257815402 1.255140489943370 1.936981291857693 1.640122899037182
+1.545448699644884 1.914117127472573 1.278930954192835 1.165264344216890
+1.377486021307755 1.087975482636387 1.371889954529951 1.238873830137439
+1.468229016586038 1.974340253470751 1.573998497405239 1.045127222389102
+1.331445640166013 1.285518301234608 1.651860223644249 1.312560309483186
+1.488881905966896 1.010717355333711 1.053822454284211 1.783708983029679
+1.036658291400169 1.793932684575095 1.088581385804463 1.497540145828497
+1.825168722677575 1.835765906644812 1.941325055731064 1.808231064678380
+1.500762582946683 1.191682504125067 1.478299381124465 1.176832052263767
+1.097629643266871 1.573802763722521 1.517183903012012 1.856937225785671
+1.180326407985140 1.119252123060017 1.674857568408385 1.308362170347256
+1.010501475541791 1.742962782209173 1.014088018804621 1.198200454455286
+1.915160185579037 1.595117307361694 1.790068133995175 1.246777541011717
+1.128121499447567 1.130931841532801 1.920274451844516 1.374113760423451
+1.821879058061152 1.171797307486059 1.197822699206938 1.045915548069874
+1.196673338453378 1.389473073666528 1.009400930256879 1.783242393826357
+1.957357459248577 1.285237714196815 1.951415308562339 1.079683515067420
+1.916874342815700 1.974573113714720 1.928864984955398 1.797203872234484
+1.065907265238493 1.513940266086302 1.612781788886007 1.524648492758516
+1.372512792936750 1.050913210879113 1.057306044782054 1.454566999391232
+1.659074908088143 1.113093767807257 1.179262515920685 1.471195525982817
+1.560948754071548 1.228292055471363 1.339894639371263 1.763566698787036
+1.169712710497199 1.200165214904321 1.489238509764560 1.368277402025204
+1.320845330335213 1.092475385598403 1.453391462069052 1.703141147755977
+1.150354822354387 1.683704760539812 1.463479694997500 1.435480761308358
+1.367461911481307 1.669991357338214 1.453088211581979 1.723563064019931
+1.605531400943039 1.265905021579103 1.073664796515274 1.539537943479191
+1.540691948874689 1.923786049476228 1.952857256895252 1.155643953925538
+1.522942082703703 1.195204628421846 1.440909360315107 1.380081635949815
+1.965514829993491 1.163232689815564 1.768509438067885 1.706726552664230
+1.593932366425516 1.710930699006304 1.490491654492058 1.551815677031859
+1.490636596842656 1.944822100631898 1.104943797497265 1.228559377149231
+1.532311987406922 1.804451041438629 1.050674951904306 1.880623965860059
+1.555392236368580 1.885270258714788 1.805581350696180 1.482361927831050
+1.639213769627502 1.860736575482779 1.471878016688956 1.354861820474183
+1.883437163191178 1.068612178242989 1.549561761128394 1.106882825339392
+1.876698426962869 1.401347107609706 1.938147594224835 1.779070431918822
+1.906674855351909 1.986213984334163 1.654789607521931 1.537302009789823
+1.716184524014637 1.938069911657517 1.230571926411827 1.532990464621119
+1.173838896345418 1.897781689081172 1.723838884986917 1.659747102732303
+1.930983705067063 1.557309987091102 1.030165803355181 1.919490223193123
+1.976910576074522 1.496850712446746 1.457540080023718 1.768774221862170
+1.130186121573405 1.841843069790499 1.203905096875537 1.577867557474606
+1.073604192818759 1.634721132076596 1.905217202456042 1.556591712223129
+1.791415686930466 1.768943522338185 1.604423043365542 1.933482097475557
+1.681909848916382 1.941177683682055 1.808301128177719 1.146379213154035
+1.996047329392419 1.743574511954225 1.948971963823737 1.484847600794186
+1.070964951318150 1.668314606087477 1.549915185343077 1.463583559595393
+1.764835492694428 1.738955392672394 1.784846964980701 1.540994029491036
+1.135457939089477 1.110902702421182 1.903874999898078 1.093653409577255
+1.679368996095609 1.554030336492390 1.680305140764203 1.182548658103410
+1.956153597872059 1.468966361523014 1.748207388960998 1.906578474239568
+1.416393517884698 1.463431165460276 1.656366835746428 1.394677080531566
+1.203487400224165 1.279532210085799 1.211044081137151 1.187186590484611
+1.646240291357538 1.878766637818457 1.979328388298826 1.177875200242682
+1.172796444035314 1.951265682835827 1.932521659233660 1.795525100895299
+1.699478603778156 1.137920394381872 1.514982732249643 1.836343151389021
+1.522172042626998 1.010244076434187 1.658687264901935 1.807506184274940
+1.811513111109080 1.584995458393552 1.321970979433013 1.376715235295936
+1.427713459600185 1.296468063018915 1.136418989843409 1.782670444168642
+1.807997411880654 1.595157480492708 1.895398963084628 1.701128480008582
+1.517665144540125 1.336785722060292 1.645815838215375 1.200315603687943
+1.580046973050915 1.431745709778808 1.892439578406656 1.141896309261979
+1.561067845517661 1.315845690604573 1.380657105153170 1.675705868609686
+1.492584626832412 1.776375753128469 1.261659267163982 1.787025035496119
+1.042718875692375 1.284105737608529 1.500018678229466 1.675259979994218
+1.000345268509699 1.141166378706716 1.854410521857349 1.967058588237171
+1.761797362062107 1.651923339958939 1.857272572010084 1.711848628223469
+1.714330998808290 1.158543722698159 1.683025406132535 1.107777564472638
+1.040051186173257 1.917029900405936 1.699087050437494 1.039817661707921
+1.395247475646546 1.810925041572562 1.776447565149311 1.073542240507331
+1.851866054277840 1.454466578800397 1.188963229761846 1.208703290007485
+1.087408104518285 1.457397701223419 1.559493406380787 1.986405037776520
+1.900053127563089 1.297761556586606 1.960280070727791 1.777755319614230
+1.183480012973464 1.370087135233320 1.104934206546861 1.540836406215743
+1.199115356966964 1.258671881577394 1.766928398858050 1.209327154144644
+1.705690304427969 1.005639655689009 1.703215918228357 1.451392357389786
+1.983841251276006 1.606082069221591 1.338157359571741 1.131882917261225
+1.029144836593801 1.169120605432338 1.561545198065166 1.011440153739328
+1.288418100307587 1.958410099267099 1.999862090463807 1.451832410463202
+1.604859378846480 1.801994840996798 1.997119647737463 1.564863621418552
+1.324929902191327 1.878738675518148 1.786618150459407 1.709449198989919
+1.749227917884281 1.182888621288687 1.470956072690871 1.845300497447800
+1.161902015261478 1.832270859237826 1.992818864353968 1.293394692764044
+1.120067081704437 1.662654641894291 1.509948916703458 1.430116986322376
+1.758818975509031 1.827283816303588 1.520683995898051 1.499138470436354
+1.771280158333642 1.724937696949516 1.264536606799893 1.929366540221803
+1.724157189096200 1.160457487867541 1.181554833637712 1.347477670532897
+1.263417373233776 1.708118036258075 1.473342282976962 1.597193330624696
+1.976498822499467 1.587793904794555 1.141298198137007 1.619676445490467
+1.979185878552326 1.628857359666120 1.959435174214784 1.798294545284924
+1.438465236448256 1.459126778067594 1.652845048337102 1.841202313703175
+1.279055498194921 1.742943531305350 1.735906336306816 1.466988699519840
+1.757451789180506 1.205528715185747 1.718877852300294 1.371248213040827
+1.296921322591049 1.148661202296145 1.816039729435041 1.580476569024068
+1.468299675968722 1.601723324324593 1.895882936966790 1.041532819561606
+1.462095363072948 1.505875773532547 1.617880938156393 1.239455796993716
+1.769387076392791 1.980911130747113 1.929970387278306 1.292675091153095
+1.858561853677307 1.554630713775607 1.124763021650272 1.266980781700181
+1.515640755219148 1.960551448330238 1.940428366897102 1.276271819988583
+1.226264054242100 1.285803043191038 1.839953894814995 1.907666334361365
+1.880072649539257 1.979182861064231 1.838455013739228 1.779242654955882
+1.670998889357935 1.336252527181265 1.064417517195582 1.807185488634110
+1.179768650122665 1.842477065145519 1.602866820956490 1.459606993361504
+1.935008080117779 1.847946352592725 1.029292256709911 1.923983426517378
+1.108158909176367 1.942577006293535 1.386917761143318 1.543602240525929
+1.871146815961502 1.404592162945529 1.297988548171994 1.073992121486653
+1.147229581933886 1.447984203660208 1.756281686160205 1.247922789618099
+1.443610609333816 1.785367647571114 1.216749649747209 1.199166610535386
+1.563103885288706 1.049280313412735 1.655613223192582 1.698775362844507
+1.497697237317649 1.830160931820977 1.188121834323510 1.853439750203814
+1.952301590558388 1.512427126054576 1.472965425327314 1.231551810649639
+1.584047633197812 1.039503062168514 1.903494583436149 1.552309941650418
+1.837096818804315 1.609158085773776 1.444395639807581 1.444131185213436
+1.651842581599900 1.884674776479383 1.974614821915374 1.384839166461168
+1.836175302229679 1.469177746233650 1.049072223135564 1.812133973147964
+1.699334616995487 1.284307249902071 1.524733190129284 1.868117692363352
+1.041741172889964 1.183445433667536 1.656309292534560 1.062359972867902
+1.850427040669602 1.541595195856654 1.791360911347246 1.971280898284064
+1.271644696368681 1.469850797527078 1.147292724823231 1.810894783098288
+1.832446720209921 1.227295497750877 1.866445869287879 1.013946718008323
+1.898902033062568 1.934014306935914 1.028642189436153 1.507769359928255
+1.019484845534266 1.617114664162243 1.033137303324840 1.009366810093216
+1.295242881900676 1.278946203956140 1.980352776252072 1.707426376894515
+1.090663518536785 1.788829723461106 1.417872285141475 1.346290387106084
+1.117321623318257 1.827744655304627 1.569661255668497 1.856990122132496
+1.141888659898091 1.754480755572393 1.799533979534302 1.027486646479050
+1.830671400605411 1.652512239653667 1.232874247335748 1.973583030300139
+1.888629503665612 1.146538391032964 1.836989291767818 1.613078540895394
+1.294576564530330 1.003551004952085 1.557974730893430 1.851898637686015
+1.435819622505834 1.885835757736636 1.398068405968634 1.250609924600826
+1.837479370618849 1.960425438525779 1.884651988942438 1.697573248470120
+1.379421715315408 1.130556502944913 1.189528040848981 1.770429631916263
+1.004383242567405 1.770904372068914 1.920003213151083 1.589876651157004
+1.919048469580962 1.619890036320521 1.216666606179940 1.300732764418040
+1.758764742270067 1.815272367759942 1.636428904922050 1.832020420381234
+1.132918517090834 1.047344904180108 1.093784023323014 1.188027776763255
+1.769880186651337 1.398941491899040 1.158049566238435 1.779688822271047
+1.519554198573789 1.315924392990979 1.832177453916713 1.831577850448904
+1.154135819652193 1.413778661471850 1.601810940431294 1.580227532498345
+1.071621710209999 1.830225298367331 1.904739827439006 1.702987363005402
+1.257623024402392 1.208453981937076 1.097379342006390 1.857201311205082
+1.494866724173578 1.194191851175385 1.276460314496163 1.372559583476487
+1.749257357696145 1.902029624528757 1.284895195945893 1.302443489928255
+1.969993834217031 1.493817908817935 1.110080631194031 1.134561557471749
+1.058836755799774 1.057130658562627 1.380835677944458 1.745939940612085
+1.032827669668879 1.783125092821049 1.745032542420123 1.015012447005450
+1.626688904238441 1.790414538687683 1.866518306939001 1.067433189212285
+1.958902697722877 1.183084745129312 1.694077672298559 1.430838228766031
+1.699674581449869 1.952961490106078 1.755309809916065 1.034831587429014
+1.183622577469353 1.361473401305092 1.609523789945413 1.565596220623675
+1.920965818846561 1.575492951965185 1.691825007918061 1.636736356243868
+1.715895887980417 1.090958324314315 1.772996525578754 1.167240400550016
+1.923076870813826 1.794331168040257 1.056591202889793 1.482666930397992
+1.719339297722720 1.379750112370842 1.309616473101245 1.363875308917129
+1.048981894158290 1.160188073192987 1.895452555927580 1.379271642131591
+1.949583661541175 1.436974034734224 1.692954273154841 1.529745437816717
+1.382099324203065 1.413222919779780 1.786227025175213 1.500972922386298
+1.989261639044304 1.749153338465531 1.420680671123542 1.753186200086421
+1.781497845073714 1.438109803874597 1.702648467717826 1.781002331003510
+1.156537764567500 1.630422369070252 1.158451346436536 1.808118349329677
+1.495174358112385 1.301934670590789 1.369270445179514 1.542731782899012
+1.915662838882114 1.948625119490314 1.950320814205412 1.099142781006161
+1.819115552905063 1.529203880707994 1.145283854765807 1.344751895034173
+1.636874820082564 1.761311445769347 1.838151012575919 1.436733760105901
+1.680827691032739 1.006191090917144 1.348962934139930 1.521326270581195
+1.486612191597510 1.304352844016017 1.492898723900874 1.574769629791024
+1.079827673754994 1.485286878839163 1.671965783066957 1.597574186889307
+1.111776451984124 1.842152185103984 1.130679920980772 1.131270260236859
+1.278235720848213 1.755350892890302 1.919221506850663 1.221114455110473
+1.294884136159642 1.709662525604445 1.995440504981431 1.102498244147577
+1.165104365059219 1.246917358634977 1.663100638761350 1.762344482594712
+1.738036978372999 1.970558093986147 1.975135038181720 1.089766672836557
+1.194047413826271 1.887440629789578 1.945023992254844 1.662660858380828
+1.012546880662666 1.746422706603348 1.451242160338531 1.971987255617700
+1.517506376764677 1.332873655718375 1.803743956211314 1.269639313709432
+1.255192845012833 1.947158901126266 1.953493329968637 1.616436212586262
+1.487102993790441 1.112453406821629 1.701950502954138 1.798818443273135
+1.241758329595899 1.272450253014750 1.059904849336927 1.632690775130774
+1.906342845163335 1.064880988977679 1.893493738780686 1.587279230164033
+1.642313571993533 1.300961772333085 1.975073005942000 1.739811319514881
+1.093115845170034 1.435698080349287 1.429229589227551 1.055591614760253
+1.923585061967995 1.107767105399799 1.880099819618092 1.562125005616731
+1.957339551981028 1.765155992341599 1.989856228081166 1.809253892939498
+1.430677056755089 1.683615855310932 1.882122537159289 1.309808865040549
+1.383505756335199 1.200584827584022 1.711182235258465 1.764101584403521
+1.969978209495469 1.785486667088914 1.949277273932550 1.832995229702844
+1.667802937751930 1.916074216956237 1.626542752792327 1.667326544820278
+1.604986734605494 1.901517152541234 1.691918439818144 1.323371398608242
+1.827331385059101 1.381811337759627 1.341407798507988 1.722137617481000
+1.093022790250391 1.613860317179025 1.721631619923840 1.538155485060965
+1.346162000863578 1.467198403583808 1.996599781099279 1.359040102226531
+1.461392311526998 1.132491112315587 1.764665072665883 1.476847818335842
+1.743705138763347 1.302312557804937 1.452429601797827 1.721658149878821
+1.064370623998018 1.777442061490693 1.879704790994477 1.624835815121080
+1.139295428705441 1.826415557395320 1.847362285103470 1.079524699124963
+1.152936814782536 1.391344489249948 1.382969831514588 1.755477413385667
+1.756283572499010 1.945246018429232 1.812883563069099 1.167646667422380
+1.601479219050103 1.491262880514107 1.068821425667737 1.651840914271852
+1.796172556333166 1.911789114179145 1.013361525739008 1.655771238041839
+1.745072683908006 1.195893033309421 1.571351116135375 1.228987649255706
+1.803026612083330 1.434045839930020 1.291990496481559 1.619633619348228
+1.575146541348941 1.161900292790780 1.508827320299430 1.887421666240000
+1.091601009260696 1.763320603812615 1.029855213042826 1.012995081140343
+1.258846776326928 1.184211354331455 1.677390757603922 1.733228196781112
+1.394044459121053 1.325516245226029 1.176335737396861 1.792561231950753
+1.008598491393521 1.836482314141504 1.610882632270619 1.690679830923169
+1.837591966255078 1.160128581560267 1.654620893760503 1.616290221473123
+1.753346514672486 1.520722242935765 1.839748199064077 1.321741834993253
+1.187411486332115 1.131827502674687 1.061020167760792 1.643145412931862
+1.766706698145981 1.329259030012106 1.402009332786640 1.076972207326793
+1.413579267005697 1.502723550444540 1.484982646879933 1.670875406510761
+1.245360568168656 1.165380507332637 1.116665339233061 1.194034154425866
+1.545766023947871 1.402597432241319 1.030852556202480 1.708295654279878
+1.013431369944712 1.350541334176504 1.919491760151125 1.967608250605749
+1.785184571073000 1.967815994377165 1.558337591873853 1.474609396390283
+1.996214674294498 1.905553502363882 1.377030530363678 1.335347843539054
+init_gen_rand(0) generated randoms [0, 1)
+0.156831223459688 0.953102598919505 0.488013133047359 0.105592242939646
+0.756666504386507 0.690453480633489 0.365624648541421 0.753090951057517
+0.188492820321510 0.316363338748397 0.862503124432107 0.060669621217250
+init_gen_rand(1) generated randoms (0, 1]
+0.419885517221934 0.810112585108877 0.940236453400972 0.623360474420156
+0.630616293919298 0.212300534719664 0.758834629575185 0.875883062362439
+0.128970203122565 0.517725048970839 0.282344071433076 0.027599994280744
+init_gen_rand(2) generated randoms (0, 1)
+0.089579978452761 0.658108704671168 0.366647599557840 0.230628125941176
+0.368742760048532 0.295514717026912 0.799388611483071 0.845396233345246
+0.990732824244897 0.236521332117139 0.466784235663302 0.837080121670923
+init_gen_rand(3) generated randoms [1, 2)
+1.944705789242260 1.198826816441233 1.789264220413955 1.051800701136341
+1.693443194328767 1.588289742366447 1.348216260205265 1.367549740192885
+1.332701251308635 1.846695132725040 1.037688452208743 1.552307844874915
+init_gen_rand(4) generated randoms [0, 1)
+0.364763168484598 0.148846426776551 0.872329428387068 0.343385782383902
+0.383122366941475 0.390558746496138 0.005591283883566 0.859926560559612
+0.145724364255677 0.834225748319710 0.133152262304825 0.862810035918125
+init_gen_rand(5) generated randoms (0, 1]
+0.599092557469907 0.302813086929101 0.614374673163305 0.665123451363622
+0.690796350145810 0.041741010504964 0.823887165394826 0.842976190718608
+0.769367981663134 0.860840976959229 0.495724637344198 0.230007258352545
+init_gen_rand(6) generated randoms (0, 1)
+0.165051757946821 0.690581886628497 0.736208960344018 0.552508662438028
+0.072350796923901 0.415862912604273 0.504625468507835 0.986912447926083
+0.537917448566223 0.119718663064788 0.918823649781281 0.539804429814354
+init_gen_rand(7) generated randoms [1, 2)
+1.806629058661570 1.356620156492110 1.628455292948148 1.591950778457712
+1.613322405427325 1.904062787866744 1.677662541032122 1.694293074995702
+1.677058200427991 1.058220227060939 1.021023325117410 1.491172968534249
+init_gen_rand(8) generated randoms [0, 1)
+0.664045222410042 0.519485589911291 0.428938515879274 0.187433874251216
+0.380468071528059 0.385008871251893 0.766034128812132 0.913890256547367
+0.995404678384921 0.901667075635926 0.626573153796530 0.484723857332466
+init_gen_rand(9) generated randoms (0, 1]
+0.221135266765194 0.600297133236089 0.803622177245053 0.101906582153485
+0.304794307051574 0.589095604432693 0.042522338645820 0.340459761494362
+0.676947095917853 0.440602727741034 0.029707774803035 0.232513496906324
+init_gen_rand(10) generated randoms (0, 1)
+0.063923425723319 0.696698843092628 0.175240007707153 0.253053694266930
+0.944648897355057 0.390397316932160 0.770115877919974 0.994836197447424
+0.562023760128554 0.677703357963455 0.375459842300269 0.802211026490111
+init_gen_rand(11) generated randoms [1, 2)
+1.330864640767377 1.943461735677700 1.905524708078131 1.078128098866684
+1.868714214381825 1.194980990636967 1.970713522936120 1.897751381318548
+1.581438655548554 1.051817069102332 1.862023841730708 1.493085722188936
+init_gen_rand(12) generated randoms [0, 1)
+0.022722061293032 0.014476914752158 0.122124756939761 0.584301647229114
+0.869463415631740 0.110606917877002 0.193212205568331 0.679598296627050
+0.022740503638442 0.184246950797877 0.804296423523108 0.739781322527131
+init_gen_rand(13) generated randoms (0, 1]
+0.535984342613372 0.457694267735412 0.900698388656309 0.295668930722970
+0.731809260076569 0.596568081442974 0.242172600123957 0.214145052700693
+0.348537097059960 0.596768874288247 0.532006461385099 0.863105268549116
+init_gen_rand(14) generated randoms (0, 1)
+0.601479715434419 0.063401545596355 0.639112794629247 0.155619399060625
+0.168639297660978 0.214600675258439 0.729977971513257 0.918494007234260
+0.701473207908439 0.459302858294487 0.410590573010929 0.660590541698988
+init_gen_rand(15) generated randoms [1, 2)
+1.384391203136248 1.355206507648709 1.727081991734582 1.431011782457996
+1.860763145826088 1.334360991808025 1.605932906911673 1.281072871037458
+1.500355479067111 1.343007103311341 1.873386836163271 1.624902476841801
+init_gen_rand(16) generated randoms [0, 1)
+0.366375648525236 0.623653117083147 0.527965547807329 0.536923729261090
+0.360675435096679 0.579977354525942 0.098889590363603 0.085270015126793
+0.549526703000319 0.660129368139932 0.275955934030721 0.629527778870302
+init_gen_rand(17) generated randoms (0, 1]
+0.571033516685347 0.801561141784205 0.387144018237191 0.462337614240274
+0.183045847505072 0.159160289615046 0.650791916938565 0.775624671176864
+0.998714392233697 0.856441607022886 0.853716019974940 0.701770813671765
+init_gen_rand(18) generated randoms (0, 1)
+0.596187131129228 0.680763242947653 0.987125180268455 0.176533501418735
+0.770606870819017 0.944869463485739 0.808055067469862 0.541339364586326
+0.563121424243466 0.481499658727594 0.778718069808643 0.124570684486376
+init_gen_rand(19) generated randoms [1, 2)
+1.963343696240910 1.705055370779093 1.003619564212299 1.321056693465327
+1.365799237264602 1.962752617148570 1.243807390056933 1.550481876603983
+1.927149285828093 1.083379318451816 1.924904794454879 1.976308349042261
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.172576948108100 1.016530324026134 1.115872658893861 1.331575522171086
+1.023881368758961 1.514728489172135 1.902702203511789 1.301427216149078
+1.300372479211817 1.680793219819937 1.258929783674165 1.288714917459612
+1.641105595348154 1.200999755994626 1.549216880264564 1.936335917342217
+1.515149574696129 1.738974925233382 1.494785902679260 1.115535262925720
+1.014700954669443 1.101368922470177 1.237915889489572 1.583408761641234
+1.302299927800841 1.932581852941830 1.999007450796075 1.378459556343582
+1.621923063736184 1.756230918580267 1.210954925144675 1.159975974633603
+1.531106942343304 1.200201641875145 1.608768410297702 1.363687154142534
+1.115133077738700 1.605316978197068 1.656744148122703 1.435436026186166
+1.111397035822630 1.896552033226138 1.913718649705044 1.944286287856050
+1.276491849061627 1.545493925803933 1.156998948625908 1.150493126355186
+1.057621550724871 1.343493147082714 1.886843100872174 1.970906832483428
+1.997135472589361 1.592652053632663 1.975253145635732 1.323380695386456
+1.697947919247237 1.746828637444213 1.218779487009434 1.761685149269640
+1.381356761320259 1.304449426161052 1.539316270766897 1.844657049785946
+1.667543438752628 1.501525659575470 1.778046444193608 1.144797277684823
+1.527646404421983 1.981839686562697 1.354255832719674 1.795302350053642
+1.256911377648693 1.903740436620551 1.189711313853743 1.653981502940068
+1.696150592414182 1.643579948959543 1.629334231936199 1.506632361692406
+1.545771535150996 1.428090815984604 1.584516572997732 1.690502598798524
+1.170971235094742 1.385637423363984 1.972885119424842 1.541759611145578
+1.415875290303133 1.410306684890914 1.666306009417349 1.649855694352930
+1.078690550064123 1.026398708024463 1.902445630177174 1.940712395004192
+1.742719347226414 1.260052586895806 1.219629652889260 1.006301191787634
+1.411041803562504 1.997193905052715 1.532472345255677 1.318147722374886
+1.801144152308210 1.837727311909844 1.770234540954644 1.171364086644283
+1.127611227065865 1.121005763860806 1.391941474321805 1.621864689870358
+1.474291677080280 1.747732612430724 1.155679202549890 1.897857841967359
+1.649675269130899 1.423894205693351 1.146286387571503 1.910649651351765
+1.747177949755270 1.975716617920535 1.752172448733651 1.075524326801444
+1.668922607299254 1.385094580019626 1.098851952643049 1.340248428249379
+1.810503068113603 1.979141732664828 1.606149777879131 1.793836330985758
+1.398563299933439 1.000450161478666 1.707789980870174 1.714165279356726
+1.836871012382983 1.672319678805194 1.756771010203344 1.938668606138787
+1.404344346949407 1.869466875217024 1.180594897055295 1.946915611391285
+1.814183103400641 1.503575626560171 1.689188999403985 1.333844705555049
+1.789651528953342 1.885804277471215 1.303821947977459 1.731380294662582
+1.176314329736050 1.405050940608111 1.246754267981698 1.521601508504065
+1.597296764380452 1.857205912278700 1.581898133100675 1.448147293987399
+1.079975997935836 1.095624775714471 1.295072373222074 1.029541054443967
+1.416350422087428 1.275467800811574 1.632185594820923 1.415468187530418
+1.384852774278711 1.181660332993600 1.768026076929331 1.078168598935904
+1.752442714308634 1.538886920368595 1.111313005760148 1.843839012047274
+1.955910191921695 1.910914931994077 1.385115239038495 1.523758589597423
+1.068883454045747 1.594374166708486 1.234908259679628 1.605148491109518
+1.892464882353921 1.843473716387380 1.329701775419234 1.476146954067875
+1.758515361654646 1.866132416680839 1.950829777774573 1.175754969411656
+1.156369466727406 1.132227295062327 1.916248929662574 1.805808289595103
+1.856623102749863 1.708794721184679 1.593130555222920 1.189704305261320
+1.506433148293068 1.921474844094136 1.171439592551849 1.772969137048035
+1.616049693761552 1.353450775011675 1.427756076495220 1.230037976990759
+1.428155231921874 1.167503312024862 1.030163470607928 1.838098466216771
+1.978461477831330 1.767381794521528 1.546720442497419 1.133001192972670
+1.715460890685488 1.021323361529654 1.212692462139932 1.050464004750597
+1.357311391349800 1.617760569399808 1.044462415859648 1.781705980120053
+1.709248330707018 1.787154979066566 1.061261774872202 1.388712815668491
+1.159870066597682 1.774920755693078 1.584515450146315 1.328332250969545
+1.562312679443558 1.684077348093935 1.490668451204595 1.371329012790914
+1.713875942992628 1.452512736666419 1.671061704435186 1.354166172506009
+1.533253768736698 1.857395345475969 1.950060973342374 1.514487066525394
+1.525137139076077 1.955674921565144 1.932815519915550 1.344568560100464
+1.726569339996184 1.272718652745272 1.331217699368657 1.582887019763915
+1.505070384505839 1.129581411540526 1.231981468134858 1.500675167834331
+1.661125491085856 1.535687138210588 1.430870135480697 1.047324606931489
+1.133145041879135 1.315376084198841 1.794525858191156 1.347741393803225
+1.059373639318468 1.643514646792671 1.544564054395949 1.360290000487252
+1.026769528991115 1.524972075983116 1.750590387051279 1.250456588590998
+1.360142164370066 1.973902145293277 1.947345088107104 1.319525494691602
+1.256269081460315 1.880116835339806 1.645592143126674 1.841857182954988
+1.654726261990710 1.510408549451959 1.790597152610987 1.563274123486613
+1.986457967906391 1.451448465858893 1.616829803120422 1.589281754336163
+1.252597757648609 1.157653194910631 1.197437486301125 1.555397067408906
+1.263057929061271 1.162139063510344 1.231350827158370 1.958277218672144
+1.833277552924844 1.291349714333284 1.682582709474384 1.299620414461740
+1.961281949435176 1.428156140883764 1.622764352523244 1.043953611840467
+1.199389863814010 1.922104786982600 1.303234897111581 1.059322863367091
+1.112027216800272 1.463170879839423 1.485253962366388 1.205381304939042
+1.946580878382345 1.622236535786513 1.041841967848442 1.373177729211005
+1.940081081065631 1.368021890550889 1.041203270249248 1.391779490090168
+1.217395477208978 1.944932632858380 1.613944363514480 1.716706835237477
+1.744155035022347 1.147874967908461 1.924808837795106 1.628884954432015
+1.394446285479412 1.283164987550765 1.039404801762997 1.939780310123802
+1.901904846002564 1.697905335661045 1.434461464788383 1.105292245948582
+1.733212102742673 1.805135154364260 1.888872448363056 1.281273279810155
+1.333439902278813 1.612911745794393 1.578373042106415 1.400868032718936
+1.824900760665871 1.046300931030738 1.790280086475698 1.164847346206769
+1.201088892926479 1.294757085148148 1.206495827257361 1.094665721997974
+1.202316339805075 1.949966591800658 1.624213466415217 1.507059449662077
+1.383649116662981 1.595387486030278 1.208935058324912 1.272157474528165
+1.242972465664089 1.205087791639442 1.892853109471961 1.435469908544484
+1.941943267431887 1.656754417587090 1.099538902981629 1.486274975801786
+1.419243519465694 1.827439459927812 1.674596988122012 1.450175572119487
+1.635484325940473 1.785770423822138 1.834453030625231 1.412230305304600
+1.495845377384271 1.465655425650399 1.037281956814077 1.934531561283870
+1.084346497191944 1.604008428711886 1.309192113416038 1.823303767276606
+1.812660357111899 1.635282343298365 1.418425149426270 1.518920299499331
+1.088265021785922 1.797580148572528 1.792299263557545 1.391144959174768
+1.558509282354965 1.447591280562962 1.400754850820048 1.537426529263834
+1.283559887767393 1.176931213889749 1.627028826311578 1.882875982750285
+1.928589967427024 1.810776423162010 1.773882010798642 1.168026759162275
+1.645344237720350 1.129251630493785 1.529336315906816 1.354968699814230
+1.813515323876430 1.126100972757840 1.388808368915793 1.044619054091578
+1.181699845039667 1.324205222450623 1.220935838538240 1.018041691116654
+1.470436789568900 1.151387428492044 1.788006177566017 1.499053481145572
+1.777336100983500 1.075707398944346 1.275919219748591 1.264905574975258
+1.600567535264470 1.693207719945319 1.570315115657046 1.693454095236924
+1.336169184910861 1.597107955238138 1.328769454061256 1.988575161569303
+1.293737698754405 1.931230469311272 1.624922406776782 1.120884365498151
+1.981583628791678 1.377409601879654 1.326034239155697 1.257015280202334
+1.402998774317112 1.352281243914778 1.074442144281407 1.037350473989423
+1.528986476710281 1.196626347311546 1.305465897724588 1.970024553378919
+1.685791497035051 1.533182523123722 1.621493628807450 1.460541455891663
+1.032233779571340 1.841047580807577 1.747478469075901 1.842588528935383
+1.049578105729925 1.484083589162618 1.298824743017744 1.898587839757369
+1.397667869445493 1.432002689152302 1.406605014398918 1.757590624918947
+1.221963233714740 1.949479448510395 1.254543364740184 1.398204580115247
+1.837313924088171 1.914989442320626 1.115990306439360 1.157487494676112
+1.485133649377192 1.943860395834792 1.756148810523966 1.783929204367486
+1.470410111982825 1.228882497039841 1.153850669535313 1.456042405902912
+1.237917480932434 1.451802974423803 1.027399353341565 1.392691699565836
+1.698927037863648 1.307963341647731 1.869352047478336 1.778805958462817
+1.058234329787381 1.188872676207463 1.656409231667451 1.274913213312006
+1.879830153683422 1.750110479841439 1.009895656315317 1.678247477035670
+1.925433453995122 1.007647753428400 1.641426212403406 1.136906402938185
+1.045898243848900 1.569210309687761 1.079482232782679 1.329830272136677
+1.950954057339824 1.181022771130607 1.660134167778584 1.637882405977710
+1.241253543853919 1.165065521545102 1.006270723090755 1.925008647712046
+1.519976953692222 1.191344474427371 1.282864624152662 1.787984794608865
+1.326681963770793 1.872945203037260 1.157681885211432 1.864921992448596
+1.587597484930655 1.709149879724770 1.435494029225613 1.446483787118939
+1.815756895068982 1.605704600449896 1.760727177185519 1.283818402503666
+1.505846059583512 1.155098245895755 1.847202882557511 1.419944833751413
+1.185449633072303 1.605835210160456 1.610924449356432 1.505628797141566
+1.105385389327036 1.426733312935739 1.658328032594909 1.014662670485512
+1.954344792157172 1.546346734178455 1.249089529862276 1.985128827925728
+1.538475469614111 1.133609772089122 1.205240636422401 1.728955072714112
+1.963365242036241 1.274228121293758 1.890396151910935 1.971644967147545
+1.750317388689817 1.605881464932261 1.368565385246198 1.428645970614294
+1.079406627489317 1.412361178447795 1.904549385479237 1.619378198444456
+1.760719708921982 1.718668984346518 1.457570521997172 1.481716295587688
+1.830637109602251 1.324867533204553 1.224620635106414 1.547772042628072
+1.016856824962577 1.099696945266520 1.856902305966597 1.503650583152462
+1.712293681470497 1.670804325821881 1.775028827242085 1.991291007074328
+1.270056147038914 1.435347780763451 1.950708872301507 1.403277983824804
+1.772591262476503 1.981108572937622 1.668015731393714 1.635361422030181
+1.598661088884194 1.486477044273676 1.713251449468379 1.230434581331179
+1.762393768972959 1.628868398990099 1.699624470186072 1.380729611292746
+1.245874204540989 1.206863946584018 1.669444483321276 1.233599135337689
+1.465572959797352 1.129673840418745 1.993199650866232 1.757631234388983
+1.992403474346572 1.750170887416606 1.772534556036410 1.457728202792563
+1.944771448784533 1.499494070693847 1.439146232773900 1.289108071634967
+1.954423909151720 1.005511892034694 1.970165293296662 1.387864057840801
+1.477144365713091 1.681715652981375 1.831039843859334 1.296328857441982
+1.908388743606558 1.611071872178815 1.706269263024456 1.780589981469479
+1.072168755115129 1.101831658650786 1.547038957623839 1.339488087896977
+1.122754101983843 1.867295405354479 1.658786809457508 1.219816023735283
+1.555606039872525 1.819555959481800 1.495337923589617 1.379738948161015
+1.694446196234086 1.758707755787270 1.743326185627378 1.562251305166862
+1.764982084930881 1.046608194355101 1.407312682748670 1.052498338944103
+1.244511238965372 1.074337670804799 1.237960967924796 1.797608945390798
+1.293730126546793 1.217103700050637 1.385325507961171 1.941215293466585
+1.638691473682536 1.247359600743492 1.402388353855038 1.245083783325835
+1.966208183457393 1.224954338611544 1.400063844543896 1.788391917791176
+1.353277842718172 1.300510598201415 1.624989578500311 1.541456565595405
+1.223601900967442 1.434374270579354 1.181323102747023 1.932598974811929
+1.367344879394205 1.706211003553846 1.979339438766898 1.910933581649080
+1.523318424722766 1.158003111101610 1.550378414309352 1.179861758844537
+1.120134164835345 1.169763705532500 1.480358869357153 1.521524450763607
+1.101023788574278 1.226045497414646 1.896610512300041 1.251747236774485
+1.953855467755008 1.675077383841286 1.879840236737983 1.198493740893517
+1.813650103977095 1.233949235920473 1.693999981318599 1.484507293927103
+1.032844182712974 1.447065622765968 1.004920140967025 1.248986558650542
+1.971457614508003 1.813254182930692 1.754798838892843 1.428086657012702
+1.088416990615486 1.498963177294427 1.538409551352049 1.542243973422261
+1.824422944918942 1.527811333547243 1.436820673164213 1.388874069260704
+1.776936193591287 1.286404976760775 1.381824553847290 1.715235597084905
+1.166292236526286 1.596081277468729 1.591243150218109 1.955934444921728
+1.678259684106836 1.970164169276829 1.588412932958154 1.244892385397033
+1.299099509986074 1.366069158216866 1.715893881962208 1.574672496884689
+1.655006299880051 1.724098700731767 1.913218132488594 1.081662049083167
+1.204490616092530 1.423863649425027 1.895337478034002 1.167506028829234
+1.188101362594058 1.129162613365718 1.911134421915866 1.224122493875611
+1.699858019323359 1.332562274930494 1.362348414758475 1.893838977003314
+1.290602495102989 1.564734421513612 1.052804245955480 1.976677557600099
+1.277669954781983 1.225828122070816 1.128372947203961 1.044200999391621
+1.977056200841487 1.187804298164387 1.631039337713069 1.441176354332443
+1.955172306360227 1.427899015494878 1.673804099166954 1.606117242811974
+1.638661443641657 1.319455221555681 1.099722905714084 1.267166192524251
+1.587707618885170 1.856088405260342 1.451459513535810 1.631272187216136
+1.320165616426096 1.903621522563898 1.326434153333220 1.043803125960075
+1.845961460324341 1.077625278023753 1.401609412792415 1.406305661764378
+1.884004953088649 1.860191145428824 1.093064460430374 1.515941198552323
+1.870243648325595 1.667087368520564 1.398097489330937 1.946841296457939
+1.540327075087565 1.223453038645677 1.578741129808857 1.782445244098270
+1.336499582717012 1.591614058060997 1.950655028383123 1.357518639932116
+1.699856093767031 1.885907388771518 1.226130236367855 1.065593479526233
+1.179744000463711 1.591199399199591 1.489428396974024 1.867299224185155
+1.650682643805664 1.147087618909501 1.827506958571287 1.989414261695685
+1.438001743662124 1.357722494505607 1.015512016475274 1.856076116241517
+1.194120685915782 1.772192068417102 1.974746385179622 1.817534893453638
+1.194456441267450 1.591877961591226 1.703838783846810 1.639891262815633
+1.146027686707306 1.220099536451122 1.478094542274221 1.216620070071225
+1.354581413435234 1.780637290907321 1.668908020163036 1.690485181396367
+1.908049114251756 1.631706602520270 1.108214562504119 1.382252076858840
+1.220427987066758 1.126268587097469 1.511049241433357 1.688952145070714
+1.323256154723930 1.560403218872928 1.358291627679556 1.284066182225675
+1.427118291880522 1.188020573498703 1.043177511892353 1.000846388631256
+1.280562060085584 1.061628346842463 1.953960507520839 1.797833785741783
+1.657023060664863 1.847392909720571 1.874918749787340 1.772725176651511
+1.201245123905655 1.901587604609412 1.898921711637525 1.104757915256716
+1.689590851524883 1.043772878973096 1.703578628325730 1.288093816827560
+1.264653146163230 1.965103387449483 1.981045134964183 1.208154275222981
+1.242735643778492 1.497788517807525 1.383975294654481 1.669660605960395
+1.786845669294120 1.257699085547567 1.461940477674553 1.090676857720247
+1.642941607746135 1.882416617309255 1.390735840090776 1.229493233712350
+1.242747712821778 1.297257265052578 1.623397892057945 1.773253951352853
+1.518717272056693 1.894589914064021 1.997115934734730 1.308571663534066
+1.819631175963058 1.285827622126802 1.416713851290336 1.642531411902329
+1.855251053070511 1.692206647066171 1.961042574605882 1.247173883416699
+1.635354952004496 1.321551897238028 1.853961982591430 1.388493467057423
+1.493886024292215 1.303423613865109 1.775456244051699 1.451198648059946
+1.404271715892248 1.298275519978421 1.446285974682659 1.254812042696698
+1.684444866685421 1.786973380232422 1.729893189166303 1.028067750303092
+1.475276602258967 1.325580577172347 1.367775811827537 1.001154351070554
+1.153671240876318 1.556642444494025 1.743006835079059 1.708859779186227
+1.362584870410853 1.159797622003978 1.466641236899382 1.485190527243923
+1.202326585773552 1.355209920970780 1.167915419917445 1.900213743069488
+1.757627729533527 1.893175741087213 1.521683225402328 1.809083292911035
+1.826378634079372 1.050792140343757 1.798128373253206 1.834941174052233
+1.887288203813742 1.973848015273667 1.734605316686526 1.770051130934800
+1.527526101043357 1.364051682494655 1.585470372386918 1.405771522590239
+1.477068207736690 1.157972094545421 1.747951160175329 1.822754754400769
+1.509664853472293 1.617274857258068 1.291049147392954 1.246953536515090
+1.570611489266800 1.711025117470592 1.565792720893965 1.544085959667965
+1.191090874716119 1.407709785394210 1.801415421089833 1.140001650924965
+1.472258212402544 1.173456916852706 1.055866662574418 1.618165759664644
+1.226626365699886 1.152086094842007 1.464554996024731 1.315803565511524
+1.533740412819214 1.364639522355886 1.871676403863061 1.274950151147793
+1.246517620372638 1.512281379477159 1.573428776837607 1.960045090669877
+1.753299919388792 1.656583031214010 1.163564497130673 1.920041405766893
+1.093686478595248 1.686648356699519 1.739503894873952 1.534005294291435
+1.534245086537231 1.133919537390570 1.931775367514847 1.973029772519973
+1.550303336742483 1.033086191952479 1.359379023268692 1.155308503160629
+1.161383023354366 1.762015977223843 1.410583900098560 1.529632768804294
+1.662715658966186 1.707901018716383 1.236513823087306 1.487781682955047
+1.048070968781356 1.673053091693463 1.815320117458616 1.104347226294343
+1.234317319495381 1.770911573295900 1.640291433732715 1.307518527924115
+1.853265271480132 1.244913579545206 1.122475547248171 1.214405582064678
+1.574039493846134 1.597158243999746 1.362760775643745 1.234256035853497
diff --git a/apps/medlda_release/dSFMT/dSFMT.132049.out.txt b/apps/medlda_release/dSFMT/dSFMT.132049.out.txt
new file mode 100644
index 0000000..1d2624f
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT.132049.out.txt
@@ -0,0 +1,583 @@
+dSFMT2-132049:371-23:fb9f4eff4bf77-fffffbfefff37
+init_gen_rand(0) generated randoms [1, 2)
+1.643063016360512 1.772379213720561 1.502139536072673 1.581533306406716
+1.294056922473006 1.100717033151588 1.867916757201619 1.189776821093881
+1.704339228244217 1.475618425667883 1.453898435144779 1.300133805150727
+1.259237810054378 1.216268917035768 1.723576415191876 1.912434390693766
+1.740634055074576 1.512287295992477 1.507656729409739 1.513290326860518
+1.173915352392622 1.527058895245923 1.755177139045161 1.240515751493487
+1.627757485529170 1.582463187484837 1.515297496064416 1.688424523283255
+1.936479248177469 1.533221528084836 1.934966692060082 1.912438495558375
+1.392104831170025 1.338615436006310 1.970748448845196 1.628502243306840
+1.099449655677392 1.335498464188707 1.668286250736062 1.357160257323840
+1.419695034619677 1.441841689254192 1.444607635937198 1.608663583242613
+1.481896580546265 1.839214533686281 1.197421601031019 1.868143809670667
+1.669914346725742 1.716502284327293 1.934474618235130 1.190309742229291
+1.794401947857213 1.871504032093113 1.845917210343764 1.351828940838658
+1.114511754662698 1.218752998045956 1.941965177353615 1.663010425815826
+1.984551428120615 1.176662032335707 1.658829387570659 1.172194829922466
+1.499819310713246 1.164372114501327 1.240779970501840 1.006461651239399
+1.962085858071359 1.500237483717801 1.331616880847151 1.584285022604139
+1.899059992862819 1.415603190707058 1.014028806056132 1.701673114170293
+1.514417945034014 1.999981213376790 1.906222554176316 1.309482304986925
+1.178192838269845 1.334212304470514 1.679647572212403 1.141608212508523
+1.349867867681005 1.858617048867437 1.242385792714017 1.721352347880568
+1.683064521919691 1.883107450400868 1.799031635270505 1.978631613504576
+1.847489714306586 1.985498368134130 1.652249291259636 1.574700038714994
+1.790550959284966 1.019909993390081 1.049096388889125 1.074063811031207
+1.114353914635366 1.675125622686559 1.745439164559274 1.875841477335845
+1.756916983859681 1.072533456340715 1.601700979307775 1.414231078696220
+1.253729496204329 1.316612299970584 1.513883831290708 1.291879537636255
+1.065967568096890 1.612313960745903 1.598354460284955 1.046465450864054
+1.429486738796263 1.778652140546644 1.458706745783160 1.045324397369371
+1.374247065966293 1.048161669056575 1.145227828653945 1.957622228844320
+1.988559470693265 1.929839841135814 1.921091374352755 1.413995425791679
+1.429104123613937 1.932059073348731 1.036572694221107 1.361587582890943
+1.540005215094822 1.607233967475060 1.204725285697996 1.839848499896786
+1.278140518852469 1.096471635232829 1.348275565786562 1.772635638459800
+1.920371722668300 1.572034716947178 1.345013818923143 1.350676605358206
+1.247236170423277 1.974619934632213 1.541886230973076 1.509939772111947
+1.267625587474439 1.516623611183119 1.310971381548349 1.613547603529339
+1.860302697928531 1.125481086548701 1.334016964350911 1.458374627400062
+1.866425883414691 1.250773163632625 1.339861447481896 1.945976584867873
+1.269146606490021 1.670314395423734 1.540544457672709 1.614260886406134
+1.549068938341358 1.436829335747375 1.305285322089248 1.951964917044990
+1.132139821595739 1.202272145430612 1.677013352135057 1.663463384682899
+1.089389035187114 1.228243587144347 1.099329524933987 1.510965699910341
+1.602902489037097 1.695537341413620 1.298466294264141 1.835492194418174
+1.766269048085712 1.455363685648690 1.937193095923634 1.417625085875925
+1.376716789996619 1.838965783883416 1.850509015947064 1.308712014364863
+1.032811451079106 1.363570827046181 1.659566687022229 1.270274652255478
+1.699735979035603 1.004527368294150 1.488102249921962 1.914979567757808
+1.585434470996113 1.941551220778391 1.345044702545011 1.199678123957290
+1.690772120308079 1.298338118320541 1.513395777055843 1.536402416402162
+1.836187664172395 1.646532898258566 1.660040646997246 1.669153472710043
+1.849152698987914 1.802756748739445 1.458941745188812 1.882795302019239
+1.202561497072156 1.147334136786961 1.604908085836170 1.342961131205874
+1.737044444682123 1.316865529632541 1.995831879933226 1.643585807226585
+1.671899207395455 1.593701339281419 1.699307210846834 1.070382842159707
+1.348001754725037 1.935950327177981 1.126702946805813 1.904354393514420
+1.706389577624904 1.177417737499039 1.167170901018000 1.080960010301431
+1.143130987761706 1.177685431751740 1.201747851918691 1.473010312908368
+1.379644087472686 1.977937266718847 1.403050231922135 1.967567455839679
+1.854521970371013 1.222974434175325 1.926087528235720 1.962113929182559
+1.517244469631437 1.549554532338349 1.202933556549926 1.095219804956202
+1.923799346510267 1.424028172683771 1.748964440314901 1.318941199281149
+1.680955976152273 1.696610065260564 1.252598060018824 1.046626203494850
+1.112946418777093 1.754697417099952 1.310319649983912 1.389578978191774
+1.200575828975078 1.633560967036935 1.495390885924748 1.846069871444912
+1.118881619798660 1.822409525137786 1.622568920563283 1.594272409710170
+1.844129784739082 1.159815006688703 1.801849431409764 1.129447633179526
+1.807605372622141 1.405868301114753 1.552538292250900 1.651986158646547
+1.791264410940402 1.774143194077138 1.012414085953455 1.961250052894840
+1.439078985302657 1.640891513347436 1.358839931384241 1.259309916183196
+1.172755033062650 1.234642766807144 1.412212027198489 1.727104178521174
+1.813893759012624 1.641875691160957 1.351408174422108 1.151314809293835
+1.333643752929317 1.607432296272435 1.453269191606890 1.963472134562356
+1.078310150012671 1.536478857646420 1.020252744881948 1.152467392612480
+1.907843320540788 1.841936252727383 1.192024508647886 1.800464803435173
+1.792910554610534 1.051117055552947 1.478000272126885 1.568277942726415
+1.536804973349816 1.770628925880257 1.149335250227908 1.593410750557970
+1.387771569866204 1.041455638596289 1.772894741526123 1.809152083968470
+1.614429180299725 1.254441017630915 1.121430462949348 1.849555366482104
+1.851239613753727 1.784439099926971 1.254502750067434 1.511059930675607
+1.758840643237767 1.303092406902539 1.064742675627482 1.049268476058976
+1.199846555873852 1.258714553565674 1.088358933442185 1.632748298821758
+1.211187930386719 1.154040788886345 1.185040028741537 1.322267698007452
+1.746839252917780 1.871805621202655 1.859393406159585 1.241878344953513
+1.203235575185920 1.874756614720179 1.761784319501885 1.517875907571076
+1.211597037965597 1.145807320274542 1.918817361026927 1.795689367800065
+1.796816606291946 1.620766735411685 1.793053924611975 1.637144949270504
+1.730427210209953 1.565504172849111 1.160735585891809 1.963346261428018
+1.741546692734649 1.562938687652687 1.200140223229611 1.093626206283125
+1.980249197092638 1.551768104174122 1.851397461662058 1.277889017874786
+1.303375889959791 1.967822647886579 1.776734793453849 1.250071026840864
+1.845073780361844 1.423012086024738 1.944267832989789 1.035827877794883
+1.889601329364559 1.536049382580550 1.313832765891737 1.671098009877257
+1.840121610014133 1.841444186355714 1.696655413811547 1.217580771163805
+1.949976468323614 1.976159326001596 1.587087651190515 1.154211074323708
+1.907521851999984 1.014052316672926 1.427827983809532 1.766951150941372
+1.357560214138462 1.430202215482200 1.757921714989087 1.102022471567073
+1.212209319597503 1.785659396189157 1.592000436556011 1.742567974513886
+1.497004994748854 1.996969988731885 1.372636607293812 1.056183016969705
+1.856128914951686 1.387150288212383 1.059603012689986 1.421520605439365
+1.092528831993869 1.721218731637423 1.779192718734939 1.863902548961274
+1.310082665354059 1.597456792941415 1.489684109984818 1.656759358026517
+1.227840424226511 1.519425087018671 1.383605650426045 1.342594223061168
+1.250444813155697 1.227894098798982 1.514629986139193 1.164631214834017
+1.107426422214249 1.046023906845862 1.065542035549969 1.030909729885617
+1.650261172538320 1.595715482994521 1.979154659579911 1.048463404633318
+1.155911460807414 1.547525758837557 1.326177583189289 1.343472760673954
+1.180695669135774 1.879497284775060 1.160443554012858 1.923245420539133
+1.811577815419578 1.601767206511663 1.762414494107864 1.266203451402557
+1.139967477280803 1.099972700720836 1.885956705957112 1.292223344155491
+1.107780504298020 1.928404318661181 1.123398700237346 1.860014072574296
+1.598226818237964 1.173664798224314 1.724084592857285 1.828499218261715
+1.696185096042451 1.086895742207420 1.164924515489956 1.212951769927319
+1.727965891966803 1.863512396703116 1.862648060200330 1.808205720131089
+1.194921221666876 1.138546297696043 1.678559190033829 1.375150289646397
+1.962470487923708 1.243450853513478 1.935601436566755 1.768618825100152
+1.381745993842861 1.434734723342292 1.424022579296531 1.303090277688985
+1.481171797116220 1.271040159011278 1.140417969106567 1.451804269673894
+1.709730405799677 1.796596203544026 1.874281981120122 1.259503407462103
+1.498806429815473 1.759773937189470 1.151941319517939 1.808529913515236
+1.096994748750893 1.382663019372152 1.438031147597296 1.006816885743656
+1.589341119780297 1.129919592427437 1.354780330777362 1.471188194720541
+1.721203637684874 1.157154032582763 1.011934747519888 1.790119385229247
+1.552237631757112 1.418409182817800 1.188672784857389 1.305344749875163
+1.268029062207762 1.003039819434946 1.932247883673218 1.194918968980724
+1.351418908116994 1.325031114479956 1.770144971583435 1.820676789630622
+1.715151848249123 1.409019690191181 1.646253200901790 1.352040016076230
+1.034672515873151 1.490846499258887 1.175730216523582 1.198652304338337
+1.027373840061046 1.905390195285243 1.756780875022457 1.552345731305258
+1.126083926529281 1.314374751594234 1.680971461600240 1.273137213379491
+1.149597248398749 1.091221447712624 1.739952135520015 1.111313042780330
+1.455452290262548 1.447416158072816 1.228107007243349 1.769254083101861
+1.423706608053121 1.952253801466336 1.647857024652171 1.682604897983835
+1.748224101960127 1.946446902133099 1.774707520827058 1.183995133850760
+1.780563328402953 1.815813365194300 1.113911282514502 1.762999231228598
+1.453567112562611 1.060700112450385 1.723134155749802 1.642541081539965
+1.016691592749692 1.635365252186522 1.929893011916312 1.356301962150208
+1.429549639245492 1.330435475009885 1.194556046818898 1.160102935142390
+1.053687468479767 1.289858727963019 1.124068908401118 1.713898042349290
+1.942839471384481 1.843947610083575 1.990170714005166 1.010510434417139
+1.073418472557928 1.695681153995098 1.703995419137135 1.261750633389016
+1.987211506722759 1.365692580120312 1.897280236664054 1.067261235960756
+1.540259456249342 1.619711409826942 1.112991079914199 1.631183818857687
+1.859734675904414 1.434929002230124 1.663180780252912 1.265753484933646
+1.446047864403494 1.676979781362434 1.935533037108104 1.453256792629626
+1.986621193851337 1.441562202698050 1.483981846508382 1.285267526256978
+1.366587287338616 1.671576893844301 1.616387182320177 1.661489797562862
+1.411226228624827 1.888413303440742 1.070911048731237 1.349538814915134
+1.796486553580141 1.181422885344851 1.092542866402453 1.788162059877980
+1.431026923492529 1.064710409879997 1.456274630191652 1.695821806565353
+1.530989470966030 1.677844445462081 1.221686886257181 1.195165777632252
+1.814273067074188 1.223854303901428 1.951479506275614 1.077543392801234
+1.628092872797229 1.381373904581686 1.638089800130623 1.792538136625260
+1.815100569535991 1.402436819044840 1.240748468988953 1.402706900034449
+1.995919124774033 1.344637816122948 1.280818269159953 1.235304573974484
+1.819592257356713 1.616870539238258 1.892437878287773 1.523102079313186
+1.411569575499889 1.894707332694742 1.741012688695034 1.973350785568481
+1.035331915161541 1.217137822971190 1.781578556110093 1.763820559662760
+1.715497652659879 1.292810759115544 1.543871306009339 1.581417411537836
+1.661377499328504 1.138366426320946 1.172989625745951 1.459662516848523
+1.176288440228586 1.247882845092160 1.963130076349449 1.703795826001657
+1.067867774251062 1.538615243981833 1.128798917706774 1.052426666467858
+1.108482169289127 1.236388780268993 1.312704892270747 1.512811440895024
+1.680201665043402 1.040008715994342 1.789499563335551 1.770657988596654
+1.676027091060821 1.521712011072842 1.694505783868633 1.522648489217589
+1.951838908723367 1.515819955078039 1.978739019994237 1.740704907189117
+1.652917398943353 1.842234671494515 1.280446893896048 1.390278789578296
+1.441561615674477 1.964047491116155 1.105791617825840 1.815836941786280
+1.412606634193013 1.293360010724245 1.270320869655175 1.781521182725955
+1.234649435269477 1.536343194535205 1.637453793958345 1.785567482478720
+1.609435659459995 1.406727808006571 1.830971508332314 1.064314292185076
+1.991988523836755 1.097947925527774 1.425105343470262 1.279527653347124
+1.696853380283401 1.585635613212531 1.442686304101868 1.640793025788577
+1.088910324970256 1.961663808327751 1.591584982604246 1.356561914315883
+1.984778026636042 1.700561582089118 1.633461333395673 1.378546494279202
+1.079036562111570 1.773587148617582 1.297264766806276 1.250865276451899
+1.010000358233148 1.726395884041927 1.105777483873249 1.998737527711849
+1.159189317434197 1.196729334732093 1.983903042287553 1.615666394946128
+1.182400340090334 1.203547161552674 1.915324267393438 1.811577600643655
+1.474823605031882 1.331133383243372 1.676197081362984 1.247100169763472
+1.589785909279107 1.443614313246519 1.370606421371340 1.934454172723776
+1.424285142703140 1.782056792843032 1.037175327103202 1.053797866836911
+1.284623383412186 1.195086189112628 1.159898487936902 1.184517957605879
+1.326179337155486 1.246412727532838 1.922465719285418 1.537989851056370
+1.276272435166772 1.104019273811107 1.738981468737610 1.937325362488105
+1.291819314415349 1.000452261142371 1.919648880169280 1.400599325171213
+1.360135162280536 1.425655751575538 1.211037720333087 1.413044324147643
+1.561350262782541 1.676494949857209 1.588766405634734 1.416913740075122
+1.898630795533025 1.464727704762449 1.122442295889442 1.035254506520658
+1.912878398857450 1.967035437057918 1.020078744176804 1.620962775267883
+1.041485044372285 1.932145279279915 1.477953796993173 1.311188890379007
+1.330142793116564 1.333085829326831 1.793397888991509 1.310326147524094
+1.736185648738800 1.825996257769177 1.913040830893005 1.178028201305924
+1.417212498625015 1.660843897618286 1.358756281281569 1.697891413850636
+1.965960185073971 1.759174900759579 1.805366428916469 1.417628314775847
+1.889629389125053 1.327614234763126 1.181907059676988 1.043111678158518
+1.508203201936615 1.808349928705681 1.772606233994191 1.883834854099118
+1.957128387382956 1.601260440307869 1.412658068348775 1.176807193277404
+1.380183767016079 1.557222586277733 1.322252024612415 1.168150361299401
+1.897887669490438 1.181435521549834 1.123425566218427 1.249812263665736
+1.400022068077603 1.055312279472752 1.728604620630904 1.908782597295411
+1.227070157822398 1.385300903798387 1.532546233772692 1.887475307534474
+1.564351253813166 1.319548241332341 1.923332504879317 1.144603848489074
+1.984459999935519 1.486672069936235 1.990498853213360 1.788793254357023
+1.484577330706694 1.343768839926074 1.251597847140713 1.947870444161010
+1.303445538327316 1.421330039753517 1.849167198533923 1.935688182505975
+1.489861559298503 1.939294271413287 1.871023226818432 1.198703059357910
+1.255808153162431 1.457561817638621 1.849293455891132 1.058391735627229
+1.626837284484281 1.066099599785837 1.598368972600301 1.763576206549286
+1.712136451446225 1.962291306114436 1.026541736127198 1.015136137745090
+1.275640348853882 1.164938340625487 1.131650397441668 1.643125064125485
+1.434083860990952 1.506042116217786 1.097263858768495 1.824198618655536
+1.955165141640579 1.315581529426785 1.393425320169687 1.465714353995525
+1.832659185623620 1.290929904728717 1.412436841045349 1.897849787083823
+1.669770509725738 1.311033861872340 1.572294287103063 1.310511587052047
+1.156865297574564 1.776422223857768 1.777664813560997 1.098904014401112
+1.850055062426951 1.681833895129053 1.086932688757650 1.919138723683471
+1.179917357606951 1.021968870960724 1.972355950341563 1.531756405822862
+1.755640248910622 1.730169448166085 1.601784389993409 1.199848723295741
+1.910637046267477 1.836400839867540 1.845703098068682 1.497878968291704
+1.599850819246035 1.814467105860130 1.342327608869641 1.312521264586697
+1.047526347084392 1.350836560456564 1.372051802293701 1.933979493415876
+1.846930484362348 1.102495586458019 1.340027813520914 1.945591138879044
+1.089591476426228 1.624353165358369 1.563684988791301 1.630130036015887
+1.446789107675056 1.110230349578064 1.025986851168343 1.001602425830829
+1.683252647132559 1.651614897994297 1.153527587121248 1.741931148108380
+1.389645666041831 1.202109547162104 1.880595236112617 1.929946035121010
+1.309848291923575 1.121872497840788 1.305899312467624 1.566528900130245
+1.243134175537468 1.042342980054161 1.268213036178462 1.105793460388222
+1.301414391284167 1.362877808931946 1.479129460761306 1.470775067517370
+1.323372296353663 1.882858024739622 1.242648840670183 1.960920963722044
+1.189420862788387 1.775676346942812 1.836962950648764 1.225608444728838
+1.031826660125971 1.223642739166165 1.293719060266704 1.384859239181231
+1.037606670282627 1.463674149543749 1.288069426143434 1.402230155475197
+1.571833329757680 1.525262758238918 1.587315879112924 1.171504815578446
+1.919535276082088 1.816598772910832 1.373445653493135 1.927586246755860
+1.295064929890141 1.747864394215269 1.115319218851927 1.527575939389980
+1.311200438911951 1.774557142973973 1.727842606405351 1.801026243484034
+1.000936931691762 1.637945946838210 1.430655785954642 1.600741279264717
+1.378886518096057 1.689872898843643 1.211890162224956 1.132801535718520
+1.817084541055805 1.658934148941678 1.895529184441058 1.894292815457406
+1.553357732624558 1.436755888407919 1.080206255113111 1.659990565335723
+1.973712536508369 1.353013165015270 1.157193005915275 1.310612678422934
+1.511466402208103 1.620559701056070 1.603250968835484 1.724289193135036
+1.831217606653762 1.011676949911519 1.631981060247351 1.960779016134990
+1.118902874420574 1.843011109516084 1.951585957020156 1.490228747733070
+1.085561315657796 1.131866458432211 1.760216717700746 1.218027261434517
+1.861934237655883 1.673969172294754 1.637431568389643 1.848237040113216
+1.588562834963177 1.993444547076966 1.921353808944026 1.110236899989077
+init_gen_rand(0) generated randoms [0, 1)
+0.643063016360512 0.772379213720561 0.502139536072673 0.581533306406716
+0.294056922473006 0.100717033151588 0.867916757201619 0.189776821093881
+0.704339228244217 0.475618425667883 0.453898435144779 0.300133805150727
+init_gen_rand(1) generated randoms (0, 1]
+0.357269119061644 0.394853684742541 0.232886767592585 0.390019080993502
+0.606377415398563 0.104336019757104 0.941774158707798 0.959619377087378
+0.665370493773737 0.553229489284144 0.511333970674283 0.374375991711000
+init_gen_rand(2) generated randoms (0, 1)
+0.902673877473516 0.901913093025360 0.144960393294816 0.421709738792725
+0.727215190781590 0.049117848077731 0.395687860530620 0.443465976692574
+0.525596880927559 0.878674831807375 0.922594751931055 0.710081397618229
+init_gen_rand(3) generated randoms [1, 2)
+1.427902180484723 1.235180227858591 1.893010606122040 1.407520064520368
+1.153852733443085 1.353017930087701 1.249441613372706 1.063728065481757
+1.142097638400280 1.346275436648008 1.020654645507316 1.891889548922761
+init_gen_rand(4) generated randoms [0, 1)
+0.362103051997711 0.817734703450394 0.892588787791763 0.735724922115168
+0.337441398135621 0.806600596484782 0.474925726473279 0.457909536500071
+0.453909467716590 0.370397919652925 0.351834743500070 0.274139148309417
+init_gen_rand(5) generated randoms (0, 1]
+0.320575989292223 0.782221980596254 0.994230574048375 0.646493455549936
+0.182934842001676 0.419439059326539 0.804733853797186 0.630146430652609
+0.283304572706691 0.551951694752586 0.596651685127567 0.726464212348384
+init_gen_rand(6) generated randoms (0, 1)
+0.512245795714439 0.949098909636435 0.304277882494774 0.425691508062447
+0.940024527462860 0.303618133421786 0.659538517356965 0.980428116584217
+0.992602173172166 0.309535512011741 0.799122326076374 0.503161736778810
+init_gen_rand(7) generated randoms [1, 2)
+1.791279768504437 1.824059711409220 1.601640841052433 1.839406744853343
+1.706093704685138 1.792589402103321 1.357619712337886 1.886594864406919
+1.791193677072203 1.237635475178639 1.659875755247600 1.782255918015468
+init_gen_rand(8) generated randoms [0, 1)
+0.539027783278177 0.350896572513407 0.045805192442340 0.147163615478894
+0.954161027974346 0.937558512762666 0.615966260678639 0.827921743169682
+0.449348302109296 0.823212321889368 0.538337463888570 0.426901349677887
+init_gen_rand(9) generated randoms (0, 1]
+0.291582729506235 0.327137879357295 0.517830815155796 0.112106626154593
+0.612171734259559 0.701687536902544 0.471596446781525 0.803776113868638
+0.993144759108313 0.792918393124802 0.992224073158818 0.560509440469829
+init_gen_rand(10) generated randoms (0, 1)
+0.906652248252293 0.969008988686184 0.287180486053953 0.941340736403439
+0.845804465799311 0.851709272681137 0.567338308129108 0.018923690263750
+0.398054844532580 0.648240113586421 0.027773695295189 0.411129988822436
+init_gen_rand(11) generated randoms [1, 2)
+1.166288744923759 1.289035002956464 1.591654057965451 1.924237717731347
+1.971147945988489 1.779882148077172 1.301744917982424 1.472840297687313
+1.615894199307146 1.443788302565339 1.010514050763960 1.843668764702190
+init_gen_rand(12) generated randoms [0, 1)
+0.037188572132978 0.796540980110323 0.785118397351056 0.950075542564853
+0.082585828608368 0.277307284982809 0.785199783813302 0.375537725493582
+0.136201893068798 0.990289994461294 0.064717912677199 0.724424211705538
+init_gen_rand(13) generated randoms (0, 1]
+0.942356415514171 0.762315177514493 0.971674221337580 0.509644192975426
+0.463428874186195 0.228231769076783 0.629684091309337 0.364274558739615
+0.711795494091800 0.844459806251926 0.007623040364400 0.449873380705668
+init_gen_rand(14) generated randoms (0, 1)
+0.594856417962816 0.426449471504149 0.815065332609883 0.612429056668908
+0.350788091641076 0.557487356775938 0.941466694286134 0.876568805621597
+0.074550394909309 0.472848548484389 0.278339473226804 0.685700309876473
+init_gen_rand(15) generated randoms [1, 2)
+1.691991777346594 1.066678571406875 1.257288308507988 1.374950622278155
+1.631560611409216 1.220209640944814 1.670313717921475 1.400620968469163
+1.162389983753056 1.740495069469599 1.178174071747150 1.547171972178561
+init_gen_rand(16) generated randoms [0, 1)
+0.279069583034248 0.695119007570012 0.978811839378629 0.855986723646318
+0.884885630716337 0.699520524608650 0.322365188671121 0.272456674845052
+0.285217033652139 0.208415904359228 0.035276027688090 0.546564341706908
+init_gen_rand(17) generated randoms (0, 1]
+0.986507705141710 0.991073208331722 0.452541341409591 0.249391967237484
+0.190992932659906 0.025553141925910 0.986229647371841 0.696257848032870
+0.178514809866115 0.539663585863808 0.067902727331370 0.139909326835463
+init_gen_rand(18) generated randoms (0, 1)
+0.461143403779607 0.933074765437657 0.329611012429450 0.913844231354235
+0.960408131306147 0.884756232790295 0.083744030675982 0.093922841568062
+0.986018904509842 0.092776680350047 0.761622101354923 0.291321509178648
+init_gen_rand(19) generated randoms [1, 2)
+1.109628619724238 1.328720045412586 1.235043984091162 1.700260577583939
+1.995239491033933 1.949870477994024 1.354264858779323 1.839679449502692
+1.208919707518303 1.582313935919556 1.052095151572292 1.599751368959784
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.061432228134937 1.797513181266742 1.014515778872698 1.292515677601426
+1.842217614712485 1.219693001089960 1.091642970346479 1.361251722923487
+1.812429123076032 1.114775857427076 1.236920925673160 1.430780008087892
+1.600676609656623 1.581660327974462 1.080093035886621 1.478370871883862
+1.372868954287661 1.381031660416374 1.743597338143038 1.765996876117860
+1.499708356247275 1.500717034644018 1.227875977543781 1.396877239166685
+1.867291377296555 1.989686946870916 1.728230714599321 1.603799028485205
+1.666989573753586 1.817430340160532 1.742554491376986 1.454382666376028
+1.273761735284682 1.662656364867116 1.343724666265991 1.412976188802077
+1.869526098913638 1.090188503134896 1.609472496275879 1.697935677660995
+1.444528308832913 1.244008727806014 1.726227330689108 1.956214804474752
+1.997601368384656 1.730135223734180 1.867428398093661 1.713521286602680
+1.612083063814150 1.846924281298900 1.385054738986179 1.203566648989931
+1.732288309899292 1.137472212222545 1.033681856179389 1.663892296055790
+1.310222843056857 1.275835140032423 1.375264680293250 1.978384530800863
+1.568658273521190 1.017596100106813 1.370819406080095 1.154167948824557
+1.316057782199989 1.386376218894529 1.137305448755715 1.356371796103210
+1.466928072491341 1.366205447886307 1.457320589062321 1.426714777309978
+1.341402146854451 1.922483795214086 1.039486905325362 1.219588734301951
+1.225417160307821 1.834572293325115 1.496558088410575 1.216556270369901
+1.656606730423723 1.536427579081294 1.167511955342818 1.086855310407977
+1.002547979773331 1.693958661637674 1.371253512944553 1.700211061226908
+1.592530293470989 1.846575042888636 1.956303670027005 1.547713673595658
+1.641297071602825 1.838105082927109 1.733456157549452 1.948032060614289
+1.733232211149775 1.765456626341906 1.777315657763990 1.057475848076216
+1.010045226011803 1.991915926929486 1.931417151777233 1.780450015839459
+1.844047083762396 1.300616385869505 1.820621466557404 1.046150840604231
+1.481916711074058 1.043328256655475 1.264770798638017 1.212370948009489
+1.730092348778141 1.336132071271436 1.371184509212720 1.230699959071073
+1.055483600186415 1.446700948447367 1.755353743484443 1.591139593876879
+1.770091631738431 1.563569114479089 1.663021594321108 1.024198405803266
+1.090456398581945 1.415642156821504 1.028417473750356 1.579243713672265
+1.672956529549739 1.831845563088460 1.141117806272856 1.039181180299984
+1.507453149450558 1.199743160608233 1.899971654272192 1.406049692776043
+1.459123423739089 1.227192237955091 1.746199019250579 1.852150785963530
+1.421213820592668 1.603125742775923 1.195218111043907 1.186445270512708
+1.841008389796500 1.521762430646072 1.717569899846066 1.476973537544210
+1.048565254596136 1.908666225123490 1.047610340509283 1.695045531953980
+1.644580292287938 1.115074254294391 1.516808131453735 1.059246872919666
+1.761107641312551 1.978905879407502 1.276797289509090 1.082244348708742
+1.668580525632754 1.178074234574387 1.949425038779206 1.038462387986846
+1.127713630260126 1.654479557057866 1.337658134344182 1.312994710544998
+1.561159692476141 1.952808664394324 1.454281276475844 1.386399487729117
+1.148783179061061 1.599333792681644 1.276223351387930 1.738450353071963
+1.598794571405437 1.793352059676722 1.230924816753127 1.989552374949806
+1.652370170094364 1.459868701248577 1.766520771683623 1.001751812038681
+1.290941794581371 1.905447554694089 1.464400234026572 1.789092617289296
+1.601276091255452 1.839753145918098 1.641048604591881 1.241599874089231
+1.887337383959701 1.268031125445940 1.802919108705314 1.875071427474126
+1.153251177399067 1.983620082065005 1.476379735203935 1.258459073219565
+1.482509493755496 1.138724826268920 1.068811295383392 1.663913965189269
+1.571650412532938 1.646728506772825 1.867940572165893 1.771327539553135
+1.794205862203509 1.913686644901832 1.100940800356586 1.801594187335266
+1.146354832873435 1.077881104105724 1.607967930739593 1.637396739911332
+1.928487048966440 1.687275867176771 1.570316832252410 1.746458773499408
+1.329204039659036 1.168507012072698 1.573245008234483 1.110213383396769
+1.097584505108494 1.120273589845227 1.668213417535560 1.908957753519996
+1.307967943702433 1.583312371891656 1.080089823767882 1.202784193988516
+1.550415977859221 1.811931413883219 1.225155323654367 1.470488375120324
+1.047233531072465 1.473931812525870 1.434056323366769 1.580598674083471
+1.746675798676144 1.832803115540309 1.341854875943752 1.793894607551050
+1.485024217408227 1.637928078523605 1.588532296547220 1.847589736371964
+1.215356996939925 1.290378080353087 1.950370113761521 1.832712683536631
+1.525703459889676 1.880959376324155 1.784076682561524 1.238381401222637
+1.951300804241834 1.244520739195589 1.751002863626477 1.784495506796586
+1.798082151215651 1.550950019418478 1.571479633820315 1.343860005420866
+1.523290833373677 1.266341488453108 1.827020303376825 1.164058677310012
+1.187038259796425 1.362203631738275 1.687813651690103 1.934729800531685
+1.228564893711411 1.731251008340482 1.353935857811690 1.031674494342032
+1.118715530004499 1.562393757401610 1.237959391025284 1.590759500844424
+1.329925562476581 1.265099129649198 1.526081967618831 1.338598480648043
+1.234377222516117 1.940430229233332 1.161360029716903 1.072413040536446
+1.626019761000002 1.152003352961013 1.455979244253384 1.976360966672064
+1.134404799764957 1.139701331752706 1.196438315056158 1.979201741074448
+1.570009380653835 1.082045531506119 1.292887390468201 1.548962687994463
+1.715234356947599 1.611485511106193 1.469458975922171 1.688461503253793
+1.818013098082879 1.788440189078313 1.667629599017715 1.708840717767912
+1.947439486564061 1.799304165518490 1.577090422093866 1.749668489393184
+1.125700116289795 1.989057294078124 1.043181930603816 1.223213961745856
+1.310834798837531 1.946235237982458 1.221456637126143 1.991871373922808
+1.618663773412514 1.057975183832956 1.992672099100603 1.761400824336055
+1.088829341427663 1.379929706524974 1.738907504547669 1.436898114669861
+1.322456535129711 1.506215661268448 1.951409479397172 1.347934210237422
+1.598034145897678 1.939541762950813 1.660768282785508 1.282763801828266
+1.888434020246052 1.180964958727104 1.477843572741760 1.231791845952941
+1.090355995699830 1.708069834389057 1.815226142343022 1.839006376699960
+1.535890535972188 1.237056951416075 1.967886332875068 1.032686612052808
+1.456177558140642 1.655416789017308 1.828379327424953 1.367974052633313
+1.879750391810727 1.138069679262560 1.833047864443567 1.664687258532475
+1.087607757288337 1.867577492423538 1.267794296424109 1.845825119470999
+1.668606265079861 1.201549147117308 1.828492831565491 1.672784741072159
+1.373082841357341 1.457101580406819 1.567393803581109 1.222375534260773
+1.798941259280470 1.183555788204691 1.637005590756909 1.697275452580281
+1.726660276783008 1.283206190840546 1.697102535343177 1.969489878845189
+1.447515648700229 1.209634806453751 1.545905173603805 1.834595442754129
+1.373353070390223 1.707105928573662 1.061296185628945 1.235575475358513
+1.389952641557964 1.089108791231995 1.264736136168058 1.930702254010572
+1.082963020697341 1.990410105884982 1.106900414307803 1.561604782657500
+1.480761169498436 1.224202010785880 1.544372290537237 1.227160608535331
+1.737808870044765 1.694186812914733 1.313842669305639 1.015485622383960
+1.373084817978530 1.310568692949853 1.412158115542083 1.356425568896406
+1.844832018410359 1.667418818710138 1.146564902656422 1.855057732041394
+1.088012005624910 1.307472094594183 1.462334916728244 1.234070539605959
+1.217836453913408 1.917013839251913 1.741212352370476 1.650478559205618
+1.792623990988694 1.377104345457210 1.686694078895467 1.428938402798142
+1.406924471320131 1.476663624805979 1.800843821762946 1.175624947584173
+1.386528839963614 1.616563141791264 1.877491234924445 1.330529910925338
+1.495001288122516 1.634254803004316 1.373204907262190 1.288158290619272
+1.549121153312131 1.712947639216466 1.306491802879985 1.532505317186644
+1.845669955606394 1.901464871724720 1.310130491874249 1.259805343471175
+1.844569475421939 1.504115553513742 1.522011861569149 1.513964432185416
+1.879223972402116 1.858071809578853 1.030761488280920 1.934614132217706
+1.236105910561919 1.230050246857178 1.974719041538880 1.956636665905849
+1.554093805609966 1.812874479290067 1.842951670534355 1.399370433001543
+1.874844093399596 1.849315087354857 1.932384020328446 1.242031058369411
+1.440316604024780 1.836908449033042 1.484188719179789 1.376082718183782
+1.911306781084642 1.145109567786075 1.687274245394323 1.514197645023673
+1.082511413232503 1.840572439122599 1.914682540869211 1.498209905040290
+1.237653011671224 1.248969322472107 1.685713260404963 1.474815003328095
+1.683979959770891 1.602424046267332 1.462915546623975 1.249585221503529
+1.972126833440409 1.903072945221336 1.800179609978042 1.322257324069415
+1.973332347537802 1.872286479223119 1.179770423675554 1.320643439500666
+1.496882955392848 1.275971323087223 1.786221096769142 1.509899073228868
+1.995712672723455 1.509695819119034 1.149433641735199 1.477881624806279
+1.755481158236124 1.374604940732086 1.652064106988586 1.915894998890499
+1.471775447662846 1.560036287765354 1.878713266804331 1.236796629330496
+1.606117854826086 1.054878695704944 1.477839719022301 1.104494377005471
+1.610115561312750 1.541055092179206 1.521730061634208 1.110112773588290
+1.113706101187363 1.664515378675483 1.168067532221800 1.711553472209151
+1.045358296361786 1.300986587498288 1.195922423772348 1.741341650318139
+1.329491993626326 1.879862838134720 1.571081324039999 1.881500476306170
+1.046397163946431 1.936135749418795 1.296297425056765 1.036871202158229
+1.299624145036158 1.240730514632697 1.797688418109271 1.944916454833827
+1.701834592177119 1.307867179979634 1.635666397030694 1.846279274093734
+1.168577401112412 1.150746067883872 1.817651145513608 1.168711092327176
+1.619596634984097 1.693582631765399 1.438304146666898 1.641658577914155
+1.918494090283523 1.434523721880211 1.244024719595698 1.977728947427103
+1.084509260631159 1.213175848832688 1.498975908606359 1.072863214820766
+1.094628869467329 1.348719507791482 1.990822367932149 1.955391364696824
+1.410499316022728 1.908907782992124 1.436738871798190 1.222965397669693
+1.333832689489813 1.029188718237977 1.111346531337348 1.192666421941264
+1.218780479415051 1.116509313329760 1.630848021374805 1.165620429796201
+1.307476433194515 1.114339584776917 1.453584587758685 1.481253597110938
+1.373925334368274 1.033050600459310 1.187008608655741 1.821926001265462
+1.662791575666851 1.556946821822705 1.383207451651601 1.567305034159854
+1.880080187639230 1.018518122056981 1.035776461258167 1.135333789921890
+1.586514470605688 1.844520525773654 1.753038602672506 1.135840141476427
+1.851141767859496 1.727115945408448 1.279671310867282 1.766389729904104
+1.299265454083538 1.073639490186627 1.466177504980480 1.495100119884092
+1.174146267590869 1.076390884795886 1.013118355983051 1.477700694935580
+1.950324193402334 1.270061457138170 1.189540521757930 1.756216973189557
+1.569132949237570 1.553837027827099 1.252349978865927 1.384343925816579
+1.529842758491628 1.552111790626902 1.589781654373908 1.962767848497083
+1.146234686964023 1.108316545030394 1.836496746668612 1.795738525883301
+1.905950757514530 1.375761353167295 1.605221631862132 1.107917823342832
+1.010350103711710 1.210311396438742 1.001787402547919 1.123844665595581
+1.272778407083613 1.999035650913319 1.261013304859094 1.100008726435990
+1.426713404189027 1.904685171719066 1.082202265157931 1.754320678647222
+1.099180337836780 1.503638155811497 1.760984192455152 1.559588145816627
+1.684759440031330 1.376188043594692 1.562254165793033 1.334141426934684
+1.955419253830008 1.595031044419829 1.506176286488837 1.285239088903850
+1.295302414738659 1.266554167354618 1.716346614192304 1.082094525660619
+1.593939406853745 1.206030773471286 1.347551435087671 1.346280406454588
+1.148049999874457 1.329885212415058 1.824799128873585 1.904466134685205
+1.273550597719682 1.455402448334252 1.299349783907128 1.812491344638767
+1.766128656585464 1.827118396595269 1.930504771002242 1.912698302130012
+1.897460872336785 1.193328513016385 1.132654405987137 1.089144437054304
+1.046184550931996 1.239800061608979 1.355949384105319 1.525851980726032
+1.957488290849924 1.074452065349756 1.292423810603806 1.391249779164877
+1.751772248505649 1.526951274181821 1.867501691935440 1.476031710288646
+1.228156580444813 1.598680640042897 1.433566026507608 1.158501880187843
+1.345353639473034 1.479365500635399 1.436995701776478 1.260386611615661
+1.410556921915152 1.941093921006107 1.725128141325375 1.894550433727125
+1.052174771459639 1.194468542076395 1.414025273616430 1.379392896938916
+1.806073715201322 1.334071413738829 1.703142919750449 1.823227029784144
+1.938829782715703 1.775540016807258 1.959533560846263 1.602985861598428
+1.090716674606453 1.449017523010710 1.871722015131500 1.763411089890863
+1.461638415975904 1.377560995916150 1.696928218333825 1.687750190683848
+1.395469041414687 1.285477390984829 1.625486961562168 1.978770341497363
+1.815564999550108 1.113271410322334 1.953804330085964 1.597678188053152
+1.240981138727491 1.584045532812686 1.576249993164280 1.648079891727424
+1.872302535372160 1.577034821514009 1.005905323310200 1.915920185857201
+1.438839076135547 1.335398255955401 1.800008942084264 1.250373061198758
+1.162706818340308 1.699920699090749 1.482340480056161 1.423803993351854
+1.634446679608959 1.445809784874168 1.676114225122812 1.073453382958400
+1.649847026198809 1.269918499414613 1.979841973510171 1.556766143300241
+1.094079287819823 1.128619176976635 1.253314112065855 1.208748279913465
+1.306619199219997 1.044937628570032 1.000732338033558 1.342991154349005
+1.860595087754724 1.095218237767422 1.278309103629520 1.712102560416606
+1.233694446971289 1.652754972969379 1.727354506903940 1.275139333491851
+1.456955694277411 1.355509779696322 1.565310852583826 1.440111358694723
+1.501387933660361 1.189208691221027 1.945624184356370 1.756167516754612
+1.939719768221966 1.132962583454716 1.448504041886660 1.372930283176299
+1.839561561838321 1.515212928987068 1.088711606717946 1.653799496732638
+1.439087447936713 1.168821233918879 1.840472072292290 1.651160102448669
+1.678387326290781 1.108046734096531 1.742570194889754 1.217653292648427
+1.349962709860243 1.426428122486024 1.429786429576849 1.118086435371414
+1.898630445044101 1.202669101620633 1.003546627907316 1.432918367169483
+1.695838586545209 1.223565919554833 1.215899587070318 1.852231584015609
+1.419880923383858 1.859926300110138 1.373134607846553 1.099889345248965
+1.494907946391902 1.784242134336725 1.445521820343239 1.934132725176832
+1.678090853984541 1.299480083084857 1.219424573438757 1.041538167977462
+1.097603640756395 1.732025078213101 1.203032227533597 1.386272974239584
+1.076879222459585 1.749209145724089 1.160442201169825 1.782811480711518
+1.058055421912850 1.957771377913165 1.393268424373463 1.658215469825258
+1.235575238467041 1.943791208111706 1.453389714722725 1.926307913656742
+1.768621964734421 1.593549098825722 1.981895244975016 1.508627256398221
+1.469717778975621 1.997045413262179 1.817586820503908 1.029461018042398
+1.741638778301961 1.470665004275147 1.521922188684885 1.311582064856590
+1.189741873879081 1.372829524889769 1.197414135248930 1.344514220549816
+1.114370486075495 1.712090478327097 1.152896703466142 1.902599763583570
+1.418024756065962 1.142667222346111 1.181277876712413 1.563209269688428
+1.576564581342691 1.742196914327931 1.762945159331795 1.604856256572909
+1.544169913542234 1.824362992553564 1.645837187977834 1.251371747851891
+1.361282747748584 1.703849865833888 1.929498019658350 1.848805780413134
+1.203911768436835 1.605821833708519 1.079256448243018 1.141426777886053
+1.749062657349109 1.056086171250276 1.132192760856270 1.947176634523604
+1.235687234073210 1.752459754656633 1.438305366021225 1.373452870780806
+1.044592619568721 1.773696217599890 1.207805412084371 1.412286286069381
+1.209902595164476 1.661325053575970 1.616147023966913 1.404894085084596
+1.345217255906541 1.486416047565206 1.854124933188612 1.451945954682975
+1.302283565762476 1.672611218361328 1.243726061006824 1.167525036517606
+1.947278515140314 1.168920254477648 1.469843950007118 1.135063090649555
+1.615206376004397 1.787225412184819 1.099446837798952 1.872528906357509
+1.923136214644372 1.785901507549365 1.499012308076690 1.997423996459256
+1.602443281500402 1.389708042380524 1.889171531140404 1.732925992320568
+1.838977378853630 1.367254343774232 1.978071445787742 1.593334007010965
+1.774611481038595 1.868180716306702 1.967338939400258 1.363778802027581
+1.603868776407315 1.198939254701540 1.832191724564298 1.416486158507371
+1.758230884167997 1.111782584868624 1.666037131111267 1.796770808601236
+1.814121654190905 1.100190971887959 1.690126266298156 1.227156933568043
+1.846980440307328 1.209659117062373 1.208719974025927 1.372809502223703
+1.795954701994591 1.329528690417951 1.234757657297531 1.935824849697846
+1.007622478776605 1.023911016276410 1.971516092153707 1.827722074290496
+1.827932747001817 1.508485703010770 1.583979239771304 1.487151862583125
+1.842832913153363 1.539508630077605 1.034436635705730 1.915120528590447
+1.235945601682862 1.525281604964557 1.565750363770829 1.430247112657656
+1.844397604322980 1.525592815505690 1.870108413019490 1.414520083952719
+1.328371717561160 1.387892239665782 1.535683439529413 1.143179455543000
+1.490470597206488 1.162701772366728 1.487571425923246 1.009348362213918
+1.088775331485732 1.650848102203861 1.056501775675469 1.636731820619694
+1.874506782113476 1.017350457276918 1.444952138552120 1.720378347134331
+1.960542367652983 1.745436589021068 1.745396741206396 1.718817367171415
+1.030626903566067 1.035110921270815 1.549545151223636 1.698704708525667
+1.970514874959596 1.050948761612786 1.852082503948863 1.910978420684814
+1.174431330938931 1.079777120715919 1.317631508963325 1.356173983791139
+1.946304918438948 1.855695501801630 1.368049682038256 1.675728376911582
+1.869519776353249 1.343194842713000 1.653270614977977 1.799919642174217
+1.503881779649398 1.299018044082108 1.373531803375608 1.617897994237420
+1.517073781071638 1.433335588690562 1.834724718442011 1.987974578798595
diff --git a/apps/medlda_release/dSFMT/dSFMT.19937.out.txt b/apps/medlda_release/dSFMT/dSFMT.19937.out.txt
new file mode 100644
index 0000000..f6a0237
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT.19937.out.txt
@@ -0,0 +1,583 @@
+dSFMT2-19937:117-19:ffafffffffb3f-ffdfffc90fffd
+init_gen_rand(0) generated randoms [1, 2)
+1.030581026769374 1.213140320067012 1.299002525016001 1.381138853044628
+1.863488397063594 1.133443440024236 1.073465290616508 1.924735636004535
+1.642876178923654 1.135658049473512 1.614181131134505 1.758658396495576
+1.629675660963117 1.280639430198043 1.450236428147610 1.493660282874514
+1.814271115361793 1.167373211634437 1.029478262306546 1.995645230878212
+1.571796427913721 1.820991494675444 1.342215733241735 1.623155152394482
+1.770877090925340 1.971604009986542 1.291307503466583 1.042482713804030
+1.489892341518318 1.846505153340657 1.464614144455080 1.722998990286586
+1.261140462560469 1.466608076171318 1.284476538780147 1.566267595424500
+1.214877812942994 1.814025145094890 1.875364841982453 1.420058799919090
+1.185941915813226 1.613435647553408 1.261307303980314 1.575227905977901
+1.368593422560852 1.178339827374882 1.617026203567302 1.605806966367909
+1.688420982162701 1.271452757436403 1.380651074471749 1.923694230059664
+1.183689647854999 1.813616738156070 1.674316771173891 1.388616443854270
+1.112619958524579 1.143443226388526 1.044504544026019 1.059792215140743
+1.473318469170684 1.907724040304600 1.840641748107302 1.880247376378763
+1.662300761822745 1.756077893716310 1.794902408257739 1.208089693203264
+1.573346980275286 1.343298418696786 1.290031288673300 1.785887855614908
+1.469555312775962 1.303565840269790 1.821346312600028 1.464630963746065
+1.350918117062525 1.608975946390805 1.218770519593969 1.553737984201091
+1.799048445169658 1.934409566880829 1.518706598932114 1.806743174028226
+1.445770445550219 1.853994985463463 1.294940116346864 1.846933188597791
+1.585285299858689 1.436399337803629 1.984097327010455 1.104286003167359
+1.650974773825423 1.509620107806257 1.257788148487937 1.343504084778931
+1.949774691002465 1.575826707171932 1.334309761521545 1.970145826389876
+1.634179511150286 1.117295679338137 1.975634802490159 1.876312964236097
+1.588415777998304 1.655714874553697 1.333606641414210 1.534065546092020
+1.430491671060673 1.948237416318885 1.221039675791948 1.002582148951994
+1.154359196718931 1.871051234557714 1.608929525044202 1.314753139712890
+1.024921298185855 1.269548213986646 1.311905073508091 1.820250418624237
+1.530899807500864 1.382415501216911 1.723050693688422 1.273273073610244
+1.313899532538009 1.788939639818993 1.876299000001360 1.991333199989678
+1.991820254950511 1.030433951689168 1.676262472193616 1.508094775671104
+1.379478805615782 1.669062560664250 1.454294977515323 1.058637649351106
+1.762305416761906 1.259329140543268 1.069306898227167 1.416672040871633
+1.692817632828360 1.325016179312241 1.894413502990435 1.065827451446854
+1.648472088974056 1.136729079291305 1.577029131655685 1.770630083651844
+1.312969529843681 1.120742660491037 1.381749920757092 1.532127565299400
+1.430576333290474 1.408675485986594 1.664550700542242 1.808244181927591
+1.449745796589231 1.561376218313360 1.823412610420372 1.175033367831775
+1.302133406247658 1.209386996910797 1.958852403617822 1.327413109121052
+1.905326191931480 1.243341689973321 1.171964300933144 1.947795532949568
+1.406088608658097 1.352799736126945 1.038567042456604 1.952366632464022
+1.271894317271382 1.276879063784723 1.962232899932226 1.635977123253224
+1.427227475039741 1.902767774021188 1.348976205109293 1.098551616320939
+1.761303753087471 1.725151135219154 1.973647280723666 1.438406762461431
+1.976338460962363 1.080691466989757 1.302440271222677 1.524443530330429
+1.677973975664305 1.899365828945253 1.758064697654786 1.664994321814212
+1.702509799458075 1.542285497404383 1.583785005757146 1.364775251860427
+1.914911483830064 1.492662121733521 1.803292510850298 1.913612505233413
+1.990030445920955 1.265653421547230 1.371464451146616 1.812272753750019
+1.468314372775775 1.962074516808028 1.071993018163613 1.362232923167970
+1.286098054243162 1.166494117866721 1.190627308126986 1.336522203701874
+1.589002579609417 1.989085299207313 1.886248617042378 1.494809620088929
+1.210511688798404 1.373900882339293 1.529044652411248 1.599366524611929
+1.436552769988409 1.577285005915829 1.688182285296122 1.277637471607439
+1.929554385968616 1.823441682648089 1.922013798503081 1.645761293216693
+1.431349251849024 1.762959265242032 1.878537838979557 1.999467237190877
+1.485220104894368 1.716411480065391 1.412097187018955 1.552070069949518
+1.892433293954831 1.503681065768480 1.856696961604681 1.652070478210699
+1.941264820695600 1.747443060523082 1.340963648345302 1.115605969659878
+1.350907250724354 1.815702983867849 1.598890428370514 1.439048661943484
+1.517663378502000 1.304964768398997 1.079026972256675 1.524811537337526
+1.316547675188607 1.138964396377513 1.662996685355875 1.267094641341935
+1.501239512928825 1.102282578729245 1.681064147709950 1.806571233091203
+1.723576229776429 1.736972959477229 1.912237952025255 1.660774311421941
+1.025816042908814 1.438547835995945 1.739013210613549 1.413224917267124
+1.358475319974022 1.358765432047162 1.593140545500734 1.172245654090473
+1.930726901246793 1.162761062259565 1.318549211468092 1.092783981301198
+1.555764474221963 1.708252060788802 1.269806348212832 1.852955157375948
+1.907379745865761 1.486699553976457 1.515744472393222 1.620128750267234
+1.622430346507121 1.668132516832666 1.796788360374040 1.636602348582785
+1.773593519549434 1.258248394226789 1.246140312082405 1.015163448535963
+1.521503953242567 1.140634382438487 1.702118160723025 1.132078836187980
+1.963663308022001 1.452227189409805 1.832632887982046 1.261616333794024
+1.803214901972612 1.388570383844696 1.643765598586203 1.619544270246625
+1.307755937472623 1.857004438119476 1.398636660692930 1.556031209947539
+1.641338721048474 1.115939103561434 1.654221123345289 1.150482842848706
+1.494319794557959 1.788401632203792 1.025831928414729 1.042464682154734
+1.886776958738527 1.968746864493441 1.159635330475675 1.956557704773203
+1.284243453753799 1.572925045526015 1.859321130727941 1.005189956275669
+1.005337392745185 1.442294781323312 1.890812262600537 1.206329358583467
+1.026098286977865 1.047660975111641 1.037196173307690 1.743350801362402
+1.274336569674040 1.719733191271306 1.241944533170590 1.761242705869024
+1.087057719955586 1.923433325400596 1.769554882850761 1.422355508046144
+1.335735282689950 1.969166433701194 1.309113579529401 1.934488263782031
+1.363050605738272 1.205012399069315 1.702636620368798 1.377299901239738
+1.082603967707894 1.707678198781335 1.357839171792981 1.249151205817995
+1.414407072442705 1.758876753195856 1.947897139275915 1.873737405944571
+1.864011982004539 1.197733232912529 1.708750747026161 1.584026807407247
+1.464232596280593 1.910020147544669 1.107379834907888 1.431311422166039
+1.656031749095368 1.583060053927119 1.338823782349183 1.675841451609077
+1.863125002352507 1.383321945211853 1.437552865439453 1.323329267004908
+1.510393439678810 1.381858897252844 1.488904172419540 1.703038148781844
+1.363689874508434 1.782902379399008 1.207151750281740 1.134081954739325
+1.786230025908168 1.301807943529430 1.818037084625490 1.954083924684191
+1.503136817574214 1.166174793570306 1.905851898350567 1.861611595448786
+1.912073551209336 1.311539667277574 1.348138517947969 1.835216223115592
+1.848638059772834 1.508211065551719 1.501558584290350 1.841635694216024
+1.695119173143315 1.454484117280340 1.625646404371770 1.119869639433384
+1.444195622035266 1.399038475609640 1.911871066122697 1.393715521875472
+1.634940751730062 1.299965953553803 1.625354065027734 1.880393059283658
+1.690675478017034 1.628589134880479 1.012241730322596 1.151619785119961
+1.951158889711496 1.797539238310482 1.755218167276459 1.713478006991327
+1.571668224641071 1.319684419283076 1.470800535782670 1.106150064396913
+1.759426082965527 1.413902064615626 1.663209862298114 1.688656611986246
+1.561766088174504 1.021593733617964 1.104216171759727 1.056934446307648
+1.131101785914085 1.025747434603107 1.653089659161949 1.862010102275871
+1.700392592888141 1.749844513072156 1.600475707472835 1.797824285171013
+1.303262789973822 1.833983051083715 1.706436841851279 1.583152584413344
+1.157186002470311 1.160819822241010 1.212754944300861 1.963053526130375
+1.268811286389321 1.374828807938443 1.049479080410400 1.973869788889314
+1.280288819687655 1.193231050947952 1.306156625366250 1.244778108696800
+1.731164172106588 1.765672206167307 1.617163972329793 1.333068311058873
+1.230571993026005 1.225697451543153 1.277811874136488 1.572508333797608
+1.556415237569166 1.209965265731652 1.934900416408164 1.370051485789686
+1.026053486793906 1.090498102405539 1.516231184525802 1.080879023417522
+1.616056345268405 1.414971598053735 1.813169501790841 1.946113087783638
+1.550874962654984 1.095276777050610 1.022240506381006 1.349953863208443
+1.639335057225891 1.086999372715814 1.198125757163164 1.358872097979379
+1.864767925147218 1.425774441879807 1.324356243811146 1.013779032909748
+1.877970176001620 1.017769324762142 1.517328996674653 1.156791735454128
+1.820771116348883 1.209713056264071 1.854832025810033 1.626515379727837
+1.072074225561507 1.621286465674130 1.549902343511516 1.266113813183351
+1.450731461629206 1.023903615692273 1.141802126238102 1.478789349904744
+1.030261249106096 1.744520411596375 1.610339075504574 1.734036515785284
+1.445021690251891 1.067695047319750 1.044588489496833 1.078902049240712
+1.775656376455273 1.529010846255880 1.684639314731656 1.869078008870465
+1.196659282984713 1.055877083218375 1.343311406572803 1.657804323039657
+1.931310179843877 1.876531128866294 1.953312528893538 1.751295176436919
+1.990635408763924 1.747960800049019 1.625876628099381 1.950163235823662
+1.461443118782703 1.075928147908412 1.092143870551425 1.530725871270558
+1.134721738077522 1.006593825427538 1.510662628484829 1.102117778241225
+1.237414790616429 1.415898757276402 1.227818931317890 1.803733837180969
+1.039835919301454 1.945637370177811 1.014985550164521 1.662360752310358
+1.389442153375327 1.067707198772765 1.752954274484631 1.712429083915912
+1.798210585469825 1.644104449048200 1.668431996831141 1.786974747468935
+1.411459450430814 1.354534709965009 1.755820242124135 1.186816760748136
+1.711332994678620 1.903597963775769 1.127695794052451 1.055764745873512
+1.462173219563238 1.601988414252792 1.542788005387959 1.470016225539294
+1.053250417579233 1.919128040049399 1.920409133273121 1.930196071775802
+1.093941301487821 1.907077053805924 1.180006330527884 1.855787153756457
+1.038787604610960 1.603390528893462 1.675699800641335 1.436579268097476
+1.695216721991263 1.667921392643477 1.298225569286973 1.176659205584008
+1.484688184402969 1.736977199998048 1.527346818010219 1.124337166052271
+1.004126214409010 1.257995351445688 1.048750698690273 1.600687893284987
+1.771330853717698 1.781338029764260 1.791045259533474 1.218240073554028
+1.404476462748409 1.263776254264821 1.771506489056091 1.492535106857984
+1.942560639598830 1.880445735782105 1.987365393774292 1.624806632834506
+1.360289989229111 1.259447098681650 1.565201597574085 1.724405238661507
+1.480135931789360 1.613728648660302 1.148462875077473 1.082990694586929
+1.791549713090436 1.011697309037590 1.051330287711138 1.404529653735530
+1.255076827666297 1.465354319402313 1.959722467095358 1.667465002487598
+1.059786656048662 1.145589007250259 1.111653746143364 1.118097303976153
+1.274790361215896 1.061022554596977 1.650762458048159 1.426666443801441
+1.643025168116494 1.881525522016726 1.331922961270956 1.141320506705509
+1.835459356205120 1.604755953946371 1.126481102674482 1.345361030653902
+1.552930483800284 1.651060315989797 1.281924176836940 1.478282162483309
+1.089522082067808 1.514671692662497 1.062032369569581 1.220072855001427
+1.335222242385036 1.917688560760201 1.881563679176478 1.061345187966617
+1.932816485102730 1.831378583403447 1.018053903667606 1.803752606555742
+1.744151146745064 1.823935602019249 1.549411228789844 1.852085525549937
+1.268910953917921 1.398103908872195 1.115463052648461 1.134166374832642
+1.059662865049822 1.913385314672057 1.817573645089763 1.543472539894835
+1.879411496379644 1.187052469310417 1.327060124683171 1.201797766005763
+1.585708496011359 1.726441950212828 1.765366139479803 1.575105655795392
+1.161836204689848 1.177060808947556 1.991643941775680 1.483304774937826
+1.299878727524718 1.860512786972423 1.055049090865626 1.843398581472891
+1.092910752402670 1.944321623196737 1.663494470271249 1.922888589107380
+1.203337506107050 1.673695668302879 1.453053811175328 1.005089626720857
+1.795346999949530 1.229821542926916 1.748377783144588 1.321996885703262
+1.309371806850785 1.716138869778725 1.135666913050759 1.338269469982098
+1.970855876728981 1.853517049886400 1.057177758132396 1.248940788315584
+1.791020744082269 1.081574247946067 1.730996177586578 1.009526675464715
+1.009798100718231 1.881102727076643 1.670032923753426 1.864089798899085
+1.947800326838745 1.525753676291635 1.481044314974777 1.045650816913446
+1.343050229590432 1.254467660379006 1.942791560918173 1.712818820358553
+1.365835692787808 1.840681238589795 1.226240189108953 1.322696502726162
+1.519948924493175 1.902086636313264 1.831961607099442 1.656813895374856
+1.580562626129614 1.628706392122500 1.709923293711780 1.397619640553994
+1.955521961038447 1.131582790546282 1.120774954775631 1.643383921264857
+1.428256924538280 1.629234961965852 1.481973671272142 1.355168703906496
+1.381360123066666 1.297353474383750 1.998779984895075 1.299540149195283
+1.554953631008684 1.022499550534725 1.267538332848977 1.999635534064931
+1.216908438689689 1.125330423218031 1.521094226167544 1.352444820153410
+1.891355866547355 1.237188250644441 1.829163148453760 1.010975705160555
+1.389099307599609 1.166572697139759 1.209619877947629 1.957432819952394
+1.171713118207805 1.995544396463686 1.113738650685683 1.954952493800097
+1.309046349979008 1.125405858742736 1.334059551241411 1.618705235720444
+1.231177186143469 1.553727846971735 1.178887689593680 1.264866781514123
+1.091971065285239 1.056441862383996 1.283527024623163 1.834607590365417
+1.962802242863336 1.228730340204497 1.842991683633420 1.697545988525402
+1.844710792546847 1.192417542034665 1.697508607262110 1.784896632338091
+1.034112834139585 1.422033286751813 1.453652054620216 1.058379823639922
+1.507638941358602 1.047993066417010 1.516397461578060 1.302372136540590
+1.461998564058737 1.554611626737750 1.134122374348743 1.667716941372084
+1.433151414564393 1.319857533959847 1.583420071116494 1.478250465560727
+1.466784271564917 1.923843580047532 1.176048670365018 1.518583880443583
+1.126284343690593 1.309458927538403 1.254116920997212 1.221286762203130
+1.314794812269592 1.865355356312181 1.875368141725648 1.478554967746866
+1.289949440091931 1.240447745313523 1.101700136534686 1.332573248950360
+1.167135678363469 1.604936747884104 1.828477968610324 1.981787275210698
+1.528961708093550 1.844833688431583 1.292908212260039 1.526421493343533
+1.477684242274037 1.520192575343653 1.407146775494489 1.433258876432486
+1.140499612461638 1.224429147839875 1.413739425285328 1.939104296647277
+1.669514052983343 1.732909897181110 1.751457852668096 1.242198740016763
+1.909522621661234 1.248802188164318 1.785821368840928 1.444035896141739
+1.408015292232671 1.097220772250296 1.433573415928994 1.019849701076716
+1.192183652047805 1.942228730880240 1.511971120822260 1.167847411636749
+1.424386751141384 1.999535966473089 1.256446120225825 1.758859587241302
+1.554606274137138 1.141112413898596 1.872291378873514 1.893151469654739
+1.869646558937494 1.826227167199755 1.804544311254211 1.730661202511795
+1.226769815903244 1.679838430928674 1.643941207337068 1.322059748794036
+1.045053637669191 1.309404672920857 1.331474945197764 1.790509417887939
+1.263083376723605 1.245939409206071 1.759660309891394 1.281800922487132
+1.712213197965571 1.803213756378482 1.717270512776782 1.385372857246577
+1.255945382268436 1.564636086727342 1.644313176830236 1.176523282489581
+1.334422402615048 1.208067092977696 1.149552540117835 1.771501288135706
+1.564055713684924 1.621614271733339 1.081066576966760 1.495853964383299
+1.219063833026128 1.084142314244871 1.549237225541902 1.936776127604372
+1.845512189258520 1.005975975876582 1.811498259332091 1.635990011669673
+1.536881182554052 1.443297379586476 1.886119584133706 1.275449488687871
+1.670965527087923 1.987232750305201 1.544406415554266 1.725582465417778
+1.799340284160104 1.608735841735920 1.264891652333546 1.808533254198986
+1.974563992723363 1.673825352257849 1.559378666798180 1.815513818850944
+1.679215902745112 1.846384704667485 1.353621521988754 1.236648508090431
+1.002104116734581 1.053298883217048 1.430242739641769 1.420261924778031
+1.783120431598888 1.331408790925515 1.781593450829028 1.139278556251319
+1.925682266142099 1.138131587567467 1.474662993172124 1.319063477600368
+1.536365678407554 1.129922971629872 1.780938176769717 1.257945861972239
+1.206107632090796 1.055490753863072 1.161054816125216 1.058802624223267
+1.756641825929552 1.754378196150022 1.827313268250450 1.951406696895395
+1.315659554078758 1.926535624123573 1.711614142494693 1.408317616914680
+1.167503504129387 1.221579231246995 1.772499449844828 1.229590547241117
+1.523859240135010 1.750638838700595 1.294969757722743 1.239218469359550
+1.895331049984825 1.351848818389126 1.953628356200589 1.556987376063896
+1.742382503539244 1.831314773712437 1.931187779890391 1.627064275586785
+1.092521265403294 1.056269664216268 1.697419776942093 1.020621151020278
+1.016460701790075 1.663349935983337 1.700240650962897 1.294295439244268
+1.217283432848958 1.724633019876359 1.611555526017567 1.976769804845470
+1.322482963420171 1.119851357883444 1.188940717720834 1.639649300982932
+1.430594405952054 1.528763701984112 1.677238553046157 1.804257644847276
+1.373695667911955 1.041607859915277 1.292586152868963 1.204343281283561
+1.219648415953772 1.118298775504544 1.489325174543727 1.223311365895364
+1.215428634537803 1.544464527855300 1.211873174969368 1.800882969641407
+1.395620323924559 1.513764352278001 1.855296462052718 1.311627987537891
+1.106545691943606 1.006292260028909 1.266506021169479 1.061150534120227
+1.552364586842264 1.302709575585848 1.821775657431182 1.391750759396551
+1.365952489392163 1.337000387140509 1.740591934294086 1.185662060689487
+1.200293174238620 1.390126083634700 1.802185187529872 1.091847733098113
+init_gen_rand(0) generated randoms [0, 1)
+0.030581026769374 0.213140320067012 0.299002525016001 0.381138853044628
+0.863488397063594 0.133443440024236 0.073465290616508 0.924735636004535
+0.642876178923654 0.135658049473512 0.614181131134505 0.758658396495576
+init_gen_rand(1) generated randoms (0, 1]
+0.880645574886293 0.087582384819670 0.496821329757135 0.128745342494544
+0.467567197430918 0.436374482624768 0.899091469109679 0.001594789681223
+0.210988720282107 0.643085780983058 0.286963132782255 0.013824516579797
+init_gen_rand(2) generated randoms (0, 1)
+0.111463197826414 0.981070652873690 0.273251005444180 0.667092155512465
+0.067797604041130 0.685302203135360 0.488955903431841 0.086343896919829
+0.336371017018281 0.035318749911809 0.386868055837259 0.599611474561840
+init_gen_rand(3) generated randoms [1, 2)
+1.255012198808926 1.875325181548898 1.090817069386308 1.114317519239395
+1.361744453795217 1.820994567703168 1.844381146874511 1.618865371694159
+1.673557508016053 1.091709989515746 1.126079371575098 1.496618495643371
+init_gen_rand(4) generated randoms [0, 1)
+0.525870252184132 0.756509091477380 0.909241411895205 0.143911115035140
+0.698929653706998 0.669030576065301 0.241744340735132 0.919797334192990
+0.028705520493362 0.218683037894924 0.456442573349723 0.539417856942046
+init_gen_rand(5) generated randoms (0, 1]
+0.576676137904379 0.994304310329450 0.127959185148864 0.178972277952344
+0.501233068055063 0.859840653012468 0.546161779037789 0.805380602145160
+0.381324178276622 0.229028865043289 0.666794531244068 0.821723842976139
+init_gen_rand(6) generated randoms (0, 1)
+0.873475838401079 0.583121226481617 0.576856073100122 0.257034220291161
+0.880349747064963 0.605268659164597 0.689410341721138 0.966492486436186
+0.534806053406845 0.900572098810981 0.597121162382788 0.133791573492792
+init_gen_rand(7) generated randoms [1, 2)
+1.733846496352147 1.944933364309216 1.534366387694546 1.349854297375459
+1.571154261112555 1.863253614248477 1.864195640054161 1.785226829892599
+1.379886866798434 1.483001766555189 1.866336010420762 1.423589988625517
+init_gen_rand(8) generated randoms [0, 1)
+0.016149986809160 0.240896551732740 0.220205411033437 0.600118317624624
+0.213730648540553 0.952832658803485 0.132273329757838 0.863778049809414
+0.906936863919466 0.961619277372525 0.400525759102315 0.649827956416327
+init_gen_rand(9) generated randoms (0, 1]
+0.897952026920904 0.203799481453592 0.308102370173474 0.422219844527180
+0.443487283107153 0.273078034367036 0.891095544481263 0.504201644104074
+0.860515602119610 0.099756040933477 0.665909380063383 0.712374311203949
+init_gen_rand(10) generated randoms (0, 1)
+0.683327910427992 0.372356849192171 0.497061202773271 0.605407023484072
+0.511747659988026 0.001673057933136 0.552274515327338 0.043245882396125
+0.712391906919602 0.193479812533390 0.954009587317864 0.249432912513315
+init_gen_rand(11) generated randoms [1, 2)
+1.515116984509329 1.443474140205448 1.744243096579810 1.174981598119548
+1.591230822876110 1.891149667922797 1.234649637868734 1.689416942120393
+1.597133636547374 1.393254123902199 1.416543312374616 1.876116444637407
+init_gen_rand(12) generated randoms [0, 1)
+0.481774634082841 0.623613096403768 0.433948476365912 0.405980944986896
+0.266345318555654 0.029670935213201 0.872367522063317 0.179517403785763
+0.826284520382318 0.305580349258039 0.860195447330739 0.696284974815308
+init_gen_rand(13) generated randoms (0, 1]
+0.736509336456002 0.651082007713346 0.555021508844934 0.885753886252467
+0.333120182106870 0.993548773174568 0.987772890836659 0.431302442805909
+0.705413176872964 0.481900388799174 0.225302536580132 0.920897894303691
+init_gen_rand(14) generated randoms (0, 1)
+0.097538698136809 0.667918617856063 0.665514947795676 0.987487457310677
+0.852303628338015 0.865926887506882 0.741215889765148 0.133112334043015
+0.333880173444365 0.147834523328185 0.207424230300744 0.079230766305846
+init_gen_rand(15) generated randoms [1, 2)
+1.685473600093543 1.832764630430519 1.354009350422052 1.741020317316160
+1.597593449420559 1.830141846144645 1.358506431507488 1.275519467960031
+1.046966095225627 1.536343990557542 1.558416456717071 1.073677139349694
+init_gen_rand(16) generated randoms [0, 1)
+0.976137909126447 0.107093727331627 0.542120470952989 0.971703069457611
+0.306550103262598 0.446553984418768 0.620684556774153 0.553453780422661
+0.613690074438016 0.958374645802272 0.865352204619699 0.057389301498593
+init_gen_rand(17) generated randoms (0, 1]
+0.483981085511368 0.254441115776038 0.335092686732900 0.307048279097139
+0.367845049818382 0.013859536137113 0.635616755317694 0.041197496379171
+0.729539767320051 0.434411980620260 0.102507984715114 0.258142362745437
+init_gen_rand(18) generated randoms (0, 1)
+0.335740132995339 0.299313426339728 0.439248668581697 0.325201563728406
+0.155819947798202 0.910642358668589 0.971275576846953 0.405370275515955
+0.973829163404636 0.816003162109168 0.866979619992709 0.609717360529922
+init_gen_rand(19) generated randoms [1, 2)
+1.215781221856222 1.258174726278870 1.334549825010923 1.347468216542527
+1.711200914089176 1.865993942546754 1.482519712342379 1.122766670733852
+1.439184830020622 1.950977199236228 1.366172637840221 1.796301634657450
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.426834076845924 1.669573575226984 1.161348943376632 1.218790313522451
+1.409859819741837 1.507585068928725 1.157665160870239 1.763320166432968
+1.244116037727320 1.471631443373209 1.548950785012095 1.631712105867313
+1.646854415248517 1.441505070427991 1.779880230398589 1.265250259948116
+1.241834722506462 1.291436728456658 1.301293539339929 1.330800599996647
+1.570261068928472 1.963194799607127 1.537283415577270 1.981089162219523
+1.921418222379268 1.969460436090207 1.724652994742112 1.244719458395128
+1.759728417498294 1.775610930677769 1.022380872515206 1.782766294549358
+1.831395483035109 1.642705713989280 1.010552292294011 1.355409829832131
+1.907344376547058 1.658109050575550 1.373479948584540 1.279188769641363
+1.744586560095084 1.017850971812924 1.040170071312174 1.215893821833225
+1.923400738483353 1.059892715077562 1.550064026417522 1.769996320456946
+1.396434884186553 1.234568619484248 1.607681797577103 1.958189196349296
+1.269921724086717 1.174229190800146 1.237214368220291 1.094049878485849
+1.137897167177718 1.380112949484837 1.496596270833800 1.735745635946019
+1.224503331109337 1.141302797343402 1.918266068409987 1.130322927693906
+1.733289108076045 1.255649974028649 1.559892277382983 1.633161632346011
+1.962664431591329 1.392226260478223 1.892171287848435 1.279027400572027
+1.437126735535775 1.386726935201865 1.361062580450083 1.322030814096333
+1.762601775714896 1.500787847237421 1.167840711209532 1.831617008434050
+1.042123180114230 1.229272727743674 1.045940571227599 1.535325894374689
+1.583280537973708 1.115174674459555 1.946191240554468 1.235668534056144
+1.813929917994015 1.341408254343760 1.107526173037224 1.053206871863764
+1.889875129215487 1.766005875969800 1.946185923889105 1.409941347332054
+1.530982625104156 1.756192019607669 1.260098457559148 1.416286116423164
+1.259622153648303 1.574846932747870 1.120555105300661 1.738707096041396
+1.211513986751540 1.666116922348542 1.796136437832266 1.490171489368468
+1.307838784262878 1.356122803065520 1.052320157786442 1.617164657275455
+1.316080031678648 1.730404834511234 1.695862484340249 1.856786318280202
+1.483393046244855 1.862205529277383 1.594880498739936 1.985742592210404
+1.166839487087951 1.133716853979459 1.365074009233616 1.605185379214896
+1.831834983150267 1.660729481116249 1.620311051109192 1.528421672003104
+1.082897677308352 1.843849996791790 1.599032454492492 1.588016004934536
+1.180236150679974 1.436273223157936 1.659511340406489 1.590478061296625
+1.093628939305082 1.407315307598384 1.501375134631466 1.309988042417427
+1.305409853356275 1.487638365944092 1.768299425065061 1.010844059113900
+1.635126268183143 1.011204656788837 1.339645464506357 1.095284674847235
+1.414551891928440 1.209748104849331 1.383681307792533 1.618290323139935
+1.129084170610445 1.311924817517179 1.738531311784417 1.022939676896750
+1.442651027374832 1.673323075196818 1.487189600303214 1.532034363784108
+1.400348884925631 1.363156319140678 1.180572477383139 1.372597207018608
+1.604056432308996 1.377853904814897 1.663632726228692 1.573375474817795
+1.355508816621638 1.514511112895809 1.106777497571639 1.550994721654071
+1.683643844118159 1.646927695891595 1.577726831986079 1.571266074937761
+1.778651911357587 1.520031681347608 1.124711635026065 1.352246268244803
+1.487559893625447 1.012764455867505 1.816719563910962 1.208257832450662
+1.041803856577994 1.341911150404035 1.495370280168004 1.920170272493653
+1.965874911324751 1.387951518473841 1.308272147397573 1.951071698662061
+1.663217633897550 1.945953261496162 1.686783572931176 1.324520724942713
+1.127392168492707 1.394842942423987 1.012506832463119 1.822249895602965
+1.436044063754271 1.971206342699864 1.560002828665746 1.348604578570351
+1.985869362645133 1.684004058042209 1.683411183358192 1.502820898156415
+1.960863417471854 1.493718069903426 1.197213019494595 1.214259717301311
+1.126081942497942 1.367414815468620 1.380626706955520 1.166578286904322
+1.546300974500453 1.233715989328426 1.712789727425793 1.387468774840364
+1.960673127865697 1.393511379672539 1.190798885641789 1.802506083884619
+1.621723203267155 1.733219891419485 1.896614154473786 1.229258857531175
+1.096987145590863 1.007215446593439 1.479848013247030 1.006482533692395
+1.475695406716030 1.309082981969394 1.678047918649087 1.089843444536437
+1.694859112978739 1.114017228925256 1.991445866731817 1.221630153896200
+1.917931098876256 1.689395707382685 1.737621185382058 1.612901920531663
+1.330282688873216 1.033762799477599 1.011530866922912 1.926949652582234
+1.620919308859026 1.810944265792331 1.550384430427288 1.228912888541250
+1.911516265887385 1.438816062362574 1.945797079688606 1.916913938717497
+1.152650482854743 1.843852063923894 1.068355630824362 1.273969783397393
+1.375245960298238 1.501283182886075 1.098455261332468 1.099965212689164
+1.170658644384428 1.496849788349464 1.424465656338886 1.904735368983423
+1.398426398706599 1.860062780533885 1.432252252854407 1.671198497157295
+1.208712718773422 1.710257941132382 1.577111646071254 1.185306714851669
+1.312966613794005 1.358981235665188 1.953080477247737 1.154913690002742
+1.654663950572185 1.046010570097377 1.325979209020512 1.955693196654449
+1.164134629356233 1.682424583545629 1.115346839933939 1.599054122161155
+1.335809252383722 1.060673863590639 1.313382990481806 1.656194063721297
+1.739327262930234 1.276663134931733 1.395671651369487 1.329253246522567
+1.778740656645262 1.226578887879721 1.432566966747909 1.983949028407306
+1.913792818236820 1.219643752332591 1.359307472517508 1.808516395406093
+1.121906674859834 1.270483716098554 1.517779000455837 1.711776674832905
+1.390583487750140 1.994605514656146 1.906879532410404 1.332941966198184
+1.687958541140226 1.487269211768559 1.394286821998758 1.421607978659534
+1.150598542489268 1.073661645834246 1.708829843552270 1.944755656218999
+1.107564600472842 1.549311434768161 1.084858213461931 1.533238420069023
+1.495637400655005 1.864965931298466 1.893350363793168 1.904260299217689
+1.285472112689936 1.669575308708602 1.253180520622698 1.488662125414735
+1.634617289421840 1.883566505438183 1.617785553399947 1.617525633258916
+1.922929171389756 1.838060479578278 1.411070380904038 1.420246637302472
+1.627475272308532 1.119690632466533 1.730210932477710 1.937976974151877
+1.456257981764540 1.208896128580933 1.467276557082393 1.209313014443134
+1.882352320555063 1.945717562841818 1.222948908563262 1.279072223154041
+1.867084951996655 1.625347110344591 1.245839081779847 1.300121901976393
+1.587606462992871 1.818821279184783 1.814551993039790 1.136992217794482
+1.452665110089960 1.001840654985076 1.809653734695938 1.858817374177705
+1.469834396188651 1.176138338607174 1.929974744258458 1.564163367933883
+1.304169190955766 1.519675089228074 1.115780668495985 1.682140774354814
+1.198069437252950 1.006046617718814 1.655446076168212 1.225260413038774
+1.564029146076696 1.406594628357604 1.135286685491212 1.999489806666566
+1.099847864711105 1.985472483164865 1.212990258376265 1.272293766504075
+1.279062576850884 1.945010881697961 1.102452242125771 1.671345804346599
+1.772581751720944 1.546186567460550 1.423977267121589 1.725522632921294
+1.651629057507733 1.630926443029539 1.705580078317253 1.296887311826035
+1.371427291682118 1.062966634032282 1.883595076045059 1.014029636998457
+1.418958376261523 1.197909502513365 1.048295132060078 1.531935417228964
+1.015332714518063 1.207662752580841 1.685900545657276 1.063825393685159
+1.392032127567247 1.300355536672946 1.854622725696328 1.606463794406964
+1.595817205182753 1.965728893166848 1.954772172863898 1.973790313942350
+1.327464217663591 1.896774730863938 1.003547628847870 1.595062027363304
+1.206291459356301 1.721588402713185 1.899204955689056 1.815035251598927
+1.099356487704735 1.783549435846408 1.375896568121243 1.453050027525146
+1.943677424919589 1.546538161706148 1.900909100511535 1.349943718161820
+1.533345830253451 1.093044716493812 1.219158635372369 1.074416006345266
+1.678604497907827 1.974589094760755 1.739673198348744 1.241247621946750
+1.216812258510965 1.927902922291254 1.948427761885198 1.137674010896377
+1.470040451663279 1.167752918511722 1.708876315941173 1.385171084424976
+1.107542701964719 1.961983569960906 1.894616705131670 1.361369732820478
+1.304392050803370 1.464488580201550 1.482542983584846 1.757523394614974
+1.059289470756480 1.449984364110528 1.266004597799440 1.808446082790776
+1.329798441424991 1.530458013040481 1.457972376398402 1.384922593120931
+1.503593622418923 1.205177226370211 1.959130053654247 1.899493172377747
+1.545796497762927 1.476150674476302 1.232020959144959 1.796591448707725
+1.701990156758694 1.124306549388820 1.107429083439806 1.422775485038744
+1.045325648385642 1.323797272384099 1.764694978167851 1.350855216364540
+1.472754501479153 1.105616179696957 1.709288378795150 1.908162447191142
+1.081639218134927 1.979098731114193 1.429786783162796 1.946906605766447
+1.789302203510496 1.715826286182427 1.013140333158485 1.945122186514672
+1.732820538346865 1.608436623807375 1.265892143799623 1.141736499777089
+1.837377444233870 1.435327030632060 1.702005596366721 1.370273070018825
+1.830185715245181 1.941732450025238 1.563422324050239 1.877638648903689
+1.224345129304570 1.453540982978909 1.559840482019349 1.533766009384702
+1.830139667168129 1.299054110993703 1.109005451041671 1.093376809887978
+1.545120278466297 1.778942758262092 1.244100507573634 1.908695212280680
+1.195704324859017 1.483130340712003 1.406475178766194 1.794046525368626
+1.911300952995479 1.968551272798568 1.715754847871861 1.285631643753640
+1.347909427212457 1.767564567333448 1.761922655826833 1.197175013318101
+1.505809853061522 1.013768334933747 1.701885995989258 1.321452174824692
+1.529730404552248 1.370098118464645 1.208338237097652 1.466277252326645
+1.833000915075430 1.258106424804097 1.324873915639283 1.838474012744360
+1.891802185976666 1.840402694861327 1.271283808821487 1.816854464028893
+1.479749545410731 1.574313962416183 1.438886074751868 1.381406705368805
+1.001786763541981 1.079701210963645 1.100870332155321 1.625082412864520
+1.854060519633396 1.502636080979976 1.569250029648492 1.550658559345569
+1.599962389945837 1.014333184419401 1.854412778005718 1.172007738203310
+1.587714789029519 1.090658637254134 1.213949982589925 1.718936782639498
+1.063870393616342 1.562510142564266 1.090520637540239 1.099641866852140
+1.947504728888366 1.624762715087525 1.923148612522649 1.679405324557790
+1.551870177287343 1.786282724119886 1.183938250970157 1.102794192878793
+1.695440570136371 1.885884267414622 1.243994894231952 1.767836772768697
+1.758714751439334 1.417075153750043 1.587489632185676 1.358728580114985
+1.298713510011410 1.732270957429545 1.992131856583623 1.658416223687000
+1.436682196461247 1.065424608478268 1.666159698022657 1.564965472966045
+1.497853763605442 1.617996224956225 1.951831866832214 1.853789662410868
+1.100562102836905 1.746047611865880 1.892718533167385 1.448046696670160
+1.881592197205607 1.704820144612402 1.028457929428328 1.816213591592389
+1.688070477867054 1.088679935463696 1.325939201504655 1.791578799979975
+1.946063836890673 1.689108081352551 1.695057599176303 1.561760096517576
+1.846961835102491 1.334361920873384 1.801315399669617 1.198434484652506
+1.706588367588210 1.090504480829449 1.913599607903287 1.616945229130569
+1.493087459870576 1.274327091820023 1.430576343328712 1.314015035105266
+1.443925378913312 1.241105140526398 1.178806065567964 1.077427059046700
+1.307326632814646 1.180193228107027 1.730485474877401 1.974021399375539
+1.930490064100030 1.223257522319911 1.591813090523529 1.069220381984795
+1.057934876986562 1.126501298773438 1.354352636704354 1.538395734019685
+1.434380158796634 1.575045150243632 1.227158496902866 1.511824223274362
+1.842239152737422 1.336832653226726 1.819122193390456 1.026339652430971
+1.344177665054088 1.382552685665159 1.154156866046941 1.649099470408636
+1.877774816519883 1.212174941842284 1.016663692544346 1.785948044319059
+1.517467244947224 1.079171656646388 1.860758175476762 1.773279739478793
+1.151394754845928 1.982058953284568 1.329439529485770 1.063742478855740
+1.625806624066831 1.158083668237448 1.319782807702571 1.067387868979390
+1.090509256668987 1.756791625757258 1.502937028746117 1.496714649577895
+1.200580298106845 1.787858542678827 1.780169171490338 1.630157935168317
+1.493213206076143 1.485515226420954 1.865598765382182 1.359067575428410
+1.560299374807931 1.369721324629961 1.829409362374144 1.746924873122242
+1.560304797551715 1.495501928306107 1.987603066705999 1.514262836744358
+1.357993002377497 1.984587685243000 1.519070996055480 1.031641667706884
+1.268186887690940 1.486835503440424 1.374037748894531 1.870170450632473
+1.344741395864832 1.490546594321097 1.260334133931221 1.378967076674884
+1.649307942452164 1.234142949179529 1.056548341868476 1.710394752399008
+1.827187872128735 1.749570428772468 1.115856260713810 1.838637990834910
+1.754857234141087 1.070798286819275 1.335942792664983 1.253055731771669
+1.812007873164408 1.812630700481946 1.826896618291248 1.838670393616684
+1.477135860487809 1.261671632923509 1.587831013014903 1.298696341467373
+1.628856455483803 1.807983542158702 1.002009902484404 1.303985192558516
+1.569365206068500 1.866438695897702 1.355406794326674 1.437138056262696
+1.501509829515425 1.719818806091735 1.062094290639519 1.479482512638503
+1.552622559437259 1.536746866455768 1.610314356026141 1.898335596502172
+1.244678550341374 1.509816196516049 1.738799912550892 1.465795555729572
+1.452672993550554 1.637128923338306 1.330343867314064 1.233884025266144
+1.824020698200483 1.499439713803945 1.692253502213229 1.725196803167028
+1.655967067390521 1.620428565074837 1.044509752979818 1.529058930175865
+1.551920392733197 1.073781522588194 1.712884753545889 1.384017953294694
+1.298019316523355 1.167437738304236 1.613952788285703 1.095421380231374
+1.452757619489732 1.390504115086226 1.357847955632148 1.792678366854516
+1.797935382556016 1.055404279924490 1.811923552779429 1.035258705384038
+1.353216543495339 1.651195832805990 1.470075356761980 1.999043458488672
+1.983818724809119 1.481871828233601 1.003672519851657 1.819833345066088
+1.290987618126719 1.623882462446952 1.235203267513072 1.058003931779889
+1.191769505403298 1.128113294802747 1.450703088124740 1.300150882608954
+1.165264903174974 1.018297020805552 1.370520345828534 1.564076368484439
+1.503385041792565 1.794732207592667 1.730110283131097 1.425133607084945
+1.205173554623940 1.523488726562109 1.115457793777929 1.090052980555380
+1.628957607906438 1.431440359101521 1.964534092496366 1.612249723650141
+1.680873271330350 1.023091624082656 1.660026792155321 1.766046123479438
+1.483484232663207 1.190440412635115 1.475268740366315 1.588413392671585
+1.892649575047508 1.011700702342692 1.958518291201052 1.416624841319314
+1.736705790009391 1.614309025459634 1.864589683032073 1.418957553787935
+1.335243911364679 1.442787665364914 1.509736921106207 1.662028761852891
+1.774862103295833 1.783822879340850 1.438653248014463 1.853576445626185
+1.551050558217162 1.029888826980436 1.858052572505577 1.968049341536631
+1.256224082121802 1.270287371478510 1.403040924702392 1.924228334104109
+1.048825171074923 1.856012366103791 1.409876873857982 1.455614233950671
+1.872226260599348 1.374559318539743 1.160777050990141 1.182299474165097
+1.666891320926819 1.455176432589435 1.518935878503910 1.227106807867890
+1.260576525911182 1.977890087355633 1.984176133112624 1.134942000192615
+1.826981998133453 1.260943377443853 1.842376454298465 1.280568346682027
+1.666632191943061 1.887375931011643 1.695555054615464 1.162452653322103
+1.835466189165609 1.005668873570781 1.637759440476249 1.234371940113057
+1.414835523310094 1.501051606162356 1.675021657502007 1.303172899477301
+1.909592954881840 1.953519641405991 1.323252970262404 1.833590924740316
+1.124039824077613 1.605743272822791 1.466313534922153 1.482705306599986
+1.080545711817594 1.264031635472488 1.856304009068501 1.084919116430415
+1.574876601193678 1.320568646851835 1.251270156623957 1.574545157366577
+1.069342773038135 1.476651738353840 1.506431865951714 1.799100036898077
+1.039928219693836 1.114998322155024 1.212591307429074 1.302272730393509
+1.527594615332035 1.908014866039218 1.204044775667290 1.183417296474645
+1.406844682559588 1.012124911756196 1.497150179116888 1.782761995937366
+1.642065096885292 1.002372426937898 1.926348707148083 1.583513760323786
+1.906500004074549 1.271851452392633 1.322812584825108 1.629598376095279
+1.182912972574828 1.560721019592738 1.079454073146467 1.566539117914465
+1.957634243700094 1.278668002363109 1.060051048261784 1.265952637425584
+1.269660031574978 1.473085869230855 1.877707337208188 1.857519596845348
+1.164120252035231 1.167333872031177 1.128887195815952 1.371521072886886
+1.022814861420373 1.201400164878863 1.541384603437088 1.937995800577335
+1.516196933686001 1.082664013195098 1.745945707958779 1.385887829529631
+1.967672364186757 1.826060467901782 1.443407381117904 1.880962366071699
+1.988490951109197 1.884418777917566 1.960438420096021 1.689378867367639
+1.104473308478362 1.172372483689915 1.659145654122805 1.609687537477636
+1.482821606583914 1.381899620186154 1.818378347061182 1.359440101752451
+1.612965746242507 1.134508133539591 1.704589914026007 1.970228705481614
+1.151918637191514 1.987565177818917 1.679732553383051 1.744342206680546
+1.354214427391290 1.954514314877655 1.888025156713382 1.089873408339493
+1.910410513743287 1.756898990457415 1.783192501589780 1.744271974759631
+1.641634829834598 1.460781477020485 1.085146660894919 1.126718335235908
+1.491324748038888 1.429305627898091 1.150433300660570 1.022335509137852
+1.160002690142829 1.431736205324860 1.452773060296226 1.795516161299469
+1.097854723917131 1.589841954655803 1.749319160595588 1.366558951432918
+1.962494655442923 1.632965678803670 1.854873615313054 1.229663327277940
+1.157517144737282 1.325369651044827 1.769557584727588 1.244903625327172
+1.415728419138258 1.592467344181588 1.226270871138669 1.558481828392696
+1.713259356153161 1.798693289537898 1.234687876275893 1.328831700334748
+1.009323877561991 1.744469074143486 1.317715444268682 1.041985542271969
+1.218720898029350 1.815028453285233 1.190657670553070 1.199998370581284
diff --git a/apps/medlda_release/dSFMT/dSFMT.216091.out.txt b/apps/medlda_release/dSFMT/dSFMT.216091.out.txt
new file mode 100644
index 0000000..5283498
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT.216091.out.txt
@@ -0,0 +1,583 @@
+dSFMT2-216091:1890-23:bf7df7fefcfff-e7ffffef737ff
+init_gen_rand(0) generated randoms [1, 2)
+1.848467254476375 1.413646507199983 1.486591408942830 1.582156975025284
+1.928663459302914 1.365649297758669 1.553823796912988 1.070252440573769
+1.342997361876896 1.971968352928051 1.104029745399673 1.727216770264476
+1.521799537715507 1.901292860092291 1.054964696616300 1.941063534906325
+1.788141955539347 1.042960614789731 1.329540227457644 1.724792614468878
+1.440073232343123 1.927067069955966 1.982483179743308 1.894374935592721
+1.360524152702494 1.761997815102387 1.640250967948384 1.266317222540520
+1.497821000710895 1.199955916166317 1.879437507851219 1.434342511159573
+1.195374814029444 1.271877130095866 1.782997702436250 1.088347654998578
+1.589886150113936 1.941490308043732 1.414405934949339 1.282559281450397
+1.875612171625860 1.068172261049346 1.456145964818905 1.523643935840261
+1.576642256569070 1.133883269540760 1.193093603383323 1.526071939591615
+1.144157269300303 1.536030577882173 1.751419325575724 1.082540234283470
+1.499243008051425 1.328223565931809 1.403495353736482 1.622680828048624
+1.748177280897948 1.235034758809158 1.111641085252639 1.064557055174546
+1.535936310645634 1.146841667496177 1.830393526592010 1.619664218670200
+1.987350219993992 1.730178676371754 1.500888096967343 1.073747406700099
+1.483694399271042 1.778460907009928 1.935910794317768 1.074471486744545
+1.333647015895186 1.915308210060330 1.265275316400608 1.300642200155567
+1.204662573242234 1.071837156283215 1.831075591343708 1.365922942376508
+1.616545323897471 1.544716686877383 1.651533731505595 1.344867744932714
+1.735322566381396 1.892841427343034 1.370238812443395 1.014039833899885
+1.836637527593795 1.434204904966728 1.461928830280002 1.604489180788008
+1.861721512672435 1.795804045093119 1.874127988181947 1.814764991707060
+1.670857108680692 1.063027482804260 1.866242184293864 1.741214591128152
+1.608298449453732 1.364548467556042 1.265311995443375 1.202485753767740
+1.105164977214229 1.605220796790360 1.966653781059469 1.076501517194409
+1.196487384462723 1.930174926509619 1.010252518034171 1.907888403567843
+1.643609368889463 1.724911385958329 1.618359552473745 1.056281739202127
+1.729943124848385 1.186804430764710 1.281863537276096 1.298924586084944
+1.362976605153079 1.633835469907617 1.405288389636586 1.524425788830896
+1.160572309717119 1.769540896740422 1.797305049633502 1.600483095922723
+1.546241465610289 1.839654751934394 1.037000372242251 1.002224388436491
+1.602697358253729 1.612760003125051 1.174842061347885 1.467493901069458
+1.817203491698823 1.413516418481652 1.059353467646578 1.115511242269768
+1.697313463687865 1.677696253543269 1.308126238664178 1.817357629094180
+1.780753234994592 1.214291658572810 1.679967311099387 1.897681370479436
+1.360399212194590 1.184185033544090 1.488226350474195 1.179958729565358
+1.819219635541138 1.812362013663193 1.317182694388149 1.999844363813909
+1.635466058116392 1.427431368450090 1.820559476367502 1.304839881853255
+1.297051265705199 1.043806308974771 1.110731646375552 1.189906545791134
+1.888236692355726 1.329934582483033 1.582914881538315 1.826128054486642
+1.641107435448709 1.900913041588195 1.402869588331303 1.829572665135907
+1.681390401069029 1.828921545085240 1.975293974720459 1.664753506204267
+1.553174300186583 1.752285981886077 1.274026989546092 1.314937682777009
+1.015494949803171 1.432262250627398 1.022999267001165 1.227405793556915
+1.594108577648638 1.045948607572019 1.538448853658540 1.748920083804134
+1.239204169445001 1.887692687474385 1.437861571186185 1.429052983876756
+1.318734380609846 1.782981677342497 1.313501058124037 1.597412857190437
+1.502242446836069 1.329349538046997 1.256449798007034 1.220746386758553
+1.756373988360542 1.771530772728523 1.794978951201227 1.113252103906230
+1.710033647828802 1.985248510936645 1.254869289167365 1.645974495906533
+1.150774622701751 1.235076085315419 1.956830009465453 1.010899751443741
+1.091390485256365 1.856056619059222 1.772103081458840 1.163029363506368
+1.225666368864142 1.585169686482933 1.211654125068939 1.945537259290063
+1.414131633956851 1.917071434673266 1.852022583798350 1.854542213704559
+1.154550523608037 1.991063266164562 1.561831329129090 1.522530699071398
+1.555694998562677 1.938659456106456 1.910848650707949 1.259368344637424
+1.736976286403674 1.380514249817916 1.948759297790434 1.637162439277861
+1.777781323459107 1.262193986777428 1.953753909574019 1.967819833358350
+1.333998361635991 1.268288559342087 1.919102415983830 1.353924528300993
+1.521654581287972 1.784679380722760 1.939327532509582 1.448795394360936
+1.202919694145655 1.418621774932111 1.976924982057937 1.583381515943884
+1.939936210885317 1.535302554512654 1.801055130911129 1.532403311176418
+1.407753637505145 1.764808978995798 1.713031594580243 1.723591947732191
+1.760884495729695 1.418594747905295 1.694249838161380 1.974695996286740
+1.093066526051511 1.914609109953002 1.937073560360947 1.464859021882694
+1.488432189763022 1.773016633014491 1.610551263811991 1.973564862807720
+1.712033892985011 1.567953953432422 1.098372783852470 1.499639984510572
+1.822579691766347 1.993447538208815 1.466333187292766 1.333788292813237
+1.980991701560077 1.366996817052273 1.475282441795610 1.260031994500357
+1.558888604151847 1.432140184078984 1.054837799585252 1.985109646703056
+1.561350049014243 1.765616902090727 1.304507704674923 1.325082461762529
+1.168443037796762 1.358053259822098 1.470162022150833 1.976869428431836
+1.502047101574287 1.191848770092319 1.571261927791278 1.364486304351789
+1.820451770694380 1.423957814304942 1.190672492643885 1.097285707148421
+1.550131972818452 1.330603902977912 1.403153179252016 1.099967847985130
+1.862952653914653 1.296251985972654 1.067810263180458 1.763906348892876
+1.754056416766985 1.193231677614750 1.023416170297428 1.249448454771059
+1.796077454380822 1.484840404600406 1.737139687232643 1.814778543363810
+1.885726988249531 1.531546919423912 1.198936452816156 1.108350928554964
+1.114213553051259 1.329746376787584 1.019244160138480 1.829771407992997
+1.422288784847567 1.544604609146529 1.034637825707675 1.029309784971147
+1.677175182152052 1.366639274659886 1.217323281337418 1.063927840839158
+1.581804527440522 1.709146726218119 1.255667618244107 1.024878249661689
+1.419288768630128 1.965718938328652 1.998256020558030 1.095510355386276
+1.921956683011093 1.063709840435018 1.881628806447716 1.247384574612814
+1.841807299608195 1.875648681468318 1.870039121425045 1.779182720530192
+1.713855658855294 1.750235381483022 1.584583870983380 1.303799993198072
+1.552601151027807 1.361614971042517 1.740074725730834 1.847853672871976
+1.984142675572492 1.135265143068917 1.338337312324684 1.271734904329274
+1.706108817861284 1.860695366709189 1.928000443330905 1.468951394029203
+1.613807590499913 1.580643853026915 1.001263885545529 1.662211251758897
+1.340093646636056 1.204624910178750 1.272661687673324 1.925995823734842
+1.024199636856006 1.829611913882016 1.180110462655705 1.134135162324921
+1.267987514297951 1.095935054050599 1.828431125478173 1.446403128744451
+1.293927473396554 1.320264129458509 1.149724592451475 1.800024604240432
+1.547797032805488 1.283940507958697 1.066401564305626 1.953108656830700
+1.732539318417920 1.634935292808852 1.925560214548403 1.480499561400038
+1.811807005977871 1.990124558665260 1.183095849012262 1.830333420587986
+1.790075012116252 1.780788056735954 1.347558576004775 1.780721445717214
+1.147275066247823 1.287362002241959 1.299488613440968 1.373721334724588
+1.594524205310986 1.612029955930617 1.129006342119745 1.589517780682617
+1.614224546837062 1.251512869425125 1.658559939256009 1.263804311123573
+1.142564520559044 1.689838431329295 1.504052894185325 1.957274801412417
+1.423473913200679 1.408454125267039 1.201991268905376 1.105445919610385
+1.518225293345567 1.545388246959820 1.156417896568430 1.676578720934353
+1.388969352058015 1.799097172599622 1.054806873131328 1.301104228827254
+1.455185531935904 1.185529722848836 1.133282581034055 1.835817778639539
+1.492759825700545 1.357424290851513 1.441275210619495 1.107769289454361
+1.713226141975018 1.269355283928013 1.803665485743266 1.291492370606179
+1.664801105723332 1.469195323592366 1.794552172097407 1.537946122599134
+1.102964823934536 1.573265696280741 1.779168033861834 1.368719231567462
+1.425104838454494 1.809878637999325 1.054898220068434 1.991464695299640
+1.974067627632900 1.913380922585140 1.141482186947387 1.055473978060164
+1.451905701977905 1.113188016866391 1.895717776456796 1.072029956737878
+1.237005272108606 1.519603619114424 1.788054786554059 1.104310853957366
+1.491148365537691 1.861863549063425 1.383641745339817 1.034285762541103
+1.800323776410059 1.903442990011120 1.232012272055221 1.643543482447586
+1.809074411938042 1.819721548536447 1.817993933433675 1.083545282091565
+1.932596176785272 1.947370136295863 1.007259606424830 1.789139580803170
+1.792701759151172 1.993840863220286 1.282506918396856 1.052567506202104
+1.300248615315767 1.366880166377746 1.231926732742517 1.410133231921199
+1.075284000773215 1.133491371628506 1.258280975816434 1.435172173361071
+1.443711822281960 1.241431750239971 1.567184444167907 1.750391317413616
+1.473131009752213 1.850549741938762 1.276716823896889 1.616227606313335
+1.072834462928456 1.150031183052586 1.534847050236935 1.889317933508202
+1.052641400663603 1.869999532041946 1.637407736504642 1.272204884120451
+1.200547055896243 1.359085802141009 1.507578931239907 1.037842739525004
+1.944141077444022 1.949742832035695 1.711061628996259 1.987268015632767
+1.460816479848115 1.029543972109594 1.508169921029270 1.508914160970400
+1.813173956096235 1.625246046256174 1.676267899152754 1.603229002038086
+1.321791047202794 1.903659904807441 1.222019326792049 1.107928346297830
+1.845653821448308 1.852877209448181 1.298057065614667 1.443523953161013
+1.320011165968371 1.278637938524116 1.265456231395134 1.564216757267548
+1.344711332496700 1.203387123159458 1.516274577696954 1.304973652131553
+1.380991415264426 1.514695927040961 1.708758195393148 1.078104922682024
+1.724651137643749 1.288641103931958 1.923758155756750 1.299966692001401
+1.428319069704500 1.094374010003805 1.658970947355892 1.791552719166847
+1.193386393962695 1.135109068621173 1.581159297969422 1.847247652427429
+1.325778790169725 1.599503996450687 1.769962838319783 1.482159684776906
+1.349634083972409 1.926638420533643 1.113017967790575 1.383074704457550
+1.227126637705007 1.558751172476298 1.245119559852659 1.397774594821210
+1.158110568296399 1.500028714948006 1.751218515114664 1.287133235447640
+1.633854072024343 1.268925256574264 1.113604615703223 1.955050495563914
+1.265367467029368 1.389913926204144 1.827634249642710 1.603107981219371
+1.622122153442718 1.863358949314922 1.600393762333191 1.054086207402668
+1.472894584434610 1.571944100541853 1.806414080791153 1.001036278923098
+1.493424430670128 1.797583245547925 1.151261849559428 1.727665171920418
+1.217825484003723 1.807122465745811 1.635590147118382 1.071424457024244
+1.509106709557988 1.062092626890958 1.590203513720329 1.805388540773460
+1.149057744684063 1.335778212345017 1.939822444486659 1.081234129116206
+1.904330996595856 1.629128379155514 1.125422101728917 1.237573689104824
+1.765106066753541 1.814877324977632 1.010349617646155 1.301502796077732
+1.214291127080035 1.344954789241075 1.563495740754962 1.897057000885470
+1.994418312663590 1.732063983316156 1.642444525527694 1.275433844853439
+1.687437563727868 1.980179524069724 1.782169517336145 1.700124677778206
+1.231520190864881 1.131365938047955 1.104493598520274 1.753570617800513
+1.298963225745307 1.137359718417939 1.386991155011890 1.967191606720880
+1.941355565939564 1.085261371590878 1.528545898678147 1.713983410330627
+1.278281265391050 1.183309031720896 1.438754364023618 1.318178145445306
+1.334304127762194 1.816729996181200 1.574417577574401 1.328657753822369
+1.775260868109317 1.012031793322830 1.145133384145651 1.304565526768300
+1.920722419843525 1.794324295214877 1.822891041278110 1.899479453484409
+1.585826348057518 1.832383208775576 1.479580705612696 1.247272965254616
+1.493920427857737 1.394406539592612 1.635813596211846 1.618490885287262
+1.915975475877043 1.028538347726287 1.689132706478199 1.451922526074067
+1.852322489657847 1.424796337393109 1.356286629404326 1.233374938754647
+1.531662933115028 1.729477650996980 1.742700409181478 1.498798475058840
+1.900663667092671 1.799176964191759 1.441000084043323 1.872805379352668
+1.514986321110995 1.071668200669344 1.178506998527725 1.625194332312545
+1.201170758065269 1.743642298040007 1.548410803304781 1.389393434122058
+1.863885702108201 1.590079111818110 1.064047918599461 1.412171506426023
+1.432435519143295 1.660380732824329 1.837534088188649 1.448287627567956
+1.105973179533251 1.845912094917588 1.925524455619763 1.750641131829945
+1.551575746212836 1.568314059588670 1.660119447102055 1.371095235390633
+1.787044118623718 1.895528895309857 1.904517861096380 1.416299994709810
+1.662208232209790 1.505074494583781 1.229714096490946 1.534745165362285
+1.926063036363354 1.062810474232901 1.624811600410639 1.331240317445436
+1.233168440120127 1.707806655370234 1.476381206126949 1.002946546684049
+1.265371997860834 1.304834819677766 1.652057937116650 1.887782842719098
+1.142152519086429 1.629169741875882 1.478425956465875 1.710804018309789
+1.308155650183209 1.313701965518697 1.199385498885641 1.023407569050577
+1.497836534916722 1.906094568664906 1.614733983151418 1.307449527774341
+1.700540076681018 1.368991261495733 1.144217395615668 1.289799288159701
+1.205512774861603 1.620050771151365 1.806148692901269 1.842668063789560
+1.578926476860296 1.403795576203796 1.903156860797489 1.547566393514336
+1.546921151070708 1.046753504227872 1.730494981658531 1.503971637885421
+1.677892945004507 1.419511322593570 1.514377497247059 1.679135321979174
+1.525336851129779 1.651716102043123 1.149631528801735 1.735587874920057
+1.682865819771921 1.080575506866710 1.262865881837526 1.211999227447540
+1.148119259317062 1.275660849629562 1.907177992208617 1.975854704643648
+1.302038153972521 1.327980768236603 1.528678141384157 1.521160843757748
+1.016157185211762 1.856336177550851 1.913425069329759 1.702506896476217
+1.329850953958530 1.140993777029056 1.711351035072626 1.836313118293638
+1.951476892686832 1.943847373690062 1.589803461541619 1.685653071402389
+1.267335954715106 1.497211268214195 1.067161389614574 1.265997155294626
+1.515661671343077 1.216194089297711 1.390157408048158 1.828227424592601
+1.869886321936070 1.950993066487041 1.249102263625843 1.484711730998608
+1.779572892642209 1.558230646545254 1.902493831342185 1.313336203354948
+1.580624746307062 1.304464160495402 1.748494152323140 1.531850536503646
+1.158788666585984 1.030867506286160 1.540460285866875 1.675642239994170
+1.408849133816752 1.853595756968608 1.779810015695211 1.784089354334266
+1.975594462235271 1.424926846852464 1.938126293273768 1.974358282277574
+1.324873312404115 1.445920274338774 1.513179259976949 1.896166047259977
+1.683225543748981 1.071295180142300 1.373449777811923 1.865659779094616
+1.447794484873529 1.593838728319071 1.029265154414524 1.596136894507271
+1.693123456063365 1.902935302244701 1.278994811048086 1.332022957674296
+1.630018986113141 1.283545757326709 1.799020240629505 1.889108188220282
+1.247602199164696 1.271763622244886 1.425098555810835 1.427637742081486
+1.634420421836374 1.399359151616814 1.904198001958255 1.072862979898203
+1.973117308376692 1.007322762629640 1.635967700956840 1.456052255334970
+1.547610303619546 1.685643128661972 1.309966943978200 1.572992982615395
+1.354510134084093 1.303849102908424 1.019176235718150 1.291238515750908
+1.238487038034124 1.867707483516473 1.991133404485305 1.586120567413309
+1.133164054173335 1.156160669638013 1.270508114976882 1.646758537154722
+1.813452984775382 1.770217584338686 1.902501094589370 1.796347440693582
+1.055593875256988 1.339776706843032 1.435713302590152 1.589304777053493
+1.892818718059509 1.135126532931632 1.641655249215132 1.945263728385838
+1.802041071479574 1.641266975147099 1.530467811989009 1.228829575801923
+1.037950411365436 1.469651981313634 1.989863504437006 1.867570258653296
+1.356565507265900 1.993950057530074 1.237828056200764 1.281069961878382
+1.558049124777438 1.237083956206037 1.717072699747740 1.999960078231193
+1.277545831069337 1.605411552873221 1.951986352540096 1.059462467319930
+1.865740264266044 1.868142931895766 1.503690481134763 1.241104604062142
+1.462838863816678 1.289371153793762 1.368807184726189 1.974723388048534
+1.156789060902841 1.621108209448255 1.843462503643772 1.374481204835013
+1.778953283967244 1.202092752469816 1.382863611657997 1.985730058266179
+1.430793982737840 1.658418182625599 1.254696848719273 1.853940696977382
+1.912994816938734 1.580728293627215 1.445187627575661 1.225202366869176
+1.624444580422629 1.158685179403014 1.595081455126158 1.421727525153982
+1.348668459268461 1.225105228056473 1.167987591515965 1.543377949954245
+1.913473251812762 1.068862793906259 1.393445214225584 1.224097484982454
+1.136578480166030 1.530148654040514 1.145166125717126 1.720467021177430
+1.887016368322482 1.705976998788378 1.744863822405702 1.522047778970177
+1.779766675859374 1.778804859717097 1.140971031477162 1.643763336811643
+1.312294423143367 1.163175467982419 1.684766976605177 1.955776284432342
+1.962267371267668 1.217363781495556 1.098398906477739 1.193075202886676
+1.039579799340436 1.828367849730402 1.640188506770148 1.283889278308507
+1.384332552636102 1.798193390366419 1.559897405875410 1.454310604705065
+1.296262338711776 1.294373042818044 1.967002733458247 1.989466715299275
+1.077720947562296 1.600390139604202 1.530726169271047 1.607848147375653
+1.467433891541293 1.601680870611710 1.067004220970051 1.494538039443192
+1.047714202290918 1.748109415248243 1.535172394787384 1.970013914720250
+1.813463303128258 1.227904153533871 1.123088637888006 1.069964695339814
+1.492131560436642 1.437614606460966 1.377227182290168 1.656394366986875
+1.731967358087529 1.577117694169962 1.260093325721778 1.375491161295490
+1.013811550239444 1.395363435145228 1.993745444563872 1.174086059044503
+1.508525310709437 1.324943180960664 1.205378417140666 1.169420588916052
+1.665537747751983 1.635983901189031 1.879591759977799 1.062765801016780
+init_gen_rand(0) generated randoms [0, 1)
+0.848467254476375 0.413646507199983 0.486591408942830 0.582156975025284
+0.928663459302914 0.365649297758669 0.553823796912988 0.070252440573769
+0.342997361876896 0.971968352928051 0.104029745399673 0.727216770264476
+init_gen_rand(1) generated randoms (0, 1]
+0.748293174711806 0.571559596236355 0.605449252511300 0.924790087049302
+0.432668914877712 0.484528049554209 0.583985876961072 0.902604870753081
+0.508513467184131 0.037246543116071 0.506215060982769 0.084759451676836
+init_gen_rand(2) generated randoms (0, 1)
+0.177597622485633 0.280725302450640 0.691476536784555 0.674526436218482
+0.085567171686030 0.630864738252637 0.730705882297407 0.557424024173655
+0.732776059694373 0.284263090359834 0.262067699892716 0.494287683239405
+init_gen_rand(3) generated randoms [1, 2)
+1.072342045146711 1.869169978342095 1.431380333949552 1.204911096414455
+1.850506758528621 1.263179494162272 1.011312397015561 1.937576928860709
+1.656298194634011 1.555055514657424 1.946310040529188 1.714119181598159
+init_gen_rand(4) generated randoms [0, 1)
+0.077725191809740 0.780831587728510 0.772916025794393 0.068834288045967
+0.421741118568716 0.467602893283273 0.549356513331837 0.609045342181351
+0.316447786909831 0.506324930125674 0.692614149697598 0.214725533634785
+init_gen_rand(5) generated randoms (0, 1]
+0.942151360752866 0.188274482907469 0.142862007276750 0.011090370489097
+0.248646021404350 0.523284252896761 0.125414699807547 0.515195642656920
+0.416841787731485 0.247377326768320 0.651179610091391 0.587075719922914
+init_gen_rand(6) generated randoms (0, 1)
+0.579697104608467 0.165958379308153 0.198000725840494 0.294349512679861
+0.835771252296934 0.683173513898513 0.099256139321365 0.096631663627321
+0.258821348138430 0.217743929078501 0.803121448664250 0.823271578568309
+init_gen_rand(7) generated randoms [1, 2)
+1.577177423327097 1.992616620422174 1.351753398794903 1.011685522155414
+1.619239721758005 1.081964169535228 1.248044517974649 1.531131778272782
+1.881988795840629 1.232761654869638 1.142276023151095 1.422607831847451
+init_gen_rand(8) generated randoms [0, 1)
+0.059436806120502 0.337837796528772 0.103400163156252 0.775682358808069
+0.562064743882912 0.870522826397812 0.788248303409689 0.917823820829051
+0.775176460689182 0.152266463536411 0.357386177658874 0.534079736745382
+init_gen_rand(9) generated randoms (0, 1]
+0.388683205886998 0.059302126317897 0.702595111719539 0.560080208899014
+0.350277445694358 0.382128590129136 0.530399903358921 0.557342101717063
+0.465835513315297 0.813352644039902 0.395308304126997 0.428716670539496
+init_gen_rand(10) generated randoms (0, 1)
+0.796037476772650 0.610610187621779 0.783983615969344 0.143872144247263
+0.654987701249681 0.889781055329549 0.506771420516338 0.813053248461107
+0.991351273609536 0.353630081109741 0.267949932391627 0.699471255455680
+init_gen_rand(11) generated randoms [1, 2)
+1.010909887724959 1.656572324783382 1.288180869531875 1.859992410126781
+1.184455714951074 1.271250282370553 1.370058317035991 1.146161056060378
+1.762975124236752 1.292544396490388 1.563704373603145 1.075576480370063
+init_gen_rand(12) generated randoms [0, 1)
+0.708383497604256 0.730761040301503 0.334024805341733 0.746039944710053
+0.915819369452250 0.812924564430275 0.791601145987631 0.001035589604235
+0.571132327007641 0.059230871600088 0.711408220363501 0.675261294841229
+init_gen_rand(13) generated randoms (0, 1]
+0.880581902659550 0.837876587429329 0.485498548768492 0.327498204148388
+0.586264215522657 0.414846774119610 0.825470981313036 0.359061896129010
+0.087552125884303 0.740101842457331 0.309351543052519 0.728066209421850
+init_gen_rand(14) generated randoms (0, 1)
+0.923138726624952 0.469532766594497 0.632270259481927 0.205564610552960
+0.927082076237906 0.299224699383825 0.359578503156918 0.490402305874778
+0.728615693055077 0.312558190624747 0.359781675794546 0.752836816563380
+init_gen_rand(15) generated randoms [1, 2)
+1.140627479020712 1.084786158536458 1.132239343463171 1.350307546397862
+1.380563763202770 1.351370307172073 1.264541047094480 1.346744433657995
+1.407373921619129 1.001373684886554 1.213052611255335 1.886710415587364
+init_gen_rand(16) generated randoms [0, 1)
+0.360858921657210 0.729078653124164 0.901910061120294 0.737918552985219
+0.794263888042076 0.806223468587332 0.974052290398341 0.658750204624069
+0.616887118950641 0.529467140662471 0.248762815602353 0.262824301133219
+init_gen_rand(17) generated randoms (0, 1]
+0.031203383632855 0.688536004862123 0.230036913486180 0.207170199851598
+0.588672815313508 0.836797870585944 0.207522798388149 0.329127118654156
+0.432391662554202 0.685332978151205 0.107134687508995 0.652511082310657
+init_gen_rand(18) generated randoms (0, 1)
+0.124163134096911 0.195010389501341 0.633799000387237 0.066310451867196
+0.302639065333798 0.997730856377200 0.705770245505459 0.266586450558278
+0.302145991358288 0.485848525384480 0.377247864710428 0.211284546780617
+init_gen_rand(19) generated randoms [1, 2)
+1.337567399824463 1.486694566841658 1.304594295729453 1.704142159671544
+1.243635859376063 1.194462526403072 1.035988944153486 1.212208650426627
+1.397920098341323 1.882254395400537 1.117078744617056 1.434100253869732
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.246747774742146 1.089622676095007 1.070108854437680 1.964917211249136
+1.604976121195500 1.921620695385796 1.028172357944030 1.891341799961428
+1.206476747849807 1.353285236019887 1.097654747408200 1.169088237568662
+1.106349656020360 1.751000551101964 1.636830261631439 1.253913856232047
+1.626135872244132 1.239404243143574 1.834246900844735 1.980679436647909
+1.066968127209365 1.426191806463819 1.699650094677764 1.423896251537213
+1.020462734575249 1.659742340023787 1.409858079869516 1.460390791134137
+1.415373790749087 1.168510013053838 1.450097296460212 1.203588830490063
+1.920045206875726 1.267616696246712 1.438247258135656 1.510976280350812
+1.572362707738103 1.884645692738128 1.213817008168199 1.493930687491293
+1.007311516469739 1.680527461068050 1.799339631185152 1.973352983402400
+1.634588524029121 1.841898788668807 1.655958572826263 1.823884401831672
+1.879612805399188 1.064178524105620 1.777239915619416 1.200620390408526
+1.818089432824143 1.098246136104746 1.844246554272654 1.702541446900277
+1.311996246741566 1.117326682562366 1.031861140292819 1.965187274522141
+1.712673195809072 1.922114970769024 1.711774411145741 1.445379341836892
+1.182199546699369 1.502334881576935 1.486685319452376 1.223027668710166
+1.852605550320296 1.567164442135549 1.378197080280261 1.026308393517515
+1.259360128366031 1.823936911813945 1.847456430028984 1.009419557698341
+1.914174808369485 1.923911843232083 1.446241927853045 1.776308493348913
+1.725321018495403 1.952100250315733 1.688339159184218 1.365614662907379
+1.674116163232206 1.234419156102413 1.814374113878840 1.140366295506915
+1.514871172702394 1.118393377458597 1.290426082803473 1.222944886722505
+1.826834044501723 1.396246238251131 1.212065410147424 1.356388388420397
+1.808129018395050 1.125659626729832 1.970071982108214 1.182699790306369
+1.984538583754649 1.392779234709213 1.869646779382152 1.802066504846666
+1.468516527869193 1.317383513640626 1.836451860685953 1.038276441998059
+1.629604893625866 1.773840351889328 1.227643404513550 1.579636341266551
+1.725763988598120 1.311060527454857 1.324785827329836 1.035019659224858
+1.341746440894966 1.640376867228372 1.130950281342659 1.858227044381629
+1.228885546233267 1.607962378441830 1.433480633702040 1.038717707214067
+1.517580979998634 1.192830030117280 1.978844374146888 1.333836262713878
+1.305653349303539 1.609659482923329 1.022743360396740 1.877529235385478
+1.095472031188296 1.046224149227840 1.800777216252122 1.859700290288440
+1.001167769264055 1.635978690948701 1.847785986387212 1.703577727326513
+1.645441369498422 1.522330852191369 1.382401957930154 1.362847163428139
+1.454306093314134 1.434586684435087 1.657035560441385 1.436053310816314
+1.961011381362304 1.497236563550862 1.103429387878485 1.686981340613507
+1.807068663041765 1.406308365607245 1.057063694647903 1.300816334961952
+1.368655877530672 1.905259204714573 1.983949615711257 1.977725378421358
+1.809452879835535 1.833930845732148 1.875923782689179 1.242293460428454
+1.605123556984266 1.304191866867243 1.892516739330635 1.186991111237832
+1.754301729373430 1.286559068560441 1.560445197037331 1.103100157506431
+1.516504596806812 1.087537092620105 1.856500998394519 1.468772489166972
+1.576789291845453 1.365035814346254 1.806390090976808 1.418618579277013
+1.725712917179043 1.517757627034955 1.145661041109843 1.809852569111134
+1.595790819929010 1.121868597939988 1.698009372157292 1.445944065756488
+1.878395868194682 1.382742063578436 1.822360273529616 1.880465439769059
+1.534539385531257 1.598491530475667 1.489032358962346 1.053279382397937
+1.148371143777053 1.690895138353961 1.836166213639795 1.801812007723806
+1.386572518890976 1.732574913048254 1.426905152832245 1.816738958523237
+1.345018970775926 1.981549364975540 1.791079241656719 1.270279265570067
+1.053517909455611 1.023154578970919 1.321059113865780 1.036235325950154
+1.191245411827326 1.164539562431813 1.734285074215830 1.918438810307094
+1.596878215232360 1.324063871634835 1.491568845917612 1.291970863263082
+1.300005890453702 1.892234166456264 1.575986676671420 1.348789746127030
+1.919080700523489 1.337798809615817 1.565208805268868 1.042731747438390
+1.253904244600330 1.069249603967820 1.275701121294194 1.942520413517033
+1.095276506696531 1.743193715605574 1.877395866377903 1.776796526151240
+1.913006829358848 1.483152889580646 1.163448020494171 1.892637641313414
+1.789255361253957 1.291210465828043 1.138719589997298 1.327800104779866
+1.847635613373942 1.637544661008610 1.261468254711499 1.250000329736559
+1.950092951262604 1.852988689903144 1.021958169847852 1.711810510453825
+1.742702397833662 1.555099915464264 1.549487625979217 1.043486323065251
+1.236280301147231 1.404442020337437 1.147496772905185 1.870129243963710
+1.172405186945963 1.312455063952392 1.588512959673784 1.505724106639981
+1.266504064322961 1.132440497354813 1.290734173961010 1.961184657764771
+1.395382989942237 1.654238485219539 1.478074655530528 1.443494567334862
+1.447085819552496 1.467013319674623 1.020829217410226 1.025662534966688
+1.521626424941450 1.040924024806909 1.254361606003908 1.107719151740611
+1.445229043386487 1.250211777256812 1.680782765362030 1.121524193755820
+1.935972750472973 1.155569975541081 1.898472125726398 1.509926171782578
+1.698890669321317 1.366774191358256 1.151808155616477 1.782166817108937
+1.226553646947348 1.069347821205697 1.833693522294618 1.432512653602170
+1.511075659817916 1.003267858560811 1.325040750028753 1.914349758329058
+1.755054969256080 1.752169841386109 1.965687318339088 1.512707302490216
+1.008358034503223 1.913224657805635 1.144402220160839 1.044712075540217
+1.193084089031765 1.035016664152614 1.859523545074675 1.457301935895251
+1.901573911804699 1.037451442744667 1.224427306842381 1.033580582080941
+1.226994861418036 1.559670604740678 1.421357204421726 1.619064747281903
+1.969652683704088 1.660540279149122 1.376336404419654 1.950874749417204
+1.876869976480199 1.194373140192182 1.853516448068086 1.186001129926908
+1.298112293819283 1.462023697120899 1.029669574871385 1.457062612094039
+1.460198997934840 1.759275913630912 1.124434714419326 1.925323718923653
+1.496462515611224 1.794396148796924 1.411575661921491 1.698763205315283
+1.635554356772074 1.088255288411432 1.757992698261872 1.222709820694001
+1.609638651333461 1.120694854336601 1.080978073349925 1.115375772298506
+1.303249562838755 1.588345056024346 1.452497772454541 1.455542459622491
+1.809414751612509 1.017497149879041 1.410123211284692 1.363169632820978
+1.074232506350014 1.598969483817793 1.795662221634191 1.293530577228787
+1.258118201110084 1.915531349595283 1.709744394688880 1.607862937691244
+1.230567612490937 1.074078606254323 1.745270111122983 1.018803182617851
+1.375045775351281 1.418240205542850 1.799550275258485 1.748632589429305
+1.407223229152294 1.833805520244408 1.705487962225546 1.770651641208965
+1.755706823832220 1.313783204201247 1.023622497286685 1.698157793370371
+1.090485685007099 1.831356083602916 1.072438344749820 1.111272361251149
+1.705884261604759 1.763404123832329 1.008952111430893 1.366103988832965
+1.345874883714461 1.267087866726612 1.407426209348827 1.406124735543579
+1.927220269939461 1.442467943610004 1.307260832405269 1.419547842683403
+1.133281500973082 1.533814499967374 1.940108284279039 1.420250372765933
+1.855245671092246 1.596128900003848 1.765341217839264 1.283405046456018
+1.952679502405818 1.025913936767292 1.536679862092701 1.067826752299131
+1.191108781857283 1.397627510748078 1.892398317469322 1.898956422460110
+1.020762514963809 1.301861241739923 1.351487923473452 1.825786581558610
+1.750837480575075 1.108495531334718 1.948589569236652 1.452849429208222
+1.822021263435507 1.144734038725686 1.478727906246861 1.432710962888081
+1.340486118533224 1.749281217933977 1.988738064469774 1.425156163645729
+1.204265615189401 1.991505226531610 1.943970105820902 1.462628929018138
+1.958222412677390 1.747370195449850 1.477840557782157 1.033654552868531
+1.263711679145693 1.935281488693692 1.308836629599359 1.510328187439446
+1.913785157755237 1.047872380349516 1.063098289516293 1.035751152598909
+1.225641938829284 1.216985535231074 1.430391904293923 1.135364887378451
+1.365559032356388 1.188284875213967 1.056703241452347 1.753762803426515
+1.344829725613997 1.796464325903699 1.242582015571276 1.482091269938059
+1.297087293012631 1.183869003374392 1.944926348158641 1.428629867432615
+1.763696302259241 1.767555656535678 1.678548220089324 1.132467180007420
+1.752733203054424 1.260471451905153 1.030883914754379 1.023072233623546
+1.752497413630413 1.979686665884028 1.142621537055024 1.625749161312937
+1.077130252781467 1.779952230870626 1.076392714701174 1.016541315944592
+1.395828519375269 1.331572274528246 1.185590257204612 1.830263631061701
+1.504049880977906 1.563505164945812 1.555466553857345 1.694844819751495
+1.761824577936921 1.785314587744963 1.561713459161957 1.811160759779971
+1.924391291545427 1.740648347080152 1.208002807948779 1.148524419963856
+1.360448405721395 1.565754819936825 1.499344760089908 1.787177229965341
+1.835365080555517 1.673138475060649 1.622799129385051 1.360925749755971
+1.513090208174837 1.867543091366104 1.393076632485242 1.155783114884515
+1.193523169162207 1.677374754962221 1.450811210619069 1.135446430718603
+1.765047676066514 1.456521842896033 1.651371223689353 1.284988317292792
+1.426438651527518 1.661402750071348 1.016107817900900 1.191720330403284
+1.609419707056811 1.032439807318556 1.358717285879164 1.653327854198417
+1.472597877764103 1.849212226009748 1.089885607943852 1.202399537706118
+1.533904727417445 1.439591817870957 1.889009348197313 1.715976332163337
+1.744340666967145 1.878731271036846 1.362684060651424 1.827474564959836
+1.095037603526691 1.727911148083737 1.004995464658523 1.051039093254808
+1.698542597242142 1.431608232201947 1.923587004851167 1.600534250217957
+1.894579735198360 1.505955675105260 1.062850905788499 1.197850481662286
+1.270487375704570 1.738687998237901 1.821502410967621 1.002062041241719
+1.704600152239203 1.646091408299792 1.758608876168866 1.520556134030359
+1.979496127731057 1.987414220010912 1.412329987530851 1.580694714774733
+1.496955465476858 1.834379548889591 1.630801480218074 1.141400494452686
+1.504615237479867 1.447799516292896 1.384740292736792 1.722495083466870
+1.561598958192095 1.483327663327761 1.744793804644268 1.194534588095221
+1.695377322671657 1.550178560345767 1.735426122001416 1.068734616212431
+1.396220674345740 1.962003683449234 1.746348978170742 1.396000040768648
+1.382445252594545 1.723770213391048 1.692931083914775 1.418315054572416
+1.536909833465423 1.709643843354439 1.832442468716341 1.604515736675146
+1.877600643725453 1.506105302321834 1.258648022963914 1.300863511155632
+1.303351167999621 1.486418567411937 1.773270234508292 1.024864083648557
+1.729216596428779 1.150762894017037 1.926277804246047 1.070982213866333
+1.269903089527592 1.801013162981281 1.384568368334980 1.241945297987581
+1.798664101099659 1.883700094293681 1.614315908788731 1.948139499453480
+1.104285449220247 1.624620286451043 1.299471231739730 1.894781201938052
+1.780031740094485 1.182487861956311 1.413213758310569 1.267536042705205
+1.586697560643315 1.327526645333856 1.780197815579493 1.076242933342799
+1.370999086392849 1.318621798280845 1.290077685647185 1.392562502263931
+1.731870331074649 1.933611990072879 1.447693678168242 1.744706158606836
+1.029722713158012 1.845020446104295 1.521541797790933 1.234914040017756
+1.982726911965706 1.931226203099526 1.275967383908218 1.384528915159825
+1.704530258033106 1.494997701749475 1.706025722639531 1.252451704663117
+1.607111094162025 1.414779870278190 1.924401297513008 1.108285786699605
+1.148175087126172 1.940628763794665 1.400082053187583 1.962148389744986
+1.514422663081638 1.392255043592508 1.779345353876851 1.385324864210962
+1.553951149722213 1.709211071587212 1.818261032191549 1.244766613645636
+1.863681747717624 1.305650428960893 1.914477943399687 1.315754912125453
+1.080712890232410 1.763597187992667 1.878830085194240 1.270535967781273
+1.538546967929058 1.146846377708287 1.186265964627766 1.132239427435081
+1.077161252553147 1.086454353056605 1.726693559125902 1.996196724398714
+1.177893851950845 1.663280227982953 1.725394326143633 1.260819573667209
+1.422083937941010 1.015305830601435 1.510534749122176 1.780834988203947
+1.393972803727461 1.351081737895114 1.950703259743596 1.799051211735944
+1.966237826133739 1.427981678502292 1.796736015787586 1.520824225814064
+1.314236272119663 1.600603005096202 1.088834740594584 1.290402754863105
+1.606712920657130 1.475113784485465 1.354941858916995 1.376384441788930
+1.418371242325086 1.888223114787256 1.069180025582086 1.242405535149783
+1.409053837334081 1.931402278381825 1.939530208837921 1.746525883057177
+1.945195136414332 1.957494962916269 1.512477559456630 1.045918124809440
+1.073027705119322 1.867327816885074 1.400419603733035 1.603703450182768
+1.548036744818463 1.301145255202690 1.587028421486808 1.566736705843264
+1.179611896093273 1.026486371530291 1.083481276270549 1.069141432233054
+1.308213631528146 1.035456425466793 1.353796734569187 1.046731798656432
+1.557353307751884 1.169716697015254 1.369315172205007 1.044566561595006
+1.378482412112908 1.919827861139176 1.374397670882495 1.453379756515403
+1.129702039122521 1.353756883223401 1.142530650737744 1.732850042333084
+1.068266874305402 1.806739106690037 1.012358270821464 1.729003099145676
+1.487312911863516 1.609306513802266 1.318868643922602 1.681922223825248
+1.060741521346629 1.666963693647110 1.808830256232590 1.745018016221230
+1.823353576379259 1.106462475540144 1.438746725778336 1.834537513164278
+1.094044466561246 1.448275016681042 1.100712594918860 1.916923072687394
+1.074516945299704 1.348401182735936 1.383843635982828 1.901032341828874
+1.584472216074462 1.661311318860667 1.927743306729124 1.633809749893142
+1.469682983854567 1.160625527975747 1.898195877420813 1.912269053381780
+1.503436306062041 1.690259715184005 1.146307061229182 1.464281646565299
+1.718121011448032 1.421990313250646 1.974011221121255 1.992401938172454
+1.791562909217541 1.856939366008160 1.242146242552062 1.892866152910651
+1.574286759115356 1.798024056818556 1.286135504802609 1.047532202913059
+1.822177073766584 1.989477731423176 1.068784493262080 1.024924842677742
+1.397489582513191 1.129869661090935 1.792302319602411 1.682073136830482
+1.311789683111150 1.608875169043125 1.311568974158141 1.064039755253747
+1.822306693769929 1.372490897509662 1.714156354831783 1.911983972488762
+1.333356157571632 1.679151595941971 1.707590422666709 1.912719763658034
+1.182561733010513 1.991421015025233 1.930167211163836 1.174557378058114
+1.605619520468181 1.993427711454107 1.668017521646954 1.537932805087877
+1.010322897001442 1.777567613597222 1.520932907662713 1.087641147578513
+1.706594394022526 1.751798463067216 1.126820494418608 1.554115851077859
+1.754353382746146 1.903301736623598 1.970256908780097 1.136589151232212
+1.360682852295625 1.163949965899347 1.744920119368963 1.040590448377190
+1.195425425716227 1.358080475328208 1.522196412878959 1.670732963115459
+1.160545530480844 1.142771681223105 1.281072528342700 1.968424390638478
+1.611030445443875 1.478279414191403 1.201026435929492 1.506795846490067
+1.121159553262947 1.162184743634599 1.239684652711392 1.964424779505773
+1.246820907679197 1.595774048499814 1.728950036125017 1.543745260978458
+1.381930499199445 1.128337883373127 1.760914751181767 1.275009889207934
+1.369665380474196 1.667713348850262 1.489365736848955 1.826392908464683
+1.000764589420647 1.060001596191278 1.729042067644688 1.958894371311550
+1.296126085684161 1.605422524896382 1.886045819757301 1.576304631160329
+1.572614267044004 1.809358879236889 1.942546333460252 1.368633764265255
+1.601768752634722 1.052467511730554 1.489079625129863 1.759567979956253
+1.900304952229348 1.717255340765387 1.804974929400679 1.437408880403653
+1.690471662252494 1.871865048265703 1.340289115779279 1.896383392999387
+1.926300151676511 1.871716999476833 1.075409998820217 1.432854958733403
+1.750803498220743 1.907854707159261 1.318014768359511 1.687670712189428
+1.718745507949109 1.382131105364142 1.207764877073622 1.600508688095469
+1.289280235023373 1.440860211234241 1.235287360770560 1.430560997250397
+1.712218752251454 1.891443860092156 1.725452173617591 1.717788141162083
+1.670377747452523 1.677772357148117 1.772110417667500 1.834007884617612
+1.580067446051692 1.428541466417971 1.042827156282621 1.144663977430993
+1.312498703889054 1.435595566672437 1.433486269720449 1.694077594034579
+1.446018255983255 1.350329770209832 1.692835917465969 1.975888626750183
+1.478058702580039 1.322444879904513 1.059075301508523 1.390315709802462
+1.607885437399009 1.318771878288185 1.077395129307662 1.241113559167150
+1.242566549369527 1.895067176109858 1.916290479363756 1.800934775571491
+1.609791702847475 1.318281718766185 1.815148560638851 1.326328516618031
+1.264681887057231 1.385064033829478 1.521357980080982 1.380059544815746
+1.857013089078149 1.886619368641185 1.633929927809354 1.941735333122537
+1.751173928755649 1.998771008430376 1.108399069406367 1.653053583715047
+1.655691691216263 1.955862694677940 1.585608790400481 1.136698829661633
+1.088305744333428 1.041484854420677 1.813240624728635 1.120568238388001
+1.724131291373220 1.655110352977377 1.932166883488261 1.725582998633882
+1.998323760743795 1.445058075795679 1.056867512847792 1.520315778833940
+1.847750236067012 1.273792857173885 1.307503983681181 1.368098176225868
+1.048708931179002 1.656333054897895 1.635083547278148 1.278172971375943
+1.687330611297693 1.596905858663836 1.409008364279818 1.557119878079247
+1.070877299386357 1.266108762398767 1.477960425414008 1.376027086566695
+1.188978036973607 1.009100781611738 1.157316035988728 1.594409391856388
+1.745684891953775 1.642877241118183 1.710575727594374 1.041423408989276
+1.129449888609752 1.930967419476117 1.086280556741177 1.857423070452897
+1.485683112359584 1.163363257053314 1.767590155478622 1.291097497865956
+1.855704708284300 1.983269871278367 1.222402629295948 1.714608302084104
+1.892895620540965 1.932114694916309 1.271206686124588 1.182484458474745
+1.436361358186384 1.331516909872078 1.838699669898663 1.972761435965452
diff --git a/apps/medlda_release/dSFMT/dSFMT.2203.out.txt b/apps/medlda_release/dSFMT/dSFMT.2203.out.txt
new file mode 100644
index 0000000..2b35393
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT.2203.out.txt
@@ -0,0 +1,583 @@
+dSFMT2-2203:7-19:fdffff5edbfff-f77fffffffbfe
+init_gen_rand(0) generated randoms [1, 2)
+1.039141198330724 1.240142890878554 1.209955588717310 1.236112916061619
+1.573609744512888 1.395123490651293 1.812094386786663 1.972142771907627
+1.661852338311814 1.561535645334802 1.291263099916129 1.621868802307074
+1.618862276935360 1.286680235491260 1.630336290806219 1.622808181142302
+1.340478952876513 1.635899148001451 1.934891518138636 1.664728957674457
+1.376596839337377 1.260305027552060 1.300023392297031 1.027457137824489
+1.773860156177125 1.052104975387703 1.161615739474427 1.269062288287363
+1.481232382795297 1.124416764731357 1.237628894562482 1.486659346107919
+1.251379982798093 1.672013113935975 1.093610387659852 1.350243825722766
+1.146393524114235 1.580896199099386 1.004750270363792 1.557555023187703
+1.676226139103231 1.656508107343917 1.599699778073892 1.319138496244536
+1.495540518468166 1.982369804737465 1.887250488865495 1.970358383417759
+1.124824915359830 1.700449998809694 1.344854066773785 1.515288582218666
+1.260774193213819 1.541441556143292 1.020669163814888 1.532664095046530
+1.570925986791450 1.024123541250183 1.862414154465702 1.290885492363570
+1.216591192505573 1.152376110484766 1.946991594033023 1.653426585431799
+1.359196112755944 1.086165893587796 1.905402977668101 1.861245768166658
+1.769055175307166 1.781874287131666 1.653327618143803 1.358340769109447
+1.765941753454335 1.082046909408944 1.445006375938485 1.770700171178406
+1.510795653846276 1.127259642161102 1.795920741414507 1.363365805420619
+1.815682024224590 1.031687896128586 1.529937999487567 1.243497509089491
+1.442519063938840 1.129085571763968 1.250959067379838 1.256214638626548
+1.597661462604182 1.166505138313492 1.201693692846866 1.033383285967344
+1.921222443542199 1.446306057817141 1.762047428923038 1.114756848815732
+1.896993899128250 1.366049794020685 1.623608566294427 1.460276024800476
+1.851980759218394 1.199955713778692 1.267872801243776 1.436985506663542
+1.342260881226824 1.769399942039702 1.382411773282556 1.745162658334311
+1.810842949017727 1.627314665918402 1.143240711251770 1.557089601352327
+1.233888154340821 1.245403231835691 1.090855737858046 1.801766328614436
+1.696157537891268 1.135393042593019 1.409252243199855 1.765876585245424
+1.658751610478689 1.481542098536980 1.971694958309937 1.280166424454425
+1.313649267405402 1.871486442381505 1.603258432378054 1.338790375319028
+1.251436364277132 1.692319615182678 1.145579954301638 1.531877060273777
+1.657767598551193 1.132540794723104 1.020007640229578 1.886126996483482
+1.332917251008753 1.985111059814056 1.897321668560202 1.547226232278746
+1.205889234604903 1.970890001596329 1.449374539199924 1.279536278425465
+1.603104926120844 1.065256943212356 1.589646390284488 1.292619887933551
+1.574247207802792 1.614691487037373 1.878914831579740 1.050366408125299
+1.641521680977985 1.079935974675052 1.291052693384468 1.194273537419667
+1.401869452424997 1.661373451573920 1.431137542785703 1.402824118569746
+1.481349236292501 1.621794174116201 1.501477304776876 1.332844759837332
+1.486335083034529 1.236472233363680 1.831410116896823 1.196111721419032
+1.854608940478240 1.104980213294068 1.716938703482989 1.985121726609636
+1.603388618564664 1.205856854926068 1.789465539161788 1.275657823514048
+1.558950430886924 1.294652352349861 1.509894228687412 1.424926447867682
+1.690561793281219 1.617662738155259 1.538548070679566 1.678656591046357
+1.459567870872503 1.220274947328161 1.146299309938404 1.673399867690934
+1.303948646900189 1.792844943620298 1.056920748545254 1.723449036318555
+1.705218933066331 1.574271910435101 1.835672107865945 1.992808302928285
+1.242456130256102 1.886546511700227 1.031645383822535 1.349407595477225
+1.440922198509625 1.533300522502960 1.195258949275219 1.303323206604932
+1.489108687998710 1.494041084695396 1.478720593524220 1.046062361667012
+1.062305936564045 1.669161272966246 1.563059292810504 1.274026232513098
+1.436540772921877 1.498955415290125 1.749111015929055 1.499913162686279
+1.273075943610596 1.697363690914521 1.805133438000384 1.792761978553909
+1.838214243212211 1.940056572782219 1.021642992943020 1.556482785794755
+1.494706102646308 1.772730843989499 1.280842112460455 1.224167163922002
+1.226885186588310 1.104409736495915 1.871341373089902 1.649628248949571
+1.882227135317458 1.689596926282265 1.321100382465089 1.998791702175031
+1.314051061924424 1.275092894388936 1.994265356687845 1.664665580059635
+1.106243318423337 1.672585148249151 1.802549425178993 1.025987606396447
+1.162275700155317 1.665839170980025 1.780647182928942 1.807880740465895
+1.235095915914571 1.998773055796440 1.110075047171341 1.656413043901453
+1.223762589436485 1.088904754682103 1.705785580606016 1.344509841879231
+1.707784402029622 1.889867219977938 1.629164975460198 1.845456079067895
+1.950947048573447 1.396942344243625 1.085791838348562 1.533643434214565
+1.991976864923853 1.149730623835606 1.662050679587253 1.826296622198226
+1.184546227898341 1.826151496614516 1.687991012201713 1.282464886563227
+1.171400620040809 1.024202148632825 1.284936370483681 1.023054460866042
+1.370537923875428 1.753225748905738 1.078193758978676 1.265905847334054
+1.175639649816966 1.716328571113605 1.409385665049770 1.544216226585585
+1.946605197756470 1.397830617147723 1.164399165724857 1.366486775827378
+1.190837347431289 1.007850193638157 1.971957366134665 1.732468867192977
+1.828991751940801 1.196687328540595 1.339957910287784 1.421693781497825
+1.050078184445102 1.783339949476304 1.665659205188371 1.613372032043085
+1.204619345991679 1.360397439230731 1.806080629429025 1.109668355328544
+1.601109028774038 1.130764855332983 1.704282197396603 1.136505212014929
+1.800064196009557 1.292426067337642 1.217416066122901 1.178981678305928
+1.379727095082272 1.461526104603719 1.868431050268285 1.721936493507462
+1.458509960976329 1.052806884545862 1.874099115693934 1.778035562951926
+1.876617127172434 1.750824388249967 1.303508574379056 1.471945335314469
+1.494961271678815 1.180720375982217 1.777469165387813 1.339339368432543
+1.151341684273935 1.491938411306545 1.393387403687355 1.528957357353382
+1.053553472214053 1.085095647383064 1.920311084783778 1.607407463994936
+1.295695145442168 1.949779507064599 1.017921768510525 1.763587405191116
+1.601011547025528 1.890864874338349 1.692779392399424 1.068231501015229
+1.159006375778588 1.988050414027750 1.912010327660573 1.743901792595475
+1.175295869841067 1.135673601194746 1.725006429803702 1.617552928052805
+1.224699201819327 1.418247737170523 1.334258252147613 1.724912133156778
+1.866883463644543 1.516392833902094 1.999523038072848 1.397717856703600
+1.276173598128504 1.019827783621900 1.632948549296488 1.188267165391785
+1.703962193292567 1.100897361933408 1.453287012625248 1.043491730765605
+1.707662399032360 1.824759621202092 1.282636597649008 1.043377206540542
+1.775534724061618 1.049423394597118 1.764384048545575 1.072575002393183
+1.505588914547367 1.309287064415234 1.614446098613576 1.898183641982777
+1.785022215714252 1.696295015369475 1.002800620244250 1.070327331438378
+1.440091829299584 1.917151503374954 1.295141402466790 1.749073036639269
+1.290314508103292 1.855372784056315 1.688715445792815 1.929079665736189
+1.581315011413390 1.237483342551878 1.873205799201075 1.946079415749726
+1.707839399933875 1.417915831324499 1.377743653875118 1.309818886983690
+1.716682464379254 1.422117310374194 1.353192818063200 1.616604011199411
+1.040565800147756 1.921284195661759 1.028576419671301 1.223894588381215
+1.407313659994116 1.985970759532658 1.809710725235452 1.801281258976415
+1.190037546148096 1.319665814402650 1.948442238559942 1.829248996245159
+1.369593795959884 1.517535873041508 1.633975035897834 1.617234134740466
+1.352644117994853 1.340304683194905 1.105585071537800 1.280166881368474
+1.784746192165705 1.220763418244826 1.901448464622278 1.076976580323451
+1.801498270661136 1.488134782593842 1.690605505132734 1.194620038943089
+1.398087853169682 1.875761946153558 1.289188831337781 1.877032540863169
+1.950508537497909 1.276721156453461 1.313397684093224 1.268681053641721
+1.966209171972451 1.946470687033969 1.510517755201612 1.251628114707837
+1.308047880791574 1.877528720663587 1.694447574299634 1.551615782329583
+1.051934549344041 1.706339267825041 1.195435977997116 1.283947992293300
+1.276304313754866 1.508802710598937 1.147456759802572 1.229877013440835
+1.763073794424014 1.415515968178082 1.175155275131480 1.081645274354245
+1.550154082708368 1.385341206690545 1.859800115531479 1.844517373188106
+1.554812146871818 1.919793932542652 1.022106069461147 1.961571202816111
+1.848450319856784 1.579368201101670 1.862607030514023 1.557614288625032
+1.716021733509595 1.563839936839954 1.386346528721457 1.392111878248186
+1.589734557219395 1.969111177489953 1.026714373242443 1.447366092221195
+1.507703166849490 1.364879599324992 1.036794641196513 1.718506550661164
+1.612220710167033 1.482017726747213 1.567748828671672 1.288282049078654
+1.137256201618386 1.088045475944579 1.715170206172188 1.526989881901138
+1.580340124348446 1.142215355004299 1.286428629765554 1.902969421422592
+1.478445873825309 1.387689237613789 1.780533511763649 1.810801436852424
+1.469673562909585 1.607431221221057 1.646377619281454 1.817180948542941
+1.689398014134215 1.072999550293986 1.910181945114653 1.175773357132559
+1.613477394189694 1.120678060150618 1.211176991010675 1.227171808899400
+1.507675320657094 1.075226896429260 1.811744055542102 1.386896067499623
+1.054890272285697 1.578286781029556 1.469346516383160 1.294086293233517
+1.408614749477447 1.844017282766174 1.677477332307231 1.474495033235625
+1.065487240279136 1.738118582928041 1.870649948918698 1.667212451500898
+1.564640393182915 1.111076615244761 1.959645682131654 1.002048389485280
+1.607722785083625 1.951714655126424 1.039739369385114 1.012765689004515
+1.653583771713930 1.678789454879729 1.843014226754109 1.064628121495728
+1.312186617316042 1.285481785257807 1.815283193604309 1.017541296129615
+1.013709944667951 1.998576578557526 1.070939186810266 1.190901959795885
+1.168069707854229 1.869328080801340 1.660642721581435 1.584936001173564
+1.061979764564905 1.042040773444344 1.838439629370940 1.839606250540493
+1.778645024485318 1.751133110734490 1.779591818291246 1.937332403335237
+1.697965597586660 1.325210579474662 1.161103302793256 1.546319039657106
+1.918599625686021 1.604235868093786 1.222953384032396 1.819908181977273
+1.921076619996090 1.249483498669837 1.841592543629976 1.201589030817593
+1.999735971520096 1.378991144775433 1.474709509205056 1.008444962598420
+1.373571683785950 1.102980669831630 1.632228948221548 1.812643220142648
+1.049821995704011 1.284094046282591 1.804957353194686 1.802535604394299
+1.274632936657420 1.292877821954008 1.419648418324932 1.155430838839955
+1.857891026661894 1.590365236589480 1.682560903514064 1.560684258840100
+1.532863237882845 1.402514448788847 1.221114565933171 1.852881367785192
+1.182074055271802 1.442043763354094 1.880480684121028 1.932356672653574
+1.827111572433502 1.166009827655613 1.880399384629047 1.028940297271983
+1.940980638708371 1.215142763803383 1.260367316440772 1.274282533068501
+1.628218168100689 1.901503193344848 1.752876585816651 1.353565317218812
+1.136484030718981 1.180158215478558 1.999494454229681 1.128717690929988
+1.881182536502167 1.323236560705314 1.883559541345321 1.084492606160549
+1.603933840227624 1.871044626048004 1.323454679819830 1.285568134788092
+1.442316880502483 1.675199279357091 1.531703621297210 1.245846775038536
+1.218708138311095 1.368661074112896 1.027955067143173 1.160315137394309
+1.244595714117151 1.942361727119935 1.063440859948244 1.321570912759897
+1.018379348440438 1.461834996733603 1.151463199332354 1.298436313279128
+1.357398090959822 1.322187551377020 1.591263080575447 1.203104604195901
+1.404886542814355 1.364742215489795 1.742096108686747 1.046715726465951
+1.617450218756562 1.865837390740704 1.748466378783514 1.392205629532071
+1.304861153447791 1.891973984184359 1.532649808637256 1.503875856139364
+1.831875230783633 1.193926949917014 1.985936923128947 1.854931269732990
+1.349121290845679 1.200889819129872 1.115413305054278 1.258898582800731
+1.205909731936156 1.348972413339909 1.661613202769152 1.175786276377834
+1.812818908352167 1.161357811959140 1.527288219880505 1.080944727898177
+1.350740527137857 1.499058415498731 1.251816997346322 1.983787620654196
+1.515224636328895 1.169496642830025 1.753035107512602 1.384761512406005
+1.150180344215311 1.885178922696532 1.700692026296078 1.090305099673744
+1.126196556001261 1.005798656962493 1.804525720122459 1.569388294229702
+1.098561325161360 1.544307158222032 1.889873359038311 1.926998546435776
+1.563034171123912 1.230014541068513 1.153546135339472 1.693905366428500
+1.182532562764792 1.730138358721698 1.724988902801797 1.963901337353893
+1.849103113575761 1.751155466997474 1.123903901172726 1.169689107843478
+1.126436924666943 1.338121962294559 1.369250756650904 1.210665427864301
+1.328860624696487 1.846083804367444 1.228841388621903 1.850482738883441
+1.031539753860734 1.670587660481137 1.494045569959400 1.639573949727104
+1.178230147378106 1.849480012725787 1.712913817518067 1.509931490854586
+1.155585292587021 1.219796161923275 1.319790094170276 1.477061279801945
+1.982170503348295 1.944947816300878 1.554770179467417 1.774700585936174
+1.597994729986461 1.667476491507927 1.623119112969421 1.492598018642806
+1.669309724300574 1.646803030181092 1.391586487780103 1.546525341353980
+1.061602937854186 1.786163149515636 1.522303933414847 1.003821323370057
+1.752620947700809 1.344086525790528 1.192936886595541 1.711660470876668
+1.192704924591418 1.583790852007382 1.714022339957634 1.018196265882217
+1.261955694667892 1.037653179273484 1.510539545073051 1.569609326339836
+1.171286997634828 1.773814512724506 1.264375497250634 1.438447788748360
+1.423817552105003 1.209548273017518 1.509219508748979 1.290503608642035
+1.013013655704902 1.262750445467456 1.880101499527582 1.814073048535359
+1.178838145940845 1.361140686081717 1.630504457075552 1.332130298101719
+1.980185187732520 1.025849141198055 1.499816261948615 1.886067182367687
+1.943391762550890 1.883793797561850 1.393108767952361 1.472285460919636
+1.454297136216233 1.604327468505530 1.841584462314744 1.036083693372093
+1.865484748734165 1.715015808634865 1.852797462403288 1.000463514619097
+1.637683717494574 1.799864839102373 1.554986733376055 1.157883148760638
+1.483351087518736 1.047363045199551 1.689338187861649 1.732327855820730
+1.498005375107870 1.833419041315558 1.708697559971115 1.955255549078584
+1.333954203099489 1.882622610999957 1.697950173088621 1.474706918285158
+1.326469298175575 1.416442723516164 1.790072293683172 1.691951525993823
+1.119815136665192 1.690878030772192 1.336799387920443 1.021075946500541
+1.582665512343895 1.382834995605905 1.267970626554977 1.299923491542806
+1.312961988795121 1.804420980492467 1.771550122211635 1.239114752641682
+1.766315436512387 1.812885923329385 1.830384946496652 1.781840949664589
+1.327992525287806 1.973041554326748 1.678613760643311 1.530481142242737
+1.408567937268295 1.939292302283724 1.564875946161735 1.264742838369576
+1.371271507273645 1.977541947067322 1.151321548379823 1.861521605445597
+1.035888442901299 1.092786663499884 1.397366581097907 1.185879736935120
+1.001417135662349 1.595795887746398 1.435205159198904 1.743205230820061
+1.139762908943114 1.507505008313905 1.084851542914929 1.980581493820314
+1.540411095930878 1.155602731205201 1.767446293168915 1.396016567192436
+1.185002609380092 1.778666518176333 1.489994133200269 1.350851442331109
+1.172832349598882 1.136390459424314 1.772022936357028 1.259277588415790
+1.460002103784128 1.109142247198141 1.200309722170291 1.770262458705504
+1.477398615652831 1.914515897986346 1.738823365081160 1.221415649618010
+1.783785121235358 1.820341440765876 1.470790447421484 1.275087310049065
+1.318974245712919 1.295129779827806 1.676213199686799 1.804084953633677
+1.649475257660110 1.833986253552612 1.260078364628832 1.236147917235805
+1.233641569027073 1.217516165228317 1.906423418124034 1.689392461344981
+1.247896916031103 1.172398941832822 1.423571997288933 1.456255393694267
+1.166479878772256 1.609613643698234 1.043043183655469 1.080833843106141
+1.925916150409973 1.393613943903531 1.402494073859768 1.283178389809106
+1.139370039956620 1.716082750052852 1.142393678529766 1.714663464175062
+1.003091345461193 1.980193031697386 1.293772862023148 1.722948766460000
+1.604094536913981 1.300322977479020 1.079733523576264 1.173126141423043
+1.984423384572563 1.944739324671868 1.888741462925630 1.462044058286704
+1.105501656104434 1.884018142904103 1.956004759140273 1.653965313659125
+1.289524679836427 1.461895401547101 1.679978607422295 1.655900126551126
+1.551343376261922 1.138013415903818 1.674340756216788 1.028616400855786
+1.643035446284006 1.291123331005827 1.121809832553192 1.199192856952211
+1.784217807027659 1.973937742186325 1.799409605823858 1.836210357979325
+1.426874350809040 1.005211234058827 1.470544460725735 1.349483230173959
+1.071927297806407 1.902432911264583 1.456817772395522 1.144266403876628
+1.653204612993161 1.702643793462855 1.452464749746820 1.811544945044856
+1.302660667303060 1.006385204933988 1.096558730716881 1.529703008886315
+1.554871928843149 1.751419063998112 1.002057966435271 1.991901956592364
+1.226664400749208 1.650879060111153 1.511784737349947 1.203652219330403
+1.806938352257582 1.416239745685956 1.741637296653365 1.378328500695861
+1.707468730905402 1.379428338651053 1.046908756883947 1.648388276627436
+1.572028250988049 1.591402565310668 1.492315517217602 1.194033039777436
+1.121794662452212 1.736481535066753 1.061004860681597 1.980329013709233
+1.857835114761316 1.505484215413226 1.132100210375277 1.700512166449060
+1.774303365287700 1.430487490851686 1.145025882863047 1.224092932012995
+1.116668975504566 1.509681544470995 1.960647022246499 1.410670756798434
+1.778404712046845 1.302965875486441 1.004527791646426 1.278635146256208
+1.405754052222326 1.073406451157362 1.400476009833673 1.714631429357681
+1.733053807758147 1.328284588862131 1.620819094194692 1.162474639648339
+1.863287413895159 1.651488223648670 1.461225748933028 1.794453541604570
+1.730456345586420 1.805391570851956 1.633920611227117 1.384394789150328
+init_gen_rand(0) generated randoms [0, 1)
+0.039141198330724 0.240142890878554 0.209955588717310 0.236112916061619
+0.573609744512888 0.395123490651293 0.812094386786663 0.972142771907627
+0.661852338311814 0.561535645334802 0.291263099916129 0.621868802307074
+init_gen_rand(1) generated randoms (0, 1]
+0.197401825552436 0.450667789853425 0.949077153602325 0.746101466565815
+0.374044214892803 0.203220825359265 0.315142533420788 0.000972952474337
+0.528170849943415 0.511750723153281 0.736971877918357 0.775180059678772
+init_gen_rand(2) generated randoms (0, 1)
+0.427667673034137 0.114400215101537 0.032119928592253 0.255012682037145
+0.355448733065872 0.188020506093574 0.062619018878574 0.402188885491065
+0.660402037271053 0.932882881654048 0.986571493440761 0.575033370781814
+init_gen_rand(3) generated randoms [1, 2)
+1.605915781710681 1.647244358909601 1.254232346519736 1.085959492779551
+1.352860166249382 1.994299975846146 1.586137829445560 1.649591164754850
+1.495629716325686 1.700105207379521 1.130381728439935 1.848159368566670
+init_gen_rand(4) generated randoms [0, 1)
+0.238034111259992 0.888061286658451 0.862449834293604 0.066013370194657
+0.454160163257894 0.549218924884145 0.714536859506758 0.598983253772769
+0.330530003460256 0.181600268795437 0.084828648251119 0.253899928954298
+init_gen_rand(5) generated randoms (0, 1]
+0.701876480870822 0.439288092349092 0.196861761522124 0.225529182201355
+0.513841365467117 0.812782297385214 0.943515794309134 0.728688713799219
+0.550086818407231 0.159141148268531 0.708650807287641 0.555829403967039
+init_gen_rand(6) generated randoms (0, 1)
+0.477466803162719 0.974495445245670 0.354529903885188 0.785219142885805
+0.218041032218533 0.321280564574248 0.059430242716206 0.557517726072402
+0.646310724036336 0.214381751071967 0.823112174560962 0.233562918821059
+init_gen_rand(7) generated randoms [1, 2)
+1.320570959340211 1.577820287396313 1.888528766674804 1.599916133592814
+1.882620481758533 1.703005271719497 1.970766024252903 1.653379526127726
+1.602754672635726 1.972302690830004 1.360349937530974 1.018367692159037
+init_gen_rand(8) generated randoms [0, 1)
+0.389305095734386 0.293795385032480 0.824471116809770 0.713132951231938
+0.315282980920242 0.680652513317100 0.529348121720663 0.204238271222364
+0.656366865037213 0.263189542120189 0.309634761782333 0.849148446335754
+init_gen_rand(9) generated randoms (0, 1]
+0.023742037201143 0.097817986094275 0.212028098657713 0.488796770220919
+0.699438932294896 0.124125269982973 0.631981590554948 0.599189707334417
+0.414231330009421 0.003200281601159 0.309005613295406 0.613944565103664
+init_gen_rand(10) generated randoms (0, 1)
+0.366581169365578 0.132306137250225 0.303113209859658 0.942349397812930
+0.985650763418516 0.645014809690707 0.838068410996888 0.144623334977467
+0.760804985612095 0.993776960867864 0.576849813965344 0.714302890228335
+init_gen_rand(11) generated randoms [1, 2)
+1.112505574020623 1.294372207693334 1.045222923489112 1.987856657469678
+1.064591329672131 1.833230679444852 1.621580734728720 1.666839500196974
+1.676721086595095 1.264691217189676 1.483640691057159 1.506094145971925
+init_gen_rand(12) generated randoms [0, 1)
+0.936155301433925 0.359270189551617 0.414582052821748 0.243000364705316
+0.758183339532466 0.236961638976871 0.289072189183471 0.759861901384338
+0.432451490068222 0.938553980678281 0.025994903250097 0.408491070338117
+init_gen_rand(13) generated randoms (0, 1]
+0.805350001345456 0.409526279934147 0.524297575295026 0.974284399305928
+0.881837324886245 0.013311399270564 0.965265460793185 0.329147241208287
+0.642238290615810 0.508826151681757 0.888269880227152 0.217972196613126
+init_gen_rand(14) generated randoms (0, 1)
+0.697836734853999 0.019927261099530 0.559811595873184 0.823629195963737
+0.977841885903914 0.597673600697835 0.650607241567713 0.351049405232736
+0.221740602825167 0.579057119299789 0.994956203385833 0.948871688306084
+init_gen_rand(15) generated randoms [1, 2)
+1.489799007574679 1.811428537048644 1.703031967018970 1.603992987162570
+1.464644244443203 1.837018336726886 1.301509018842335 1.696721503366149
+1.353697989034858 1.036816097847184 1.750096806960109 1.198966580910889
+init_gen_rand(16) generated randoms [0, 1)
+0.568400348480497 0.207728900569780 0.166259744101853 0.402870146352962
+0.586412021358490 0.708367941417526 0.955922418811199 0.040110250748239
+0.630730577123339 0.341876190246356 0.466558538026659 0.833574901219682
+init_gen_rand(17) generated randoms (0, 1]
+0.846985165152819 0.774433071769977 0.601518580531997 0.241786773256417
+0.604742063883701 0.576118711236220 0.044924777040066 0.256765771772177
+0.888223853605954 0.692405844297021 0.383224119688446 0.834190267882152
+init_gen_rand(18) generated randoms (0, 1)
+0.150898153558084 0.894074805505165 0.713160196894030 0.433402533844206
+0.875665938667556 0.416141379216622 0.223487786074882 0.449550667994502
+0.905850613883171 0.163447403529844 0.390164897666491 0.056743596941706
+init_gen_rand(19) generated randoms [1, 2)
+1.488984435176724 1.717467778659574 1.546178299359787 1.752484902683245
+1.758961554059368 1.806181578584397 1.739950312343025 1.426374345111599
+1.325059528213815 1.955888538600641 1.493838013991883 1.717447854592225
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.581784220574283 1.375490735919011 1.230434027335453 1.157674798129142
+1.924926201763689 1.503346509861353 1.851044508507724 1.402844112986903
+1.419028594944477 1.928667341232300 1.898716094675978 1.753204803856708
+1.345671334929312 1.176370870936859 1.470262887281132 1.477534103640992
+1.711125962153595 1.104842398249141 1.286505545896534 1.267960079806808
+1.897070869335029 1.672372741308925 1.925366548353924 1.570369503102714
+1.262427349483049 1.144938984374652 1.806816861750172 1.055836556590565
+1.856435584455372 1.534581057549975 1.337634317540990 1.786811019981812
+1.403750473290234 1.364182847010770 1.685234444976857 1.971498902559483
+1.201359355439138 1.695241282526675 1.426977200619351 1.209822388415719
+1.064311864925730 1.284612845358044 1.417087753521999 1.020158569512297
+1.846410333712863 1.656509274354210 1.205573951923178 1.608792271649917
+1.820629007505394 1.554917963678397 1.013197031030768 1.625565384317373
+1.150982021455667 1.019620532375171 1.853768862889388 1.328704264756345
+1.901266071978463 1.147060752651565 1.296167213562808 1.761219455586520
+1.430665563355600 1.467999009468029 1.610041084997331 1.153752516788247
+1.230259855379101 1.945785193310817 1.253755987201342 1.811973287318842
+1.810282681309560 1.597495206235969 1.408129072257869 1.624905697483928
+1.461460734368479 1.775880375028434 1.192449928181817 1.149308749295791
+1.175395314310424 1.699039552208669 1.796206187488880 1.029717908529121
+1.203178363987544 1.733574628701880 1.425754719714488 1.262039527918475
+1.363292380175834 1.127020215359926 1.969944791008144 1.744883576858477
+1.683727425703323 1.297642085663367 1.615826762608746 1.699359032613616
+1.119664043840464 1.318536090866232 1.606796238247157 1.846241681353618
+1.825068759397794 1.546302473583572 1.906344814552644 1.991020743487259
+1.712130309403512 1.919649234374935 1.959722969459669 1.989473855721974
+1.082871984732461 1.366750062596304 1.937255430309779 1.114780038809380
+1.993584201376266 1.075515194674447 1.185010621825713 1.954422581663549
+1.983888707073697 1.209961522605011 1.416699289342757 1.880332753539968
+1.379361487469061 1.086299656253863 1.271974526497069 1.769933755651243
+1.804896440930220 1.263512601189586 1.664566665656222 1.615786240697372
+1.418211456414433 1.888872346304841 1.416311147784885 1.198324942387434
+1.568242446789997 1.262349469924071 1.330557989668627 1.227380064567726
+1.858272349557563 1.348303640546580 1.912734436739592 1.447490900925646
+1.667598317588359 1.440384783800599 1.300853351894008 1.104924898175278
+1.475373371811666 1.647755124793837 1.936646678239790 1.037283694824625
+1.366811920125820 1.175760609385573 1.725877131094695 1.671404045032368
+1.232451919307580 1.315069292486487 1.252066960732464 1.540540822791156
+1.576159081376324 1.056794022853287 1.247234337527997 1.979153871288221
+1.789665405037725 1.080478961662019 1.578789761464401 1.251412248176585
+1.717473119887289 1.856482886675195 1.585781348262140 1.657539735089227
+1.725295562318627 1.358108909885959 1.478116026679084 1.648718430675940
+1.833897588057591 1.614326277027441 1.458207480973986 1.478658319657864
+1.592363149762596 1.521459869622774 1.510214258799192 1.729995820091922
+1.329744692294030 1.039366009040401 1.866866428880808 1.214216247116733
+1.743741564955049 1.944384531968273 1.046713222841421 1.945288755861557
+1.314725685610223 1.727778887388147 1.250275894620396 1.965480650560618
+1.335067904265259 1.075326473259674 1.195270859558463 1.469990251917766
+1.271125538076813 1.654460924588071 1.817442004906609 1.359157122146834
+1.858852728053805 1.273267453924201 1.366792070789259 1.912137682645212
+1.503075831420879 1.687124170429213 1.715818061351007 1.352500443165350
+1.445839238792543 1.749243634572616 1.820262417537699 1.813965979481817
+1.863804007177159 1.022228169234786 1.063436299508330 1.479793897330630
+1.904860492646294 1.548095390425714 1.325993814499663 1.003685916350308
+1.931645280320050 1.903101932172823 1.246820921389577 1.812885751645541
+1.709723037916782 1.450431076813649 1.599243208455056 1.778267616751270
+1.329635364764782 1.218782717895717 1.079957513759208 1.597831329363057
+1.121107566400202 1.889417970071214 1.421636818532383 1.849876383555306
+1.684067018123242 1.389261165829996 1.822789021713953 1.294763497851258
+1.847836202955740 1.598781093634489 1.926753013925593 1.440387184435701
+1.767049137470906 1.553638683352875 1.679572681243927 1.831337813728048
+1.570073622966506 1.704489672835301 1.065911526742235 1.012175065950209
+1.002717950801457 1.424379382170699 1.915024701107380 1.145153419695177
+1.780556572711756 1.480112314460859 1.623632212683259 1.943835065265678
+1.516775932207862 1.849577598718531 1.307241507254630 1.849772268611909
+1.784750877217859 1.798551344643336 1.631543915427224 1.743947718558308
+1.210515049794880 1.284233688788902 1.623190974116068 1.165687342182281
+1.103890656189220 1.627542812024314 1.718161934222181 1.135663797936712
+1.312106280907609 1.626757395273420 1.233785927043938 1.122250569765182
+1.562057307760092 1.601102523544753 1.273622178941670 1.584299439769404
+1.723490809680135 1.783903272589669 1.914713791301816 1.371750448880508
+1.056467357532088 1.906835782287166 1.888713483375910 1.451413768983463
+1.572098416649762 1.905987609966424 1.390074915499875 1.529368396050219
+1.074987897380389 1.441936815585553 1.358958798555481 1.306581387983191
+1.567174019938476 1.366779308770981 1.540404642844891 1.107366719604107
+1.091588042409968 1.206686538498947 1.168732076386575 1.166933780966704
+1.751174584401249 1.510698471441690 1.389739765057999 1.605707929594646
+1.613652375205908 1.748150127087050 1.908027890846209 1.391198791397340
+1.850716004681687 1.178510898754690 1.279050254708966 1.980312851287229
+1.913720527053944 1.170383597784916 1.843099060153383 1.240357660628765
+1.593263756225592 1.441410101717591 1.152945646002182 1.532799078017950
+1.952740495862444 1.608191471264117 1.835114332392953 1.890771524029221
+1.741166283118387 1.867376841901318 1.805527618691385 1.976481394681395
+1.289143813426283 1.036152758623536 1.896090396105460 1.470198345054196
+1.010270693682426 1.910931992679489 1.608667727022163 1.225808473215601
+1.657968481960328 1.814682393795652 1.801286837173360 1.181771157368519
+1.271126010159510 1.267413673488665 1.117702765547677 1.096034019775898
+1.182306755708529 1.606931178411624 1.347721351019386 1.165000119694449
+1.265119635773692 1.632513954097050 1.984920452728500 1.421888170574904
+1.285399472291372 1.321898735400642 1.599304972859306 1.924746271026968
+1.221294901066829 1.834251599730275 1.378901118041815 1.481664967101106
+1.957054073364645 1.971189646575880 1.265039933026294 1.166785912357583
+1.924713199815726 1.981811879378133 1.365180021640786 1.652082193349455
+1.230266271337427 1.687367334446616 1.054064539902473 1.764505762286223
+1.752407818019320 1.742306775063781 1.185566332820958 1.219818575717409
+1.959119430495580 1.965507857832389 1.666778629241611 1.446643866832527
+1.036725560575461 1.464321490808888 1.843505598350056 1.908045655211484
+1.303075454259380 1.649505077934604 1.319644534549038 1.696302119837339
+1.889332959822164 1.622064959378393 1.371362648755284 1.857229692786051
+1.718209935313625 1.629426632246817 1.865658097953823 1.395355242694140
+1.624005945212966 1.061387832116709 1.520923442991397 1.722847196415482
+1.347067926756336 1.710480040508271 1.088293797060075 1.123527982892674
+1.524790721254219 1.729837202803553 1.897886345090063 1.011658568608087
+1.134961364934961 1.392297236077536 1.489324114718984 1.754689778319747
+1.613096642629752 1.551265831145296 1.338864401360767 1.276685612452870
+1.615802265118444 1.664270999638602 1.226312465769434 1.476213774847988
+1.484947262896915 1.025002223720659 1.691741636291866 1.289624599102435
+1.778018773814511 1.320572631727793 1.016673705753413 1.726685336066359
+1.699625650410000 1.811764274206766 1.833794674315552 1.713361523062922
+1.198129768432362 1.414572949889018 1.021396723265923 1.707618690950667
+1.818644029346414 1.471379228802167 1.536805454430285 1.566578826730643
+1.155763432556800 1.455446271244830 1.984683762822730 1.039741406288304
+1.187615699615834 1.708851757735158 1.124070938711426 1.160113253908959
+1.654972976648035 1.069675410235650 1.908643758871124 1.092033155990670
+1.290858372275303 1.268340467475133 1.858902080169007 1.871738583077078
+1.137238430896401 1.127701894072641 1.653188725300953 1.992660589470426
+1.493127927726640 1.667568195602224 1.750114818971606 1.695149774430420
+1.299884208975959 1.043983453672710 1.732406051881951 1.647633590816711
+1.073521834917236 1.553479978097202 1.780975732154903 1.935230193178537
+1.417323192034128 1.636438637958045 1.300972826766776 1.707757798542655
+1.379440461610226 1.183250200025667 1.261503837930639 1.403665541434525
+1.267347672009752 1.470634204329695 1.901754533495216 1.615267954345399
+1.496609418902175 1.795871663554964 1.746486290257316 1.578777659233268
+1.783757389953736 1.078239738277801 1.733446718115909 1.683716012967350
+1.169325249506646 1.591185632190302 1.910443182988000 1.362665243619856
+1.477829857876200 1.190843734989590 1.671571197844778 1.741369467223771
+1.169249891488600 1.303948191602491 1.771845833426090 1.400648617418612
+1.876265804386488 1.506999229289260 1.227144170388191 1.956455240741943
+1.458919944079656 1.392275923025636 1.783024614890859 1.744399566394544
+1.213072668177964 1.034916555924968 1.465855432309263 1.243485681343660
+1.190096559808315 1.748737872314512 1.728479670169564 1.543798794567458
+1.231667615330678 1.431370354345645 1.258902725252618 1.497634402786963
+1.278863149358672 1.937362174302135 1.000785474000847 1.412557553518734
+1.881197467434246 1.957961395692313 1.653458374482614 1.669301717566589
+1.853036636133124 1.401368768123531 1.888227484881373 1.089630322686924
+1.766853033083576 1.864715538468725 1.567166440215568 1.239329510242361
+1.914815066632984 1.361439545122177 1.847625615997669 1.084790845777528
+1.455856805074847 1.625737097435386 1.374727394690390 1.922974360052717
+1.895712497591960 1.915403838667270 1.196511789795154 1.436080876740979
+1.924188962873454 1.935485627244466 1.305770470916874 1.920335529161351
+1.832261344161070 1.440213355294695 1.849961332461746 1.966324733930815
+1.021067345711494 1.847080469115004 1.503340312642349 1.010871454926105
+1.796134565476918 1.779034702442903 1.299365557194229 1.277757027038904
+1.770808737512190 1.343812691337329 1.253740236935527 1.685945101384905
+1.012148368588091 1.810018599409557 1.671974976336288 1.196433974766770
+1.935960826992056 1.189631213629368 1.569360051729205 1.352405743739133
+1.195123169154615 1.437427495622016 1.406714004082566 1.342148445317126
+1.082109165898629 1.551340673863146 1.822316585656925 1.025047295438891
+1.088641295506727 1.647990664543797 1.772497203110595 1.102261294186359
+1.839414561748175 1.014838153112749 1.878378616659002 1.116600101004812
+1.077606330684023 1.520039490618765 1.245524070796298 1.281308150378041
+1.044439759385231 1.193356174620751 1.878160353973019 1.263631414905725
+1.146469013687992 1.912560416052871 1.207319505894427 1.301041631547760
+1.605235112731150 1.865767840133210 1.578919888532329 1.697429343449053
+1.439534586453936 1.270794171175967 1.338060766416837 1.825829353774074
+1.150399249828225 1.751117009640262 1.209327641929514 1.316777316776836
+1.284614983745236 1.560144903961762 1.589566462407829 1.269934649482484
+1.849002637721671 1.656875246667249 1.869490671437175 1.799613040261653
+1.634585999168032 1.092844578413089 1.547225839113513 1.030854465863721
+1.665379681013774 1.847365579501814 1.602375468220916 1.162007468291018
+1.765917805272711 1.043570110198225 1.970370294154856 1.240547866129472
+1.215756542663651 1.143533181637167 1.061418762588509 1.326704046894129
+1.703759937359586 1.408520886992474 1.147195750767595 1.256954187780514
+1.895550299154874 1.803943506858809 1.179746461959168 1.751316392510608
+1.800244014362836 1.836681894388480 1.082287414021476 1.803875782383433
+1.733229118247300 1.721397232127892 1.141610279724018 1.746805367485522
+1.762593715549831 1.400937865149920 1.507169714450278 1.935523297462100
+1.994261578524589 1.597151682619948 1.497872716654619 1.478530200593745
+1.667605469096648 1.597076994877261 1.165305703315946 1.659295787868489
+1.581881334840277 1.371592113582251 1.611238145352840 1.873055443266467
+1.216921201145587 1.602742298811010 1.568043517659167 1.789997394737028
+1.393881348835428 1.370790115141894 1.478652345028026 1.266239388558233
+1.478988481788109 1.698676490370188 1.223410872708738 1.426016619242417
+1.603748897589154 1.259162325891960 1.751962161801198 1.642053629115248
+1.182888428821636 1.630904672899669 1.207156148861067 1.996387132827757
+1.534686594532146 1.056221063999409 1.430776279206762 1.044284650436675
+1.763438590793454 1.072838364594817 1.773385446051327 1.903004581600065
+1.355730539876477 1.575025496906119 1.146728643311143 1.424354369485917
+1.480764402020752 1.068247402230020 1.126351499339518 1.064905592810708
+1.709683094927656 1.217256044031853 1.395667558385031 1.388069930232979
+1.655736948663699 1.638970279356242 1.937096035902118 1.694209004123547
+1.350022824179225 1.386603285378202 1.160114640834867 1.144095960576550
+1.396083799279169 1.503553485984674 1.454334995996020 1.594666490819794
+1.265579113611929 1.786598608106306 1.695980238567725 1.341551686763862
+1.693694731376810 1.049125824395964 1.344851211502348 1.693243925331636
+1.951334972421921 1.991263655002045 1.851353153742686 1.321656435176580
+1.391461505901178 1.754662992725609 1.510833834288598 1.230138420722863
+1.827256977958609 1.450016150837932 1.556177490317170 1.805415926426408
+1.564751493088582 1.103992590267513 1.379596004511850 1.063387464059677
+1.076679101189682 1.638216533685479 1.458823854092790 1.646861209642338
+1.350748819397597 1.982307763936686 1.890191624531657 1.015662086401123
+1.595595467919673 1.180241168805636 1.902876461047600 1.733414952734333
+1.520729003055289 1.802432905162320 1.584074523590148 1.671687108631404
+1.365770685468948 1.317205755203608 1.035944674826329 1.381977758980635
+1.055379650218116 1.074751595915970 1.415865352306709 1.496189989686173
+1.843493762032968 1.287942912299040 1.689485773740891 1.004840931780170
+1.665150443170417 1.883565441002568 1.189311290194855 1.293006112399775
+1.750676280349064 1.080107884031108 1.639121115220116 1.424436680664794
+1.427839435514884 1.398850511053499 1.134221737561770 1.897130638831893
+1.619684260272339 1.875017597562765 1.484667218531899 1.906744068343257
+1.981699218568070 1.769190945916698 1.291253844244409 1.320950252834372
+1.051010134017152 1.391469757357453 1.529555858691787 1.639429500343102
+1.175475060108953 1.387877085293972 1.374453646488980 1.655463030996287
+1.778007504634294 1.165725624644233 1.463669723343275 1.289946718754619
+1.355547094343742 1.702786555907037 1.303411710646469 1.063611895426248
+1.647682072771855 1.510155073082694 1.975332214067631 1.796109020258906
+1.073498844355837 1.557199533663559 1.976230245279317 1.095461163831737
+1.786276919105607 1.477190445334828 1.414645596587913 1.599804535300973
+1.693377923244436 1.598021058974949 1.686133212134171 1.966676050119018
+1.724837324150626 1.517172923453211 1.838512802433010 1.465432462387609
+1.091605370360245 1.905700303733611 1.096646521124137 1.048923620565057
+1.241133392065901 1.798573212327515 1.305814852055780 1.261725805269616
+1.860976597625726 1.213936616995949 1.310668503732973 1.578459656697018
+1.153160327837926 1.157002141929044 1.668713774907511 1.763277094931680
+1.723447352583971 1.097408696637637 1.861038306408553 1.747669649315865
+1.356742796626167 1.951100258307213 1.193283515449174 1.518521153348034
+1.898212418154225 1.176777693589735 1.142923110401745 1.923030743229233
+1.157488606066511 1.746843217206674 1.271695062544859 1.474110364734162
+1.622078166086295 1.992735737029523 1.463624611142545 1.103280391115205
+1.687755429266179 1.083954610834120 1.824243140453917 1.051145043197660
+1.202505789064883 1.619803583867830 1.469094876379111 1.750269855005038
+1.401071955177263 1.396622486465550 1.321199032174458 1.531398301886636
+1.696005824261001 1.180535978350471 1.237649975647904 1.727642408879457
+1.483917021839838 1.602637535876936 1.677634872651089 1.053993145843173
+1.529944246268332 1.009710922880091 1.061270427667000 1.157883586833278
+1.311940015893206 1.699080906062942 1.324059829056570 1.699985311869555
+1.806958285107052 1.938984256819368 1.383809033195859 1.663089359844772
+1.629385604641646 1.279129877643089 1.353203437356081 1.835716897724937
+1.022367041982251 1.269848511465716 1.940396256834161 1.652544187135037
+1.534163247839048 1.321032356158555 1.583323422628123 1.943848347992094
+1.939881046725894 1.483926969207914 1.847247052542036 1.092620768306672
+1.567748935248181 1.451236022935140 1.513988733604546 1.029148125074536
+1.399056908126267 1.653762095915320 1.207957745028439 1.965603937586241
+1.704662784784792 1.102735559299528 1.904134171137863 1.945184244897699
+1.259848600560343 1.084336218124633 1.134712207966241 1.045712442577797
+1.896314088159345 1.484168353152407 1.448673407266579 1.534520670193278
+1.035444439445641 1.463756387154946 1.672577479298799 1.097759709025264
+1.377175406140576 1.380049302965333 1.357095800261004 1.525020733013280
+1.820676828979531 1.402074006087944 1.664826328284747 1.330712640197355
+1.293578180672206 1.008208388327455 1.059993912006153 1.670061920105905
+1.096175625876608 1.458352982001734 1.488353509753223 1.172523002986754
+1.746847770533170 1.025835475238204 1.750579609826914 1.290296870215195
+1.855485351218176 1.210658205339691 1.613225919431506 1.568123815744937
+1.306436769373309 1.934938546232255 1.207450161500247 1.055038235774138
+1.806320249138067 1.104246417543740 1.656975702054405 1.500057207389252
+1.285440730893217 1.393019761026395 1.730565426096069 1.672416945293405
+1.379870787623415 1.228744976967289 1.772614189718214 1.331684702832025
+1.942857504736689 1.252863931919844 1.569440305686581 1.042783290515588
+1.690098273713913 1.522256345958018 1.609568717869338 1.049043456071770
+1.070232534167644 1.274407458081942 1.575048710103017 1.250581363707148
diff --git a/apps/medlda_release/dSFMT/dSFMT.4253.out.txt b/apps/medlda_release/dSFMT/dSFMT.4253.out.txt
new file mode 100644
index 0000000..689b370
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT.4253.out.txt
@@ -0,0 +1,583 @@
+dSFMT2-4253:19-19:7b7fffef5feff-ffdffeffefbfc
+init_gen_rand(0) generated randoms [1, 2)
+1.139094106868506 1.906912332044604 1.155279971572842 1.816240119921928
+1.968538028170452 1.705944581231948 1.918194220532118 1.812205985231770
+1.118324298619098 1.725613776800635 1.384799205428535 1.866053809172827
+1.737349609441751 1.606855600174225 1.015329937740098 1.753721504578023
+1.940862584344073 1.808855307356398 1.202632643688191 1.957539399728702
+1.859908234819278 1.530527429322220 1.619837819772417 1.742353445157978
+1.740218780123652 1.412897280275937 1.699645694977586 1.287551553928310
+1.886571871186663 1.945403843665351 1.720919068945055 1.615504507618511
+1.609826281455626 1.443930696540812 1.418713470467047 1.504665550385818
+1.201470173935238 1.741604588352925 1.783894411407497 1.373038600912394
+1.996646991876386 1.730946807495221 1.024543424138406 1.160849700044104
+1.928484783514747 1.055749161758287 1.262813892526972 1.135211149343018
+1.371253408616356 1.364145053216020 1.178278205296706 1.324422565411075
+1.160756956838453 1.354095354444563 1.148413724802729 1.878949473813181
+1.703808429897446 1.816107958210539 1.124881758146617 1.875177502851386
+1.071100523805567 1.904318124064836 1.332365991055856 1.730076721183579
+1.153173122870988 1.639201264529519 1.123060660259170 1.833369976538143
+1.703916606521347 1.429913915862214 1.363908642777595 1.021926150068752
+1.237076062672831 1.073282609588267 1.512960659713660 1.484133577325873
+1.704241901002169 1.308658624027127 1.033268157653648 1.203932134845188
+1.703798676850786 1.716490803756880 1.027091929353712 1.949672899215219
+1.279634220315371 1.209258008881709 1.715993219682198 1.024665545529569
+1.053139969151206 1.384077208945545 1.192664112807366 1.633989971991378
+1.619746946807034 1.157610336674306 1.036526834242445 1.311707336235131
+1.121443162976651 1.475928061178992 1.827526191179590 1.402893034861157
+1.547192086034593 1.091284360578798 1.647626398996518 1.476410146673510
+1.302677048733218 1.046419459182608 1.576487052723746 1.894509582628608
+1.512317444175304 1.292549214641101 1.030659084182366 1.687309427879361
+1.326250231450101 1.491627765476604 1.830961990235198 1.341110196522463
+1.585755255589543 1.110818499789719 1.587684330987870 1.145234036674679
+1.595677340452428 1.787083118177553 1.419295506421980 1.954611431887652
+1.406253949129755 1.675885325827777 1.928745873021126 1.588791805738011
+1.314273618938813 1.642753419452643 1.629304178110066 1.050283823875653
+1.841299369305349 1.667960965109468 1.253887561760962 1.534154076320642
+1.794040805938364 1.737499945040216 1.987362523639085 1.551113022647693
+1.060504261792599 1.702329224066957 1.067150384645059 1.267554148499513
+1.864846287144148 1.673658771344293 1.198456605459973 1.159714646655352
+1.696876766123466 1.733627184896174 1.212372518742324 1.787247397092145
+1.286692190106732 1.208989911172425 1.422756080107642 1.453065030910458
+1.760097272751925 1.636819708087712 1.563741458999877 1.872374840287597
+1.547150618832183 1.798909724585274 1.698075495559719 1.772015023135321
+1.954722135592285 1.368183210493868 1.444265950137951 1.499075812908041
+1.994475976501086 1.941020850966390 1.273671850402360 1.802892303937119
+1.061097369269077 1.422839340308943 1.360953504003277 1.759683655038838
+1.443517420272791 1.093619954711603 1.969881530850801 1.654297037892952
+1.964439493885526 1.177684014561005 1.571102380252291 1.633051351776184
+1.846349694015265 1.771928843198311 1.967004812720396 1.260148157291785
+1.038025970026293 1.703395739455634 1.013811992181893 1.037415120528344
+1.477701269485448 1.227630251645307 1.994693353470840 1.994522650980907
+1.212233777635993 1.264524953968301 1.203045678938621 1.885395014396460
+1.953515164888554 1.973848407839136 1.302993806347323 1.248678997529302
+1.674313151517379 1.200182355267588 1.366284231940010 1.708022018687431
+1.513967490961605 1.078978834770926 1.258201903244214 1.553449073295635
+1.463038182796887 1.401479883350011 1.451508826661700 1.563521629524479
+1.735642641426886 1.600646315337968 1.487087721848498 1.591617969846885
+1.774732072672513 1.916434412142117 1.081393619488769 1.892851530487164
+1.774552169122386 1.649111800444009 1.080978630269715 1.932841901721589
+1.254046934302824 1.386300095332744 1.576615977216381 1.963745078022425
+1.077431048287085 1.419217774500687 1.536560916058375 1.590406366801413
+1.342018783838809 1.845613436069873 1.070252538024762 1.660144771590246
+1.381064669622278 1.193714258692645 1.981935670961482 1.041297824227987
+1.994117045671875 1.795920139639979 1.544787474621877 1.919593308185391
+1.908075029298339 1.677112360085857 1.722576627879042 1.452950046616963
+1.834574377501788 1.742483359096463 1.530123076893577 1.073669034860257
+1.380077824705279 1.612131079285048 1.719486686817471 1.094036377932361
+1.620743196733468 1.708591205024783 1.151918824447741 1.814191879181853
+1.122605729534403 1.032868861863824 1.421706521028524 1.468785677761533
+1.031409568195086 1.349005691184443 1.020691826468993 1.337394453177133
+1.862787758570431 1.824099578447536 1.720282742030454 1.922888033996371
+1.293714730037966 1.010013486758801 1.732366953205942 1.855396525308084
+1.785973555739221 1.826710401391071 1.617156822589845 1.544088673892015
+1.023789664789909 1.550912694647800 1.988963096616035 1.333368024714709
+1.205479523842161 1.058844656344905 1.750526375913793 1.844104026054045
+1.394775799067586 1.232451203334057 1.249162963094143 1.399031696900795
+1.007969889495837 1.944798110297950 1.619130730174471 1.350319623226930
+1.039344613676225 1.638300001574609 1.688863859997219 1.219549874670808
+1.681390565571584 1.514185146615189 1.897392213132470 1.427568946899367
+1.311030719802751 1.805916359548781 1.357736392852593 1.317122860155402
+1.597501988868497 1.288210971119872 1.532784579606210 1.483678266234311
+1.809675389616295 1.235522525748565 1.933384896322969 1.886626036314006
+1.367901243746011 1.617773903977494 1.589637259367985 1.876427184701490
+1.180613119345373 1.172703204233337 1.887294875017173 1.186512844137163
+1.854850322495811 1.815622710191226 1.887348853852576 1.382518881659155
+1.550575697318197 1.145535915925611 1.281032914184003 1.086431483537599
+1.663755048356163 1.360814055213199 1.338144352854516 1.306448384487045
+1.907608104011122 1.133733299618104 1.173266476906140 1.574496236729947
+1.237840713068257 1.426255938246723 1.572866548167959 1.249182040304728
+1.941454205639193 1.938779462412158 1.282180322212722 1.123969981095685
+1.254284712785420 1.897595591776529 1.588606778415597 1.248123003404336
+1.097437619758973 1.901339330902425 1.715320054985471 1.097416204973077
+1.671934806330706 1.429632875548541 1.518451396740464 1.437647497914307
+1.347413319641886 1.042424522735369 1.816817742031222 1.470313761229217
+1.233111437241783 1.003192512048674 1.518254193870143 1.627726000704705
+1.692463157158898 1.246358869625418 1.924443648294049 1.976084042445736
+1.364241544209801 1.933972315097084 1.278516106440650 1.092646192958699
+1.692261421027204 1.472107237538305 1.405592307417733 1.850998564193608
+1.255918299133174 1.180893670547936 1.545871767687761 1.589655209893521
+1.291061800397446 1.191630186187347 1.630588863915822 1.331073653458752
+1.113160196714993 1.849726481450336 1.791811809491358 1.096598888340432
+1.257650303214353 1.348488216131660 1.986041776395832 1.845435628622748
+1.477926631060924 1.556529821290729 1.014374884876848 1.240140014069949
+1.732814673040755 1.360607390025392 1.307951460729736 1.355565093001724
+1.372444233620746 1.811074374771345 1.850010931704009 1.389640591350639
+1.744586002822913 1.221934207355153 1.209253842275209 1.127245801186765
+1.331421032287138 1.283416647403255 1.751136183651425 1.427377784655081
+1.861433911466531 1.131169131388243 1.137898911351930 1.138352229250369
+1.023694922993294 1.485044816758825 1.351364870281463 1.826116812141199
+1.412763937217746 1.589474778711283 1.190576295774202 1.129249669448052
+1.102386682655378 1.086080804211916 1.309098666992687 1.717412457837932
+1.405044573601763 1.862427713363672 1.148543729662672 1.292632667208004
+1.150603430764478 1.064728062650439 1.649919914706886 1.379149217887085
+1.720825297460188 1.948981129880136 1.109624573928793 1.385583618865826
+1.170233589390598 1.416177301012147 1.680046089778598 1.281142480840567
+1.201006700234309 1.893721097637602 1.094338876720612 1.429744561245723
+1.487073473839216 1.052268300233169 1.566994319903218 1.157104983112655
+1.342672453009753 1.493768405112868 1.421682592914202 1.177298848939424
+1.105530997086515 1.818453264281044 1.512644591575037 1.127702703162384
+1.004402049445356 1.862117796786765 1.619134819741399 1.475340127490021
+1.250652604931810 1.275087479105308 1.358349654346792 1.125382134906720
+1.517642525160543 1.825570614255970 1.873891341055631 1.390636123230268
+1.869552416345333 1.142421149146516 1.685215384940024 1.745958997083509
+1.873697937884124 1.800114319308701 1.271824228312595 1.255572997314599
+1.393547697829766 1.524763016638214 1.769199518577987 1.937393575744747
+1.712485421328622 1.457016339300626 1.790521456475486 1.581996676755759
+1.136944038664732 1.838266386473200 1.115915838964310 1.451561332248428
+1.326271912744442 1.414673221419843 1.871789064455399 1.013854603133739
+1.587015314292680 1.904378710224029 1.488179555427561 1.841848930095715
+1.081014456850608 1.650784679399450 1.016348527671823 1.098915560045934
+1.082782391480836 1.355507641390730 1.248537515944625 1.565148324077364
+1.656558937855557 1.688774830311734 1.309699229600087 1.311764209363452
+1.218693506265804 1.438310741060771 1.632760886551281 1.692347679074923
+1.275176449650986 1.637744967786751 1.152509168997955 1.937343556841305
+1.670308004992876 1.381112338311536 1.885286162827546 1.183772430909347
+1.080702435344472 1.764405120230152 1.995470246169436 1.648006359195589
+1.959063791140456 1.639549782010446 1.153640303414270 1.898790801824337
+1.879153781827784 1.981078290192162 1.077589199440617 1.569377902323031
+1.066956569198721 1.822185086275588 1.988052670348790 1.594855194739891
+1.754922394198739 1.469882044628440 1.663658042604492 1.460845224862456
+1.121766228819878 1.291079255765740 1.071208710899695 1.430203927343568
+1.942774157128871 1.776354387623264 1.623266834003418 1.920344975824604
+1.794708236542680 1.449501639082728 1.727212354125077 1.996424764689499
+1.679556221795275 1.376550027323234 1.036573090515334 1.736813711465424
+1.246825600210888 1.872709373898017 1.466171773608546 1.992710041012665
+1.020742116397239 1.650648420118252 1.194956791980895 1.129725519396986
+1.154460176970931 1.409806548958814 1.010684461075202 1.869172641847393
+1.501539771864048 1.009415533627671 1.061160458239414 1.454526159196564
+1.683767132307570 1.774781557005859 1.930600506360598 1.271437838452681
+1.012043601055489 1.509259846155440 1.102052957074095 1.312411277187699
+1.754639396467048 1.329169688996783 1.687790020422485 1.429836037619933
+1.023541904059991 1.866399394805417 1.167816877369035 1.074318337803553
+1.018978767256145 1.686566744253229 1.120654164090526 1.609121859541591
+1.806073537830062 1.763131769656055 1.989133153848269 1.468089012122535
+1.145175336756877 1.561895850826047 1.399108152931830 1.981378635692214
+1.244350009833566 1.555714483463658 1.603532911637775 1.593954081070797
+1.313594545318773 1.485556756329747 1.933387264258131 1.879731645621961
+1.449417278595545 1.892169588423986 1.687706042249745 1.643014529045115
+1.691424875094732 1.770970726769088 1.285394704258408 1.923835334475375
+1.331749639416940 1.382558548171307 1.540283159119252 1.940764618950522
+1.278980782752578 1.927592339760414 1.994552548959196 1.498680948685598
+1.797993769408813 1.426537488043768 1.483956553096763 1.327482606703303
+1.887064186049000 1.638770030333598 1.595474522231609 1.067403464021125
+1.001923457592613 1.997785693554033 1.570275965351732 1.665941535562409
+1.411144136823353 1.386675685979839 1.164662411433373 1.534740883950229
+1.772819036165933 1.162918999676236 1.807109493851259 1.618827265116015
+1.507972537419604 1.426854539907707 1.455164379866776 1.943194923079784
+1.582268394114195 1.671181450367161 1.210456903449942 1.897685119137573
+1.945969394974125 1.655428716667954 1.269208764487064 1.628928745193376
+1.219645514676613 1.738106789439534 1.731890172973726 1.625705416382295
+1.684473622893396 1.714608244509361 1.818622597899875 1.047589425037412
+1.437017400107687 1.062955087433501 1.565104793401658 1.936836243631791
+1.230247761859905 1.919465301289538 1.977564428625837 1.736674122730928
+1.050574634491038 1.987167914503414 1.174593579358868 1.052433158291592
+1.101080004497492 1.424895171051237 1.759790061553444 1.156088519386302
+1.999773917306753 1.053021116354220 1.933184620319572 1.802631116950504
+1.259426706331910 1.015200020205145 1.406091238832507 1.533356272425911
+1.188983659172970 1.941175284331051 1.859075463878505 1.877091503728246
+1.993693365121737 1.239167481608168 1.439726395534089 1.172178245522056
+1.908137919739376 1.935998425393524 1.871803920447681 1.407059508198248
+1.174360592628126 1.399520446700171 1.152428973676255 1.763960108584278
+1.904277130351825 1.575448912633247 1.161269013549417 1.757338072686347
+1.190540676342402 1.841072385189021 1.509840707076201 1.300496803922380
+1.444975648264592 1.259070180708017 1.241581822066039 1.343176978325303
+1.804104287422494 1.216204020050771 1.038171426465851 1.654334081436745
+1.452321561176858 1.618785492558209 1.752686554201109 1.643133326505960
+1.397870116754985 1.521379930225617 1.448271549242298 1.310164549411971
+1.442965567890173 1.973991744014434 1.322960029989190 1.016337377342129
+1.295803212854137 1.266800076536431 1.129912456884835 1.893991787308367
+1.501316350320565 1.064451837343303 1.413853991287918 1.110441680014259
+1.569314388445245 1.838332854667124 1.375140146738720 1.737270424788690
+1.517534750280173 1.302902169654440 1.038751804392704 1.284796616944740
+1.648776424786227 1.273290502434811 1.523628701358383 1.677036158262412
+1.962799625402387 1.016310439954788 1.224603336941075 1.767788012374065
+1.537497320781144 1.478167002375325 1.958894077818750 1.415509309951375
+1.128927627425501 1.705800058873422 1.400218335094804 1.760550696618933
+1.712272815232244 1.376193482468631 1.588996827855128 1.605942819612100
+1.272392358231065 1.374348763110412 1.303871867584262 1.149639358138583
+1.803113674530445 1.928178705568390 1.036023886980352 1.897427153661658
+1.011274815126395 1.566919964155657 1.442261494499890 1.136395984571627
+1.154178973193448 1.441390277500690 1.747529231176550 1.788684874932836
+1.361995071965995 1.749406378873501 1.709096941541225 1.035602536166287
+1.095390360548179 1.694644288400464 1.972234917946873 1.517951860865877
+1.472609309591588 1.662048785693121 1.021931625475121 1.219920536152488
+1.260475466287703 1.445084073114179 1.080178342801046 1.573764446387906
+1.713932603528000 1.800007794132752 1.545933945398575 1.862569369762720
+1.703695579795671 1.955395350136601 1.394737211213516 1.648433445428561
+1.275488762107107 1.299253899750369 1.775339788163738 1.324562955337609
+1.229727387246042 1.515679223268583 1.610478237545661 1.154145584859022
+1.515367044299736 1.635263221249650 1.593585198193355 1.033865288703972
+1.520744669873033 1.097721593127306 1.919366835363586 1.048066412321420
+1.789925757407650 1.901508345356278 1.976420566605561 1.391744733950469
+1.495287887480248 1.965376493944201 1.043439029484687 1.433555196110586
+1.414117988779727 1.758870887376781 1.608224337402724 1.330455369618337
+1.743650817684610 1.544817006968851 1.605562439668631 1.408455637418367
+1.824945903872599 1.316926448898609 1.810148851230225 1.248045585563317
+1.233138523072899 1.679864254844216 1.406559021079130 1.605035828706583
+1.502602666182774 1.779053861866627 1.308709759109268 1.529616926288568
+1.576270209107031 1.611532201587586 1.465534629161008 1.730629495417165
+1.811888917032875 1.869750612005096 1.398598209558537 1.584571954142817
+1.708430392288350 1.987257671586460 1.635532050225510 1.369648948874243
+1.627222266708012 1.839966630324115 1.322341632313950 1.720521660031315
+1.402678574894353 1.359316818025323 1.109434214866209 1.380303918715790
+1.998334633784365 1.531293240852424 1.571878657457233 1.232071785194699
+1.291062419145449 1.851389171971014 1.437206787811194 1.912659714465259
+1.474885664053820 1.566917419845821 1.510486522881519 1.498894638286841
+1.788560038215005 1.496441131573948 1.444560896353089 1.043557820158255
+1.558403637916618 1.973767357168274 1.845966267143745 1.177551767514590
+1.044974179900553 1.896843996901687 1.056950282136204 1.815683169693280
+1.613726457574478 1.486165556238594 1.386758423738211 1.978913137654128
+1.924317943851369 1.103284532879131 1.787647519608526 1.085252588246375
+1.285283497550083 1.833797645524591 1.413568683317311 1.490922438055923
+1.409980625758899 1.778844595463156 1.221548361387494 1.909739190074339
+1.762596959776364 1.366897140822754 1.320942049036752 1.366645708009754
+1.285589422112763 1.340423309366027 1.305672544645455 1.699204975022547
+1.767326786295079 1.203251613290061 1.298617440492849 1.616359849941248
+1.073513936837788 1.889335610811508 1.284941441361385 1.625660649464769
+1.497908833559103 1.489632227708114 1.153018116471320 1.384300814694080
+1.027685043899209 1.696262938416163 1.821437710680605 1.774786459680590
+1.395057910122417 1.471557975639997 1.131552015170000 1.557536472359046
+1.958904407669585 1.573068947130494 1.109974056690725 1.722701393477491
+1.238434442254235 1.718410419391521 1.636146754592690 1.849424301234237
+1.430696254533277 1.229235004550286 1.718215496402949 1.568946085155499
+1.926732890480011 1.609275706999865 1.518190112913469 1.695825578241954
+1.509761382441192 1.484429831497018 1.102136808680941 1.438581232881505
+1.264685432311359 1.068291458484730 1.842356840132540 1.021170556697952
+1.457766247070482 1.921090402630861 1.251233281297548 1.883367862091927
+1.775476838763982 1.456566957097917 1.930026792319159 1.552450218629154
+1.257970145603132 1.830165695249627 1.626379730494144 1.700827727206771
+1.835344570487808 1.779260242308986 1.336690013166618 1.265150884129988
+1.474744081272373 1.487120418943298 1.030502169026391 1.390506144850594
+1.152379821634836 1.880783498644635 1.027204813177287 1.314297170367488
+init_gen_rand(0) generated randoms [0, 1)
+0.139094106868506 0.906912332044604 0.155279971572842 0.816240119921928
+0.968538028170452 0.705944581231948 0.918194220532118 0.812205985231770
+0.118324298619098 0.725613776800635 0.384799205428535 0.866053809172827
+init_gen_rand(1) generated randoms (0, 1]
+0.473712274567619 0.566741638779296 0.920088431747615 0.505261534218621
+0.021145509690642 0.944433000858919 0.068291972887625 0.451283621616343
+0.785832391132814 0.261754953216587 0.873985947332752 0.849153416108939
+init_gen_rand(2) generated randoms (0, 1)
+0.731729216395445 0.256644152001933 0.984158103625668 0.081110542054178
+0.210706093471697 0.198640186645040 0.993075047523048 0.797746702779009
+0.852662061025464 0.196140937219142 0.421017698828807 0.913079853400022
+init_gen_rand(3) generated randoms [1, 2)
+1.569174756436084 1.816216102672822 1.187826825134754 1.047187222060821
+1.127008251122564 1.069457995787952 1.895199535170333 1.337773877522005
+1.759908929639046 1.828993965708126 1.816835218073901 1.019097058912647
+init_gen_rand(4) generated randoms [0, 1)
+0.754749569911410 0.008927487776123 0.240459788210770 0.155385925322632
+0.770344585375962 0.678314238770471 0.202131886460912 0.594486949053829
+0.263694708877532 0.257987730130051 0.663709965802413 0.264153291575777
+init_gen_rand(5) generated randoms (0, 1]
+0.408002049515769 0.712754812153526 0.552523506852353 0.321747689663168
+0.136321242095236 0.838489992139453 0.592452793860149 0.649620583057740
+0.133335256358435 0.591455455803913 0.062147373169373 0.713238289961749
+init_gen_rand(6) generated randoms (0, 1)
+0.075822962254969 0.292954618840790 0.434108696581172 0.177871534903399
+0.414629379390554 0.570773669676153 0.925043266909783 0.259192089244874
+0.068118267297325 0.563564356449122 0.595979829878863 0.369355127578081
+init_gen_rand(7) generated randoms [1, 2)
+1.235570621764626 1.062145978522382 1.332997992359004 1.358120098378900
+1.360455642798055 1.507252101010870 1.910268362011839 1.579259194654447
+1.703582371514360 1.701915630457764 1.058646337110003 1.939860183249589
+init_gen_rand(8) generated randoms [0, 1)
+0.106893240603631 0.129367605272507 0.293124712390338 0.655339318341164
+0.122653435111586 0.762940834925811 0.879336534774384 0.590430747313798
+0.918636257629229 0.425168637488013 0.534163786341316 0.592662290427423
+init_gen_rand(9) generated randoms (0, 1]
+0.638276650264500 0.501896354886873 0.781653396777548 0.368608941892943
+0.519059997544925 0.022820190596937 0.872091700215982 0.790328816421325
+0.741920330593523 0.005900818742439 0.345078308149616 0.277367524139337
+init_gen_rand(10) generated randoms (0, 1)
+0.523175425329337 0.374989963169180 0.516529476706044 0.720992141036281
+0.645571605357432 0.581071873106482 0.836023547779053 0.027613343414110
+0.426641084834995 0.445291687946455 0.300837904814435 0.464566781151699
+init_gen_rand(11) generated randoms [1, 2)
+1.115792741804887 1.296127063029278 1.295506068724647 1.800680450237698
+1.168938652924101 1.797132765063683 1.087436442178690 1.220124830399251
+1.300005980622459 1.538770615472076 1.971545288919785 1.235857973452984
+init_gen_rand(12) generated randoms [0, 1)
+0.444856480706895 0.204292323324923 0.479168426490390 0.430983585431922
+0.194315760007311 0.800211738941005 0.295177869873791 0.867590803851942
+0.857088555779384 0.237695299409965 0.965532391636972 0.643509190391377
+init_gen_rand(13) generated randoms (0, 1]
+0.983503021131606 0.766290688243351 0.349177789976909 0.892183494110349
+0.236609790886608 0.977588846134050 0.010367605963536 0.599384038745223
+0.914534343247412 0.623983383505368 0.463027859363480 0.921966746622112
+init_gen_rand(14) generated randoms (0, 1)
+0.454891232836276 0.415368168157117 0.405532901443073 0.943687703675395
+0.124032641026607 0.126225457849525 0.117076863705178 0.343787630728983
+0.414848595148317 0.717418762937913 0.268987774818339 0.913989813638567
+init_gen_rand(15) generated randoms [1, 2)
+1.521364119609258 1.562705187406340 1.651393465274851 1.794325037121499
+1.723459821653745 1.014635190226326 1.872056428083200 1.845783704116238
+1.048082775555714 1.825993195730788 1.997220514139270 1.264529497676716
+init_gen_rand(16) generated randoms [0, 1)
+0.082807078780321 0.140063180614847 0.483432376446694 0.275294957118664
+0.807907807682373 0.504035623580239 0.531458017200325 0.659917557505638
+0.909711893442439 0.482612269187351 0.215197195035269 0.911604879268434
+init_gen_rand(17) generated randoms (0, 1]
+0.067326678918456 0.961392332546084 0.738159338308318 0.172624002048305
+0.408467118051411 0.916434866728816 0.631858060869290 0.149692901355434
+0.072517346009317 0.411996350511608 0.334324514485271 0.528999059666306
+init_gen_rand(18) generated randoms (0, 1)
+0.071400585539376 0.993838702660660 0.004090211076572 0.064981200442632
+0.023809496571941 0.570407949590940 0.550771164903151 0.927799003163756
+0.112063934251740 0.502480856633010 0.175479421460867 0.210557079198552
+init_gen_rand(19) generated randoms [1, 2)
+1.512414732035816 1.496401373580486 1.749495642589850 1.426412693187744
+1.880215221679959 1.220827628391872 1.612819622359692 1.755393905791940
+1.614729457070734 1.557966906902604 1.522837322513267 1.389240902177411
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.006640204836158 1.345125096734139 1.502078534995522 1.966610571710784
+1.779233808067944 1.873264035880906 1.456949337635997 1.526976480878865
+1.859688846901620 1.745121297735107 1.264199890933762 1.196985910233087
+1.285153658721687 1.548801410473566 1.174079518851053 1.349961421042465
+1.779537040044733 1.835434637118791 1.079576148403005 1.985568703047948
+1.644354041581850 1.633831417279600 1.997576695019632 1.652243713321399
+1.350928083889750 1.269537059441583 1.941938220416134 1.040546749675319
+1.175763696070534 1.877620541127808 1.181817374258954 1.960209299293939
+1.048274835690968 1.725539216184564 1.421392177620090 1.111761370188174
+1.961277135448250 1.808545793479410 1.520386638885293 1.675040512833552
+1.505388201099684 1.341723938856129 1.742530588716706 1.194344387152908
+1.336596434700494 1.491973322299833 1.339358967483480 1.052111674840190
+1.645004673343622 1.331748554686960 1.502762309294461 1.054178162938073
+1.519321569866173 1.831938091021636 1.799915076218062 1.506627796789899
+1.010743642497047 1.106837799064591 1.477089550733879 1.470469398585786
+1.213395540595101 1.185348475418483 1.217081097929229 1.585663364864529
+1.515990177868900 1.482850949081873 1.040956055442645 1.369283140430837
+1.099591170558697 1.383889096007977 1.246370315346121 1.303571692849914
+1.876738862798868 1.961710434494150 1.541856322601614 1.732853446763351
+1.924729490257071 1.430151261135733 1.226078474539627 1.236981996491549
+1.699049715620354 1.354123708015873 1.565090563540426 1.089070647605446
+1.595627828434982 1.589952798113893 1.038290977913333 1.777906373185616
+1.657073506942953 1.648970210266234 1.131547214223020 1.969134520528141
+1.026159015955950 1.633343200032819 1.146857170109662 1.898567925689445
+1.636383162361796 1.302648016483311 1.905852099450639 1.582935124925275
+1.730905884554432 1.600488279954626 1.275847624719291 1.475467605471457
+1.164498946642127 1.381061693594182 1.289988966035903 1.321110076325495
+1.822504958378006 1.399183467766219 1.243595241734754 1.174639842074412
+1.369927292224684 1.795686492575460 1.052787856059491 1.616796112736712
+1.636715731903294 1.508818945575682 1.235170418219647 1.758902856325498
+1.085722062549324 1.374619159566674 1.213633213038280 1.792884439714808
+1.976855000131492 1.243481947524435 1.831065450968998 1.164682627897423
+1.116829964340388 1.994555778482036 1.700794483706612 1.380665034294185
+1.054593035640681 1.437026944052585 1.905035881659395 1.119605014884182
+1.028599150051779 1.159472898899587 1.124140122350498 1.902924551818620
+1.884602064678515 1.313091989341639 1.970444986447108 1.070026530103721
+1.736325316896288 1.947999742188951 1.086905531833758 1.078606251046941
+1.185057434321582 1.987876519996899 1.306105608045774 1.868117713349289
+1.822615833919754 1.818717325393317 1.002764266893357 1.267327035912345
+1.111189457910764 1.078525230379572 1.384439733255319 1.541263683782234
+1.346267331116816 1.360238955178750 1.871887726877392 1.704923307463809
+1.484657691055284 1.478081128975183 1.965280177208993 1.436222911819358
+1.193778968437749 1.007537343763916 1.736392994673303 1.845553486848601
+1.029917712792500 1.528931611587040 1.445767320108071 1.837740216714059
+1.327130226969055 1.971146127992216 1.909826347803557 1.091785994316787
+1.837460818868145 1.549096100943221 1.719770296322520 1.726791907821456
+1.925737158440407 1.080792038391215 1.996178095689178 1.569797402723117
+1.404602211274882 1.900403216204281 1.408457387375709 1.497098816410310
+1.576079781135662 1.197929259069539 1.440349090785907 1.069085416186833
+1.680924502511965 1.541770296779803 1.307511883517358 1.788741080585842
+1.369450829128353 1.525828431331816 1.964828084860261 1.249949361683237
+1.850634183443724 1.485455747194843 1.830468961459405 1.267017544568679
+1.332926528997676 1.606983153531610 1.662625558280033 1.335977498624493
+1.833400395112140 1.317911262308544 1.907699253451542 1.250466940182677
+1.352603224186995 1.313655078591596 1.188354960304108 1.750055106997219
+1.708910943092988 1.511306290501232 1.198139998046432 1.489188435615805
+1.670124154567764 1.706363732259719 1.729414225703079 1.161275905038510
+1.941352229798442 1.495931042287054 1.739760624149274 1.377922166058026
+1.613209301572683 1.417515819700117 1.689785143256718 1.645719951009086
+1.819690681120699 1.668127287565456 1.679073877961488 1.152891002816533
+1.051990681514476 1.080369449064744 1.052227633150159 1.998252793312219
+1.307016579957029 1.071548062918249 1.330575000454438 1.260099115206875
+1.393154461482736 1.456539170809804 1.112992553562918 1.139976676732539
+1.464330707385423 1.605874184988621 1.392602093681243 1.231261498489877
+1.742665954319584 1.397907568966621 1.636121530090997 1.336126565911639
+1.480195979709553 1.733581165197084 1.972026696556556 1.357604955282870
+1.226506993973246 1.563234662824248 1.212926894023459 1.854376846505384
+1.064415087826043 1.088643030869065 1.403690379419800 1.544334827009521
+1.338655245733905 1.690674774947330 1.024338987205623 1.758974353038918
+1.921781788275525 1.428084820972183 1.774773181334783 1.593180330760018
+1.180377839422781 1.661138016287502 1.618619636525433 1.195181051553218
+1.909799506675317 1.089377042040408 1.846078955184670 1.664542876236303
+1.537492930333639 1.100614591402981 1.629133254169052 1.366772126323049
+1.942267126633469 1.775025777237139 1.149025136899992 1.134437206069856
+1.170309423934121 1.502311376885689 1.953180075533326 1.469203485386382
+1.148671907655584 1.308917744184501 1.372890396241190 1.056474308697781
+1.754748555200618 1.278381249177572 1.433574703683740 1.427368668449615
+1.157966671634230 1.877609292986939 1.024122574129849 1.745273083227839
+1.252483152020347 1.791500810452702 1.107990580050441 1.470494336326061
+1.967095814993143 1.341057309010530 1.641691370177819 1.430600025773762
+1.427160415368862 1.041001273928592 1.183960519356346 1.690935570093908
+1.393041900283804 1.412978111850421 1.851361076937302 1.917574057269027
+1.777837524335996 1.340176332310150 1.212699385195722 1.246733600975889
+1.824612174680413 1.195224614415159 1.149603531238829 1.776456878293357
+1.210413047911303 1.523195412104417 1.257330419901483 1.223701296898524
+1.091873890559657 1.809474800185985 1.201131141385808 1.846535470342219
+1.578189551344213 1.798767520122022 1.816351028022277 1.869731870773700
+1.566491770877583 1.292162598525452 1.013988767448960 1.518017870424065
+1.876623833529745 1.764898705671128 1.287744238359539 1.469390805356921
+1.256213041666687 1.188785515467224 1.403660196868694 1.200016694033307
+1.456258868451121 1.981026071533250 1.945945229108534 1.332159920763486
+1.433131182933592 1.846149431186952 1.223873252364187 1.552611988702570
+1.764817983237028 1.537307639640782 1.481230361038588 1.024610607137680
+1.775291501775998 1.249132009285185 1.314803434084560 1.418718623141895
+1.706585748268081 1.540454969787930 1.115793763031955 1.327948812280012
+1.283047737780660 1.804971376684720 1.273879485422071 1.898570203817052
+1.156717922893194 1.393801043762770 1.154161420435429 1.150900903846889
+1.353925437412207 1.328033407527931 1.372772827816585 1.857958536858492
+1.448237397820750 1.291728743505030 1.632872168957270 1.350554550673858
+1.584925954501590 1.975555924000244 1.243329886051595 1.396088682995482
+1.042422594894549 1.445040529062756 1.516074745572806 1.217231081990545
+1.125406579481361 1.289625883544493 1.182172689431840 1.319858806921320
+1.503410750089050 1.299817720001397 1.830647417632884 1.388051413835540
+1.862149468542410 1.935731150374064 1.337395410779891 1.529705988953087
+1.199821850242820 1.176100241995044 1.213453231372543 1.964572544285067
+1.522872282727351 1.082191443314948 1.992597371107331 1.696330897191710
+1.622986482106490 1.904328647079495 1.657145751015479 1.107427239776408
+1.564995755898714 1.837120335931466 1.418303845051722 1.135518943794889
+1.811909024903347 1.016674461168251 1.377286592605398 1.878588458931808
+1.701855313474753 1.682485898073086 1.027698555473403 1.706068322877639
+1.114689982739072 1.848775134395943 1.803816098632819 1.250360484803751
+1.592169054516927 1.204068768844591 1.648816666663842 1.497753348062858
+1.478279167710340 1.760794347977055 1.671697628292472 1.691782134620623
+1.934883008906218 1.239946485555809 1.819570414447915 1.677924661957287
+1.552058252742980 1.425047945760296 1.400243593487810 1.243178877152275
+1.502176705486579 1.750828846920182 1.132143342998657 1.385576871183416
+1.982956095739565 1.338915838556395 1.902064961914003 1.598040264016770
+1.098064258915956 1.543579205467499 1.025447665858514 1.645369756680734
+1.891099489628255 1.569609884809099 1.110119786332827 1.140060960509345
+1.385242508509406 1.825529270730533 1.370750294276699 1.835141289134452
+1.889715367737002 1.596788903125563 1.754650035878992 1.602740128087790
+1.734637869599791 1.906222590875330 1.880623346693471 1.935640344528273
+1.831053111464460 1.784235177399398 1.285703313450529 1.914547290761075
+1.927967186667502 1.155421551784293 1.817980463764746 1.808298943809172
+1.928099008029220 1.590845311571578 1.748125738422481 1.013295614566669
+1.892113384787522 1.902832422000716 1.880686192963701 1.573967339788274
+1.502130691709264 1.510549807363117 1.312659349884964 1.157290824505094
+1.802753566061383 1.162502826861035 1.672824053780347 1.218386871423151
+1.014249992655722 1.248654043994310 1.173744899635112 1.861491274506414
+1.053837701810657 1.318697788278268 1.010792313822141 1.290158339903672
+1.368256361321735 1.642558858407465 1.682395755654752 1.324320927735112
+1.399280884325682 1.089715217630276 1.051804747401899 1.285039463809683
+1.349619511161143 1.118441961276259 1.014821254705273 1.561368850856509
+1.557415760361529 1.131601924092814 1.792998814833251 1.257235864976685
+1.463846117150037 1.846059424048347 1.442667703970568 1.872724586663495
+1.247572420540016 1.188768609081816 1.833743990552342 1.936430315375933
+1.138221957219474 1.137062826296619 1.158164411311896 1.248258748529742
+1.251097014148141 1.083130498224966 1.686219787077042 1.651141829642262
+1.635041863070051 1.201309222260724 1.073978027590077 1.610433497371241
+1.433250984561914 1.889660522963069 1.955235704174680 1.768138134021660
+1.120813849662088 1.797573233988071 1.887381170660012 1.827683274033303
+1.016326985848613 1.881781223097929 1.102112217776103 1.197000856568200
+1.665858915573461 1.199872528744103 1.441773520286644 1.085978353208363
+1.304937609103390 1.041041750429312 1.345757811266463 1.991507898141971
+1.788199411148897 1.288419407193493 1.127506926162184 1.623484182049655
+1.036704367209452 1.065131493170482 1.648395634207241 1.306127797434720
+1.045858223795705 1.574872996032964 1.095071525410928 1.900399861388946
+1.786892243917657 1.928786907320921 1.789433744452696 1.210571436803588
+1.890780757605854 1.731967343079215 1.481861502975647 1.009369268764017
+1.500962631314003 1.784663758812960 1.883206020203456 1.180082302468615
+1.477419108865210 1.168556987202802 1.693804911071175 1.835778167537674
+1.777445008854208 1.062607181361387 1.334892002195530 1.253236349947202
+1.390558823450825 1.411326046204116 1.247418992237611 1.076962630241297
+1.893308955933017 1.687577911322764 1.475775599304143 1.402998554485428
+1.102480247728517 1.983671319430640 1.320807703081544 1.784463398590397
+1.277777850027290 1.135442668341551 1.693778378997927 1.275880573609128
+1.250430444925085 1.389620064479952 1.171250292794445 1.345633045781575
+1.606531102919862 1.722494050726366 1.023952077621484 1.607358643156925
+1.360271763507271 1.548202749434111 1.877784146749414 1.980180908589391
+1.100569690765320 1.794521828940932 1.976755157524848 1.077065436534996
+1.603794056556375 1.976593568810122 1.852538974642355 1.625330825355384
+1.991870135168395 1.064894162407550 1.511089905074228 1.046281660915935
+1.059538716939454 1.871794241014592 1.028862780820562 1.063632292016886
+1.969467078411175 1.097375128247326 1.955435432091726 1.572898547692950
+1.409437044878809 1.943579430531936 1.654238815290137 1.413015241646740
+1.061583426792451 1.657146384839307 1.131713774769969 1.598428306513270
+1.172452830691035 1.029600886855500 1.229999471367077 1.570551836334338
+1.607799062589462 1.287122227110047 1.829567607996978 1.700229881516817
+1.629258552253779 1.985430096004677 1.590787539881595 1.286501931499100
+1.049023300313985 1.997191550116184 1.940956823516891 1.247029453292604
+1.020349805038501 1.278532718718768 1.578113192782873 1.176306253851315
+1.628760218517914 1.642514116992122 1.826350052007793 1.729952824726616
+1.509633198560558 1.252555503262068 1.955272386913713 1.606531004129517
+1.970462917781928 1.769995202910204 1.693359450915823 1.583026366405480
+1.839656809381478 1.622992885442806 1.787566296771841 1.633354169215230
+1.548161082582538 1.807582822418599 1.477347497849282 1.081537425089270
+1.067299165293067 1.395692340831966 1.836368542881645 1.644219118119943
+1.586966933852120 1.834210981853752 1.020770202425463 1.623142266511464
+1.714665969514737 1.612631045601959 1.165133136407515 1.092253840985706
+1.475459248069717 1.167755752600967 1.221032852956396 1.694311779257430
+1.312931717666971 1.236402269104024 1.604680894220728 1.687464624207310
+1.552445173508017 1.756947510823414 1.829850232396027 1.336091472147783
+1.850113922409294 1.541812417364303 1.242138537827426 1.411026422863721
+1.513861923397375 1.957363801660418 1.490078980783126 1.235718190656998
+1.258670671884785 1.933518891772828 1.905844871754575 1.939237521607969
+1.122108914032351 1.877636907343210 1.962908542040488 1.420050012710142
+1.153087073465708 1.551747130498654 1.794377921398466 1.149849246893568
+1.411601104945211 1.634681675777542 1.690476872880253 1.527897018207170
+1.693179943361227 1.949238206165855 1.594030543413626 1.196507318701242
+1.705861931467420 1.629940267310073 1.571537964236487 1.705205161132525
+1.633296436752917 1.695044248380965 1.056186158408585 1.904743445065884
+1.117714437100911 1.751739025786601 1.593812361981944 1.221462965285270
+1.664640595398829 1.424011195353996 1.361156498626582 1.325348944256288
+1.236583814018097 1.892023221930469 1.150468922747742 1.904950874264242
+1.537727539778977 1.973127889221774 1.950365362585772 1.583753605552293
+1.474044334764787 1.734007520951256 1.305687402201969 1.224158542044567
+1.919089106269293 1.997876950160567 1.765823870083841 1.920558598216488
+1.826471601714562 1.937942842410126 1.764032726890958 1.717086385823015
+1.379330871241971 1.756586250984386 1.103913212705426 1.847241563194449
+1.347355787412556 1.904313566143677 1.497441889082738 1.174178513012548
+1.525855848609969 1.147062061160650 1.687867249864836 1.994438654637750
+1.321440381863302 1.235052757729072 1.781993370960550 1.558486468995039
+1.469425148690729 1.525768110988033 1.807573084650175 1.667712401234818
+1.590192020050556 1.793588278145037 1.787764270413577 1.503195073440559
+1.689426398855533 1.508752734092970 1.366467386751292 1.378099417362432
+1.006310439891613 1.035465521897361 1.948279073424405 1.504924226045645
+1.428946667893386 1.120898154439909 1.680032133588179 1.425084919786898
+1.004066095580735 1.469333099101686 1.777522403347731 1.869854933758564
+1.502020204952287 1.669990941811770 1.438932945317199 1.311069182274622
+1.230216101834175 1.967372491402905 1.504725506483347 1.958083050810291
+1.846931546572040 1.072717363998414 1.565732620130776 1.305695970001142
+1.656305601890825 1.118459286700809 1.491933130729918 1.325730891552025
+1.946738184997059 1.510523719516706 1.137764695805597 1.844682612716902
+1.797166626491868 1.746238071156679 1.029973939872683 1.386531570312263
+1.548298485692690 1.591059944532606 1.299466225757274 1.933726980106808
+1.253491082374893 1.054917373941221 1.405507642196164 1.215422645755720
+1.564704187760003 1.443854319359040 1.349539620621230 1.575308031403967
+1.852267694192017 1.719174431510732 1.845893679489734 1.759589613373387
+1.868539889409976 1.248381945009308 1.144074829321354 1.727058059049836
+1.294358067498728 1.104770082069845 1.478900027553895 1.500207886257616
+1.240899644364847 1.761464454268164 1.293579746028194 1.375166925515143
+1.206365182191318 1.819277727065185 1.686093202191387 1.686647509677574
+1.134541210564610 1.321772516010732 1.828810246689396 1.642266767233505
+1.455926581325582 1.851594831560782 1.256127791884279 1.602730330838491
+1.886007166953223 1.791469543432280 1.619338016940193 1.943475800146113
+1.266990135689580 1.245225239568593 1.096701637186505 1.837934694598643
+1.996615765109917 1.271369003909768 1.713068843077524 1.125391430768025
+1.381377753526261 1.987264837261715 1.111833495311082 1.458687223176637
+1.490066297899115 1.241700906450148 1.823905820043020 1.135459377891896
+1.105192563295212 1.245289673984904 1.087270597515503 1.878991831735419
+1.167749849987540 1.258177696803078 1.324639962534008 1.907617332286365
+1.204827520920240 1.200212764314735 1.525100733762452 1.005860622355861
+1.427945798594871 1.936037993908521 1.399926238854060 1.863734259703253
+1.617064083212389 1.741504113306988 1.770443869054324 1.827280245121686
+1.178391286649507 1.087874538308756 1.361580830073878 1.710575126965021
+1.561408240713600 1.154651624044971 1.146639557125112 1.217733725114559
+1.072629459473969 1.574147154853580 1.157968779047650 1.062272862007047
+1.780241931332659 1.973386202638897 1.394049619038811 1.829297398344619
+1.010190105422159 1.607405302669389 1.476501433868818 1.213135699665621
+1.176996699556276 1.714336509984549 1.142972354615616 1.473636122782273
+1.749653382825755 1.300965930915819 1.762652951166267 1.141283921407512
+1.164870468046724 1.509097974544625 1.158277263614639 1.088568766885232
+1.662826025211458 1.737011757874820 1.009154034862195 1.304427801726806
+1.845514940691884 1.032797756693555 1.605834758544773 1.996437223291062
+1.264171374647336 1.578581650021442 1.114767200532691 1.508686940414397
+1.409809521541666 1.798708497051503 1.033161820288205 1.051315779595002
+1.589202752143287 1.377091317166910 1.610742535965843 1.879316269326046
+1.147357000156438 1.774015047605163 1.333284844932505 1.883013475528591
+1.598218350185403 1.677411831776167 1.121068718101189 1.850275477464877
+1.726909539671849 1.989246692073268 1.719189505614840 1.612086816312033
diff --git a/apps/medlda_release/dSFMT/dSFMT.44497.out.txt b/apps/medlda_release/dSFMT/dSFMT.44497.out.txt
new file mode 100644
index 0000000..9cd4692
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT.44497.out.txt
@@ -0,0 +1,583 @@
+dSFMT2-44497:304-19:ff6dfffffffef-7ffdddeefff6f
+init_gen_rand(0) generated randoms [1, 2)
+1.793642230996037 1.580459783108833 1.438188768785251 1.176939156694645
+1.840219755016754 1.401937324294332 1.426098229275984 1.773632659022513
+1.766098608999247 1.449949418002488 1.809308049559321 1.063357031921013
+1.819181850201535 1.422896645069375 1.733104541501123 1.236968506547169
+1.170916172842182 1.169207307740026 1.517067629386934 1.249343358629299
+1.782372430701169 1.462840148159521 1.369005205719322 1.419810765311093
+1.169058424413689 1.872738715563879 1.911067673358602 1.977859587297008
+1.338904196415485 1.204538551026282 1.390020541104294 1.758042551227993
+1.027667496622795 1.966482763511857 1.061112023361420 1.327313256113708
+1.938420315047297 1.767747001202427 1.653318004065836 1.340711601433781
+1.800571831306491 1.420336901534726 1.936143361584114 1.406087827264826
+1.615729457503807 1.065924623831322 1.381505343004870 1.085511958569119
+1.635044870692741 1.970516852396793 1.377100528919343 1.330110422324460
+1.906243343755273 1.356884696752639 1.483983232772247 1.744706327897821
+1.400531042019229 1.974994490556846 1.138677604615060 1.644347149526675
+1.491027690035977 1.698224041265953 1.180704176575119 1.910175089997209
+1.459422064491493 1.054307836181997 1.588680921808540 1.050929005482196
+1.855669666659665 1.334509236688552 1.219852756429044 1.564528292131394
+1.405928078540112 1.494574358519322 1.164789112522909 1.112750644697545
+1.954084218841430 1.603847365509741 1.163567985760901 1.218403260945375
+1.970780425895289 1.544211454307609 1.270899329265588 1.209559267279374
+1.270224940182172 1.474589760445114 1.444849746452176 1.443444561899248
+1.652764947036509 1.438125100298395 1.374027331847556 1.841240282668388
+1.696998887540976 1.450054799866658 1.615418961972272 1.297139738238529
+1.090546133916818 1.345482936198522 1.746322222909862 1.173473511424576
+1.178629373409461 1.695737520366376 1.206949967613124 1.341734002745302
+1.461780411559397 1.330944332531983 1.769801539423722 1.926420462064349
+1.847391035199325 1.208935904229234 1.166731005873370 1.602154811073315
+1.160606137230656 1.723894397761925 1.804279046792547 1.499754690486858
+1.110995711940876 1.546612721894546 1.548192227690262 1.078154660746674
+1.561076997006890 1.714158104135863 1.796850301264245 1.985287378928944
+1.355839099585371 1.300442058475587 1.817552729191655 1.131617198118565
+1.442306297461635 1.955939367397120 1.799122285203475 1.021080733531329
+1.069164042159618 1.795917484941764 1.293889984380921 1.826320952236136
+1.973311336921921 1.331484820692579 1.872284258550267 1.443310725020135
+1.005073499545098 1.403378454718686 1.321883370206660 1.724319219488997
+1.489766015674959 1.923560880434453 1.622351953092381 1.236437798045746
+1.692211410677260 1.422001304296591 1.570354537454786 1.540636998805556
+1.232051919644634 1.693332728546582 1.991871924781417 1.737621152061106
+1.995475745530930 1.882384225959781 1.808326685668773 1.434829776456018
+1.350439525134136 1.473159696686649 1.109609964800543 1.401126385355737
+1.164862853868176 1.307346979900766 1.890278124791960 1.388285243066499
+1.483015274260279 1.926182102006872 1.851122444031467 1.209728426599038
+1.487875920370903 1.758935775879318 1.068725132795128 1.686590328980413
+1.414908417099149 1.986886977109987 1.226486093302144 1.673027573747962
+1.741267751002157 1.577784701259041 1.699246508539555 1.275159345956004
+1.756724247602422 1.387148125546082 1.039220456540365 1.095473063686003
+1.803999643204383 1.671666776440200 1.818265317106709 1.111745664303332
+1.821818038094687 1.025217163240837 1.710521423920101 1.611612600234973
+1.131361991277366 1.766994315134484 1.837104057404071 1.403825750236784
+1.741183639253240 1.730537507324738 1.802744698864717 1.091809659115861
+1.898001879633949 1.183346740409833 1.011089273759942 1.835062016589531
+1.778667970790899 1.370073072071008 1.651272060356529 1.596495472307434
+1.049132494852348 1.095660758280482 1.465509963755507 1.233301018230602
+1.631373373791847 1.766208872537089 1.047434869321982 1.315789941176146
+1.850920633139576 1.181040852533942 1.307381984190293 1.978213012715948
+1.321296883397241 1.654432469818114 1.702824583389572 1.920838868233739
+1.457680724251807 1.023673307519951 1.391878556707928 1.783150833415026
+1.100282683129598 1.328171740723869 1.880903918276640 1.975956135455120
+1.703227599588904 1.890825885382145 1.934527923817797 1.976767231924323
+1.735494406148337 1.819600510919497 1.562290020521466 1.399753858641281
+1.421419518249842 1.947193154486526 1.321846257358091 1.569458730356783
+1.365890220613325 1.442672629503336 1.387074976657454 1.460137374764699
+1.560301178798318 1.803979555874048 1.148864584712901 1.913934979435954
+1.783256550850963 1.323562047562615 1.383974988266096 1.080204690581529
+1.847551195686497 1.183851790857222 1.868083420532670 1.968287658683107
+1.339445611618736 1.467669041391032 1.746672983093906 1.888593617975243
+1.235932198646790 1.520468378767095 1.492661136727853 1.257901475364743
+1.241956423730494 1.502948917844080 1.195995524412365 1.470135907343612
+1.812349514786194 1.624187355844132 1.296537287216916 1.301901985926121
+1.197845841238265 1.452426259692493 1.647206040198408 1.602588879774940
+1.746261701602966 1.338242847950652 1.420728287180242 1.306756202158371
+1.052326428005045 1.147453635331739 1.536587969175948 1.627395744352871
+1.101268259838983 1.015835839324421 1.650903305941049 1.329501764882399
+1.097711984807848 1.883390401223108 1.723168180656295 1.952523803199247
+1.001168672543711 1.175300586864484 1.919347022881513 1.323468221884445
+1.273289371439084 1.205652773640472 1.779186506246637 1.144021534610730
+1.948021017389078 1.720843575873946 1.695006357710928 1.923090346932900
+1.621325215248833 1.521005606091735 1.555388674740541 1.394717970516599
+1.226259180551886 1.573844682083715 1.643748659080169 1.729752769849516
+1.501806651394647 1.448210193160421 1.020171109596270 1.904019770940768
+1.804610486746323 1.591463152397561 1.228836553072780 1.468531049918917
+1.797837809077159 1.676637266296352 1.298494784659984 1.773373916927166
+1.596635613699820 1.116584212159169 1.846405773280272 1.578930623117885
+1.636744608506394 1.837974428025389 1.206838351135927 1.843176235328176
+1.577062610610149 1.262135832941371 1.289508562987471 1.995716249953148
+1.172860391830403 1.763108073456446 1.289557140926991 1.391229510678344
+1.502054118828869 1.281449561466236 1.443464112088587 1.276457874651493
+1.492902947144703 1.076954181820036 1.526836428368829 1.499007227874306
+1.172941146094215 1.019468928202161 1.967651319134985 1.430242146976160
+1.933660250287733 1.537716574528247 1.874501927437371 1.342267365804776
+1.094453661127634 1.322553484904626 1.526314378076998 1.021982340361698
+1.471842190991727 1.028722906673799 1.510058174921940 1.505118197544663
+1.498746483969605 1.622880031571028 1.243899665476896 1.272830801681779
+1.329092773192337 1.373143418049751 1.952702225002665 1.774072549006495
+1.369627655764371 1.856881343267221 1.090368778712403 1.411150914844497
+1.739241502853714 1.706136973615008 1.022480973220238 1.523059460549453
+1.240058787230579 1.659726774790654 1.849861850162896 1.401898617473650
+1.154918926582845 1.402129109245560 1.209781690734340 1.851185299650320
+1.584324675902265 1.806627338915268 1.937236825475427 1.507871900043357
+1.634821902216562 1.541984636873888 1.761093954916101 1.852305671409347
+1.777613404146010 1.446677019238066 1.530142505290439 1.690218395279128
+1.781165115148499 1.812995757492717 1.663461670773847 1.175248249250424
+1.580093999366253 1.647346862504032 1.683527761674394 1.343793864316887
+1.512668882635182 1.964474906601986 1.095993897685762 1.981277975607585
+1.908218155953327 1.940611450355440 1.964709843231407 1.449486454146380
+1.500083122719278 1.028363944049264 1.273050732304587 1.547633987682431
+1.407347161750024 1.414355055596010 1.597221236987731 1.050353651747621
+1.719004052611113 1.725699566792139 1.722428990974277 1.555274473709754
+1.067384334786987 1.549164565309860 1.358701320798072 1.295559486810390
+1.942316404205272 1.291648370831677 1.292477288054990 1.726662178461164
+1.694398133055199 1.152713918013733 1.519862374474339 1.829668396643841
+1.202686568976427 1.255210035138392 1.733495619901251 1.361077199681966
+1.526751905663353 1.794030472429677 1.046473780123774 1.362373094186915
+1.757741035552933 1.958026630101599 1.954064173971856 1.001860153531688
+1.821925700108693 1.879341107575353 1.490320335929132 1.307911529139665
+1.575996063317850 1.300766996434920 1.351240377008781 1.802101286357085
+1.508345353029139 1.782678797565352 1.156639630757996 1.381654794397295
+1.678575316907713 1.640427703664725 1.376712652381551 1.959316084837768
+1.374158385265960 1.020786351790998 1.730380242346859 1.386975340291268
+1.496396203815585 1.846543437823101 1.781260988985403 1.507389625771236
+1.294872530528774 1.798234243885168 1.719341753684643 1.266984042401789
+1.047763224363818 1.303081528450267 1.573754824529921 1.708685539418343
+1.440906319937317 1.960424251806781 1.766761829797726 1.130958454198675
+1.306251152417246 1.352322177831549 1.264025823689980 1.332242135018287
+1.806262098652987 1.522587773860482 1.212656350408244 1.036941137505148
+1.727681284786349 1.861388742144980 1.363826295882371 1.982948092336482
+1.189582119918781 1.389382817146627 1.194397244952311 1.161472620520404
+1.646491364161404 1.368544499428751 1.740914536999846 1.190522349379350
+1.733860485159854 1.572831542887546 1.369358688398447 1.229491165524965
+1.910144081571864 1.738508827788457 1.407827591325917 1.310369185384895
+1.501676044417805 1.341828745086294 1.445134098932514 1.269459723990600
+1.107127572028821 1.430907907832855 1.332413770145460 1.257998553118972
+1.669726332927973 1.752503674134282 1.214390814474542 1.237991799799637
+1.447382203140167 1.676253559009035 1.983509571148193 1.858190313590271
+1.149470892119081 1.513961086374565 1.256171157345827 1.617137739551239
+1.823217042311854 1.214423052840965 1.562307982270299 1.866973375333185
+1.518959429776955 1.026571982851274 1.640637644807734 1.691574326697495
+1.161014300291547 1.660839360132705 1.996577097580452 1.860595895706020
+1.106436151266935 1.865421259166453 1.107882090286084 1.606303952460728
+1.753403370483261 1.015144107119346 1.710084011602062 1.732534546713436
+1.757999526458136 1.843203140573474 1.490394269085708 1.299897407472214
+1.531566555648401 1.799786655614728 1.550172890738100 1.072723482623716
+1.377338487137393 1.275659600717594 1.991755407986344 1.314970251322870
+1.487596520563090 1.106839462505325 1.538141702604706 1.848276966263500
+1.496299369217642 1.590661822064676 1.793206282832398 1.977108156583673
+1.841686673066009 1.782493168028746 1.520163847901572 1.582579982632690
+1.224565299562240 1.884277599842263 1.490809535732801 1.177342003911697
+1.257664072804296 1.332331451511106 1.976811532100369 1.374610290193584
+1.182567225307992 1.295802876426136 1.171296807778244 1.122587490296078
+1.021358827538819 1.250554606686939 1.966618946030265 1.341442865129433
+1.210377790303454 1.130301582332827 1.986293467215871 1.814981423952261
+1.015601384676065 1.119544639173506 1.411744737822018 1.482920369744722
+1.999218392975799 1.092058373254317 1.576467735715313 1.074154752310254
+1.456525154003349 1.315557669974057 1.560176918572268 1.628632916309696
+1.373567831921035 1.365069563660435 1.368669458134069 1.884843467545090
+1.747188503069156 1.902566532344670 1.788148368064201 1.959666159506437
+1.611346731669104 1.316626401298827 1.216413836586455 1.178724948192460
+1.011673560093367 1.785769456739421 1.643096205400764 1.404829312881354
+1.719058781091493 1.335599416503223 1.414743488545985 1.734387670309043
+1.751836906796041 1.957929944456528 1.832751269653579 1.064811842123390
+1.348240226010205 1.447141768037044 1.768269015621151 1.318390149136927
+1.961108690955365 1.334782380065938 1.049495065372274 1.445536173232074
+1.186683625117424 1.674871234916891 1.799526103694621 1.661589288297403
+1.798780886610237 1.361306750064226 1.396847448436735 1.642009734487397
+1.403172719354934 1.918895611805998 1.825865058799634 1.790754884221526
+1.212047125066641 1.796818775396333 1.757698675341677 1.304190728295490
+1.720469373940174 1.744859519481751 1.674317767965527 1.114652357467090
+1.994702001155988 1.550508804220014 1.941174434315630 1.992191791083932
+1.260581905277371 1.120465508526799 1.725533533326745 1.077411257398371
+1.083766892732227 1.322261481440535 1.135317982892845 1.110967392241753
+1.341463705231875 1.948379502973377 1.297436721606502 1.676813581436034
+1.507456817333986 1.321669840364592 1.089613970926563 1.999689491028762
+1.213578467064580 1.574904059971100 1.045240261323024 1.549293043647962
+1.889926149578165 1.892642930020356 1.694765290855065 1.204134077595576
+1.530428634010768 1.769598495289114 1.667799916698697 1.756071381715561
+1.716599558946114 1.963584753049414 1.095730907194904 1.583807290859472
+1.411622158338802 1.046021813783421 1.818734700180420 1.403797851184694
+1.696084096157477 1.222713864520429 1.976930721753728 1.183779901410731
+1.623475694344095 1.653551897658335 1.578911273133696 1.673099375144019
+1.685957063789915 1.864980749146389 1.963186604507110 1.664616137223728
+1.241149517356442 1.407621766142551 1.145006894427352 1.724691544516706
+1.768077934925641 1.900525805740483 1.979948117134578 1.651005750665387
+1.153934847583730 1.772277325087193 1.273803579809086 1.036310326498816
+1.760821595173140 1.703470912329257 1.036557083179674 1.019448526685286
+1.370073771752964 1.012106050405104 1.973027534386053 1.272761146379636
+1.147890785467951 1.270861755105843 1.186500449552287 1.003438287790831
+1.550164019541491 1.572916062154076 1.001380500986209 1.409713937794034
+1.314371218106750 1.310988791813483 1.382673580477573 1.588716897022319
+1.083873106294868 1.524906365882216 1.607070978530437 1.866770421522899
+1.160316957168627 1.169448782322096 1.111456815922089 1.747616864977952
+1.749465863365041 1.232274327106787 1.020697269139544 1.934366637744256
+1.852437323867286 1.219518813639062 1.399132538756920 1.197743166992738
+1.484548131069758 1.319660924838874 1.572548764933244 1.798331203183520
+1.805200917652804 1.183931680206783 1.623958606504373 1.169079910236768
+1.972210693131582 1.578971158287418 1.486481084636993 1.813150039903220
+1.115468664487231 1.926386629268854 1.274602292183984 1.405940329915778
+1.537421827882588 1.428838689936527 1.062097379222203 1.553900927531700
+1.603472571063066 1.491937709936371 1.826639982785760 1.007137241902710
+1.037102104280567 1.427566239329402 1.605361980353277 1.225273947060657
+1.689147039798879 1.223352794936180 1.614589027804426 1.219498310754695
+1.215749719005202 1.030385593326970 1.151000664478328 1.218673836948786
+1.376928246370648 1.077591229051198 1.982605384421914 1.216796353303072
+1.385307115971811 1.374203279478436 1.932258764098525 1.672506745035934
+1.607584792276895 1.128415113971551 1.974569176813863 1.786296259533987
+1.420661583482607 1.796575877480542 1.455350764513147 1.487332618469092
+1.655844904696336 1.891117808937382 1.173812249795852 1.552916019516161
+1.265435876117337 1.561591629819515 1.849232060466690 1.928299501535578
+1.320532312323692 1.325863524966617 1.661891575852838 1.505421801299262
+1.256273613132925 1.340597680566787 1.230172337287731 1.925822933722711
+1.030502245664052 1.118842219376366 1.132297211259911 1.093527374966347
+1.589106615087870 1.840248795407271 1.209435900953910 1.457888172187439
+1.618702239047397 1.226376473589052 1.602569373917657 1.557952859023501
+1.755255497840806 1.234207881648987 1.533820262470246 1.010326726249961
+1.687808478363273 1.270378184946871 1.241501739047649 1.270281697630325
+1.621040758623966 1.873775716479649 1.004693132832083 1.270248644524248
+1.744833457689573 1.913976443650246 1.521746652214968 1.547399694631024
+1.544671168799804 1.076378767611519 1.792301512832244 1.363428040726448
+1.646902568742661 1.240390405224904 1.290116467871266 1.831881065210709
+1.805171562779691 1.830135587554652 1.714438763248217 1.637935750802627
+1.872529443099940 1.850000366738014 1.907249862492126 1.024834959120547
+1.599324038878107 1.477151527756453 1.740079134633728 1.653294941452698
+1.231211113204560 1.422939924726507 1.358894247079996 1.324481067401640
+1.391934418184156 1.304061404268561 1.507097461534735 1.771386233544718
+1.470465158625395 1.544479264513580 1.769873573441745 1.397514261268577
+1.403582472130817 1.252133066136521 1.298034189272173 1.039468350209757
+1.078135508792573 1.489554756278271 1.877578590581331 1.078894749085996
+1.146446397461901 1.109641186545641 1.272580849074813 1.557173235722108
+1.027248408107123 1.120876573014149 1.254349431588856 1.135505161114797
+1.488594455262913 1.403266652232293 1.812137419529869 1.279031990475639
+1.654467664151671 1.058880997003243 1.987806843198525 1.157281868373154
+1.565549616552896 1.628603167553857 1.065819070578070 1.171488599655894
+1.732813892329891 1.316007352750722 1.638339315896710 1.411538616833417
+1.979949037336068 1.930525839711636 1.245983726589215 1.844989371308885
+1.895168586183960 1.572001292669507 1.670430657628460 1.971601539315697
+1.929334616413330 1.800350443663704 1.061746866011578 1.659305578103899
+1.420654311978646 1.027650323796126 1.330026535743516 1.003292695581133
+1.043859020068490 1.456078575947540 1.260321723421226 1.942751328224730
+1.399298540600751 1.866971015840846 1.304614382286771 1.793204836868304
+1.215559781738553 1.052203411380496 1.171130355041017 1.509212019541705
+1.568778536294740 1.113395190932228 1.526354061939815 1.205986685184249
+1.119970255677142 1.685471803455462 1.447454592108054 1.011641579402330
+1.778919380616612 1.011728757237588 1.968864829268213 1.482622126323345
+1.849568556699067 1.647010742261713 1.537461048016442 1.385360148318048
+1.654030886545950 1.084344994178660 1.850423823806881 1.613520167705219
+1.862675131528630 1.720710565371237 1.340527204250619 1.954104622368203
+1.436838465210766 1.634860577350252 1.375516747135202 1.656704385493950
+1.106176082435342 1.922746735384920 1.125599074637101 1.906216448343847
+1.025853165052263 1.566299182797896 1.871072026615852 1.236235014443076
+1.087453250789865 1.867858361586789 1.818929050930532 1.951288782973412
+init_gen_rand(0) generated randoms [0, 1)
+0.793642230996037 0.580459783108833 0.438188768785251 0.176939156694645
+0.840219755016754 0.401937324294332 0.426098229275984 0.773632659022513
+0.766098608999247 0.449949418002488 0.809308049559321 0.063357031921013
+init_gen_rand(1) generated randoms (0, 1]
+0.455599401862604 0.276786278406747 0.869442513164464 0.256607551261946
+0.824800552710095 0.164040149304383 0.600438102787136 0.045818148271225
+0.238590556501327 0.426445445190838 0.320473574724940 0.165133443903563
+init_gen_rand(2) generated randoms (0, 1)
+0.097003607168711 0.452063515485125 0.574374247932251 0.862981339415242
+0.301932030445346 0.888712980830559 0.765145548640859 0.326371172202567
+0.853346153428999 0.573297805102008 0.377566944105148 0.253946017233244
+init_gen_rand(3) generated randoms [1, 2)
+1.950842848638729 1.739813491619752 1.305970834641442 1.942324009648197
+1.893015162185985 1.234881893035222 1.081884613902705 1.850322973566017
+1.544074805093204 1.889964982258590 1.227558590022788 1.261152059589819
+init_gen_rand(4) generated randoms [0, 1)
+0.669432091487025 0.004444958979189 0.282915894792966 0.071375313603914
+0.298714873919592 0.060247676085934 0.478856494873675 0.430035690731896
+0.157791077810947 0.365985808229946 0.853418554020144 0.947353016854962
+init_gen_rand(5) generated randoms (0, 1]
+0.066107910511039 0.901549925619374 0.671960468266555 0.810772722904134
+0.418841509726952 0.376227608337679 0.026321612923461 0.850091179928447
+0.153054494452446 0.095857583968954 0.755008836343088 0.674201318942030
+init_gen_rand(6) generated randoms (0, 1)
+0.335884064841178 0.307786462454134 0.305033856086343 0.547822370011282
+0.970908670463435 0.320126432318584 0.574977250948931 0.846676611829591
+0.128534264758735 0.303386284436072 0.421452679680636 0.590292404700590
+init_gen_rand(7) generated randoms [1, 2)
+1.373069468408223 1.212840627463321 1.732272571865576 1.316952103739000
+1.534116498696132 1.229999084347105 1.204247683860995 1.330633147441771
+1.719996275368882 1.681032826908220 1.438714758149172 1.118939773455663
+init_gen_rand(8) generated randoms [0, 1)
+0.051131020685500 0.027923802063273 0.282215831727000 0.908917355131307
+0.430579055263665 0.019193403218414 0.203168998623389 0.413756999872521
+0.817964695906104 0.154360999511044 0.261331895047858 0.378103593567628
+init_gen_rand(9) generated randoms (0, 1]
+0.720560167721030 0.949359277137631 0.855200170729020 0.629467269255424
+0.807769217908019 0.563367819613422 0.242766529488850 0.813691680872244
+0.403630969230066 0.450298240597618 0.105884766977242 0.162788154388353
+init_gen_rand(10) generated randoms (0, 1)
+0.076727791763944 0.547836462886562 0.135883327281024 0.852154436655138
+0.705840860943469 0.558769261305778 0.294789290097140 0.456624388980984
+0.589976763469014 0.372815935228584 0.156611070909337 0.848755813687961
+init_gen_rand(11) generated randoms [1, 2)
+1.816105306277620 1.288826685851095 1.189014044577139 1.739203371002264
+1.525946316624243 1.620200208688409 1.096321506609140 1.511121413381151
+1.540994237109195 1.358693219959760 1.902407966880989 1.263638872771530
+init_gen_rand(12) generated randoms [0, 1)
+0.076116807775669 0.667044720054686 0.787931372352241 0.516425979485220
+0.380004284286166 0.426403036087206 0.849059805069711 0.604539401610475
+0.784147055348552 0.274206046080719 0.010610626638263 0.067547441635300
+init_gen_rand(13) generated randoms (0, 1]
+0.143102490368023 0.117248721906391 0.504318419452768 0.724314512484266
+0.707617107774408 0.305025797340337 0.257036703462120 0.231580713710426
+0.908953909389886 0.641723413056777 0.561355428279413 0.954352879512851
+init_gen_rand(14) generated randoms (0, 1)
+0.950316009492236 0.706637380587793 0.643301442482649 0.916244261764853
+0.680434167859570 0.430146583284165 0.425880761146329 0.758796973669367
+0.736483395980624 0.758011251700097 0.440498657157682 0.777585335464516
+init_gen_rand(15) generated randoms [1, 2)
+1.628007395853985 1.278826502456614 1.955703748849038 1.103314051647344
+1.039570703054598 1.769183409403025 1.900011772128743 1.656191078670576
+1.658101614853339 1.424571367510453 1.834557451221619 1.445702498614535
+init_gen_rand(16) generated randoms [0, 1)
+0.636302685567311 0.137218952410404 0.007397705826784 0.523895709537629
+0.602910023050024 0.240543263292935 0.634319919422312 0.131365893659735
+0.385999467922057 0.700459674947863 0.775130918686616 0.028540765100275
+init_gen_rand(17) generated randoms (0, 1]
+0.941373301584230 0.996171121340979 0.318712266064640 0.717548923920958
+0.382434151774347 0.590493623880302 0.322560930234921 0.594887752562670
+0.909515946892514 0.248117175650185 0.139172437255377 0.874952175573300
+init_gen_rand(18) generated randoms (0, 1)
+0.935728569778681 0.507806332856926 0.962642239726788 0.956678348431450
+0.708660983797889 0.263137359554023 0.965180426629791 0.401404606560230
+0.653468421736125 0.346855335226885 0.259452300873960 0.465728685729463
+init_gen_rand(19) generated randoms [1, 2)
+1.543400249206202 1.186477339009993 1.076339906993456 1.714810461683558
+1.250448728003198 1.807191896866885 1.607728935858536 1.697546478305597
+1.834286898872765 1.988720625823551 1.422006850001651 1.553534699959493
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.294587381800539 1.396369648296829 1.944771208119970 1.474093734316382
+1.877399023972375 1.046106053985895 1.494697948710086 1.334871252071797
+1.253811781028442 1.398238065738080 1.237315592417754 1.968360801582737
+1.585325505397874 1.980732525959670 1.507064752518947 1.716869906584104
+1.144197621009438 1.687077803846495 1.090247794989572 1.425330537257617
+1.104265260726256 1.715797930326763 1.457066647299533 1.403609274589408
+1.258517428747915 1.976735620171774 1.508597846133364 1.151121170410565
+1.262675522651488 1.027165061539292 1.369595468618814 1.974433439643195
+1.756175844818762 1.527202183107901 1.455207207756781 1.985497432047503
+1.140817588347143 1.594530986318393 1.760074032769381 1.652620759560882
+1.734141480128939 1.757620059409234 1.265112867104526 1.866802023311850
+1.796838428685387 1.992952030233971 1.806788732197961 1.808495951520311
+1.691247189328083 1.403617204708648 1.871894242904189 1.184741738511933
+1.698250421471337 1.608478493859358 1.178966926474716 1.577227503201196
+1.701977789461402 1.089880972643392 1.129500785142170 1.832901591551969
+1.425114799397134 1.305005484882860 1.646292779273817 1.086564466807140
+1.469836667080849 1.126647165678304 1.203641992820985 1.613513175896293
+1.116965988934835 1.974549171759911 1.538156273852092 1.257164932905577
+1.564912000774086 1.996984896360139 1.781710035880594 1.725353007295560
+1.047287338243581 1.070183141700052 1.011124141581389 1.015806224741364
+1.150949090447243 1.949750338885391 1.959156001769534 1.356723831739015
+1.862449301257532 1.481206382253064 1.640179812050422 1.396000104520959
+1.509105303594792 1.761539745001303 1.626210690660542 1.090941787526408
+1.694516339912838 1.634308146005805 1.426893658315631 1.856992999024387
+1.721847220625076 1.604567037662496 1.403777302820758 1.291036992985642
+1.147818400795994 1.759974571573150 1.539391055129006 1.411971960075508
+1.741963550062376 1.038840871892235 1.633826221471688 1.236405901059836
+1.717069952341525 1.788150778740826 1.473566319909270 1.978077972313614
+1.741703362382681 1.449198544049372 1.684815313667597 1.292025346268210
+1.359602748971586 1.333460476810515 1.488731433717425 1.887866525746458
+1.532952683448066 1.603384740036672 1.129412306642375 1.078907607091115
+1.802977239501637 1.277974214625038 1.952050683454254 1.782228259747150
+1.370694685103733 1.654822576815182 1.923025988843166 1.870970428680581
+1.469591303879701 1.097030214156123 1.205563868578102 1.212909962719199
+1.312560151819938 1.058684733112139 1.778234014493322 1.945249374873365
+1.083458965907466 1.775410543410886 1.972577539239800 1.982223008758038
+1.725881607573344 1.732520194490006 1.074426768938850 1.179967515624287
+1.150918277214949 1.842020351520299 1.563617359858654 1.268131121453677
+1.723940217710095 1.412504059509906 1.742840527167911 1.174309993223178
+1.796809369215225 1.606792708828388 1.800851430007290 1.422613705400535
+1.189249524283658 1.325575046355447 1.099482684699477 1.651174120493432
+1.687247191872160 1.416313432820385 1.184349026917567 1.456922705579861
+1.361745412454350 1.443628259803752 1.487471730200036 1.831240290299178
+1.006248736722978 1.567353209941271 1.350061390259364 1.532233784671009
+1.290624717605542 1.149427428799159 1.289053882418464 1.753661549947036
+1.430497776444262 1.838215701980491 1.678695224286492 1.537395293546508
+1.328701277913066 1.800904717601843 1.449873811121991 1.659652202622215
+1.754102655934446 1.291450215926048 1.601266482889225 1.973840463668848
+1.450340577072953 1.184097345967501 1.980319499781266 1.436829319024595
+1.036609108588165 1.710080078602239 1.486745213797249 1.453444131407647
+1.637640209613683 1.411100542770662 1.243929775601839 1.172034363949189
+1.595048976062623 1.442295739186647 1.009856342987156 1.478344339202702
+1.472644187706360 1.028289999643509 1.588892317416924 1.439795266987122
+1.212209529976958 1.422034346156270 1.548555387460861 1.923648218084751
+1.512858965745037 1.648135925273561 1.113420874597713 1.459787085019319
+1.609900319953231 1.418373930201645 1.331322301636449 1.371552712492617
+1.758532453122417 1.108927473641267 1.793752383928496 1.812030454461792
+1.443713320631514 1.769827981953772 1.555490646921029 1.169269206918976
+1.176406650110789 1.221215274864741 1.862140666982163 1.703012996544370
+1.814137300171150 1.022546445447676 1.600640793064732 1.874761730044909
+1.608878048565686 1.775277876126323 1.948689429947703 1.807478181293079
+1.425897160726201 1.240427530775367 1.725725865520848 1.878448904759925
+1.161919580721566 1.477238349362417 1.099043181156342 1.928223665366998
+1.961879801339189 1.352248460321061 1.661421016889251 1.317646511390192
+1.494507020844779 1.717199305350986 1.961718597065199 1.896122247843254
+1.519464814854601 1.363243472410089 1.246792064250895 1.153010134774922
+1.533885741836536 1.520529642745908 1.246906184486650 1.198781758291687
+1.643413543608883 1.710042581452450 1.091985391798843 1.191225164329092
+1.254088132715433 1.827227874955119 1.698729191486624 1.164985902217971
+1.825917041017773 1.666359167048604 1.506069287555129 1.117763916818629
+1.777268434245427 1.717882334792278 1.750821091495869 1.667396383267115
+1.494348483912554 1.398780705659208 1.700233720163695 1.296736896058349
+1.403807575952512 1.323211866599685 1.405741847602509 1.370425787724052
+1.637907087388438 1.464345955072399 1.589980854118851 1.938834184109840
+1.817782198256015 1.515614100794459 1.627200155200328 1.337930832346703
+1.206418516612014 1.689768043002114 1.761444642835934 1.000397153883988
+1.461555040473768 1.309777579392951 1.938953626664819 1.756952548401675
+1.689812049901502 1.299337478469657 1.705299376254545 1.254413894915601
+1.699498374818211 1.963991999647452 1.275859786189740 1.860892280312636
+1.609543445233203 1.227474846661481 1.264624321210157 1.366909302473153
+1.598322977392016 1.039784787157647 1.369089207897953 1.892318352227408
+1.527037809150730 1.710768912926247 1.958170780337146 1.062813194240202
+1.941129259211228 1.705077113325686 1.800511694598513 1.752856052531437
+1.794419441586025 1.546104219472467 1.486989482142708 1.490085977512756
+1.929398273463162 1.482158411468270 1.930544601744705 1.955582418474707
+1.822619261413592 1.145491660663329 1.317921132336814 1.293632590832436
+1.761705055627556 1.022042088467624 1.433941684660370 1.882202586531930
+1.720897425201058 1.168042743979807 1.775605987125462 1.999535924934829
+1.121315433061498 1.392608446792919 1.768095593578358 1.900018722815682
+1.026030005124308 1.607409582137679 1.408072180981375 1.358623946241807
+1.191740981077575 1.280350132967342 1.160469650975167 1.574993118559082
+1.749965366368595 1.931561714695508 1.157833638834191 1.995541278804889
+1.778649156412544 1.432795745107315 1.901143213486242 1.549412743553345
+1.639675893361920 1.402179316862118 1.147528914468366 1.282132162970739
+1.546978636685543 1.518668566402374 1.946368168279127 1.351901124178984
+1.747292204939374 1.459015175715929 1.568001744252011 1.567817476937106
+1.800248053154517 1.247267705330254 1.361750696221083 1.935823014842190
+1.948229611147599 1.498532821151868 1.629845723726533 1.688194880349509
+1.078007920550841 1.507519495957341 1.999447521941497 1.672985736547689
+1.351020154079005 1.287382510656738 1.407685354132255 1.613424374957169
+1.371634060102712 1.380862904998915 1.129566244796773 1.953789871742131
+1.076292835068721 1.425818698929513 1.677184900626417 1.212909215032488
+1.514354617061257 1.680376453811534 1.284992367721625 1.521306796061061
+1.873066881105161 1.258092027182973 1.359113412457857 1.298002641744132
+1.142122862234848 1.163830790348037 1.025160929221881 1.578320232926341
+1.441457742340919 1.073246982909559 1.536708318391617 1.468380687169012
+1.514799844367973 1.143135730158434 1.805649564275775 1.642225408892371
+1.913939286593475 1.846824191864971 1.104725859501386 1.722218211449994
+1.785436940092642 1.729304773990731 1.608142987007973 1.788242078273085
+1.348193069600630 1.923449653455000 1.633325523259541 1.581389579390470
+1.116570655004888 1.867407291262463 1.767924853115741 1.484309188519210
+1.633201661493481 1.441598291056291 1.879381738774219 1.830664574430070
+1.301973271498811 1.576127268398247 1.258599356960559 1.993970537104958
+1.774070725731969 1.349887940935619 1.148405084036335 1.553464879502346
+1.137569877462627 1.974756046450142 1.041051290200835 1.706487849577672
+1.776401768984640 1.066225423082872 1.665374042339486 1.228843105977319
+1.953325948560992 1.186123139269579 1.117295620054632 1.859360071934149
+1.772520930550345 1.899214013832994 1.974929063390354 1.236639076226670
+1.189454160846950 1.780564027051606 1.349754601404609 1.970217953398386
+1.784824363326597 1.515980121374317 1.072579497550013 1.408589776303630
+1.989446772904020 1.891491367326516 1.561345260539863 1.053193569277326
+1.601544728581775 1.538832466690159 1.578180390131561 1.521373643999958
+1.388602666190243 1.638061717304142 1.861748680891565 1.912065549990497
+1.787426239399493 1.151430571933224 1.388574224276366 1.943309799472178
+1.409590523480837 1.478873372693933 1.309539472011467 1.758049291841839
+1.668193739797729 1.833552181927971 1.985307447280446 1.064394698753896
+1.869660333021513 1.677772891452067 1.288053963238393 1.891382279300323
+1.454596277600455 1.313992014614977 1.234188347904936 1.980415695991181
+1.832295245865269 1.193857355844765 1.297222619479738 1.656237597585668
+1.441853193202231 1.558865946200143 1.938776680291353 1.155263869388850
+1.013620735822432 1.741957825778270 1.216091112193454 1.197590437714797
+1.731669190491363 1.758810017505466 1.626198202118606 1.449242880389083
+1.674012054586513 1.960870654210140 1.232806744442599 1.432184681895839
+1.605065053153376 1.955748142145561 1.121295716446840 1.853581838556644
+1.026465763348869 1.118593663109794 1.770241173636839 1.504224522349656
+1.152915176910379 1.259593702891682 1.777564317147693 1.012559863490868
+1.469319742246423 1.094075647290910 1.712091315784333 1.688993712070389
+1.154974179051310 1.829539421880717 1.747456611365630 1.700595065856778
+1.307117998968388 1.519595648687666 1.664978177370377 1.286602656326007
+1.289936190235542 1.973160948062549 1.324681195189575 1.875141571297182
+1.335217730854644 1.920871065150912 1.673928639154287 1.547749537981370
+1.509136102324615 1.349544711544976 1.652941041252478 1.905634888480287
+1.714257502280228 1.247352112101984 1.648807355729812 1.780212153461273
+1.835405901143694 1.947931883301531 1.657927603829068 1.627334208992200
+1.531695732731288 1.251440704370876 1.469174224190351 1.889316693777306
+1.016281662826149 1.355623043886581 1.195161709470404 1.732016725750207
+1.550250113663792 1.004034808049808 1.802690882370529 1.232719001807224
+1.819320259328516 1.608901633880009 1.216670614640023 1.755850045132790
+1.813313432117395 1.130881250446469 1.827754593211804 1.413402427627640
+1.919833066516336 1.393036076563567 1.709663816438054 1.687399148682950
+1.155682694413264 1.212138814714066 1.083719050858893 1.808151149735344
+1.357862018401867 1.750121924838341 1.053729844785570 1.650359748642374
+1.977540185346284 1.739150779306540 1.659301209713247 1.811856590258986
+1.124708849331055 1.948010858166092 1.306454095834406 1.670871262449773
+1.137284317273013 1.902831565058240 1.604620537888179 1.264752068314900
+1.070352199766983 1.045827800242905 1.069358917155196 1.677318041130675
+1.068788745172363 1.398350977754614 1.097487361099995 1.616559511476026
+1.890391237487679 1.969028010683646 1.202900638034195 1.154914128647500
+1.916865881820889 1.734412714325374 1.455260602309138 1.198952552890762
+1.592835597225208 1.494453005683166 1.035853440565681 1.669880523235166
+1.334953999201345 1.626214286089603 1.203251890831844 1.377073568928783
+1.654228228769697 1.246457692978422 1.957262426136686 1.864894049649951
+1.761746896552153 1.585973888280484 1.555458655240867 1.087403563988683
+1.829386335308138 1.045071879805348 1.954788988688556 1.944579481830323
+1.574954556170602 1.994032571313915 1.511336870942269 1.779761062767502
+1.286480988569864 1.954441756226725 1.353885611969040 1.377820970237185
+1.957201174950218 1.509456977774331 1.018539179427862 1.248153794245195
+1.599563385367431 1.316830583220031 1.010852505902325 1.786651678775228
+1.960586622857888 1.063698587665300 1.664717070606598 1.714760768562787
+1.484528666651545 1.469631753606428 1.003000047898470 1.015448667401899
+1.380224161859595 1.792804758657415 1.574772611198094 1.812127553260131
+1.077979038674731 1.331754271115689 1.415742809476639 1.882599394988696
+1.312683982618450 1.434873959913723 1.645345807547536 1.585274492269506
+1.669920638707742 1.859263569745767 1.654995386558109 1.529843882839816
+1.627512674824675 1.402418441361712 1.983550380493184 1.208419696767955
+1.393232203228595 1.105274765460663 1.601002512137245 1.292785781144312
+1.877585019769564 1.304420755833988 1.190445997536467 1.222293388087501
+1.745328504214796 1.063077087962874 1.336017255205759 1.200409813373086
+1.502403378444210 1.644746123547732 1.489446563999473 1.929183546678228
+1.663806191458840 1.926860026203905 1.593964517717660 1.218619305059570
+1.165955121938188 1.057073280123378 1.659665013874027 1.306952542611396
+1.565303275960280 1.767911789245511 1.237193402165231 1.405142621470564
+1.606186240678101 1.489470693156442 1.707300354329174 1.293257538874500
+1.098202288012190 1.399766509085567 1.591522702421065 1.681572708391488
+1.886639455035772 1.860201730582688 1.962240606876822 1.358746073109610
+1.610055836795865 1.287605174681712 1.172855989660465 1.676921128709508
+1.666740897546808 1.039292768219811 1.933134560336365 1.329764115830296
+1.991945265028355 1.346033399545702 1.695175228938084 1.766882519370073
+1.747173458346206 1.618608127220778 1.750524164145068 1.662453315304681
+1.913929313709174 1.724144933290480 1.470089600113885 1.533490994543096
+1.120639000270099 1.709463893422070 1.141777672018221 1.258825622556849
+1.544648489324554 1.235443044027908 1.831387930435174 1.160037372308373
+1.337803490217558 1.706665150990246 1.410105248285704 1.415403086366839
+1.163916033974986 1.164476527417362 1.319159032252521 1.145803307568467
+1.260651614163876 1.684281649125630 1.704447803456915 1.454403219296228
+1.784288832537443 1.394164789205041 1.855874918098609 1.730534309757508
+1.127458848042671 1.229797370916883 1.918811530565018 1.483462408950907
+1.301617592385879 1.542925520134135 1.231906587336754 1.412336691115272
+1.386331308000149 1.406830144976837 1.658212423427701 1.908949345058438
+1.195064575039267 1.014780792468586 1.620061414589498 1.932652347755981
+1.108949009249566 1.195271180234726 1.552718295276801 1.677986143297279
+1.142356880873284 1.247843857162049 1.829589898385432 1.841941982337573
+1.972611649418218 1.105666767949588 1.625697720064156 1.740037884063612
+1.624620564598544 1.550972642667347 1.083622239455205 1.851442007061165
+1.033494884784028 1.359038732699673 1.286677281156321 1.661460545412510
+1.600115319357380 1.532090385002461 1.419710964947985 1.874915913105004
+1.489634940607138 1.872432797202109 1.072563168114232 1.459770272450783
+1.041267273213277 1.115995207530527 1.376643199315824 1.575792194696313
+1.709765389156183 1.712939137553630 1.972168327271707 1.128719107383546
+1.384679498204335 1.792100776369532 1.903562879579853 1.876588035896773
+1.040628134913439 1.448825725247375 1.422802790287492 1.194518017677819
+1.254808039098337 1.166946078270038 1.100978728984143 1.741747334280845
+1.743092202009691 1.432050560575701 1.014713500128193 1.231652451574752
+1.945963306966924 1.329897899256941 1.589939356290625 1.455342842410590
+1.679296782809450 1.251750577317506 1.228326697152848 1.108119117804087
+1.380438251741772 1.459421792590626 1.389097381534792 1.310355641994103
+1.431339304235580 1.967675884982303 1.839356536344892 1.393055143777050
+1.678975512539633 1.841613507278135 1.532272670221318 1.013770427312540
+1.791754527225044 1.810836261843944 1.117117225256510 1.298464611518204
+1.255480771650885 1.009041641633097 1.691593245187638 1.994823468938356
+1.456336171612499 1.141928547137094 1.111525525416689 1.588509580258019
+1.182981874705195 1.998514450539471 1.285776370155649 1.796933158046955
+1.666107453061575 1.694950439123128 1.947070177708644 1.789140192524428
+1.595536409712831 1.588056773102599 1.522452159032543 1.035258222624437
+1.504199789155926 1.935992833854614 1.517097969307953 1.889020691841522
+1.314240341199844 1.135017410493750 1.192071071905663 1.236473057711232
+1.355380820914044 1.346775363390154 1.225804557567436 1.880886705327606
+1.230705430268385 1.949528711515625 1.126823147453312 1.426577830132191
+1.659465038352679 1.968060218122917 1.825834417714803 1.456315128029087
+1.559135001963869 1.788839349576217 1.987379046166447 1.281566195447315
+1.120296102771736 1.576408772681596 1.574881654753725 1.064753346242362
+1.825614708267570 1.933314771190331 1.717939398671829 1.434808004444145
+1.009131273970721 1.805352940511694 1.367052030883408 1.188038153640404
+1.402321444788598 1.039450027704783 1.343245779309264 1.090774649638274
+1.193944420026388 1.082053894914806 1.824738884798878 1.131716698898092
+1.126375722878261 1.874412975817014 1.555613315060337 1.826749820499302
+1.895609954100504 1.808246847558001 1.519573223692720 1.561997987554169
+1.060623705425292 1.433646242573015 1.500228853125672 1.783960186797493
+1.966647188902829 1.771123996546160 1.724882693125498 1.277415939534285
+1.665121791293695 1.912801679215608 1.985841221493016 1.843863451862138
+1.208225536063977 1.379761361073128 1.468416744426594 1.503719733130103
+1.275357250583387 1.745177420788510 1.451652755482432 1.325419608793514
+1.781125945835641 1.557011907663870 1.652048460319012 1.219581465160225
+1.207120461896216 1.769629494211450 1.305180639843161 1.474059748853457
+1.601933968474341 1.941180560238193 1.492760034241702 1.288546232105641
+1.552401248750267 1.334134488944658 1.823169918037499 1.747061783465808
+1.480305747401346 1.807617526676594 1.885944457498979 1.097491677436850
+1.485446436433270 1.898675614549038 1.631642223610227 1.201074302289098
+1.321201441616834 1.704010691649997 1.997344004942470 1.367331025139089
+1.606322640783526 1.198233160267550 1.494591220852712 1.451534709881502
diff --git a/apps/medlda_release/dSFMT/dSFMT.521.out.txt b/apps/medlda_release/dSFMT/dSFMT.521.out.txt
new file mode 100644
index 0000000..0a0e5f2
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT.521.out.txt
@@ -0,0 +1,583 @@
+dSFMT2-521:3-25:fbfefff77efff-ffeebfbdfbfdf
+init_gen_rand(0) generated randoms [1, 2)
+1.421944098478936 1.957408659873361 1.190111011127383 1.632549872377003
+1.616831120464805 1.984390160895336 1.643335574461273 1.739347032660861
+1.228605414113949 1.052731243538065 1.772446323308858 1.114863567000073
+1.636605378654444 1.087462000589056 1.391044934734219 1.874703280081496
+1.002390505568761 1.128221774440288 1.096155451991969 1.224071270421656
+1.872738744554070 1.036551026545187 1.821818798205752 1.789673352801481
+1.106521350186195 1.515824960608183 1.519851559097155 1.492061163836929
+1.887726111640303 1.948856727997993 1.320258101592893 1.834108867003125
+1.327866990767677 1.294649266684497 1.789248309175945 1.539268595903307
+1.254196308281918 1.054092407495089 1.389542152582767 1.726060778743429
+1.772069153256107 1.617417097243811 1.614584886045562 1.254512244176205
+1.247478276768336 1.169219900796798 1.045308225726271 1.175654229529884
+1.473445040197187 1.092018444535314 1.973008749265394 1.192379579509066
+1.936410624322440 1.260660802386754 1.429953598674180 1.390841133734470
+1.362349506717191 1.123153649374416 1.058439656303104 1.900344347766063
+1.938308877058674 1.656792192436948 1.080599960386111 1.112625717082661
+1.064465261369570 1.824433415223937 1.545381304056051 1.472653950656777
+1.137885716371498 1.701404808767762 1.559960337618534 1.634163722474169
+1.372021151336062 1.744586259710773 1.321589317925079 1.486642256750914
+1.862327763083939 1.075172296073310 1.573388811857288 1.101185801612848
+1.918414967963940 1.793629706993943 1.246498114440315 1.995983844973066
+1.725269228365091 1.121888537935792 1.767509983548085 1.203582121903334
+1.247582431045057 1.758621840173202 1.424107928314876 1.755779491861438
+1.502046769073883 1.843080684648440 1.774284301866664 1.215861919362741
+1.589796181819331 1.482003315185172 1.939892285561927 1.072915329433098
+1.380780138594459 1.157251526850116 1.885565339419955 1.907278154018933
+1.782951723567056 1.363705045121745 1.187403068645774 1.989373153228237
+1.506934620320753 1.707552124724367 1.852265174003890 1.837355735493005
+1.417343908946802 1.884720587123827 1.215604711492599 1.426670432860341
+1.566389477370541 1.741906780293768 1.522838632618342 1.226876315848571
+1.141852049678769 1.945531358001709 1.550719817619310 1.805713059097023
+1.301141430383593 1.208565477601366 1.902130019999460 1.649337483329756
+1.241410951514797 1.041542264261973 1.764296999791918 1.039416727432761
+1.089400841658636 1.832591593301952 1.914809065998617 1.125271118700883
+1.077270381241304 1.494925089656199 1.137830507839621 1.052579312088753
+1.765982504667668 1.467433223287561 1.672311940135861 1.095727761139504
+1.150995170260851 1.896545832207109 1.985446936105724 1.877959303170379
+1.735789247686071 1.358115267751052 1.850680578725908 1.241313311286619
+1.384462590366469 1.685302188841935 1.113404711500619 1.269140213441217
+1.863633336207126 1.961190145535963 1.221676799605272 1.540960168530507
+1.434522102934897 1.229381759221743 1.238643254830133 1.627009955151886
+1.314833326380005 1.920261635361002 1.269114197823107 1.647380501662455
+1.138977329887193 1.503500466445193 1.752566313257892 1.688897758109339
+1.221210106939021 1.693322371036598 1.326686575353098 1.871938244045208
+1.428850297336260 1.253706004725279 1.278468120759449 1.964805909004379
+1.429138557657705 1.691975561253884 1.313472957225343 1.944580765140117
+1.995948448579093 1.411991162022675 1.078462737191011 1.011037959355124
+1.075930536159439 1.366234076020537 1.504802709914584 1.108710991041226
+1.487310280452624 1.372664283356667 1.252412272402132 1.315111589700300
+1.255009021395414 1.778788090306852 1.774325636253298 1.894519657510636
+1.743689803331580 1.662046851995440 1.717955393882628 1.420353547412755
+1.627921039465800 1.398521939286720 1.437248935226819 1.199785527534206
+1.084721712595188 1.875816061122103 1.987119577322292 1.307626102572506
+1.308729145952810 1.033266078207883 1.257489160831464 1.549024806343603
+1.598348841861536 1.814366168918025 1.212824664932918 1.185696674258322
+1.377613294826528 1.728212468227807 1.644810995860030 1.951026705577493
+1.792050133901049 1.379746539326036 1.350919170412826 1.652718572621244
+1.974181260716241 1.272401773595921 1.999738170186175 1.367077922237471
+1.158672799134909 1.861730861933067 1.363213985727711 1.295288677924179
+1.298238877012307 1.671257928559949 1.556045517333904 1.948581895218541
+1.479452659600547 1.303366365559153 1.686175231078714 1.624008788764397
+1.339743576765808 1.087325906146538 1.855241117029494 1.210072500903530
+1.229397829836456 1.129486074109305 1.941120884034431 1.516645946754347
+1.801184715869444 1.578108106496557 1.904563997871219 1.533608311169815
+1.309893163121396 1.669465205352175 1.776725797957821 1.197402103256382
+1.129258900907144 1.333850635565752 1.620347650033725 1.321172765678308
+1.951856957030179 1.269874320608315 1.766553833620622 1.072224364904750
+1.645179125166359 1.353507057647035 1.087457902462035 1.224146915331886
+1.900691914654445 1.834370300616437 1.089787029039250 1.024519875462008
+1.860367534024477 1.848010908365617 1.842843725996441 1.055612141425559
+1.564319131893140 1.359551224003992 1.254247250705726 1.053242250572347
+1.651832032440034 1.893092642414121 1.763531026807837 1.919875191227458
+1.462268494108715 1.204697610465595 1.030511402714525 1.500954600944092
+1.887504030090944 1.046796810933341 1.873383700901016 1.826879521395254
+1.076319633295031 1.072010522896154 1.357255009723834 1.295157023401054
+1.176402203313364 1.509683861309610 1.066400672542439 1.423291464778123
+1.004935840382814 1.638427979783363 1.899148368653904 1.441400307033541
+1.784814603361819 1.408283383868379 1.379050865440348 1.982626612330429
+1.640899902595093 1.297643029564933 1.720465194045447 1.769299233766416
+1.747250412915086 1.479265502765512 1.993260171678031 1.952755916439403
+1.111658567972376 1.315488672641726 1.338215692434233 1.518524188562273
+1.325491713413207 1.467128877397176 1.696575888837241 1.000836584610210
+1.317597985720655 1.847899878527947 1.171897896601005 1.699736040794338
+1.739433706992069 1.735224777787903 1.597346133042589 1.915180492864455
+1.462150469560302 1.819875553393321 1.045346598620536 1.887806635411293
+1.733814907789118 1.438882940093352 1.926013683112448 1.262237548604055
+1.053804032045494 1.082988068863908 1.221474044967364 1.818500553780263
+1.751686787332112 1.549026392033843 1.784694090504441 1.097718636682598
+1.291517353199977 1.430810997829457 1.002180407330556 1.713918856302348
+1.938432392128486 1.029946838529577 1.776294068168146 1.143725241430368
+1.831222663738350 1.364470462458703 1.571272629381097 1.781421652091381
+1.825657104403353 1.429343042808978 1.462399706646591 1.409427912560833
+1.659829582922966 1.535049150297712 1.586174466664093 1.300512876688015
+1.892096820487884 1.019557302873151 1.300913198780544 1.584421369941060
+1.162544109038204 1.879422836859933 1.859157320287184 1.825427831038655
+1.958873781037597 1.239395574619141 1.076019501162516 1.307614395947906
+1.315023023663636 1.526872796373568 1.353581852212422 1.926818830395034
+1.753799327065187 1.746461973748308 1.224798256440723 1.567336620720363
+1.925342280654095 1.136326665277186 1.342751546042353 1.975481768078615
+1.568188947089161 1.642218894773623 1.788212499799013 1.830511195110782
+1.972247951789518 1.140225627402601 1.008141833856336 1.422958760963009
+1.046883527393386 1.000283971112336 1.001813480443378 1.374246699334525
+1.096276190731219 1.888460082784696 1.571826105782054 1.690696041666457
+1.101872305065513 1.815216406712599 1.911677017114769 1.464458879516851
+1.020938909397761 1.691229340909581 1.510637830371549 1.299464448876780
+1.177543832454443 1.278474426887394 1.305102508599817 1.829291302906111
+1.753266128461545 1.891402655383632 1.301078870091252 1.140257544181585
+1.138508732041293 1.147518466030739 1.238208811623640 1.305909267461217
+1.544325924736169 1.830059192563496 1.304055916732209 1.975033897747662
+1.232731742203311 1.279419744708337 1.261289012771093 1.317900223797079
+1.004770643590582 1.457820784270558 1.138770971101938 1.492955115398961
+1.611963114704863 1.829530394511233 1.881025623964868 1.452831313841011
+1.905595242429322 1.919266432479234 1.224166170214967 1.575148994505825
+1.639130514493721 1.723147213089868 1.368545618306434 1.806558527484902
+1.551310210243143 1.171999409510426 1.353829051883034 1.594516084739198
+1.219283191499909 1.627761733826652 1.530894501368659 1.425560660873346
+1.642037192503104 1.201311351833866 1.233957587788214 1.215454923330754
+1.013139195559812 1.357632206639312 1.168319005383887 1.802515100176896
+1.328314375328728 1.617620136240326 1.783540338454187 1.811436450496045
+1.698377495578679 1.432614205529128 1.911086640359651 1.058413266228017
+1.726591299707688 1.221887883065546 1.164561412854302 1.659635779418381
+1.880485003814825 1.829375297475314 1.362435243485760 1.359855748496440
+1.691533790218447 1.087010256246633 1.818534697243615 1.530769212165685
+1.967860839272548 1.492853268798343 1.785646262831137 1.075139686183092
+1.120846157601859 1.930392809478947 1.570697241865839 1.594222212742420
+1.930922960054597 1.147647939410567 1.145040708993833 1.724064137127066
+1.198990842419706 1.308441455640907 1.885459825432950 1.722415798575247
+1.701171128707172 1.526928003631371 1.971805287659895 1.400115868135301
+1.053648127023340 1.173139904494106 1.130627674693973 1.562137490085345
+1.600589787755278 1.095205677791889 1.358301734223473 1.772001743536052
+1.808135967006108 1.684089612404051 1.030246048377909 1.729947555543716
+1.514451263589108 1.867916301890215 1.192242775601462 1.631416890557073
+1.254928171326067 1.315076155861672 1.646147432018629 1.360677686125275
+1.104274943185673 1.233312332781931 1.671638539345168 1.425359838483579
+1.215752675556352 1.794318413390729 1.712809959268105 1.764904792126224
+1.142872434560067 1.973208315367292 1.660601191925213 1.783465547608061
+1.490258767529545 1.744598059362156 1.327795697497129 1.103323232662079
+1.802347341830994 1.694468216051518 1.528507552564681 1.300268226614423
+1.355030857266686 1.443619621130074 1.205693125056329 1.809461346102974
+1.579097562325708 1.974155310960545 1.853186400198051 1.372785241283641
+1.985615465436102 1.073093496239047 1.481499516759004 1.730645098124572
+1.418857786469450 1.237569952535188 1.629753214206164 1.933696827008629
+1.547728519051265 1.606825447323856 1.193276548880306 1.246477818168155
+1.382355887234006 1.263290717113388 1.614031947764364 1.436142899801111
+1.910439401751251 1.165496958446527 1.857961211083656 1.329084001179235
+1.838879989674694 1.432247834810403 1.493219849033656 1.412187115569223
+1.198775110113921 1.761250133363698 1.401897578392068 1.492992523353378
+1.292672302123053 1.116603163788736 1.809294163983135 1.095349331631711
+1.311448892765946 1.906994727488306 1.322074814512502 1.831792018874103
+1.718606253720653 1.082813601883594 1.818734986783292 1.490335465637485
+1.519676733736696 1.679735833434552 1.252260860744804 1.844430830552300
+1.395854533339142 1.512665659189344 1.175985495604715 1.347252163621182
+1.959565833461770 1.512834741407362 1.968077734181079 1.876282603188137
+1.206748154153857 1.139758616877214 1.017173904198713 1.857181594845353
+1.143203413104263 1.898559003991795 1.144971752081216 1.853574028731672
+1.766720781524414 1.388505637945033 1.285839939509505 1.313105300483298
+1.224342000944443 1.492125615482307 1.869726172407379 1.056448481654024
+1.040878967522817 1.551906502277850 1.781138206247113 1.250610373390070
+1.095505995059008 1.580572987386013 1.271817223729820 1.505272612753252
+1.837311915572314 1.159670314399011 1.167363623081229 1.100485712803215
+1.557302401659234 1.241748435139864 1.786663213394125 1.968735631826053
+1.648858095802664 1.273937361927970 1.159625557472353 1.568301212295878
+1.353829970429043 1.774861641234996 1.450151316336745 1.755327724432314
+1.351389578024334 1.129275268429866 1.705600269718840 1.594667858779128
+1.541346906565728 1.017706335693777 1.397838161816285 1.693427283175188
+1.468222040785574 1.930856995370667 1.716194584560369 1.762657510481220
+1.636534278242953 1.762420223544905 1.204394282016103 1.966094988519407
+1.583446040298961 1.837785646831295 1.116843903107126 1.906439232678815
+1.375461576495119 1.966297409831861 1.530775680492073 1.760686713707386
+1.612039834480577 1.542799089940950 1.962587604995782 1.657967233430283
+1.777599063057407 1.357125384152903 1.944704532392023 1.996490230925456
+1.764582760505264 1.786973389566143 1.270970202128471 1.002405309860310
+1.059618634391420 1.710357897202383 1.285268338003451 1.192839329596043
+1.614142741766606 1.490399728637063 1.399994334412036 1.733921913538504
+1.025512463907097 1.526393246064839 1.782990997892550 1.939801037564983
+1.328906079662421 1.488770302526421 1.583231538116991 1.673906505724823
+1.745784122636695 1.080201632500003 1.246338656993765 1.529899632377570
+1.695621870577078 1.129928267277292 1.401027384575121 1.542454283895461
+1.459178182085192 1.138020583875246 1.519061396792060 1.793012191477057
+1.768554164920060 1.436114188794611 1.298800036435665 1.971811541052130
+1.812823399603367 1.506249479785788 1.723753293947891 1.156193962440113
+1.959417108361962 1.503913486153258 1.990080898750035 1.737127555881950
+1.024149940774942 1.004621676177378 1.590361596973875 1.809233476071662
+1.768308014507692 1.500743973266748 1.367748739113467 1.306670310749022
+1.071216040591316 1.694009626556220 1.674175586709446 1.775531124829215
+1.061995081193938 1.516837801306741 1.825036100827744 1.440780438613178
+1.562073534323606 1.809736551372640 1.558654285293214 1.384690487742033
+1.103618162713544 1.356016854810345 1.190339604300783 1.591772727370690
+1.113651422326127 1.248472009761695 1.552780806603311 1.603990956594510
+1.670618898986476 1.961713729932260 1.736831192333644 1.211716908385003
+1.268752742648221 1.808972354731863 1.497317697176477 1.122077176171892
+1.970735516110577 1.839749222610372 1.593952684320717 1.866898298919977
+1.543023579327759 1.318722549298626 1.353171857873883 1.969411404419720
+1.384223615202176 1.940668473888355 1.831519235043650 1.315019019511361
+1.423400779481028 1.357663519692878 1.506126477776090 1.657227982174708
+1.339143415856895 1.106651199236450 1.628767358066660 1.959535122547257
+1.977257171369204 1.108015056188103 1.809240765339125 1.606310916808053
+1.859040270269676 1.439293172696664 1.785505204027249 1.743496707377407
+1.621130005061031 1.033971482188802 1.182369284583493 1.145975034390875
+1.519764763760225 1.572040731636883 1.088885183781040 1.660885053411099
+1.440914686560819 1.308645884554585 1.562811241598103 1.050670067621590
+1.278792847154665 1.203495857791560 1.871498280463475 1.354798874213871
+1.000782395305633 1.449893995709580 1.633412948420969 1.357803090534069
+1.718680444150993 1.615021249646367 1.300477295046710 1.803763090413903
+1.655684403619687 1.014029824473536 1.064708804890705 1.289806032612971
+1.892680314893176 1.042818755366304 1.517255235193854 1.231936607129704
+1.674858350597612 1.617302072021779 1.939302223630463 1.601200799344574
+1.840789296110603 1.637492300382224 1.781599926704413 1.115864990772059
+1.788384940470639 1.737516462861091 1.496557522175230 1.502305848165162
+1.597469816107047 1.624807267024703 1.602317242208264 1.981309437810519
+1.484700143396421 1.113059991427968 1.970483078033322 1.086696969101163
+1.943959449602209 1.510059942571570 1.985341561214625 1.641937871886389
+1.392907570984177 1.208796855876029 1.198870770162389 1.326953033337182
+1.305406765375345 1.673417177606947 1.193903763097661 1.832994480306854
+1.972978706586547 1.074049062196458 1.476182422870224 1.556785634919327
+1.220642336526971 1.034961439229276 1.621393789507091 1.624144614186162
+1.425106117962398 1.357510255752644 1.412661532302921 1.899538935311299
+1.828632269606451 1.678681295059801 1.040119057542184 1.815563480656771
+1.680949728983119 1.335070501564716 1.285012082602775 1.786484745825192
+1.121238035064010 1.965732199815762 1.930219080732241 1.647650562531407
+1.224977903678281 1.735016006030168 1.909307506242225 1.908660844728343
+1.848566666980428 1.896792310279791 1.632982316117440 1.722830706735092
+1.842769265807164 1.108556505311833 1.064808926197317 1.359393941569241
+1.161927514222553 1.268121920946046 1.971007137354729 1.144368812928649
+1.037099779802150 1.117912309767158 1.339074553117308 1.562203135477072
+1.982553916333266 1.283679861274929 1.793649104937658 1.625765628185919
+1.047150414715505 1.806534796386063 1.454569699804843 1.302495837988271
+1.947180647462563 1.631913084885116 1.716241003002192 1.717274197263464
+1.145874811662342 1.844021276911700 1.286356224226028 1.448231440525136
+1.141954512028515 1.039613210238601 1.817476992077502 1.760382139897084
+1.407750553164968 1.812569974085484 1.641161156149672 1.697422055978861
+1.714829775305783 1.929785937645766 1.716447879866937 1.854268101934073
+1.121911630576161 1.197517895350150 1.004743448646769 1.072065041071708
+1.119370389217647 1.899323694833023 1.718457746283301 1.684008126179527
+1.319137836033135 1.447767810409670 1.012599481115021 1.493847303394084
+1.523019009170983 1.739806740014410 1.417433842651163 1.743243212735018
+1.239635334976984 1.827971428640967 1.718903277076515 1.831011033166290
+1.033327641341451 1.032770062325701 1.975216530655317 1.958434085350983
+1.227123778298683 1.392298987605085 1.817004849695195 1.252261664991397
+1.797343875857502 1.803170842944485 1.258881278032911 1.786110615430234
+1.244860606485409 1.048751236211840 1.706298709479787 1.091369645427824
+1.582328024772029 1.410675316936429 1.111413900996406 1.468352391122118
+1.988904622507199 1.227091377909595 1.957405382501052 1.975396575587178
+1.113794863145053 1.655771242497922 1.031768396881023 1.991713934874783
+1.630898066922311 1.631506341902332 1.308258270690683 1.527311191336968
+1.983960927923840 1.566057872557475 1.097124368694259 1.836378617509256
+1.618783071563571 1.090035168137701 1.540668513218248 1.699169455936280
+1.869332957251255 1.704147220252638 1.568769828453167 1.441877173614598
+1.601048029562842 1.637041270278119 1.452771959861923 1.635033641231002
+1.941721816686671 1.414754213766203 1.027555851246718 1.307418106946078
+init_gen_rand(0) generated randoms [0, 1)
+0.421944098478936 0.957408659873361 0.190111011127383 0.632549872377003
+0.616831120464805 0.984390160895336 0.643335574461273 0.739347032660861
+0.228605414113949 0.052731243538065 0.772446323308858 0.114863567000073
+init_gen_rand(1) generated randoms (0, 1]
+0.442082451055255 0.015911155919158 0.555755021719280 0.480889172842165
+0.405815741214470 0.960579860093107 0.544101247102252 0.981124035599182
+0.140227132774799 0.237034110268794 0.213695040931430 0.839170314244399
+init_gen_rand(2) generated randoms (0, 1)
+0.332262442390655 0.903899992959739 0.711640747980762 0.063694793030814
+0.172136391851721 0.101571453847773 0.098795918939065 0.862664538090786
+0.424853545765161 0.289050971753394 0.135940482595652 0.818087794332543
+init_gen_rand(3) generated randoms [1, 2)
+1.826091232914593 1.465927292773019 1.660359847352146 1.718739833849470
+1.771065180901557 1.368636432068282 1.863811540991485 1.450138787059149
+1.210643354130650 1.794497423503101 1.919954502126080 1.705753029324391
+init_gen_rand(4) generated randoms [0, 1)
+0.591142320356478 0.682511093445485 0.830635683995555 0.045933005613670
+0.957981351055883 0.998593638748638 0.261010607596259 0.094700410165497
+0.348077144635012 0.093054819035855 0.311048659827044 0.021348057917652
+init_gen_rand(5) generated randoms (0, 1]
+0.331906141590510 0.431204104083267 0.788026765142320 0.107886042968458
+0.331527448463003 0.223260642753400 0.007213097307934 0.940896681940139
+0.077929885744811 0.684439050487772 0.109261760919377 0.512024787196714
+init_gen_rand(6) generated randoms (0, 1)
+0.086727908860750 0.284816522568750 0.783013004472519 0.229535563590499
+0.093432866683381 0.364565246345040 0.494017414358864 0.803305863215613
+0.788653835242992 0.922761141678804 0.603919272593562 0.788796637744219
+init_gen_rand(7) generated randoms [1, 2)
+1.778523707021504 1.248207063555905 1.798746266980932 1.774778978569397
+1.283133909883287 1.058175568317275 1.457509817550994 1.917955442286553
+1.058388185162171 1.436124085351361 1.917752212446983 1.537464700889863
+init_gen_rand(8) generated randoms [0, 1)
+0.685029103155941 0.295351060999472 0.218722190918758 0.378128847153547
+0.529121671696936 0.043642106599858 0.358345494757522 0.123779142473599
+0.258723785570372 0.160266608630971 0.059760426307412 0.011024341145846
+init_gen_rand(9) generated randoms (0, 1]
+0.187705455519874 0.288813617791865 0.319144513420439 0.543793275682785
+0.729974326285441 0.096176988807451 0.149483086734216 0.406780899369491
+0.480468469680181 0.495446775981617 0.936398273640683 0.736141431769042
+init_gen_rand(10) generated randoms (0, 1)
+0.098793997907986 0.346927888725101 0.983796950114385 0.543851457918610
+0.189272048998960 0.085990450161610 0.581299384058312 0.469887435507086
+0.503662110237420 0.076827081362742 0.114442155060919 0.392405568608614
+init_gen_rand(11) generated randoms [1, 2)
+1.461406803678148 1.008787442315979 1.495787816510884 1.850246204845500
+1.477408138299116 1.407988286263545 1.622835436679617 1.766231688195076
+1.987094461308092 1.285715440397025 1.499605055070014 1.987458693012325
+init_gen_rand(12) generated randoms [0, 1)
+0.977273334486815 0.817637465453976 0.933354490620283 0.830468185653900
+0.605770981536066 0.028749014476501 0.277316311221838 0.950378026924744
+0.597681054940624 0.687860093352914 0.737466170815903 0.617074154107175
+init_gen_rand(13) generated randoms (0, 1]
+0.985306059423489 0.587893550647618 0.296309318706623 0.819842983851756
+0.320426478536460 0.929807705806558 0.430329523388835 0.297844671874719
+0.944917586569726 0.021809686937685 0.408661365695584 0.409732815519562
+init_gen_rand(14) generated randoms (0, 1)
+0.420644963976671 0.532468710959390 0.598367781769275 0.510776290609494
+0.277891395737916 0.451234461570111 0.810719706008020 0.286098456126895
+0.934654417060261 0.602795625817081 0.164620902367937 0.983228091124433
+init_gen_rand(15) generated randoms [1, 2)
+1.502740389456393 1.532765164299389 1.111885848398497 1.056573211355714
+1.594966901759657 1.922699489051994 1.789423564625162 1.771039785211392
+1.807070109362501 1.410045291783796 1.382204924927806 1.557534994317295
+init_gen_rand(16) generated randoms [0, 1)
+0.470649801641298 0.616759675824380 0.403786737982776 0.381395979355409
+0.865832856443838 0.645078283771564 0.382233550952961 0.568332823146031
+0.732177161297510 0.156757394535722 0.336511443125828 0.171259367889499
+init_gen_rand(17) generated randoms (0, 1]
+0.956775632276637 0.696378755295651 0.683278549594745 0.495562346462444
+0.034107186214846 0.031502949275996 0.570825947251147 0.386856603189840
+0.168442969072934 0.604702054107083 0.153645463665401 0.859357829320274
+init_gen_rand(18) generated randoms (0, 1)
+0.525540856736036 0.388632825260467 0.892015127645260 0.747993895844647
+0.367997053340826 0.331661851479406 0.664144365711446 0.896105607587727
+0.717685345297874 0.400373322803180 0.995618384552992 0.110658345299761
+init_gen_rand(19) generated randoms [1, 2)
+1.491913590658521 1.330931141149541 1.817037326975155 1.418740083394695
+1.614928644571634 1.070671717502089 1.784048710437178 1.133950893576865
+1.249463382685035 1.266132109289160 1.185178091772995 1.619470208650039
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.947207450558105 1.135309794297262 1.631344244902284 1.366412058972510
+1.601016221411738 1.642092990822857 1.477144514603918 1.164916026138202
+1.957940728819001 1.281611723812408 1.731029866833327 1.436214232653967
+1.093830624065262 1.780506865914109 1.275431297490529 1.841184720385789
+1.854284566527383 1.050880003488825 1.776488174535655 1.103721363566513
+1.129378366799453 1.170634453846896 1.028815540798394 1.805833575221204
+1.626719074962939 1.943409598554246 1.510018300352814 1.011322818000522
+1.698882058355360 1.318818424961677 1.855824713031231 1.966486116025535
+1.026987215607762 1.136100045420735 1.358378963532814 1.162597723297414
+1.617815384496810 1.244159206669000 1.550222787839322 1.685142033697256
+1.576160932894067 1.243639730607567 1.297826015411039 1.404342247755182
+1.060166953742646 1.852576496653385 1.069387893661959 1.864344263021154
+1.489291026581383 1.187622261837069 1.408407496315355 1.145820978150154
+1.047682739179657 1.069193573087767 1.895638321589257 1.288166870480759
+1.206281480170450 1.919918202924088 1.256751301307792 1.529434312054781
+1.293507672884344 1.725382977588430 1.971604547164085 1.733717293116013
+1.227227574398146 1.678936015462912 1.917738718929955 1.982710063903779
+1.973293629935062 1.128976170805480 1.681843025098611 1.426854387492284
+1.951652614856485 1.006117030308376 1.163185082450895 1.650065040539015
+1.709474740355621 1.800650031174273 1.120239935695504 1.014359520018038
+1.400610803118096 1.919802509694430 1.558148115221385 1.196223320343777
+1.106164681049412 1.794004559232027 1.156605105271351 1.429828426826791
+1.557904316469394 1.028066765590857 1.138295188250031 1.165951151525069
+1.221150315491454 1.336476475514164 1.433298696315862 1.537934724763323
+1.826246704499124 1.156551569210181 1.908038582540807 1.178585836235492
+1.868928979755601 1.085775942103842 1.578268877807681 1.331381478910382
+1.430819345479342 1.161988986729044 1.457972689385957 1.620258382477409
+1.421310746899216 1.775980716084728 1.636453484853568 1.716593028679644
+1.061400115852532 1.966019861881066 1.771041203206715 1.086570039099012
+1.305633327052913 1.420723866435592 1.222610293606582 1.105296066776391
+1.488334936501404 1.125379392601492 1.524888709115415 1.066691309603287
+1.932034440255795 1.116454223190456 1.417369903753246 1.488722591559139
+1.564698798653277 1.045025556220310 1.073068909633416 1.469169726141540
+1.375059650305161 1.493617082817841 1.259605793094590 1.436902609283733
+1.404340303587839 1.694379833214023 1.798857564463123 1.219357936876666
+1.436002062992434 1.170604057244566 1.318575335263162 1.573409932004732
+1.164076653602317 1.313844172565840 1.647538673106766 1.286758502522537
+1.968248641517365 1.116502692691169 1.370360192831096 1.255039892402593
+1.601644871730838 1.410887780970450 1.332252474592944 1.196484632357055
+1.258083587223385 1.353386397982771 1.076574696442263 1.134236072289827
+1.593083957183742 1.535528205292973 1.436242031901138 1.640351771604794
+1.870165216157028 1.158041352979966 1.573096686675836 1.956998275941477
+1.909942913510170 1.679545308487964 1.358178015287369 1.663218354021119
+1.093632654597131 1.682997308830720 1.378745461920543 1.606002535246354
+1.237520039322370 1.278242883462201 1.488621235672552 1.148347903662639
+1.858256728514947 1.495061073419361 1.524755095876654 1.529166116219529
+1.241116939689060 1.549233808673284 1.482593510991004 1.531008148957128
+1.278855924660843 1.487153841055213 1.702140037503810 1.389381848832394
+1.310563704400563 1.029789339294516 1.343965074790394 1.661499421627822
+1.947180530007448 1.501694287488555 1.598770134905953 1.210570089829710
+1.283992697920356 1.175688938580993 1.177183092455425 1.002092837127673
+1.190509602013484 1.704878168080972 1.515381807879046 1.446497963043979
+1.485887503308633 1.128822522225734 1.601089317194607 1.677653427138377
+1.848464575979627 1.648596304141954 1.741068013858845 1.296049116436621
+1.696898330120298 1.889812117711323 1.266681310903272 1.809801597851127
+1.261241540043026 1.079246520065622 1.811793891138674 1.853311480830697
+1.468928601874197 1.787540786453619 1.496532187020051 1.807383746670177
+1.161193005295014 1.323298029534912 1.699285717011673 1.664929620535036
+1.308539188316414 1.725418598746142 1.562408642910170 1.711167130326208
+1.639212449492668 1.940367359607509 1.635276232023359 1.065973139445842
+1.437046804018629 1.921152204389429 1.940968194562535 1.814428769006062
+1.852201116146467 1.052938439978708 1.612689668739904 1.357180497686102
+1.751391417668904 1.723485011249644 1.146183442825391 1.324409477116690
+1.917510956434969 1.115175932602158 1.022890875271487 1.180024927487017
+1.951193897948575 1.504139995313060 1.057556785842582 1.392107970753785
+1.259822644593459 1.756486178504277 1.941733209995832 1.460194264148309
+1.717154304510855 1.277863017238506 1.957969603541541 1.812998540488890
+1.258824807315175 1.602931248894758 1.882636774928908 1.099486664754125
+1.059187668779323 1.984202270666743 1.385594576351875 1.043028538140962
+1.188139676827720 1.720549053013833 1.650602068603627 1.654791254857253
+1.019187936866037 1.070228204437038 1.093247321932356 1.104472095794054
+1.003498433450088 1.265014749889605 1.594622151209226 1.729058327867874
+1.506781271896926 1.430850456501485 1.826918877758742 1.623816968654748
+1.495984508204357 1.302690514672598 1.617826177913057 1.883129554756960
+1.802529676309332 1.224409354145562 1.625895634588232 1.549309103077473
+1.597637387583425 1.224344123545047 1.514865826717829 1.926655999894167
+1.686327597426891 1.960403571144254 1.119879132630314 1.372056068439641
+1.321276442402503 1.953399767378953 1.211477986234923 1.626780791216859
+1.297425774362108 1.746722543034876 1.837413624021315 1.643264332848509
+1.682063262684958 1.986291138716071 1.537272746899873 1.084226927871342
+1.238581717531651 1.236531235335218 1.991768513911834 1.058418682020597
+1.752861369321871 1.111038986486358 1.426899622101443 1.323311477216098
+1.668261668857286 1.336157611115429 1.895214460590036 1.085939406717038
+1.488043096556005 1.866951938464483 1.197416401425599 1.802099926315847
+1.812261483324199 1.081039472345662 1.318806864310679 1.004632974500258
+1.253399618818119 1.974621192587345 1.547437258978784 1.201781046491616
+1.774955719613587 1.698994408788286 1.501372331065325 1.070133498588205
+1.351022907102016 1.218967639177718 1.198482282903701 1.677632902137514
+1.632860571175387 1.341892408346290 1.650387261835260 1.947209004519816
+1.224818823792278 1.142651492888087 1.032806650097249 1.681336480461250
+1.538334068192853 1.203411340752100 1.474161324396634 1.774480781281485
+1.237960972233113 1.543614837498093 1.311664846739250 1.259541282692248
+1.065492106852251 1.366625706340787 1.350289306333268 1.249538538052543
+1.511673144819032 1.255132977450345 1.848385131516240 1.547066676960587
+1.375489964723051 1.587788812268376 1.096881460549815 1.640549112855726
+1.544543883812698 1.019670971640094 1.240303181953690 1.691188097979394
+1.435384245543227 1.326255449815946 1.212734345207260 1.696624843080563
+1.464989891580118 1.667422144339556 1.427376611549572 1.886091374235511
+1.217993761912724 1.364234236193553 1.038152656404485 1.579897279552539
+1.917044138561693 1.079030047947746 1.109553001279310 1.018480890171268
+1.497832244672591 1.761302570808145 1.023795884900464 1.372144372530775
+1.331035145080167 1.184131394176141 1.797521455543982 1.858699680310617
+1.379786991813360 1.129510760289346 1.761627699292191 1.357863647155192
+1.628180387974880 1.663269875243322 1.854337710072520 1.586885806740248
+1.076105532923743 1.936118928291867 1.707970644605928 1.778307510943973
+1.446356911056693 1.069546371923497 1.820703652802559 1.102680253996838
+1.815323692965850 1.461061054899784 1.361945456029912 1.105865232613683
+1.399517769823654 1.016603081228915 1.252062645527688 1.829667929375495
+1.055316835855171 1.644868763960084 1.490797207267044 1.107570873588386
+1.881962081262456 1.426856458807271 1.831250938209766 1.999127347807601
+1.677126457998177 1.272670151570925 1.043095077007429 1.475186722761298
+1.655090986385005 1.571002223129658 1.137474484106960 1.579565191159587
+1.708733377336624 1.440782504634744 1.766722964623437 1.982835870010967
+1.879832653673736 1.306229787584795 1.008875002845844 1.955454597208549
+1.686533320444794 1.448517668553899 1.177578545747588 1.370089901862085
+1.532034307048481 1.790807381577618 1.356244583764095 1.245639628241753
+1.448537123145121 1.945709774655793 1.355481782123781 1.220167912096407
+1.487428462354357 1.979201090523090 1.628715871210320 1.386054129549654
+1.898725504070975 1.295236946609465 1.194974922551681 1.559430737424677
+1.782028297967030 1.820734102076466 1.958630065820150 1.671016627060105
+1.054931363628179 1.238535645123603 1.021835245630125 1.666027743960037
+1.851630149768074 1.667667183537051 1.582423870823843 1.857561583092343
+1.080083865992375 1.407957418909629 1.414510806717882 1.818008985343736
+1.605262135262882 1.537147795993105 1.139065894527644 1.905805152962634
+1.576356818745170 1.813200485474691 1.590762590133083 1.784476266509967
+1.581123072527233 1.986639763164798 1.994083652311294 1.078586674121204
+1.727273586148383 1.460323939313023 1.384493540534425 1.446840087224235
+1.818896967708952 1.651376382670966 1.516825357437854 1.115436647886605
+1.918296554242244 1.644759065636758 1.453489668007171 1.526478205505631
+1.986161027371766 1.188112319570911 1.625843115856112 1.132597820387163
+1.909872777699022 1.158310255789676 1.925690664890364 1.121336287915879
+1.461251423078496 1.864895788044712 1.837818750394970 1.056006767899788
+1.988614692088117 1.647197947676476 1.407218116514914 1.628233742644107
+1.741979823583425 1.734801730863307 1.450853441906492 1.272548809912679
+1.136720448886822 1.669847684770099 1.185741115184326 1.351477055264023
+1.179496486752943 1.421215577232294 1.956000300327398 1.402551458205635
+1.243232288920604 1.595340337392495 1.327002584891119 1.339558642450208
+1.269524604588405 1.530798067080132 1.199523153195488 1.621262102754166
+1.579334796966256 1.480993192076834 1.308807639933550 1.002291454577589
+1.871296667082226 1.272958337191233 1.193362032280423 1.913746866207172
+1.780248753498779 1.587902048794695 1.756881094800466 1.982638500988241
+1.721397828672976 1.506819262969700 1.510730893573642 1.624184356050091
+1.791292234041442 1.421582585203319 1.506542783753760 1.398715028707289
+1.895596657940293 1.390704545427405 1.812202057996696 1.372923395768876
+1.368674942280387 1.515316306435028 1.142565455310029 1.464646330046949
+1.073172495541949 1.215138214491966 1.541493492759479 1.002100189040213
+1.016333548950234 1.009938027227325 1.783231174035762 1.401030170190190
+1.397281115944810 1.718839632757970 1.192478454223990 1.533562362825422
+1.743582722017602 1.445374337359997 1.755130231068367 1.481298939549003
+1.461353419012572 1.298896505606882 1.249554266659123 1.302104572858497
+1.899938846836392 1.096085476605370 1.215233171727098 1.472477735841386
+1.544219139593051 1.257159850775402 1.927275142186521 1.354620139303779
+1.099048784699756 1.743348024454702 1.759641999567123 1.056524493084405
+1.932988764814410 1.710237921482745 1.490373500404498 1.515691046707079
+1.144108197328411 1.133243543180943 1.224697122852851 1.744265737234908
+1.243195521532562 1.115701330723652 1.701431795430022 1.409354448218688
+1.442637211153349 1.666023053598230 1.331308250826585 1.267201089788160
+1.430114037145706 1.758362068942437 1.568849827004162 1.086431232500836
+1.604184315155456 1.126990163887004 1.574035601557279 1.262782202308721
+1.454022011428363 1.102486655046111 1.098287358654009 1.475279593042974
+1.141890718314584 1.175403535607382 1.749113145249825 1.448190946452745
+1.609129463951801 1.552999061209942 1.758532781550716 1.946124478890918
+1.676177012100665 1.718732876621003 1.165199382097029 1.305394020256386
+1.373964796321176 1.517471151393891 1.633721552017066 1.179942422861164
+1.053569482279702 1.555132310637321 1.627582308592516 1.899739927016174
+1.001200961397139 1.821025861528925 1.895874859482682 1.489344430926973
+1.597790620563639 1.313964007753675 1.560388672312275 1.282020238741006
+1.699155056435629 1.373158977216479 1.333284250819783 1.578112185768661
+1.313387509275068 1.696286672082163 1.602956997941402 1.020677419486038
+1.890338531051304 1.647333513587341 1.363447066521693 1.908784982866752
+1.378772310718316 1.842623395335004 1.805129807480961 1.983259048433129
+1.946275415955172 1.437295139642739 1.168346365041913 1.649317303973296
+1.881487926985687 1.662038078006523 1.624056757594972 1.270324351173778
+1.698582914890080 1.859989610497138 1.571910033186808 1.833978205501979
+1.646935824472681 1.535662837820396 1.923976285561411 1.511276720496884
+1.381858073007699 1.991790724988709 1.229977324952031 1.180924273642502
+1.370748156020668 1.300453856287782 1.402881997203312 1.448565716949421
+1.453116926301077 1.597875692350065 1.967665283515045 1.404438936054681
+1.743704098944950 1.933252696141306 1.469015272567910 1.667613676788038
+1.520754667987124 1.629100623293009 1.984952186007245 1.077980553120769
+1.473734676069971 1.481401908772406 1.736483550548079 1.672509444984532
+1.253871464814775 1.082254955375431 1.694882177905507 1.722353268973232
+1.863372207929879 1.430468432199756 1.024297818593871 1.350251847618139
+1.578922691710723 1.453827126826180 1.164277736039045 1.849357747257191
+1.032838804988696 1.762721977124866 1.308077379401025 1.036410270038605
+1.584495580402602 1.401522328509553 1.071148197854772 1.020500778937129
+1.334136780576306 1.695609964867840 1.812486953114941 1.685060550108686
+1.077106411206443 1.738546512132344 1.117645662762082 1.519614787842219
+1.941927612103484 1.265804513433322 1.436794471950811 1.676570322196508
+1.033397734899827 1.682682320205481 1.439209714396472 1.487069535752410
+1.352567880760356 1.475691345830453 1.365422828198806 1.062663887596496
+1.430963358491116 1.235693081789215 1.641038351297810 1.163301452473766
+1.185849782396237 1.488420463473481 1.712252607812814 1.015554011536708
+1.134685080622060 1.412712643086033 1.519664921919980 1.243779232282111
+1.824302963170283 1.675266937322566 1.637890331709163 1.929410126947345
+1.596303998915515 1.687712867284267 1.775267544767174 1.256549223571468
+1.196523537900338 1.964283693094157 1.802135076875411 1.605244771240010
+1.233987129268211 1.039028557242095 1.837448666921568 1.619886396985252
+1.753901023254044 1.786038515546382 1.539038365942016 1.138503241652778
+1.657617406033610 1.098763921053050 1.486121726045871 1.015375768731652
+1.484124816958340 1.099144546895415 1.904765508049678 1.284092823008238
+1.372348637012605 1.647711396717392 1.885987235547633 1.867627773880108
+1.146393187599889 1.843864813057042 1.694510200911663 1.206999540848333
+1.460046403723655 1.124851482053324 1.737439578472733 1.788252121405290
+1.227024113089183 1.667921754212068 1.381183571454836 1.622528319734961
+1.479122148549345 1.921511688628012 1.111648874710583 1.093886749837971
+1.607716499588748 1.813479610422842 1.259360772110016 1.482407521794181
+1.071982582341647 1.352980096115373 1.496101802913852 1.709913933585431
+1.917395441124678 1.109760337634798 1.410635698289639 1.015270376880243
+1.499648135746577 1.944504999624660 1.649576139043468 1.158629670029097
+1.510352654470199 1.621584640924825 1.365433884864259 1.663678800401106
+1.936500420349114 1.637313368083986 1.193524941143813 1.676385241728819
+1.471219272537790 1.253928597112646 1.632605341031669 1.546579204612059
+1.659498630844867 1.552216827362433 1.422715031061483 1.370706917071225
+1.611824972288017 1.583499205628932 1.859484408226304 1.883455710077897
+1.397704867933884 1.159598000764869 1.031920553958687 1.591224986444150
+1.691313898548340 1.429348933565807 1.750783719815394 1.171320605993569
+1.467657764740876 1.664981838888260 1.561640934726091 1.737259315417645
+1.192688515747088 1.136206208994172 1.985446078701454 1.655711904429667
+1.843328974634209 1.841737463106669 1.707989581546332 1.499163925034993
+1.695244920376332 1.302790945427688 1.847318830995439 1.043795423580128
+1.892418705750606 1.503594142935176 1.450507875927778 1.780395562652883
+1.232497061186851 1.404136055758912 1.270958632016096 1.592753837245123
+1.617214569595521 1.310876614539585 1.430712588323578 1.430513311130156
+1.381432892804719 1.707812274148106 1.884184188597132 1.094542276213364
+1.842604932823086 1.355540450586808 1.513345138713641 1.237870566901911
+1.196276622264462 1.024078918689197 1.558608282016358 1.578084319775454
+1.746565617838908 1.116377682754634 1.106913656904485 1.987006903652359
+1.980191426308585 1.280248855101980 1.882738816919003 1.462888240516328
+1.504836479027523 1.095441082459003 1.754095300545520 1.446973089432146
+1.393435208529546 1.933733626162701 1.672712635534622 1.792982000456280
+1.234852468043849 1.315594077171094 1.658891342139201 1.277608890721606
+1.945445739184685 1.712280795338047 1.874997626958929 1.560649997505442
+1.582438822932884 1.372925788747568 1.869457478909250 1.903183266396994
+1.006777416104982 1.355049858044602 1.042816447309176 1.438050525274470
+1.824404184768857 1.150042341440322 1.442890746688413 1.810921593791265
+1.122877561261586 1.985543821754954 1.535833671064414 1.134709942617572
+1.219106675740626 1.657126000318685 1.089059077862990 1.815685641166858
+1.220447936817406 1.282188343409965 1.050589742767327 1.356914659864437
+1.515507727483508 1.699691995513007 1.254001657387457 1.878484286159356
+1.367862579480607 1.386061867428531 1.510265645219967 1.134302564275522
+1.054070580601139 1.491688949913669 1.263050116799930 1.672253124585879
+1.929644155062487 1.020900028015719 1.665772245552020 1.801460830305972
+1.584691784556896 1.297701966421988 1.341333960583157 1.709572112709163
+1.195334410922224 1.302286834606076 1.346506995328786 1.594075278239987
+1.843658851829518 1.190300388273569 1.081878676367268 1.132194479183034
+1.942653061881035 1.046187651748978 1.449528711861851 1.444504079242059
+1.403529547479535 1.705738068639244 1.649007750961844 1.620064350802286
+1.606363264534131 1.099838331108712 1.530006922419596 1.727028043370195
+1.419389195190668 1.678333074521245 1.684551442266043 1.264739599935087
diff --git a/apps/medlda_release/dSFMT/dSFMT.86243.out.txt b/apps/medlda_release/dSFMT/dSFMT.86243.out.txt
new file mode 100644
index 0000000..7f36979
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT.86243.out.txt
@@ -0,0 +1,583 @@
+dSFMT2-86243:231-13:ffedff6ffffdf-ffff7fdffff7e
+init_gen_rand(0) generated randoms [1, 2)
+1.765181698622537 1.745246305991537 1.568323803250302 1.827824719028969
+1.101178624490813 1.347354743836463 1.097191252474847 1.915503700557514
+1.198507374913141 1.056820215705049 1.949530905017576 1.438802247136309
+1.113168914210107 1.005473162182421 1.880358347409998 1.738588520576085
+1.470398480201266 1.219716459013271 1.837640074719590 1.874551284755338
+1.808938223243638 1.668383003032249 1.115300406955583 1.163181563659379
+1.922106723810994 1.936923350595126 1.802628634366497 1.082629484988284
+1.587370539628257 1.432441823896538 1.172268743288212 1.831491157717728
+1.928825729078115 1.922310539778443 1.386074853898265 1.378334603058208
+1.723615386792368 1.540648589033718 1.656970306859184 1.844043106092863
+1.555836120506224 1.999896592709473 1.853352918680036 1.826933747645315
+1.736713747181102 1.513294397458937 1.546593581819660 1.860704539910337
+1.371853620956868 1.419984620099757 1.647054894547300 1.887395868536668
+1.428420872930164 1.311981141985864 1.988023472416104 1.134036598799834
+1.235580280162740 1.259113651453670 1.419399134575188 1.042720760931558
+1.651289365283661 1.548550129439336 1.859966968643592 1.615119453661597
+1.264497449827219 1.598074861875461 1.022440023152810 1.322966629405794
+1.572172545633889 1.203911852660756 1.496889958503653 1.184677344233060
+1.453116488939879 1.224326576422344 1.068084814263264 1.171216483512322
+1.427853718951247 1.993690417273481 1.852303917623169 1.676947495251420
+1.533100700146991 1.267120275699945 1.862542440874861 1.600597499739502
+1.967221430708965 1.855250972969315 1.941185148042623 1.457490350448913
+1.907588159086757 1.796009630705529 1.064967324350087 1.618347580488876
+1.632830085721547 1.160888038651240 1.804860885189167 1.880905550607828
+1.844278400305870 1.642451115788039 1.429416146432916 1.901759970090507
+1.815413566652753 1.424832002240010 1.354727905525034 1.122360321077222
+1.012572981000545 1.015763668810936 1.891678528301639 1.980640958299456
+1.533363609581372 1.430727622568518 1.097689487366155 1.949555353797812
+1.202929686706243 1.343122708007109 1.112074913600784 1.016983654888810
+1.926053876299638 1.679111656183790 1.098571258965397 1.092818989794304
+1.830426448351739 1.988334889411491 1.040654281245255 1.279287447553215
+1.763543530562832 1.796547152931268 1.956540187264751 1.658161869178510
+1.680106990697865 1.746266539301626 1.201621352481211 1.392789566721822
+1.798374237531711 1.099507187934515 1.151613671578146 1.642836422397526
+1.394010457176212 1.908774724051728 1.652830353018381 1.075902580123474
+1.020615822722915 1.679231786206548 1.026693555555979 1.587067868537512
+1.673864958102685 1.135047412974155 1.449848718237269 1.786867681651178
+1.454871508468653 1.804602011771945 1.993983311302764 1.881556468914729
+1.913060918995395 1.744351547933984 1.851805726786879 1.818953471659235
+1.083285476571109 1.579121160880582 1.338182862468443 1.642229591990822
+1.200361401577975 1.079700334549017 1.335270693391085 1.129067890267160
+1.968758232510427 1.263791606117672 1.692877076067957 1.315429957490577
+1.062781828378683 1.960654976862618 1.289757198065540 1.174189778929012
+1.488621632393077 1.315189254090391 1.034382434227362 1.198705210603501
+1.412006267851311 1.591607285532602 1.076163103387708 1.807556117132787
+1.385936697005033 1.760787306118299 1.884847558037312 1.305473458637252
+1.215448272005204 1.951385670288744 1.741167378873126 1.331980404386577
+1.142829750863100 1.466719607772948 1.583061056920620 1.428970325753858
+1.952884860475229 1.012456627141712 1.523556414830881 1.837802456566910
+1.437731327944644 1.037070415799667 1.283524853924399 1.811033321677483
+1.634866452854624 1.343979449130309 1.541404565872617 1.662048861046135
+1.033280391222266 1.775954466874242 1.455111618369912 1.848549629564364
+1.884676089912528 1.125653053589357 1.959070554696008 1.913756020486574
+1.109211061685908 1.483390517826735 1.348508942030833 1.825915674812873
+1.993192890415165 1.012809846243837 1.654779113430412 1.510333638180296
+1.067164512113739 1.225785309951452 1.109532612859639 1.406670116334418
+1.486887796325284 1.913848782642950 1.780052489951587 1.624459001149832
+1.872993995801541 1.650650466651943 1.213840666160247 1.998197701220774
+1.668146985224236 1.185925420210720 1.810105157063410 1.954448593133374
+1.873145785887645 1.472039965825262 1.831596006614854 1.202032023151840
+1.611156721311658 1.009669067094778 1.558611615927114 1.315056750149521
+1.817372902313931 1.123291134957301 1.296759272380209 1.517093896781869
+1.712898885613581 1.414576152760222 1.820019430619521 1.048550997083760
+1.367246312611533 1.032874899882283 1.800491740511595 1.066723084898765
+1.773135594421367 1.851127158305219 1.333618126073145 1.802284471304903
+1.182210268459392 1.014056903489282 1.775987174449475 1.773327070538553
+1.828975904252808 1.693281233817192 1.641100452977166 1.034502450092455
+1.340466268191788 1.936961610475072 1.110799031238582 1.527171929115034
+1.293810379249919 1.818221951737458 1.358024704174534 1.272600840191142
+1.016009743264447 1.578567156792449 1.177784754990610 1.086779855994773
+1.867088609505160 1.004672484562085 1.992406324716299 1.986121486422956
+1.529902309790933 1.926083706854077 1.011772281657290 1.643412762389721
+1.931035184316172 1.346901622973077 1.441356570167401 1.406795058452974
+1.765252633392875 1.516301742972715 1.015761535579996 1.638085752041801
+1.162772364434417 1.095208699832609 1.391734646280789 1.235664459126808
+1.019676524034859 1.528586692489736 1.052297548249224 1.835943873553864
+1.475327256528815 1.716834648968639 1.278266176848869 1.723823817709478
+1.388127475590246 1.080541418285107 1.840108853369243 1.373439731055300
+1.265395840477185 1.203780678679644 1.975130433350111 1.867466841294212
+1.878463183528742 1.157226084915556 1.394114137602386 1.124342568654775
+1.131159729394239 1.988518367027182 1.939323812792199 1.927805787147309
+1.118458810939963 1.626609382291518 1.937786017236739 1.421418873905099
+1.206850404377509 1.359848669419079 1.014618648257808 1.459689904136230
+1.789003190472714 1.986307305160725 1.876817956552387 1.684135844924953
+1.934742272623396 1.000909217026576 1.156515368067990 1.391465474532883
+1.435555846167849 1.600637205502141 1.725879241049715 1.435794051653276
+1.757739656460197 1.279637749755620 1.490761648874604 1.574039399778558
+1.181152431034085 1.779198572833356 1.313273213866911 1.702794550671674
+1.027646238802732 1.403079472013286 1.173452466915214 1.919019303140637
+1.464610092104253 1.562982054995365 1.169813169360054 1.375495458258749
+1.577407661995414 1.952793140810516 1.468709071137478 1.248252052337165
+1.703052682323164 1.359533533757940 1.124695680955881 1.636765701836549
+1.253665060970316 1.600449105416704 1.379116079262188 1.496848728135161
+1.751140455371046 1.462731882854913 1.549256751885526 1.461669635467756
+1.722416764871353 1.290084322018083 1.123188816773292 1.301006340510989
+1.937427272641478 1.446079619504306 1.088358220531568 1.024718045853601
+1.102650073969364 1.071969536330223 1.838982353258666 1.666521700502796
+1.122610902839273 1.395875702861696 1.436306185229712 1.894504864563977
+1.068702625278251 1.239472193958679 1.962778824555782 1.200201818246346
+1.303015907130198 1.799113569064334 1.445412642526590 1.809147857103547
+1.238443468857320 1.496480876190895 1.079560068835407 1.168635708580150
+1.543275570650001 1.849126421161412 1.198378432081132 1.013228927895050
+1.691275462290296 1.900465624074946 1.230202106078925 1.128850251462093
+1.151619745466050 1.654147239829526 1.902441181223814 1.987946811067963
+1.938877748102251 1.426702914470791 1.092476736179220 1.321405409766963
+1.194283307962829 1.284944723877220 1.932408461942359 1.415704461857767
+1.018447279710538 1.618213678015894 1.664308898021911 1.261577509572813
+1.478023724787888 1.891947167087979 1.848401990668871 1.782994962374103
+1.942198389082806 1.566719214123350 1.059797720074661 1.749424289698460
+1.391112344660477 1.895158092997200 1.277312020410567 1.801585819721319
+1.208352989766611 1.320917912913223 1.486096677343459 1.622996800055332
+1.492868422479627 1.515718618375993 1.181962152396699 1.169929850603476
+1.553562602027784 1.137156126957716 1.209651142670455 1.670640360557465
+1.224512313871679 1.630216271936377 1.542669034938237 1.378875118301463
+1.363728363924662 1.648926374195947 1.219805179822903 1.716539345132784
+1.086823708381953 1.343142365608595 1.679134068366727 1.087541955934166
+1.957427348994582 1.438912759743293 1.370939354300884 1.534197951796541
+1.747197890857597 1.361769466104670 1.963772676146914 1.704627322614822
+1.742176773561477 1.667261932007193 1.800904937486759 1.717138519710238
+1.224195257025371 1.612072008274384 1.272748070256907 1.568440204983352
+1.691706017859623 1.293555953048671 1.077030889109707 1.390029565933167
+1.573453237440895 1.104937917231554 1.465692292611692 1.782263849769969
+1.140015288022792 1.871434657969255 1.561940918025713 1.411908116453118
+1.874410684780529 1.993440144014925 1.353136265617813 1.507008799114608
+1.483296950035340 1.494740996307531 1.556628267975761 1.307744257149760
+1.625618300367467 1.062079400372077 1.057590932560323 1.297402579782033
+1.988655383810324 1.907156587013846 1.462849852118216 1.897588506999880
+1.197651287155534 1.646834383574471 1.151527603722896 1.182933234895832
+1.293151090428494 1.111646109028054 1.720622708140405 1.397432216812145
+1.478218011356130 1.092601200142591 1.126568480619334 1.294795390344866
+1.698938461259925 1.659144579905487 1.180023283715762 1.751221216618334
+1.746564888891533 1.429666263882942 1.038482907825517 1.980240800634207
+1.910725577956144 1.498218851214196 1.416700693155990 1.379603131728697
+1.792464338898084 1.885204544368212 1.922233596302223 1.365346932891215
+1.024155822247981 1.336943019326279 1.519142086124668 1.120802566435804
+1.293358872865403 1.027629133242975 1.465386246336582 1.786715901674912
+1.165632875350794 1.022141659992823 1.841937409487360 1.694814071077547
+1.018455256282212 1.546260560177632 1.999832788050763 1.161667378601514
+1.847351009908086 1.323388401209629 1.048949329075631 1.388985358117510
+1.776020175352763 1.865836517708517 1.788533941814778 1.824521536909850
+1.873389911761783 1.637292100178774 1.413784876210428 1.799382426024530
+1.368104333446846 1.546597501730773 1.187105930747827 1.304252893638089
+1.643409751552936 1.213498188101350 1.958442791294501 1.939911346821125
+1.687094914842765 1.119481094592695 1.618194142790804 1.979636464094353
+1.150866953123993 1.865083309965089 1.031747566132454 1.124789824912707
+1.978930704637029 1.502086570240513 1.452274019498635 1.963070075180064
+1.242613010586402 1.896349066255181 1.594937238901222 1.411797617271013
+1.794637258488479 1.672253632980615 1.589673691578191 1.094475312600989
+1.837903769941812 1.481567738115929 1.494438629507939 1.129172538108133
+1.532272492843403 1.557311109310921 1.918545034016105 1.775035783640481
+1.743745386659547 1.295092737295900 1.454029620888463 1.649981436338684
+1.143333790736386 1.351491227152009 1.935474001687845 1.538463321926529
+1.786130035432466 1.053547336603017 1.462056155673015 1.579673004315338
+1.513470990269053 1.856214085904243 1.783906342733630 1.786650666574873
+1.375010871637780 1.024761392630316 1.360927817894924 1.368451139532735
+1.365579440530325 1.314952907722951 1.887306180332726 1.484213028632913
+1.940361937385803 1.035602201717233 1.129777045190485 1.758232758814659
+1.459510877790539 1.844031162901254 1.832746279318737 1.249313039125413
+1.781518445177559 1.431220733077604 1.212759376085801 1.945961693736160
+1.037579539372921 1.582555889783809 1.319943195501952 1.314826490066794
+1.859237877006167 1.500943301392903 1.725975350169460 1.565324883112886
+1.251351286537813 1.120359770857204 1.487701766657701 1.260670218365100
+1.918809381402178 1.841018727067248 1.117846086691507 1.482012304760719
+1.916321452787173 1.293888540464656 1.517418244314118 1.354297266774496
+1.754865578447874 1.712031493216768 1.221042051153310 1.679805447270929
+1.819283003463785 1.819382926524981 1.402941869911796 1.907275625381316
+1.203242952136053 1.473948961588645 1.128054707062773 1.895939337076149
+1.078966618186188 1.832724290829804 1.861639589356326 1.977743374592785
+1.259588090320708 1.915670495520275 1.393482997093435 1.569586055783059
+1.481745985020910 1.595066474207120 1.432108675145872 1.561396317419155
+1.783652463590260 1.329251877091409 1.618375577453999 1.558631597045066
+1.599063670565567 1.741054632267960 1.372301488525752 1.016548242373889
+1.559519439073526 1.370590902981919 1.921039406065929 1.107246013591695
+1.659759893615315 1.900441462359926 1.580012807188733 1.091578182359097
+1.932782532894954 1.231996344723508 1.617875958115805 1.357664375692964
+1.588468823257081 1.037932653693002 1.371234948780345 1.258180968011965
+1.976764185802762 1.991652271151890 1.091392632803220 1.092083752070380
+1.604714589890404 1.974742149171720 1.124966418984710 1.656350222787129
+1.695483101306601 1.699320118825182 1.658714043151847 1.029315210943554
+1.841943784373793 1.733080486054383 1.568000696060901 1.592831264369103
+1.273054320845459 1.611250159356393 1.434657773591387 1.728543422219396
+1.956575537459281 1.296623512566873 1.070981142143286 1.853865926244806
+1.206304880704166 1.835248381620395 1.440449469597250 1.881854861460665
+1.250665292902728 1.528860022162953 1.753480718048217 1.634191099402922
+1.797606237673580 1.910809638354700 1.595142324279089 1.183416581282852
+1.916119580045355 1.998033715516829 1.644376708776737 1.337881644994370
+1.178878216861483 1.688358544499397 1.246247514000007 1.870555969128016
+1.259293581953224 1.560041438314253 1.716793031804198 1.965342277469010
+1.228116812120409 1.934813532728185 1.451103405210389 1.847074273623497
+1.090084635708064 1.022506743994978 1.453622615260245 1.584226806652578
+1.597658086020938 1.911883173273727 1.069273035611692 1.191731769743444
+1.015040387272609 1.681088145737434 1.904033158305277 1.911585980081726
+1.913747162343853 1.180399264172948 1.361560200402788 1.756430976493900
+1.381302786677119 1.028386336161107 1.166210134454762 1.117725684978119
+1.033286021486845 1.097858849692188 1.401238513246435 1.446651044187296
+1.955026556546057 1.420245834510974 1.739630862598490 1.475221338750612
+1.241747112765427 1.700251858229489 1.429814177955195 1.229650975372353
+1.645427653633940 1.061509354074771 1.184549093119586 1.762979813773580
+1.777238339782029 1.181747190832234 1.912534320285881 1.169305072970667
+1.613294709359736 1.341000257164350 1.858278245943615 1.472606163180491
+1.924132247525617 1.834439584652618 1.172647444036857 1.882097658546868
+1.707924569161488 1.096293647674919 1.217248067037098 1.337348099447045
+1.769981837647416 1.506064398662110 1.145497935771961 1.382464227761812
+1.676613135343704 1.014251988730545 1.057863604198584 1.200840843994221
+1.689404253148530 1.367926716309379 1.965938348516941 1.059722300583116
+1.073915180348722 1.969814918347046 1.007615021467893 1.645935917301272
+1.091845111128858 1.497190185261378 1.860369656053488 1.315623836023449
+1.788649844546876 1.161018493872004 1.626438230713552 1.091516811386478
+1.291244763405929 1.224353271933494 1.775976689029614 1.016817313887759
+1.833788695198919 1.426590031247827 1.321025866452862 1.695713834041285
+1.120640590742863 1.006139487633286 1.156531942031453 1.574911461099536
+1.592455756197654 1.237554486061539 1.829420147179386 1.064873142129399
+1.169152241269042 1.885575194973257 1.038285876564215 1.894615590835598
+1.293332979511608 1.595763963610982 1.612166818449471 1.151185792681045
+1.203551210860576 1.395496822378642 1.270750155930870 1.841606323055227
+1.588045338335281 1.018998980902109 1.484652988358415 1.810100868522168
+1.746558374945856 1.113889961650809 1.441115175629752 1.711052056625284
+1.035975130211925 1.572330095659111 1.539954624603103 1.390840637672199
+1.819282864771697 1.768993149687688 1.466722850184936 1.451811529139108
+1.583138417675695 1.968092881222660 1.934634490887243 1.264630929474258
+1.595834438227716 1.265452218154710 1.906421782760032 1.208584980134083
+1.222187053780145 1.408898484042242 1.422273321289183 1.445285080554976
+1.662080474986205 1.177438413081955 1.737895673172001 1.706672336635251
+1.481507910910957 1.120181036604791 1.520431375569747 1.514881047873199
+1.089566204864569 1.304385787667680 1.958108897777294 1.684522930521926
+1.748939281359210 1.300243787944817 1.485880998613778 1.303628558526038
+1.137397015895302 1.454960658773818 1.568619062658275 1.444702499145037
+1.510773370712016 1.781557716648353 1.934103586229055 1.941172163765913
+1.929790785666634 1.799625504029669 1.854377056362114 1.093059955571616
+1.469135803452373 1.906149701617822 1.642755145459556 1.587627087490895
+1.285498147558961 1.748389911970281 1.261307923373304 1.881490852207552
+1.435832215350323 1.970898709817613 1.286913926992240 1.685376952896717
+1.114921493298527 1.483647118849966 1.271549161988442 1.178171783721514
+1.879458718382982 1.055612829529943 1.959653206466555 1.966549267065608
+1.823113569060532 1.598472963193942 1.717943347498708 1.788611246842354
+1.785607807089060 1.935863903082454 1.174960077680216 1.886361632047457
+1.405052391691461 1.935248078463915 1.852231404234931 1.314888994372923
+1.323584735475146 1.004988321827554 1.684950479733927 1.759059116079779
+1.328234024028569 1.405490947199401 1.813953499561161 1.753783570407989
+1.460025291518580 1.071700633164818 1.566616486396957 1.506487957528125
+1.486016119187150 1.353043411988975 1.013118639349355 1.538394604806296
+1.606680086865212 1.249277564072503 1.663765995782528 1.075456171683636
+1.781575786787980 1.029034917780994 1.259428008004228 1.492390767384672
+1.098738030341307 1.269272999886151 1.232438465676879 1.209900488655003
+1.969091919854231 1.088964432565811 1.913960592307423 1.105495417415797
+1.135007125702042 1.665540160018957 1.381740847844799 1.879101210905876
+1.624704899913272 1.967298191224754 1.656823557849005 1.185334551587790
+1.484105266625636 1.493209598339335 1.686502880240643 1.096292070043313
+1.619571097993498 1.195610252532715 1.319269375125530 1.315527311257645
+1.823012980563282 1.921849186157530 1.482471534309858 1.686347999576689
+init_gen_rand(0) generated randoms [0, 1)
+0.765181698622537 0.745246305991537 0.568323803250302 0.827824719028969
+0.101178624490813 0.347354743836463 0.097191252474847 0.915503700557514
+0.198507374913141 0.056820215705049 0.949530905017576 0.438802247136309
+init_gen_rand(1) generated randoms (0, 1]
+0.194901719878278 0.704504802589133 0.661425206834088 0.657149314391731
+0.186843699820924 0.077986495572482 0.086200777814610 0.527940743534187
+0.299184565757858 0.739601976621067 0.012431977952007 0.347952208466035
+init_gen_rand(2) generated randoms (0, 1)
+0.075533231096734 0.307354304506435 0.966527714678182 0.186457407750199
+0.644960401845214 0.314541181851816 0.453434663290944 0.440182700666382
+0.601386637833244 0.559156405302471 0.984424835383663 0.999128106108649
+init_gen_rand(3) generated randoms [1, 2)
+1.492018114697780 1.890020212160121 1.245108278636401 1.076281116689201
+1.452912992227328 1.968601111847805 1.201521801181943 1.126832182196626
+1.695974245608814 1.611186964340638 1.955708296329818 1.210756230417589
+init_gen_rand(4) generated randoms [0, 1)
+0.404446092837087 0.762445918898612 0.403741481094674 0.407650347885022
+0.124416429160289 0.011233840029980 0.618571154323500 0.461122646194172
+0.991303052539951 0.330562747526625 0.752772140969431 0.398027333179694
+init_gen_rand(5) generated randoms (0, 1]
+0.109001222977698 0.210206723085946 0.683579921697138 0.119935382322660
+0.691957239677849 0.444409500203215 0.380763396888432 0.291656046710515
+0.870460053910269 0.236025682714543 0.559036299162257 0.342945413589363
+init_gen_rand(6) generated randoms (0, 1)
+0.078381323455834 0.011699383992331 0.443109769311707 0.528539988698759
+0.415165193750453 0.023859791355018 0.667715479524992 0.863242539404107
+0.650670970328711 0.775510845357363 0.491547072216528 0.622211856455525
+init_gen_rand(7) generated randoms [1, 2)
+1.584934805509316 1.676650238560128 1.325851502255890 1.276580470236778
+1.610600411911038 1.863296998157230 1.548340681088135 1.199033296390817
+1.899963452719032 1.044715319922058 1.054712159521490 1.162008994228031
+init_gen_rand(8) generated randoms [0, 1)
+0.993087689380468 0.151694904269749 0.418651866233654 0.116025502289459
+0.783078619170259 0.235562258747579 0.496284822061449 0.212042411542110
+0.413707988859745 0.779160118542302 0.983189708502100 0.372500143880130
+init_gen_rand(9) generated randoms (0, 1]
+0.282947982966924 0.179393383854032 0.086727286066172 0.564683359419456
+0.459961978215347 0.568495118639881 0.951889116009463 0.565191775861626
+0.604064217572851 0.386086130527072 0.465369030315200 0.650437732951148
+init_gen_rand(10) generated randoms (0, 1)
+0.404761365582273 0.154806542056355 0.100200757486543 0.330039633182131
+0.147320225666558 0.650585900324658 0.687289496381154 0.596462000561654
+0.509626564029628 0.044124986252273 0.584995607733763 0.997955242203390
+init_gen_rand(11) generated randoms [1, 2)
+1.949534075530223 1.749223075302722 1.441445706072386 1.888453719616569
+1.880186623524096 1.103259611051816 1.952616460650550 1.111848369225773
+1.172651548435438 1.834338861987819 1.104088773502243 1.507518352519993
+init_gen_rand(12) generated randoms [0, 1)
+0.052650487310517 0.395536639853791 0.168785774512398 0.053515488765646
+0.217241512484666 0.303445331823205 0.222180922033841 0.161149424473557
+0.184475531515527 0.902208045549648 0.847056488614387 0.309018859064990
+init_gen_rand(13) generated randoms (0, 1]
+0.973715778804144 0.318106178587077 0.550007669382480 0.275705172377627
+0.150396480159389 0.939084492074700 0.801092172170056 0.283353384863843
+0.133465798903162 0.605691053031846 0.749663080542232 0.088437762113786
+init_gen_rand(14) generated randoms (0, 1)
+0.406939354190244 0.845881531792185 0.274995087134765 0.679278999119130
+0.337862594866596 0.443640591780940 0.714052020386318 0.836651939558780
+0.671162535935649 0.848525372393848 0.138786969015979 0.953465343634057
+init_gen_rand(15) generated randoms [1, 2)
+1.067093993646144 1.850924716687146 1.429231073178040 1.636396685323697
+1.105412073865045 1.210032201642627 1.979586592960941 1.145551718005026
+1.520506588279160 1.781928096273893 1.362878128916263 1.650050661470644
+init_gen_rand(16) generated randoms [0, 1)
+0.180546093331636 0.138655300154890 0.301233148539964 0.569501474140356
+0.596206484700007 0.922474129190981 0.388092195335005 0.500671429936854
+0.674375041605038 0.620240442810709 0.936833865719104 0.932014322970933
+init_gen_rand(17) generated randoms (0, 1]
+0.543913232352891 0.077207633047800 0.208463691837219 0.404261569755241
+0.074803177834139 0.787466269917197 0.197723832988593 0.653543764877567
+0.018842481297696 0.396566918000936 0.363016138264126 0.911004558439271
+init_gen_rand(18) generated randoms (0, 1)
+0.971145432607785 0.939036408534919 0.731639159839990 0.689030721750226
+0.009939267817058 0.801742263002830 0.688516010391608 0.827135228918788
+0.017555728748372 0.135131796395826 0.307032060353549 0.253574644053649
+init_gen_rand(19) generated randoms [1, 2)
+1.206359927616818 1.384099300915000 1.324799613402432 1.613919654852769
+1.481833753473305 1.240074768871680 1.758993934916584 1.942388435239905
+1.384200053935697 1.743561097833459 1.833415104799114 1.655249068290933
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.892883535970683 1.412729648325166 1.671331522024335 1.491754256116798
+1.640782364538883 1.138537372127294 1.799409142764807 1.163684350755241
+1.229925960807332 1.849274940142888 1.905288256013054 1.455444393466866
+1.466476479491652 1.125487060817920 1.520577518909817 1.183518247040530
+1.702266127360309 1.073690518227274 1.152846104032462 1.530751755640782
+1.459972432194013 1.063678729939558 1.658711612084381 1.084494379723460
+1.335521615188879 1.568912024036566 1.417718060433492 1.808005670671835
+1.924140311809461 1.215213978438946 1.514759483341141 1.033155875786421
+1.958168576488854 1.155392449510447 1.630739483278737 1.539723999402035
+1.457799074737938 1.841373065285390 1.333891876029118 1.437008808435304
+1.572276744586120 1.305618593536721 1.833973946315542 1.023399074163787
+1.898127450563273 1.072618922408668 1.534549825711466 1.666957191622554
+1.972641419977536 1.639777529361145 1.140734743400649 1.281725947813902
+1.926402419343359 1.719053165493510 1.421013858130173 1.160371296456321
+1.279434062637889 1.160375134462924 1.001975579602963 1.560863459997070
+1.593018776279469 1.601324762293449 1.763362354057583 1.792270883314924
+1.363875822899573 1.337219831878515 1.689338956406800 1.723143704404565
+1.093448335243821 1.622650792649855 1.816657507365717 1.547645940239628
+1.543136065746179 1.411613810848376 1.362536444190654 1.911813256879002
+1.875832087102147 1.873401500029658 1.631001363719382 1.513003767828617
+1.115898538427347 1.271173058339241 1.419319773467827 1.637741412235380
+1.763392722333766 1.814771619266672 1.493188473743233 1.529710163929633
+1.940105049199991 1.784797510332415 1.130809905184486 1.127130972184221
+1.411541161977933 1.434107110881052 1.028023353080114 1.957663319355696
+1.426810702259658 1.440705896432679 1.974919444174774 1.373066932534486
+1.953442140704209 1.932028943642709 1.534141593992370 1.070647501466886
+1.163054442518166 1.049513688851820 1.932227846663771 1.936688895344145
+1.027521728760087 1.055960925039709 1.791642159219365 1.035481677717621
+1.108196504847673 1.149055196151225 1.786734266089681 1.152179489418855
+1.496470410777792 1.114263046757201 1.748312758451084 1.693844190412148
+1.104392210916629 1.657498802253537 1.767963699856473 1.299760712204195
+1.040383937590463 1.589665040565259 1.681583534374294 1.243383081639149
+1.810703696971720 1.806866131310606 1.348989362366272 1.685004798705723
+1.680755625528683 1.884167213831646 1.570343862276996 1.492537513782986
+1.532337082987993 1.980110737861026 1.938007122662909 1.280708779421938
+1.442677918912522 1.579474804657615 1.594841258927511 1.264836842165308
+1.311571538622504 1.989563719363927 1.871566290559495 1.414337487864363
+1.929845604490232 1.744958629272895 1.982239226592740 1.706549722128557
+1.689918704373632 1.600804379217534 1.129247368929106 1.914132443738556
+1.965191732619471 1.187965534488047 1.376913200057171 1.021724019804689
+1.507052177836224 1.495762984476405 1.055010357156913 1.445139861703770
+1.206274348339985 1.008529586620759 1.735401038800223 1.085874036525407
+1.611532162819708 1.578812401734480 1.652238902744779 1.462674225718016
+1.087188988620069 1.627884627500877 1.279934308016366 1.830495937195550
+1.399200473965334 1.890610193558726 1.861485998765988 1.405627314542098
+1.278843045231615 1.294741581177296 1.464422722512821 1.651635203218117
+1.635314948211465 1.730601699533330 1.972712954434677 1.245768626256637
+1.978810920527791 1.471505435972323 1.902744469598693 1.873205357955142
+1.911027378324191 1.253047730381165 1.768143371079770 1.316168955503440
+1.193587318447920 1.559336754423158 1.889099262727965 1.301983275724697
+1.737975720884597 1.638300104702087 1.204309704066212 1.321810624497851
+1.344595369743909 1.263491451989118 1.595812257131693 1.729468196568482
+1.117111598905744 1.792280052307747 1.496994876988181 1.251755495861555
+1.633477921951994 1.365564372779219 1.441553688504611 1.169133674557640
+1.928708019017703 1.569692282893167 1.091075198220127 1.067653522910994
+1.068169059356097 1.993248808017823 1.576352056170494 1.824187253390225
+1.733486191564744 1.453876050244114 1.921664241054918 1.759018794786757
+1.451744584486570 1.450209034444704 1.442647267001538 1.289107096750896
+1.671392632776305 1.544407483299344 1.384635855016658 1.481864183752185
+1.696251151275604 1.783452797672608 1.579488168616662 1.634035803587876
+1.237690310981975 1.022171430230068 1.863906647058764 1.106773278277205
+1.719679452243301 1.922310454135831 1.542156688754202 1.786047085638752
+1.207798526212639 1.270718731967541 1.735785912826273 1.561157631290771
+1.638043591645478 1.563111247643481 1.349218209960434 1.373645269964001
+1.162848368814627 1.569745017839139 1.972436707959775 1.638718770166380
+1.758352365211530 1.172663378661321 1.955683074103130 1.508540813563666
+1.854844198233054 1.942023283559082 1.656995981472469 1.017981769672493
+1.052255534865106 1.677192399830085 1.351898694564238 1.575571981517042
+1.501324031161446 1.450487718631524 1.776295370894751 1.237705775224218
+1.140562157650395 1.097447595810275 1.304618311342153 1.597477001925518
+1.440003835297784 1.863222211346717 1.999908084772400 1.872057971114213
+1.334188921623872 1.738949846134105 1.667963471574521 1.341306915807424
+1.368480138281057 1.184659998138869 1.691045124092394 1.211820093524902
+1.920753946848070 1.126406272764826 1.194252154255981 1.017259074737733
+1.908107914547312 1.800589814919878 1.362796048370516 1.368537524290153
+1.951277709444311 1.856588587052369 1.278734905583128 1.843223475762043
+1.016777877453271 1.392066673944278 1.823948078652580 1.587354809206956
+1.158765677081806 1.294225191294099 1.846738775492889 1.534188468279791
+1.343401621776340 1.796903233339115 1.625274642582183 1.098912239484034
+1.243311159354215 1.720437203477467 1.881632808682163 1.612125045759396
+1.044682741463417 1.528459408456039 1.433239038831055 1.473435911630778
+1.452882017530115 1.300399659573286 1.254727128816810 1.078264051449046
+1.634844626161141 1.239050463038994 1.437552104298563 1.385797256948009
+1.262921343016858 1.531206233056216 1.657578845487789 1.600045773522334
+1.455093418751433 1.661666207154943 1.739394081236747 1.658791852524343
+1.936837400591283 1.669300617619986 1.680819453026682 1.877312138682741
+1.007189530528980 1.096524826206353 1.133622989934503 1.264660621196395
+1.963756048723907 1.820396774199387 1.857961915412066 1.751927323144509
+1.673288067693735 1.003727803632753 1.694001258177293 1.814858077540340
+1.546695931565367 1.831149490530607 1.280316659232685 1.758143933223230
+1.022404902573756 1.763554645476943 1.402590133139446 1.714314562338457
+1.946956951170933 1.493492192509502 1.759974250286904 1.689097562794250
+1.876613615127001 1.952094550438887 1.292089192790503 1.794314246625205
+1.346154490689070 1.454768517600276 1.534481079312396 1.743668817294108
+1.745382762763341 1.695472312410882 1.239803705153952 1.758914995271617
+1.336060371076850 1.505706101489674 1.325180214258528 1.910279844510657
+1.814269520849608 1.220687672179247 1.726134286194186 1.973334073173328
+1.867260225943137 1.277032614842357 1.073354407101281 1.093247614737781
+1.734053608597106 1.240725986484424 1.776926124556596 1.793138272933625
+1.109584008512065 1.025767905824009 1.085742832193251 1.623303122518830
+1.171692193582825 1.774204209695847 1.207905442085815 1.509740830779112
+1.873203344165543 1.749396903551340 1.717102066455405 1.654910739513974
+1.231735918618837 1.817386118826986 1.134291291003065 1.982393467453816
+1.981304243123793 1.504861937479236 1.713762054832939 1.567126453942604
+1.997064256618935 1.306282099688974 1.176451248795271 1.968756679484494
+1.768165764348702 1.488038292644232 1.086456139279368 1.253698223993535
+1.679169691586090 1.523788275296410 1.434558632378724 1.249154833986132
+1.506963710046743 1.123840236262058 1.566804941810517 1.337582393651970
+1.956235424365989 1.734923522467034 1.487087691479413 1.995226766768120
+1.805517393436494 1.565057951250842 1.604163706947308 1.435268727736281
+1.664512543158169 1.008274178384185 1.160018686139991 1.604547220778960
+1.911397109322830 1.775893068630516 1.386368236987307 1.958796101533894
+1.188719914125402 1.004672907433272 1.203671859947236 1.081575824460157
+1.111168478503118 1.656227733088723 1.786047343158604 1.556069277175311
+1.598835806191631 1.472716676129065 1.025864067676781 1.793227901675173
+1.075638031491737 1.623949445067573 1.332915717539533 1.539856941323099
+1.295603331457711 1.190197733025336 1.152787838289298 1.068181404163693
+1.776787834542723 1.165806921215398 1.713201842693225 1.447696487606869
+1.377773467112059 1.836534190980891 1.734569538737740 1.315043263871589
+1.642215853908334 1.241428995198423 1.708074310236120 1.823541529821143
+1.935456268912510 1.085676684566828 1.726964366654815 1.558923720130687
+1.790803914212687 1.690616261976467 1.040823967780562 1.973909865489155
+1.171897159328651 1.966113481565902 1.705301294363308 1.653724462253315
+1.931305603566901 1.607441581196421 1.957139456187479 1.681599394184954
+1.469469138583072 1.193792624200029 1.089894356570849 1.883337101337346
+1.533833001107779 1.501539669660634 1.007195356591332 1.571673477534675
+1.247270149427746 1.426117138691997 1.725011189497985 1.046443663747283
+1.804461870824770 1.151285534635263 1.767870451917892 1.826611465395833
+1.179812199565881 1.896968484211582 1.816938525004874 1.831533052264599
+1.957024507022639 1.077948636021363 1.397572958544967 1.450108846292723
+1.847930363760755 1.562093016040758 1.576036150758550 1.009414291671290
+1.452574378049806 1.840634978257895 1.608186612734326 1.066287134479941
+1.066416773508423 1.463455477989006 1.537585999769846 1.898015672520719
+1.500976479157967 1.828387315822988 1.905175567419722 1.176970755875682
+1.714922241514217 1.307964620081402 1.685163230784523 1.493747791861795
+1.863805158665034 1.358168749223224 1.788873278084391 1.533146150623248
+1.514364753347113 1.212953188191651 1.957284983725556 1.160492304623622
+1.320395501748223 1.713467709857473 1.420372262118422 1.152473291400343
+1.499651585470100 1.918614608961272 1.571613349756278 1.070833187075357
+1.683126193194961 1.436831727866980 1.970016000220323 1.971907845709086
+1.531092894597027 1.978254581949674 1.237297558707889 1.101898426698781
+1.399964113326961 1.049731512999026 1.889052113234192 1.275794414164407
+1.732926747855593 1.838239168228554 1.345455508412122 1.987903319999037
+1.692751300306969 1.825673028440502 1.490725631642933 1.946950118015296
+1.757279349503608 1.518769842315161 1.130097286453951 1.060616067477641
+1.236156918095342 1.835527605914673 1.427004311494089 1.630992601153507
+1.596319693049390 1.750104592446400 1.190123960062343 1.353338641667988
+1.694908329970911 1.483279168290410 1.387543822746844 1.321243115853624
+1.621520553827230 1.712828215925466 1.469491489787864 1.552149282385244
+1.179170050672466 1.655719423690983 1.418297797448698 1.932051419682290
+1.259774470717944 1.815926264102463 1.796842928971166 1.708587820687784
+1.010876929100240 1.063612446668939 1.284274451805030 1.885531117867440
+1.483813859481219 1.842607863394787 1.676853938573408 1.360040208935133
+1.804778018088614 1.384128389333548 1.736078970411933 1.712758240922570
+1.777651158576886 1.490795465643066 1.485611961937628 1.904681259224649
+1.504883146227576 1.557523364276351 1.809726973359681 1.043393987067255
+1.824959332361154 1.496552126199529 1.556544596357160 1.626295615325021
+1.405086569481394 1.433601074401437 1.514836413926030 1.428003847773940
+1.300891337657429 1.844520326811246 1.582425148085675 1.621310894404461
+1.329486747990812 1.655148494737298 1.228644915977641 1.490027605058421
+1.127325485953202 1.851568158659541 1.902431329839075 1.004458415957182
+1.827348168129978 1.033354207758548 1.863247306060885 1.162182561787849
+1.000126742377630 1.081120942549300 1.775194467774498 1.712623541431774
+1.037628766504375 1.480382501692385 1.394986698532885 1.592572767628031
+1.933002125988155 1.907922742859308 1.875353596420005 1.222045258950280
+1.088584196946653 1.094698698598810 1.138886427537912 1.534792498410800
+1.025406418388914 1.451600911794613 1.789546909602172 1.102266028630683
+1.743876722077567 1.473996903502884 1.601642643941871 1.540954161811467
+1.339280555547696 1.270131485471183 1.418878715463446 1.637893047047019
+1.063116528037149 1.933107118850026 1.060222401391898 1.437811550598053
+1.301695405811684 1.756510040177699 1.037612037250069 1.996985753350526
+1.942635770970835 1.948684063058883 1.302647280531661 1.684829649378221
+1.789437485491603 1.016506403999265 1.026056007543912 1.473810275437310
+1.607904701626775 1.413930104974186 1.602175139589242 1.882552440585709
+1.345840014901393 1.622777758733002 1.027797469359313 1.225714882951506
+1.649676067880171 1.291844581432604 1.213909787694066 1.484672495102310
+1.962529062152421 1.169301210948227 1.975102026968005 1.677680085041434
+1.555160437094738 1.092708734652807 1.797424403830513 1.746950134524985
+1.613356516261027 1.777123360539091 1.258059864823614 1.073666374199011
+1.958201470400026 1.624641845324021 1.695361902573933 1.152931365864852
+1.095555517772276 1.318815824891956 1.957890806936780 1.503295901306461
+1.469906868219350 1.491576151315772 1.842364733285792 1.887090335844010
+1.947061949153211 1.753768877687567 1.833335771158739 1.482640882990405
+1.005994565193160 1.233731047701740 1.623592138217837 1.719036452072609
+1.679729733968217 1.005925843631114 1.236418782242402 1.559916066669359
+1.158188114333371 1.523055958832958 1.427714163855530 1.866332945465998
+1.561819074106510 1.144228608959411 1.837425271957171 1.519058626143948
+1.797360437733657 1.524307126871040 1.827777735685209 1.659493899773813
+1.211487188209535 1.890533754601224 1.185246597980318 1.168212222187909
+1.488190715338650 1.985862665432416 1.521997282848491 1.268093754664131
+1.057713113140982 1.906332857637136 1.663795122560118 1.768533057681621
+1.760431347719131 1.421061547219725 1.151197269673587 1.465884080519239
+1.505671846965981 1.125282523774345 1.015158674539330 1.689354022080508
+1.583659045615800 1.362291949170211 1.948874912914730 1.811940774313379
+1.711593454803071 1.308576828163997 1.599976027911868 1.015647919769850
+1.329858783055330 1.340024046671531 1.598894674164090 1.864631375131185
+1.326589005961762 1.474503771744950 1.689042967861941 1.096504189307748
+1.652749778001464 1.825713576332701 1.975778106554329 1.809141564553250
+1.323268075324681 1.018574661810552 1.020932418663725 1.473283839177009
+1.570774517207838 1.041247905421834 1.757223899034305 1.198037960470810
+1.748783073252119 1.038149260333164 1.003390437487034 1.217947960140179
+1.599647939324103 1.233954377311597 1.429580545248766 1.536665104563614
+1.036222054600422 1.607116453819095 1.780190892127103 1.660204591702542
+1.446353297570532 1.709456876613010 1.426529498191783 1.862662808630618
+1.551593045792184 1.479627543514053 1.073572790002313 1.812249963441291
+1.476849839316181 1.558429287851467 1.370566637626548 1.137249855331891
+1.267369861215025 1.385447756096707 1.816178068018847 1.966198685985119
+1.942675490853440 1.036650013653517 1.613122376882729 1.493577093238568
+1.790572117408226 1.035081662437390 1.890867740274061 1.986454001052731
+1.168816215674313 1.781488805008211 1.197491720112852 1.503078033525280
+1.417028691027279 1.499969199610401 1.659669429675143 1.660760244488237
+1.774073401263597 1.172966432841782 1.613594325398058 1.412170338914055
+1.121733471393490 1.139283137816371 1.973317127817879 1.314226180341897
+1.309143631740978 1.499459195024831 1.955813072861871 1.688408934359716
+1.110856117581325 1.498584753687939 1.097322230934895 1.881033180485338
+1.650633518584435 1.861419240423796 1.889057499792495 1.146373574947115
+1.006025469208762 1.415160747213003 1.001847599272782 1.550310054442998
+1.293540288117754 1.950487237126636 1.912245255369211 1.189262970281116
+1.954934029694948 1.859081440801327 1.480436372393402 1.619797281052905
+1.607987659489935 1.119366265312031 1.694085745909575 1.621570404846361
+1.612992851198198 1.477434103897496 1.079771668801882 1.509162741786280
+1.536746430396009 1.856608643902645 1.212575677518916 1.964465647256054
+1.139417068004172 1.485304864525857 1.384265419060193 1.906567414680306
+1.756017907855176 1.418164385197730 1.304388939687492 1.839585610813868
+1.523308313669940 1.224863502553727 1.551905829022093 1.326121424686399
+1.381218209906805 1.756123971897009 1.230886474033807 1.732657526219933
+1.882529450622424 1.009787268175969 1.891680895105129 1.562517131803511
+1.908231532734785 1.425990552575535 1.542240287627732 1.794728831612900
+1.267363134196540 1.273211475957524 1.250426894768777 1.836985741425623
+1.088275092884384 1.125975763152935 1.736944187259203 1.423982905966507
+1.110354512684588 1.473669800828601 1.838373975367636 1.934200551282923
+1.646725702876040 1.663462174825866 1.927715892300048 1.975636844278086
+1.309240440213399 1.615367432778719 1.107148525232788 1.905807376128358
+1.924969132075591 1.837803355530254 1.082054667554295 1.526034661136883
+1.357702934098275 1.624506871886882 1.546513938887027 1.472235873170842
+1.182000973359567 1.924344739015880 1.409754041827681 1.416120857387742
+1.564338535603021 1.788240476381467 1.534441907702963 1.172651546548789
+1.469881480870396 1.825881310443693 1.902138837595474 1.018159298070005
+1.056592196203752 1.927083351905319 1.563901531507043 1.551743222405781
+1.034349565537383 1.752155389804737 1.111456092105040 1.450579007424667
+1.328476936664987 1.805657811782792 1.142851008212571 1.276073683486752
+1.983731092111418 1.950976285737764 1.321852989487230 1.488256604561158
+1.834963867243400 1.657478255032770 1.125156297370492 1.055048597667895
+1.905878951668972 1.490853858465941 1.321672830177087 1.881988115751798
+1.010139184168050 1.324948103937802 1.318715351539402 1.415138733223783
+1.458277644843188 1.707594546563702 1.094235045892091 1.973249160722548
+1.412292089086303 1.780668671402571 1.423499416898557 1.867336510555279
+1.551628625810002 1.550057966114712 1.416505770946726 1.231970066424740
+1.092160638223533 1.283448196578236 1.038868859610745 1.758048085694754
+1.509281303836366 1.419558701507723 1.615346799112448 1.365160196008440
diff --git a/apps/medlda_release/dSFMT/dSFMT.c b/apps/medlda_release/dSFMT/dSFMT.c
new file mode 100644
index 0000000..e86449a
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT.c
@@ -0,0 +1,633 @@
+/**
+ * @file dSFMT.c
+ * @brief double precision SIMD-oriented Fast Mersenne Twister (dSFMT)
+ * based on IEEE 754 format.
+ *
+ * @author Mutsuo Saito (Hiroshima University)
+ * @author Makoto Matsumoto (Hiroshima University)
+ *
+ * Copyright (C) 2007,2008 Mutsuo Saito, Makoto Matsumoto and Hiroshima
+ * University. All rights reserved.
+ *
+ * The new BSD License is applied to this software, see LICENSE.txt
+ */
+#include
+#include
+#include
+#include "dSFMT-params.h"
+#include "dSFMT-common.h"
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+/** dsfmt internal state vector */
+dsfmt_t dsfmt_global_data;
+/** dsfmt mexp for check */
+static const int dsfmt_mexp = DSFMT_MEXP;
+
+/*----------------
+ STATIC FUNCTIONS
+ ----------------*/
+inline static uint32_t ini_func1(uint32_t x);
+inline static uint32_t ini_func2(uint32_t x);
+inline static void gen_rand_array_c1o2(dsfmt_t *dsfmt, w128_t *array,
+ int size);
+inline static void gen_rand_array_c0o1(dsfmt_t *dsfmt, w128_t *array,
+ int size);
+inline static void gen_rand_array_o0c1(dsfmt_t *dsfmt, w128_t *array,
+ int size);
+inline static void gen_rand_array_o0o1(dsfmt_t *dsfmt, w128_t *array,
+ int size);
+inline static int idxof(int i);
+static void initial_mask(dsfmt_t *dsfmt);
+static void period_certification(dsfmt_t *dsfmt);
+
+#if defined(HAVE_SSE2)
+/** 1 in 64bit for sse2 */
+static const union X128I_T sse2_int_one = {{1, 1}};
+/** 2.0 double for sse2 */
+static const union X128D_T sse2_double_two = {{2.0, 2.0}};
+/** -1.0 double for sse2 */
+static const union X128D_T sse2_double_m_one = {{-1.0, -1.0}};
+#endif
+
+/**
+ * This function simulate a 32-bit array index overlapped to 64-bit
+ * array of LITTLE ENDIAN in BIG ENDIAN machine.
+ */
+#if defined(DSFMT_BIG_ENDIAN)
+inline static int idxof(int i) {
+ return i ^ 1;
+}
+#else
+inline static int idxof(int i) {
+ return i;
+}
+#endif
+
+#if defined(HAVE_SSE2)
+/**
+ * This function converts the double precision floating point numbers which
+ * distribute uniformly in the range [1, 2) to those which distribute uniformly
+ * in the range [0, 1).
+ * @param w 128bit stracture of double precision floating point numbers (I/O)
+ */
+inline static void convert_c0o1(w128_t *w) {
+ w->sd = _mm_add_pd(w->sd, sse2_double_m_one.d128);
+}
+
+/**
+ * This function converts the double precision floating point numbers which
+ * distribute uniformly in the range [1, 2) to those which distribute uniformly
+ * in the range (0, 1].
+ * @param w 128bit stracture of double precision floating point numbers (I/O)
+ */
+inline static void convert_o0c1(w128_t *w) {
+ w->sd = _mm_sub_pd(sse2_double_two.d128, w->sd);
+}
+
+/**
+ * This function converts the double precision floating point numbers which
+ * distribute uniformly in the range [1, 2) to those which distribute uniformly
+ * in the range (0, 1).
+ * @param w 128bit stracture of double precision floating point numbers (I/O)
+ */
+inline static void convert_o0o1(w128_t *w) {
+ w->si = _mm_or_si128(w->si, sse2_int_one.i128);
+ w->sd = _mm_add_pd(w->sd, sse2_double_m_one.d128);
+}
+#else /* standard C and altivec */
+/**
+ * This function converts the double precision floating point numbers which
+ * distribute uniformly in the range [1, 2) to those which distribute uniformly
+ * in the range [0, 1).
+ * @param w 128bit stracture of double precision floating point numbers (I/O)
+ */
+inline static void convert_c0o1(w128_t *w) {
+ w->d[0] -= 1.0;
+ w->d[1] -= 1.0;
+}
+
+/**
+ * This function converts the double precision floating point numbers which
+ * distribute uniformly in the range [1, 2) to those which distribute uniformly
+ * in the range (0, 1].
+ * @param w 128bit stracture of double precision floating point numbers (I/O)
+ */
+inline static void convert_o0c1(w128_t *w) {
+ w->d[0] = 2.0 - w->d[0];
+ w->d[1] = 2.0 - w->d[1];
+}
+
+/**
+ * This function converts the double precision floating point numbers which
+ * distribute uniformly in the range [1, 2) to those which distribute uniformly
+ * in the range (0, 1).
+ * @param w 128bit stracture of double precision floating point numbers (I/O)
+ */
+inline static void convert_o0o1(w128_t *w) {
+ w->u[0] |= 1;
+ w->u[1] |= 1;
+ w->d[0] -= 1.0;
+ w->d[1] -= 1.0;
+}
+#endif
+
+/**
+ * This function fills the user-specified array with double precision
+ * floating point pseudorandom numbers of the IEEE 754 format.
+ * @param dsfmt dsfmt state vector.
+ * @param array an 128-bit array to be filled by pseudorandom numbers.
+ * @param size number of 128-bit pseudorandom numbers to be generated.
+ */
+inline static void gen_rand_array_c1o2(dsfmt_t *dsfmt, w128_t *array,
+ int size) {
+ int i, j;
+ w128_t lung;
+
+ lung = dsfmt->status[DSFMT_N];
+ do_recursion(&array[0], &dsfmt->status[0], &dsfmt->status[DSFMT_POS1],
+ &lung);
+ for (i = 1; i < DSFMT_N - DSFMT_POS1; i++) {
+ do_recursion(&array[i], &dsfmt->status[i],
+ &dsfmt->status[i + DSFMT_POS1], &lung);
+ }
+ for (; i < DSFMT_N; i++) {
+ do_recursion(&array[i], &dsfmt->status[i],
+ &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+ }
+ for (; i < size - DSFMT_N; i++) {
+ do_recursion(&array[i], &array[i - DSFMT_N],
+ &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+ }
+ for (j = 0; j < 2 * DSFMT_N - size; j++) {
+ dsfmt->status[j] = array[j + size - DSFMT_N];
+ }
+ for (; i < size; i++, j++) {
+ do_recursion(&array[i], &array[i - DSFMT_N],
+ &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+ dsfmt->status[j] = array[i];
+ }
+ dsfmt->status[DSFMT_N] = lung;
+}
+
+/**
+ * This function fills the user-specified array with double precision
+ * floating point pseudorandom numbers of the IEEE 754 format.
+ * @param dsfmt dsfmt state vector.
+ * @param array an 128-bit array to be filled by pseudorandom numbers.
+ * @param size number of 128-bit pseudorandom numbers to be generated.
+ */
+inline static void gen_rand_array_c0o1(dsfmt_t *dsfmt, w128_t *array,
+ int size) {
+ int i, j;
+ w128_t lung;
+
+ lung = dsfmt->status[DSFMT_N];
+ do_recursion(&array[0], &dsfmt->status[0], &dsfmt->status[DSFMT_POS1],
+ &lung);
+ for (i = 1; i < DSFMT_N - DSFMT_POS1; i++) {
+ do_recursion(&array[i], &dsfmt->status[i],
+ &dsfmt->status[i + DSFMT_POS1], &lung);
+ }
+ for (; i < DSFMT_N; i++) {
+ do_recursion(&array[i], &dsfmt->status[i],
+ &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+ }
+ for (; i < size - DSFMT_N; i++) {
+ do_recursion(&array[i], &array[i - DSFMT_N],
+ &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+ convert_c0o1(&array[i - DSFMT_N]);
+ }
+ for (j = 0; j < 2 * DSFMT_N - size; j++) {
+ dsfmt->status[j] = array[j + size - DSFMT_N];
+ }
+ for (; i < size; i++, j++) {
+ do_recursion(&array[i], &array[i - DSFMT_N],
+ &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+ dsfmt->status[j] = array[i];
+ convert_c0o1(&array[i - DSFMT_N]);
+ }
+ for (i = size - DSFMT_N; i < size; i++) {
+ convert_c0o1(&array[i]);
+ }
+ dsfmt->status[DSFMT_N] = lung;
+}
+
+/**
+ * This function fills the user-specified array with double precision
+ * floating point pseudorandom numbers of the IEEE 754 format.
+ * @param dsfmt dsfmt state vector.
+ * @param array an 128-bit array to be filled by pseudorandom numbers.
+ * @param size number of 128-bit pseudorandom numbers to be generated.
+ */
+inline static void gen_rand_array_o0o1(dsfmt_t *dsfmt, w128_t *array,
+ int size) {
+ int i, j;
+ w128_t lung;
+
+ lung = dsfmt->status[DSFMT_N];
+ do_recursion(&array[0], &dsfmt->status[0], &dsfmt->status[DSFMT_POS1],
+ &lung);
+ for (i = 1; i < DSFMT_N - DSFMT_POS1; i++) {
+ do_recursion(&array[i], &dsfmt->status[i],
+ &dsfmt->status[i + DSFMT_POS1], &lung);
+ }
+ for (; i < DSFMT_N; i++) {
+ do_recursion(&array[i], &dsfmt->status[i],
+ &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+ }
+ for (; i < size - DSFMT_N; i++) {
+ do_recursion(&array[i], &array[i - DSFMT_N],
+ &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+ convert_o0o1(&array[i - DSFMT_N]);
+ }
+ for (j = 0; j < 2 * DSFMT_N - size; j++) {
+ dsfmt->status[j] = array[j + size - DSFMT_N];
+ }
+ for (; i < size; i++, j++) {
+ do_recursion(&array[i], &array[i - DSFMT_N],
+ &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+ dsfmt->status[j] = array[i];
+ convert_o0o1(&array[i - DSFMT_N]);
+ }
+ for (i = size - DSFMT_N; i < size; i++) {
+ convert_o0o1(&array[i]);
+ }
+ dsfmt->status[DSFMT_N] = lung;
+}
+
+/**
+ * This function fills the user-specified array with double precision
+ * floating point pseudorandom numbers of the IEEE 754 format.
+ * @param dsfmt dsfmt state vector.
+ * @param array an 128-bit array to be filled by pseudorandom numbers.
+ * @param size number of 128-bit pseudorandom numbers to be generated.
+ */
+inline static void gen_rand_array_o0c1(dsfmt_t *dsfmt, w128_t *array,
+ int size) {
+ int i, j;
+ w128_t lung;
+
+ lung = dsfmt->status[DSFMT_N];
+ do_recursion(&array[0], &dsfmt->status[0], &dsfmt->status[DSFMT_POS1],
+ &lung);
+ for (i = 1; i < DSFMT_N - DSFMT_POS1; i++) {
+ do_recursion(&array[i], &dsfmt->status[i],
+ &dsfmt->status[i + DSFMT_POS1], &lung);
+ }
+ for (; i < DSFMT_N; i++) {
+ do_recursion(&array[i], &dsfmt->status[i],
+ &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+ }
+ for (; i < size - DSFMT_N; i++) {
+ do_recursion(&array[i], &array[i - DSFMT_N],
+ &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+ convert_o0c1(&array[i - DSFMT_N]);
+ }
+ for (j = 0; j < 2 * DSFMT_N - size; j++) {
+ dsfmt->status[j] = array[j + size - DSFMT_N];
+ }
+ for (; i < size; i++, j++) {
+ do_recursion(&array[i], &array[i - DSFMT_N],
+ &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+ dsfmt->status[j] = array[i];
+ convert_o0c1(&array[i - DSFMT_N]);
+ }
+ for (i = size - DSFMT_N; i < size; i++) {
+ convert_o0c1(&array[i]);
+ }
+ dsfmt->status[DSFMT_N] = lung;
+}
+
+/**
+ * This function represents a function used in the initialization
+ * by init_by_array
+ * @param x 32-bit integer
+ * @return 32-bit integer
+ */
+static uint32_t ini_func1(uint32_t x) {
+ return (x ^ (x >> 27)) * (uint32_t)1664525UL;
+}
+
+/**
+ * This function represents a function used in the initialization
+ * by init_by_array
+ * @param x 32-bit integer
+ * @return 32-bit integer
+ */
+static uint32_t ini_func2(uint32_t x) {
+ return (x ^ (x >> 27)) * (uint32_t)1566083941UL;
+}
+
+/**
+ * This function initializes the internal state array to fit the IEEE
+ * 754 format.
+ * @param dsfmt dsfmt state vector.
+ */
+static void initial_mask(dsfmt_t *dsfmt) {
+ int i;
+ uint64_t *psfmt;
+
+ psfmt = &dsfmt->status[0].u[0];
+ for (i = 0; i < DSFMT_N * 2; i++) {
+ psfmt[i] = (psfmt[i] & DSFMT_LOW_MASK) | DSFMT_HIGH_CONST;
+ }
+}
+
+/**
+ * This function certificate the period of 2^{SFMT_MEXP}-1.
+ * @param dsfmt dsfmt state vector.
+ */
+static void period_certification(dsfmt_t *dsfmt) {
+ uint64_t pcv[2] = {DSFMT_PCV1, DSFMT_PCV2};
+ uint64_t tmp[2];
+ uint64_t inner;
+ int i;
+#if (DSFMT_PCV2 & 1) != 1
+ int j;
+ uint64_t work;
+#endif
+
+ tmp[0] = (dsfmt->status[DSFMT_N].u[0] ^ DSFMT_FIX1);
+ tmp[1] = (dsfmt->status[DSFMT_N].u[1] ^ DSFMT_FIX2);
+
+ inner = tmp[0] & pcv[0];
+ inner ^= tmp[1] & pcv[1];
+ for (i = 32; i > 0; i >>= 1) {
+ inner ^= inner >> i;
+ }
+ inner &= 1;
+ /* check OK */
+ if (inner == 1) {
+ return;
+ }
+ /* check NG, and modification */
+#if (DSFMT_PCV2 & 1) == 1
+ dsfmt->status[DSFMT_N].u[1] ^= 1;
+#else
+ for (i = 1; i >= 0; i--) {
+ work = 1;
+ for (j = 0; j < 64; j++) {
+ if ((work & pcv[i]) != 0) {
+ dsfmt->status[DSFMT_N].u[i] ^= work;
+ return;
+ }
+ work = work << 1;
+ }
+ }
+#endif
+ return;
+}
+
+/*----------------
+ PUBLIC FUNCTIONS
+ ----------------*/
+/**
+ * This function returns the identification string. The string shows
+ * the Mersenne exponent, and all parameters of this generator.
+ * @return id string.
+ */
+const char *dsfmt_get_idstring(void) {
+ return DSFMT_IDSTR;
+}
+
+/**
+ * This function returns the minimum size of array used for \b
+ * fill_array functions.
+ * @return minimum size of array used for fill_array functions.
+ */
+int dsfmt_get_min_array_size(void) {
+ return DSFMT_N64;
+}
+
+/**
+ * This function fills the internal state array with double precision
+ * floating point pseudorandom numbers of the IEEE 754 format.
+ * @param dsfmt dsfmt state vector.
+ */
+void dsfmt_gen_rand_all(dsfmt_t *dsfmt) {
+ int i;
+ w128_t lung;
+
+ lung = dsfmt->status[DSFMT_N];
+ do_recursion(&dsfmt->status[0], &dsfmt->status[0],
+ &dsfmt->status[DSFMT_POS1], &lung);
+ for (i = 1; i < DSFMT_N - DSFMT_POS1; i++) {
+ do_recursion(&dsfmt->status[i], &dsfmt->status[i],
+ &dsfmt->status[i + DSFMT_POS1], &lung);
+ }
+ for (; i < DSFMT_N; i++) {
+ do_recursion(&dsfmt->status[i], &dsfmt->status[i],
+ &dsfmt->status[i + DSFMT_POS1 - DSFMT_N], &lung);
+ }
+ dsfmt->status[DSFMT_N] = lung;
+}
+
+/**
+ * This function generates double precision floating point
+ * pseudorandom numbers which distribute in the range [1, 2) to the
+ * specified array[] by one call. The number of pseudorandom numbers
+ * is specified by the argument \b size, which must be at least (SFMT_MEXP
+ * / 128) * 2 and a multiple of two. The function
+ * get_min_array_size() returns this minimum size. The generation by
+ * this function is much faster than the following fill_array_xxx functions.
+ *
+ * For initialization, init_gen_rand() or init_by_array() must be called
+ * before the first call of this function. This function can not be
+ * used after calling genrand_xxx functions, without initialization.
+ *
+ * @param dsfmt dsfmt state vector.
+ * @param array an array where pseudorandom numbers are filled
+ * by this function. The pointer to the array must be "aligned"
+ * (namely, must be a multiple of 16) in the SIMD version, since it
+ * refers to the address of a 128-bit integer. In the standard C
+ * version, the pointer is arbitrary.
+ *
+ * @param size the number of 64-bit pseudorandom integers to be
+ * generated. size must be a multiple of 2, and greater than or equal
+ * to (SFMT_MEXP / 128) * 2.
+ *
+ * @note \b memalign or \b posix_memalign is available to get aligned
+ * memory. Mac OSX doesn't have these functions, but \b malloc of OSX
+ * returns the pointer to the aligned memory block.
+ */
+void dsfmt_fill_array_close1_open2(dsfmt_t *dsfmt, double array[], int size) {
+ assert(size % 2 == 0);
+ assert(size >= DSFMT_N64);
+ gen_rand_array_c1o2(dsfmt, (w128_t *)array, size / 2);
+}
+
+/**
+ * This function generates double precision floating point
+ * pseudorandom numbers which distribute in the range (0, 1] to the
+ * specified array[] by one call. This function is the same as
+ * fill_array_close1_open2() except the distribution range.
+ *
+ * @param dsfmt dsfmt state vector.
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa fill_array_close1_open2()
+ */
+void dsfmt_fill_array_open_close(dsfmt_t *dsfmt, double array[], int size) {
+ assert(size % 2 == 0);
+ assert(size >= DSFMT_N64);
+ gen_rand_array_o0c1(dsfmt, (w128_t *)array, size / 2);
+}
+
+/**
+ * This function generates double precision floating point
+ * pseudorandom numbers which distribute in the range [0, 1) to the
+ * specified array[] by one call. This function is the same as
+ * fill_array_close1_open2() except the distribution range.
+ *
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param dsfmt dsfmt state vector.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa fill_array_close1_open2()
+ */
+void dsfmt_fill_array_close_open(dsfmt_t *dsfmt, double array[], int size) {
+ assert(size % 2 == 0);
+ assert(size >= DSFMT_N64);
+ gen_rand_array_c0o1(dsfmt, (w128_t *)array, size / 2);
+}
+
+/**
+ * This function generates double precision floating point
+ * pseudorandom numbers which distribute in the range (0, 1) to the
+ * specified array[] by one call. This function is the same as
+ * fill_array_close1_open2() except the distribution range.
+ *
+ * @param dsfmt dsfmt state vector.
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa fill_array_close1_open2()
+ */
+void dsfmt_fill_array_open_open(dsfmt_t *dsfmt, double array[], int size) {
+ assert(size % 2 == 0);
+ assert(size >= DSFMT_N64);
+ gen_rand_array_o0o1(dsfmt, (w128_t *)array, size / 2);
+}
+
+#if defined(__INTEL_COMPILER)
+# pragma warning(disable:981)
+#endif
+/**
+ * This function initializes the internal state array with a 32-bit
+ * integer seed.
+ * @param dsfmt dsfmt state vector.
+ * @param seed a 32-bit integer used as the seed.
+ * @param mexp caller's mersenne expornent
+ */
+void dsfmt_chk_init_gen_rand(dsfmt_t *dsfmt, uint32_t seed, int mexp) {
+ int i;
+ uint32_t *psfmt;
+
+ /* make sure caller program is compiled with the same MEXP */
+ if (mexp != dsfmt_mexp) {
+ fprintf(stderr, "DSFMT_MEXP doesn't match with dSFMT.c\n");
+ exit(1);
+ }
+ psfmt = &dsfmt->status[0].u32[0];
+ psfmt[idxof(0)] = seed;
+ for (i = 1; i < (DSFMT_N + 1) * 4; i++) {
+ psfmt[idxof(i)] = 1812433253UL
+ * (psfmt[idxof(i - 1)] ^ (psfmt[idxof(i - 1)] >> 30)) + i;
+ }
+ initial_mask(dsfmt);
+ period_certification(dsfmt);
+ dsfmt->idx = DSFMT_N64;
+}
+
+/**
+ * This function initializes the internal state array,
+ * with an array of 32-bit integers used as the seeds
+ * @param dsfmt dsfmt state vector.
+ * @param init_key the array of 32-bit integers, used as a seed.
+ * @param key_length the length of init_key.
+ * @param mexp caller's mersenne expornent
+ */
+void dsfmt_chk_init_by_array(dsfmt_t *dsfmt, uint32_t init_key[],
+ int key_length, int mexp) {
+ int i, j, count;
+ uint32_t r;
+ uint32_t *psfmt32;
+ int lag;
+ int mid;
+ int size = (DSFMT_N + 1) * 4; /* pulmonary */
+
+ /* make sure caller program is compiled with the same MEXP */
+ if (mexp != dsfmt_mexp) {
+ fprintf(stderr, "DSFMT_MEXP doesn't match with dSFMT.c\n");
+ exit(1);
+ }
+ if (size >= 623) {
+ lag = 11;
+ } else if (size >= 68) {
+ lag = 7;
+ } else if (size >= 39) {
+ lag = 5;
+ } else {
+ lag = 3;
+ }
+ mid = (size - lag) / 2;
+
+ psfmt32 = &dsfmt->status[0].u32[0];
+ memset(dsfmt->status, 0x8b, sizeof(dsfmt->status));
+ if (key_length + 1 > size) {
+ count = key_length + 1;
+ } else {
+ count = size;
+ }
+ r = ini_func1(psfmt32[idxof(0)] ^ psfmt32[idxof(mid % size)]
+ ^ psfmt32[idxof((size - 1) % size)]);
+ psfmt32[idxof(mid % size)] += r;
+ r += key_length;
+ psfmt32[idxof((mid + lag) % size)] += r;
+ psfmt32[idxof(0)] = r;
+ count--;
+ for (i = 1, j = 0; (j < count) && (j < key_length); j++) {
+ r = ini_func1(psfmt32[idxof(i)]
+ ^ psfmt32[idxof((i + mid) % size)]
+ ^ psfmt32[idxof((i + size - 1) % size)]);
+ psfmt32[idxof((i + mid) % size)] += r;
+ r += init_key[j] + i;
+ psfmt32[idxof((i + mid + lag) % size)] += r;
+ psfmt32[idxof(i)] = r;
+ i = (i + 1) % size;
+ }
+ for (; j < count; j++) {
+ r = ini_func1(psfmt32[idxof(i)]
+ ^ psfmt32[idxof((i + mid) % size)]
+ ^ psfmt32[idxof((i + size - 1) % size)]);
+ psfmt32[idxof((i + mid) % size)] += r;
+ r += i;
+ psfmt32[idxof((i + mid + lag) % size)] += r;
+ psfmt32[idxof(i)] = r;
+ i = (i + 1) % size;
+ }
+ for (j = 0; j < size; j++) {
+ r = ini_func2(psfmt32[idxof(i)]
+ + psfmt32[idxof((i + mid) % size)]
+ + psfmt32[idxof((i + size - 1) % size)]);
+ psfmt32[idxof((i + mid) % size)] ^= r;
+ r -= i;
+ psfmt32[idxof((i + mid + lag) % size)] ^= r;
+ psfmt32[idxof(i)] = r;
+ i = (i + 1) % size;
+ }
+ initial_mask(dsfmt);
+ period_certification(dsfmt);
+ dsfmt->idx = DSFMT_N64;
+}
+#if defined(__INTEL_COMPILER)
+# pragma warning(default:981)
+#endif
+
+#if defined(__cplusplus)
+}
+#endif
diff --git a/apps/medlda_release/dSFMT/dSFMT.h b/apps/medlda_release/dSFMT/dSFMT.h
new file mode 100644
index 0000000..65f1662
--- /dev/null
+++ b/apps/medlda_release/dSFMT/dSFMT.h
@@ -0,0 +1,636 @@
+#pragma once
+/**
+ * @file dSFMT.h
+ *
+ * @brief double precision SIMD oriented Fast Mersenne Twister(dSFMT)
+ * pseudorandom number generator based on IEEE 754 format.
+ *
+ * @author Mutsuo Saito (Hiroshima University)
+ * @author Makoto Matsumoto (Hiroshima University)
+ *
+ * Copyright (C) 2007, 2008 Mutsuo Saito, Makoto Matsumoto and
+ * Hiroshima University. All rights reserved.
+ * Copyright (C) 2012 Mutsuo Saito, Makoto Matsumoto,
+ * Hiroshima University and The University of Tokyo.
+ * All rights reserved.
+ *
+ * The new BSD License is applied to this software.
+ * see LICENSE.txt
+ *
+ * @note We assume that your system has inttypes.h. If your system
+ * doesn't have inttypes.h, you have to typedef uint32_t and uint64_t,
+ * and you have to define PRIu64 and PRIx64 in this file as follows:
+ * @verbatim
+ typedef unsigned int uint32_t
+ typedef unsigned long long uint64_t
+ #define PRIu64 "llu"
+ #define PRIx64 "llx"
+@endverbatim
+ * uint32_t must be exactly 32-bit unsigned integer type (no more, no
+ * less), and uint64_t must be exactly 64-bit unsigned integer type.
+ * PRIu64 and PRIx64 are used for printf function to print 64-bit
+ * unsigned int and 64-bit unsigned int in hexadecimal format.
+ */
+
+#ifndef DSFMT_H
+#define DSFMT_H
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+#include
+#include
+
+#if !defined(DSFMT_MEXP)
+#ifdef __GNUC__
+ #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937."
+#endif
+ #define DSFMT_MEXP 19937
+#endif
+/*-----------------
+ BASIC DEFINITIONS
+ -----------------*/
+/* Mersenne Exponent. The period of the sequence
+ * is a multiple of 2^DSFMT_MEXP-1.
+ * #define DSFMT_MEXP 19937 */
+/** DSFMT generator has an internal state array of 128-bit integers,
+ * and N is its size. */
+#define DSFMT_N ((DSFMT_MEXP - 128) / 104 + 1)
+/** N32 is the size of internal state array when regarded as an array
+ * of 32-bit integers.*/
+#define DSFMT_N32 (DSFMT_N * 4)
+/** N64 is the size of internal state array when regarded as an array
+ * of 64-bit integers.*/
+#define DSFMT_N64 (DSFMT_N * 2)
+
+#if !defined(DSFMT_BIG_ENDIAN)
+# if defined(__BYTE_ORDER) && defined(__BIG_ENDIAN)
+# if __BYTE_ORDER == __BIG_ENDIAN
+# define DSFMT_BIG_ENDIAN 1
+# endif
+# elif defined(_BYTE_ORDER) && defined(_BIG_ENDIAN)
+# if _BYTE_ORDER == _BIG_ENDIAN
+# define DSFMT_BIG_ENDIAN 1
+# endif
+# elif defined(__BYTE_ORDER__) && defined(__BIG_ENDIAN__)
+# if __BYTE_ORDER__ == __BIG_ENDIAN__
+# define DSFMT_BIG_ENDIAN 1
+# endif
+# elif defined(BYTE_ORDER) && defined(BIG_ENDIAN)
+# if BYTE_ORDER == BIG_ENDIAN
+# define DSFMT_BIG_ENDIAN 1
+# endif
+# elif defined(__BIG_ENDIAN) || defined(_BIG_ENDIAN) \
+ || defined(__BIG_ENDIAN__) || defined(BIG_ENDIAN)
+# define DSFMT_BIG_ENDIAN 1
+# endif
+#endif
+
+#if defined(DSFMT_BIG_ENDIAN) && defined(__amd64)
+# undef DSFMT_BIG_ENDIAN
+#endif
+
+#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
+# include
+#elif defined(_MSC_VER) || defined(__BORLANDC__)
+# if !defined(DSFMT_UINT32_DEFINED) && !defined(SFMT_UINT32_DEFINED)
+typedef unsigned int uint32_t;
+typedef unsigned __int64 uint64_t;
+# ifndef UINT64_C
+# define UINT64_C(v) (v ## ui64)
+# endif
+# define DSFMT_UINT32_DEFINED
+# if !defined(inline) && !defined(__cplusplus)
+# define inline __inline
+# endif
+# endif
+#else
+# include
+# if !defined(inline) && !defined(__cplusplus)
+# if defined(__GNUC__)
+# define inline __inline__
+# else
+# define inline
+# endif
+# endif
+#endif
+
+#ifndef PRIu64
+# if defined(_MSC_VER) || defined(__BORLANDC__)
+# define PRIu64 "I64u"
+# define PRIx64 "I64x"
+# else
+# define PRIu64 "llu"
+# define PRIx64 "llx"
+# endif
+#endif
+
+#ifndef UINT64_C
+# define UINT64_C(v) (v ## ULL)
+#endif
+
+/*------------------------------------------
+ 128-bit SIMD like data type for standard C
+ ------------------------------------------*/
+#if defined(HAVE_ALTIVEC)
+# if !defined(__APPLE__)
+# include
+# endif
+/** 128-bit data structure */
+union W128_T {
+ vector unsigned int s;
+ uint64_t u[2];
+ uint32_t u32[4];
+ double d[2];
+};
+
+#elif defined(HAVE_SSE2)
+# include
+
+/** 128-bit data structure */
+union W128_T {
+ __m128i si;
+ __m128d sd;
+ uint64_t u[2];
+ uint32_t u32[4];
+ double d[2];
+};
+#else /* standard C */
+/** 128-bit data structure */
+union W128_T {
+ uint64_t u[2];
+ uint32_t u32[4];
+ double d[2];
+};
+#endif
+
+/** 128-bit data type */
+typedef union W128_T w128_t;
+
+/** the 128-bit internal state array */
+struct DSFMT_T {
+ w128_t status[DSFMT_N + 1];
+ int idx;
+};
+typedef struct DSFMT_T dsfmt_t;
+
+/** dsfmt internal state vector */
+extern dsfmt_t dsfmt_global_data;
+/** dsfmt mexp for check */
+extern const int dsfmt_global_mexp;
+
+void dsfmt_gen_rand_all(dsfmt_t *dsfmt);
+void dsfmt_fill_array_open_close(dsfmt_t *dsfmt, double array[], int size);
+void dsfmt_fill_array_close_open(dsfmt_t *dsfmt, double array[], int size);
+void dsfmt_fill_array_open_open(dsfmt_t *dsfmt, double array[], int size);
+void dsfmt_fill_array_close1_open2(dsfmt_t *dsfmt, double array[], int size);
+void dsfmt_chk_init_gen_rand(dsfmt_t *dsfmt, uint32_t seed, int mexp);
+void dsfmt_chk_init_by_array(dsfmt_t *dsfmt, uint32_t init_key[],
+ int key_length, int mexp);
+const char *dsfmt_get_idstring(void);
+int dsfmt_get_min_array_size(void);
+
+#if defined(__GNUC__)
+# define DSFMT_PRE_INLINE inline static
+# define DSFMT_PST_INLINE __attribute__((always_inline))
+#elif defined(_MSC_VER) && _MSC_VER >= 1200
+# define DSFMT_PRE_INLINE __forceinline static
+# define DSFMT_PST_INLINE
+#else
+# define DSFMT_PRE_INLINE inline static
+# define DSFMT_PST_INLINE
+#endif
+DSFMT_PRE_INLINE uint32_t dsfmt_genrand_uint32(dsfmt_t *dsfmt) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double dsfmt_genrand_close1_open2(dsfmt_t *dsfmt)
+ DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double dsfmt_genrand_close_open(dsfmt_t *dsfmt)
+ DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double dsfmt_genrand_open_close(dsfmt_t *dsfmt)
+ DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double dsfmt_genrand_open_open(dsfmt_t *dsfmt)
+ DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE uint32_t dsfmt_gv_genrand_uint32(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double dsfmt_gv_genrand_close1_open2(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double dsfmt_gv_genrand_close_open(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double dsfmt_gv_genrand_open_close(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double dsfmt_gv_genrand_open_open(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void dsfmt_gv_fill_array_open_close(double array[], int size)
+ DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void dsfmt_gv_fill_array_close_open(double array[], int size)
+ DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void dsfmt_gv_fill_array_open_open(double array[], int size)
+ DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void dsfmt_gv_fill_array_close1_open2(double array[], int size)
+ DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void dsfmt_gv_init_gen_rand(uint32_t seed) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void dsfmt_gv_init_by_array(uint32_t init_key[],
+ int key_length) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void dsfmt_init_gen_rand(dsfmt_t *dsfmt, uint32_t seed)
+ DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void dsfmt_init_by_array(dsfmt_t *dsfmt, uint32_t init_key[],
+ int key_length) DSFMT_PST_INLINE;
+
+/**
+ * This function generates and returns unsigned 32-bit integer.
+ * This is slower than SFMT, only for convenience usage.
+ * dsfmt_init_gen_rand() or dsfmt_init_by_array() must be called
+ * before this function.
+ * @param dsfmt dsfmt internal state date
+ * @return double precision floating point pseudorandom number
+ */
+inline static uint32_t dsfmt_genrand_uint32(dsfmt_t *dsfmt) {
+ uint32_t r;
+ uint64_t *psfmt64 = &dsfmt->status[0].u[0];
+
+ if (dsfmt->idx >= DSFMT_N64) {
+ dsfmt_gen_rand_all(dsfmt);
+ dsfmt->idx = 0;
+ }
+ r = psfmt64[dsfmt->idx++] & 0xffffffffU;
+ return r;
+}
+
+/**
+ * This function generates and returns double precision pseudorandom
+ * number which distributes uniformly in the range [1, 2). This is
+ * the primitive and faster than generating numbers in other ranges.
+ * dsfmt_init_gen_rand() or dsfmt_init_by_array() must be called
+ * before this function.
+ * @param dsfmt dsfmt internal state date
+ * @return double precision floating point pseudorandom number
+ */
+inline static double dsfmt_genrand_close1_open2(dsfmt_t *dsfmt) {
+ double r;
+ double *psfmt64 = &dsfmt->status[0].d[0];
+
+ if (dsfmt->idx >= DSFMT_N64) {
+ dsfmt_gen_rand_all(dsfmt);
+ dsfmt->idx = 0;
+ }
+ r = psfmt64[dsfmt->idx++];
+ return r;
+}
+
+/**
+ * This function generates and returns unsigned 32-bit integer.
+ * This is slower than SFMT, only for convenience usage.
+ * dsfmt_gv_init_gen_rand() or dsfmt_gv_init_by_array() must be called
+ * before this function. This function uses \b global variables.
+ * @return double precision floating point pseudorandom number
+ */
+inline static uint32_t dsfmt_gv_genrand_uint32(void) {
+ return dsfmt_genrand_uint32(&dsfmt_global_data);
+}
+
+/**
+ * This function generates and returns double precision pseudorandom
+ * number which distributes uniformly in the range [1, 2).
+ * dsfmt_gv_init_gen_rand() or dsfmt_gv_init_by_array() must be called
+ * before this function. This function uses \b global variables.
+ * @return double precision floating point pseudorandom number
+ */
+inline static double dsfmt_gv_genrand_close1_open2(void) {
+ return dsfmt_genrand_close1_open2(&dsfmt_global_data);
+}
+
+/**
+ * This function generates and returns double precision pseudorandom
+ * number which distributes uniformly in the range [0, 1).
+ * dsfmt_init_gen_rand() or dsfmt_init_by_array() must be called
+ * before this function.
+ * @param dsfmt dsfmt internal state date
+ * @return double precision floating point pseudorandom number
+ */
+inline static double dsfmt_genrand_close_open(dsfmt_t *dsfmt) {
+ return dsfmt_genrand_close1_open2(dsfmt) - 1.0;
+}
+
+/**
+ * This function generates and returns double precision pseudorandom
+ * number which distributes uniformly in the range [0, 1).
+ * dsfmt_gv_init_gen_rand() or dsfmt_gv_init_by_array() must be called
+ * before this function. This function uses \b global variables.
+ * @return double precision floating point pseudorandom number
+ */
+inline static double dsfmt_gv_genrand_close_open(void) {
+ return dsfmt_gv_genrand_close1_open2() - 1.0;
+}
+
+/**
+ * This function generates and returns double precision pseudorandom
+ * number which distributes uniformly in the range (0, 1].
+ * dsfmt_init_gen_rand() or dsfmt_init_by_array() must be called
+ * before this function.
+ * @param dsfmt dsfmt internal state date
+ * @return double precision floating point pseudorandom number
+ */
+inline static double dsfmt_genrand_open_close(dsfmt_t *dsfmt) {
+ return 2.0 - dsfmt_genrand_close1_open2(dsfmt);
+}
+
+/**
+ * This function generates and returns double precision pseudorandom
+ * number which distributes uniformly in the range (0, 1].
+ * dsfmt_gv_init_gen_rand() or dsfmt_gv_init_by_array() must be called
+ * before this function. This function uses \b global variables.
+ * @return double precision floating point pseudorandom number
+ */
+inline static double dsfmt_gv_genrand_open_close(void) {
+ return 2.0 - dsfmt_gv_genrand_close1_open2();
+}
+
+/**
+ * This function generates and returns double precision pseudorandom
+ * number which distributes uniformly in the range (0, 1).
+ * dsfmt_init_gen_rand() or dsfmt_init_by_array() must be called
+ * before this function.
+ * @param dsfmt dsfmt internal state date
+ * @return double precision floating point pseudorandom number
+ */
+inline static double dsfmt_genrand_open_open(dsfmt_t *dsfmt) {
+ double *dsfmt64 = &dsfmt->status[0].d[0];
+ union {
+ double d;
+ uint64_t u;
+ } r;
+
+ if (dsfmt->idx >= DSFMT_N64) {
+ dsfmt_gen_rand_all(dsfmt);
+ dsfmt->idx = 0;
+ }
+ r.d = dsfmt64[dsfmt->idx++];
+ r.u |= 1;
+ return r.d - 1.0;
+}
+
+/**
+ * This function generates and returns double precision pseudorandom
+ * number which distributes uniformly in the range (0, 1).
+ * dsfmt_gv_init_gen_rand() or dsfmt_gv_init_by_array() must be called
+ * before this function. This function uses \b global variables.
+ * @return double precision floating point pseudorandom number
+ */
+inline static double dsfmt_gv_genrand_open_open(void) {
+ return dsfmt_genrand_open_open(&dsfmt_global_data);
+}
+
+/**
+ * This function generates double precision floating point
+ * pseudorandom numbers which distribute in the range [1, 2) to the
+ * specified array[] by one call. This function is the same as
+ * dsfmt_fill_array_close1_open2() except that this function uses
+ * \b global variables.
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_fill_array_close1_open2()
+ */
+inline static void dsfmt_gv_fill_array_close1_open2(double array[], int size) {
+ dsfmt_fill_array_close1_open2(&dsfmt_global_data, array, size);
+}
+
+/**
+ * This function generates double precision floating point
+ * pseudorandom numbers which distribute in the range (0, 1] to the
+ * specified array[] by one call. This function is the same as
+ * dsfmt_gv_fill_array_close1_open2() except the distribution range.
+ * This function uses \b global variables.
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_fill_array_close1_open2() and \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+inline static void dsfmt_gv_fill_array_open_close(double array[], int size) {
+ dsfmt_fill_array_open_close(&dsfmt_global_data, array, size);
+}
+
+/**
+ * This function generates double precision floating point
+ * pseudorandom numbers which distribute in the range [0, 1) to the
+ * specified array[] by one call. This function is the same as
+ * dsfmt_gv_fill_array_close1_open2() except the distribution range.
+ * This function uses \b global variables.
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_fill_array_close1_open2() \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+inline static void dsfmt_gv_fill_array_close_open(double array[], int size) {
+ dsfmt_fill_array_close_open(&dsfmt_global_data, array, size);
+}
+
+/**
+ * This function generates double precision floating point
+ * pseudorandom numbers which distribute in the range (0, 1) to the
+ * specified array[] by one call. This function is the same as
+ * dsfmt_gv_fill_array_close1_open2() except the distribution range.
+ * This function uses \b global variables.
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_fill_array_close1_open2() \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+inline static void dsfmt_gv_fill_array_open_open(double array[], int size) {
+ dsfmt_fill_array_open_open(&dsfmt_global_data, array, size);
+}
+
+/**
+ * This function initializes the internal state array with a 32-bit
+ * integer seed.
+ * @param dsfmt dsfmt state vector.
+ * @param seed a 32-bit integer used as the seed.
+ */
+inline static void dsfmt_init_gen_rand(dsfmt_t *dsfmt, uint32_t seed) {
+ dsfmt_chk_init_gen_rand(dsfmt, seed, DSFMT_MEXP);
+}
+
+/**
+ * This function initializes the internal state array with a 32-bit
+ * integer seed. This function uses \b global variables.
+ * @param seed a 32-bit integer used as the seed.
+ * see also \sa dsfmt_init_gen_rand()
+ */
+inline static void dsfmt_gv_init_gen_rand(uint32_t seed) {
+ dsfmt_init_gen_rand(&dsfmt_global_data, seed);
+}
+
+/**
+ * This function initializes the internal state array,
+ * with an array of 32-bit integers used as the seeds.
+ * @param dsfmt dsfmt state vector
+ * @param init_key the array of 32-bit integers, used as a seed.
+ * @param key_length the length of init_key.
+ */
+inline static void dsfmt_init_by_array(dsfmt_t *dsfmt, uint32_t init_key[],
+ int key_length) {
+ dsfmt_chk_init_by_array(dsfmt, init_key, key_length, DSFMT_MEXP);
+}
+
+/**
+ * This function initializes the internal state array,
+ * with an array of 32-bit integers used as the seeds.
+ * This function uses \b global variables.
+ * @param init_key the array of 32-bit integers, used as a seed.
+ * @param key_length the length of init_key.
+ * see also \sa dsfmt_init_by_array()
+ */
+inline static void dsfmt_gv_init_by_array(uint32_t init_key[], int key_length) {
+ dsfmt_init_by_array(&dsfmt_global_data, init_key, key_length);
+}
+
+#if !defined(DSFMT_DO_NOT_USE_OLD_NAMES)
+DSFMT_PRE_INLINE const char *get_idstring(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE int get_min_array_size(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void init_gen_rand(uint32_t seed) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void init_by_array(uint32_t init_key[], int key_length)
+ DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double genrand_close1_open2(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double genrand_close_open(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double genrand_open_close(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double genrand_open_open(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void fill_array_open_close(double array[], int size)
+ DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void fill_array_close_open(double array[], int size)
+ DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void fill_array_open_open(double array[], int size)
+ DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void fill_array_close1_open2(double array[], int size)
+ DSFMT_PST_INLINE;
+
+/**
+ * This function is just the same as dsfmt_get_idstring().
+ * @return id string.
+ * see also \sa dsfmt_get_idstring()
+ */
+inline static const char *get_idstring(void) {
+ return dsfmt_get_idstring();
+}
+
+/**
+ * This function is just the same as dsfmt_get_min_array_size().
+ * @return minimum size of array used for fill_array functions.
+ * see also \sa dsfmt_get_min_array_size()
+ */
+inline static int get_min_array_size(void) {
+ return dsfmt_get_min_array_size();
+}
+
+/**
+ * This function is just the same as dsfmt_gv_init_gen_rand().
+ * @param seed a 32-bit integer used as the seed.
+ * see also \sa dsfmt_gv_init_gen_rand(), \sa dsfmt_init_gen_rand().
+ */
+inline static void init_gen_rand(uint32_t seed) {
+ dsfmt_gv_init_gen_rand(seed);
+}
+
+/**
+ * This function is just the same as dsfmt_gv_init_by_array().
+ * @param init_key the array of 32-bit integers, used as a seed.
+ * @param key_length the length of init_key.
+ * see also \sa dsfmt_gv_init_by_array(), \sa dsfmt_init_by_array().
+ */
+inline static void init_by_array(uint32_t init_key[], int key_length) {
+ dsfmt_gv_init_by_array(init_key, key_length);
+}
+
+/**
+ * This function is just the same as dsfmt_gv_genrand_close1_open2().
+ * @return double precision floating point number.
+ * see also \sa dsfmt_genrand_close1_open2() \sa
+ * dsfmt_gv_genrand_close1_open2()
+ */
+inline static double genrand_close1_open2(void) {
+ return dsfmt_gv_genrand_close1_open2();
+}
+
+/**
+ * This function is just the same as dsfmt_gv_genrand_close_open().
+ * @return double precision floating point number.
+ * see also \sa dsfmt_genrand_close_open() \sa
+ * dsfmt_gv_genrand_close_open()
+ */
+inline static double genrand_close_open(void) {
+ return dsfmt_gv_genrand_close_open();
+}
+
+/**
+ * This function is just the same as dsfmt_gv_genrand_open_close().
+ * @return double precision floating point number.
+ * see also \sa dsfmt_genrand_open_close() \sa
+ * dsfmt_gv_genrand_open_close()
+ */
+inline static double genrand_open_close(void) {
+ return dsfmt_gv_genrand_open_close();
+}
+
+/**
+ * This function is just the same as dsfmt_gv_genrand_open_open().
+ * @return double precision floating point number.
+ * see also \sa dsfmt_genrand_open_open() \sa
+ * dsfmt_gv_genrand_open_open()
+ */
+inline static double genrand_open_open(void) {
+ return dsfmt_gv_genrand_open_open();
+}
+
+/**
+ * This function is juset the same as dsfmt_gv_fill_array_open_close().
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_gv_fill_array_open_close(), \sa
+ * dsfmt_fill_array_close1_open2(), \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+inline static void fill_array_open_close(double array[], int size) {
+ dsfmt_gv_fill_array_open_close(array, size);
+}
+
+/**
+ * This function is juset the same as dsfmt_gv_fill_array_close_open().
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_gv_fill_array_close_open(), \sa
+ * dsfmt_fill_array_close1_open2(), \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+inline static void fill_array_close_open(double array[], int size) {
+ dsfmt_gv_fill_array_close_open(array, size);
+}
+
+/**
+ * This function is juset the same as dsfmt_gv_fill_array_open_open().
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_gv_fill_array_open_open(), \sa
+ * dsfmt_fill_array_close1_open2(), \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+inline static void fill_array_open_open(double array[], int size) {
+ dsfmt_gv_fill_array_open_open(array, size);
+}
+
+/**
+ * This function is juset the same as dsfmt_gv_fill_array_close1_open2().
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_fill_array_close1_open2(), \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+inline static void fill_array_close1_open2(double array[], int size) {
+ dsfmt_gv_fill_array_close1_open2(array, size);
+}
+#endif /* DSFMT_DO_NOT_USE_OLD_NAMES */
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif /* DSFMT_H */
diff --git a/apps/medlda_release/dSFMT/jump/CHANGE-LOG.txt b/apps/medlda_release/dSFMT/jump/CHANGE-LOG.txt
new file mode 100644
index 0000000..9da7cc8
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/CHANGE-LOG.txt
@@ -0,0 +1,3 @@
+ver 0.1
+-------
+The first version.
diff --git a/apps/medlda_release/dSFMT/jump/FILES.txt b/apps/medlda_release/dSFMT/jump/FILES.txt
new file mode 100644
index 0000000..a718fa7
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/FILES.txt
@@ -0,0 +1,29 @@
+This archive contails following directories and files.
+
+TOP DIRECTORY
+FILES.txt: This file.
+CHANGE-LOG.txt change log.
+LICENSE.txt: License file.
+Makefile: Makefile for test programs.
+readme.html readme file (English)
+readme-jp.html readme file (Japanese)
+dSFMT-jump.h jump function header file
+dSFMT-jump.c jump function
+dSFMT-calc-jump.hpp jump polynomial calculation
+calc-jump.cpp jump polynomial calculation executable main
+test-jump.cpp test
+check-jump.sh test shell
+sample1.c sample1
+sample2.c sample2
+poly.521.txt pre-calculated polynomial file for MEXP = 521
+poly.1279.txt pre-calculated polynomial file for MEXP = 1279
+poly.2203.txt pre-calculated polynomial file for MEXP = 2203
+poly.4253.txt pre-calculated polynomial file for MEXP = 4253
+poly.11213.txt pre-calculated polynomial file for MEXP = 11213
+poly.19937.txt pre-calculated polynomial file for MEXP = 19937
+poly.44497.txt pre-calculated polynomial file for MEXP = 44497
+poly.86243.txt pre-calculated polynomial file for MEXP = 86243
+poly.132049.tx pre-calculated polynomial file for MEXP = 132049
+poly.216091.txt pre-calculated polynomial file for MEXP = 216091
+
+html DIRECTORY: The documents generated by doxygen.
diff --git a/apps/medlda_release/dSFMT/jump/LICENSE.txt b/apps/medlda_release/dSFMT/jump/LICENSE.txt
new file mode 100644
index 0000000..f2847eb
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/LICENSE.txt
@@ -0,0 +1,32 @@
+Copyright (c) 2007, 2008, 2009 Mutsuo Saito, Makoto Matsumoto
+and Hiroshima University.
+Copyright (c) 2011, 2012 Mutsuo Saito, Makoto Matsumoto, Hiroshima
+University and The University of Tokyo.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of the Hiroshima University nor the names of
+ its contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/apps/medlda_release/dSFMT/jump/Makefile b/apps/medlda_release/dSFMT/jump/Makefile
new file mode 100644
index 0000000..5df2b24
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/Makefile
@@ -0,0 +1,120 @@
+#for GNU make
+
+#DDEBUG = -O0 -g -DDEBUG=1
+# uncomment next line if you installed NTL with gf2x
+#LIBGF2X = -lgf2x
+# uncomment next line if you installed NTL with gmp
+LIBGMP = -lgmp -lm
+
+PREFIX = $(PREFIX)
+
+DEFINES = -D__STDC_CONSTANT_MACROS=1 -D__STDC_FORMAT_MACROS=1
+CPP = g++
+#CPP = icc
+GPPFLAGS = -msse2
+#ICCPPFLAGS = -mssse3
+CPPSTD = -std=c++11
+
+CC = gcc
+#CC = icc -fast
+GCCFLAGS = -msse2 --param max-inline-insns-single=1800
+#ICCFLAGS = -fast
+OPTI = -O3 -finline-functions -fomit-frame-pointer -pthread
+CCSTD = -std=c99
+WARN = -Wall #-Winline
+CCFLAGS = -I../ -I$(PREFIX)/include -Wmissing-prototypes $(GCCFLAGS) $(ICCFLAGS) $(OPTI) \
+ $(WARN) $(CCSTD) $(DDEBUG)
+CPPFLAGS = -I../ -I$(PREFIX)/include $(OPTI) $(GPPFLAGS) $(ICCPPFLAGS) $(WARN) $(DEFINES) $(CPPSTD) $(DDEBUG)
+
+LINKOPT = -L$(PREFIX)/lib -lntl -pthread $(LIBGF2X) $(LIBGMP) -Wl,-rpath,$(PREFIX)/lib
+
+ALL_JUMP_TARGET = calc-jump test-jump-M521 test-jump-M1279 test-jump-M2203 \
+test-jump-M4253 test-jump-M11213 test-jump-M19937 test-jump-M44497 \
+test-jump-M86243 test-jump-M132049 test-jump-M216091
+
+#
+# jump
+#
+all:calc-jump
+
+check: ${ALL_JUMP_TARGET}
+ ./check-jump.sh
+
+calc-jump:calc-jump.cpp dSFMT-calc-jump.hpp
+ ${CPP} ${CPPFLAGS} -o $@ calc-jump.cpp ${LINKOPT}
+
+#
+# sample
+#
+sample1: sample1.c ../dSFMT.c dSFMT-jump.c ../dSFMT-common.h dSFMT-jump.h
+ ${CC} ${CCFLAGS} -DDSFMT_MEXP=1279 -DHAVE_SSE2 -o $@ \
+ sample1.c ../dSFMT.c dSFMT-jump.c
+
+sample2: sample2.c ../dSFMT.c dSFMT-jump.c ../dSFMT-common.h dSFMT-jump.h
+ ${CC} ${CCFLAGS} -DDSFMT_MEXP=521 -DHAVE_SSE2 -o $@ \
+ sample2.c ../dSFMT.c dSFMT-jump.c
+
+#
+# test
+#
+test-jump-M521: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=521 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M1279: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=1279 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M2203: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=2203 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M4253: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=4253 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M11213: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=11213 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M19937: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=19937 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M44497: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=44497 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M86243: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=86243 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M132049: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=132049 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M216091: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=216091 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+.cpp.o:
+ ${CPP} -c $<
+
+.c.o:
+ ${CC} -c $<
+
+clean:
+ rm -rf *.o *~ *.dSYM
+
+clean-all:
+ rm -f $(ALL_JUMP_TARGET)
diff --git a/apps/medlda_release/dSFMT/jump/Makefile.me b/apps/medlda_release/dSFMT/jump/Makefile.me
new file mode 100644
index 0000000..ecbf171
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/Makefile.me
@@ -0,0 +1,120 @@
+#for GNU make
+
+#DDEBUG = -O0 -g -DDEBUG=1
+# uncomment next line if you installed NTL with gf2x
+#LIBGF2X = -lgf2x
+# uncomment next line if you installed NTL with gmp
+LIBGMP = -lgmp -lm
+
+PREFIX = /home/oschwart/shared/secproj/external
+
+DEFINES = -D__STDC_CONSTANT_MACROS=1 -D__STDC_FORMAT_MACROS=1
+CPP = g++
+#CPP = icc
+GPPFLAGS = -msse2
+#ICCPPFLAGS = -mssse3
+CPPSTD = -std=c++11
+
+CC = gcc
+#CC = icc -fast
+GCCFLAGS = -msse2 --param max-inline-insns-single=1800
+#ICCFLAGS = -fast
+OPTI = -O3 -finline-functions -fomit-frame-pointer -pthread
+CCSTD = -std=c99
+WARN = -Wall #-Winline
+CCFLAGS = -I../ -I$(PREFIX)/include -Wmissing-prototypes $(GCCFLAGS) $(ICCFLAGS) $(OPTI) \
+ $(WARN) $(CCSTD) $(DDEBUG)
+CPPFLAGS = -I../ -I$(PREFIX)/include $(OPTI) $(GPPFLAGS) $(ICCPPFLAGS) $(WARN) $(DEFINES) $(CPPSTD) $(DDEBUG)
+
+LINKOPT = -L$(PREFIX)/lib -lntl -pthread $(LIBGF2X) $(LIBGMP) -Wl,-rpath,$(PREFIX)/lib
+
+ALL_JUMP_TARGET = calc-jump test-jump-M521 test-jump-M1279 test-jump-M2203 \
+test-jump-M4253 test-jump-M11213 test-jump-M19937 test-jump-M44497 \
+test-jump-M86243 test-jump-M132049 test-jump-M216091
+
+#
+# jump
+#
+all:calc-jump
+
+check: ${ALL_JUMP_TARGET}
+ ./check-jump.sh
+
+calc-jump:calc-jump.cpp dSFMT-calc-jump.hpp
+ ${CPP} ${CPPFLAGS} -o $@ calc-jump.cpp ${LINKOPT}
+
+#
+# sample
+#
+sample1: sample1.c ../dSFMT.c dSFMT-jump.c ../dSFMT-common.h dSFMT-jump.h
+ ${CC} ${CCFLAGS} -DDSFMT_MEXP=1279 -DHAVE_SSE2 -o $@ \
+ sample1.c ../dSFMT.c dSFMT-jump.c
+
+sample2: sample2.c ../dSFMT.c dSFMT-jump.c ../dSFMT-common.h dSFMT-jump.h
+ ${CC} ${CCFLAGS} -DDSFMT_MEXP=521 -DHAVE_SSE2 -o $@ \
+ sample2.c ../dSFMT.c dSFMT-jump.c
+
+#
+# test
+#
+test-jump-M521: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=521 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M1279: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=1279 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M2203: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=2203 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M4253: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=4253 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M11213: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=11213 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M19937: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=19937 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M44497: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=44497 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M86243: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=86243 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M132049: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=132049 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M216091: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=216091 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+.cpp.o:
+ ${CPP} -c $<
+
+.c.o:
+ ${CC} -c $<
+
+clean:
+ rm -rf *.o *~ *.dSYM
+
+clean-all:
+ rm -f $(ALL_JUMP_TARGET)
diff --git a/apps/medlda_release/dSFMT/jump/Makefile~ b/apps/medlda_release/dSFMT/jump/Makefile~
new file mode 100644
index 0000000..096b276
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/Makefile~
@@ -0,0 +1,120 @@
+#for GNU make
+
+#DDEBUG = -O0 -g -DDEBUG=1
+# uncomment next line if you installed NTL with gf2x
+#LIBGF2X = -lgf2x
+# uncomment next line if you installed NTL with gmp
+LIBGMP = -lgmp -lm
+
+PREFIX = /home/oschwart/shared/secproj/external
+
+DEFINES = -D__STDC_CONSTANT_MACROS=1 -D__STDC_FORMAT_MACROS=1
+CPP = g++
+#CPP = icc
+GPPFLAGS = -msse2
+#ICCPPFLAGS = -mssse3
+CPPSTD = -std=c++11
+
+CC = gcc
+#CC = icc -fast
+GCCFLAGS = -msse2 --param max-inline-insns-single=1800
+#ICCFLAGS = -fast
+OPTI = -O3 -finline-functions -fomit-frame-pointer -pthread
+CCSTD = -std=c99
+WARN = -Wall #-Winline
+CCFLAGS = -I../ -I$(PREFIX)/include -Wmissing-prototypes $(GCCFLAGS) $(ICCFLAGS) $(OPTI) \
+ $(WARN) $(CCSTD) $(DDEBUG)
+CPPFLAGS = -I../ -I$(PREFIX)/include $(OPTI) $(GPPFLAGS) $(ICCPPFLAGS) $(WARN) $(DEFINES) $(CPPSTD) $(DDEBUG)
+
+LINKOPT = -L$(PREFIX)/lib -lntl -pthread $(LIBGF2X) $(LIBGMP) -Wl,-rpath,$(PREFIX)/lib -Wl,-rpath,/appl/pm/vendor/gcc/lx-x86_64/4.8.5R6/lib64
+
+ALL_JUMP_TARGET = calc-jump test-jump-M521 test-jump-M1279 test-jump-M2203 \
+test-jump-M4253 test-jump-M11213 test-jump-M19937 test-jump-M44497 \
+test-jump-M86243 test-jump-M132049 test-jump-M216091
+
+#
+# jump
+#
+all:calc-jump
+
+check: ${ALL_JUMP_TARGET}
+ ./check-jump.sh
+
+calc-jump:calc-jump.cpp dSFMT-calc-jump.hpp
+ ${CPP} ${CPPFLAGS} -o $@ calc-jump.cpp ${LINKOPT}
+
+#
+# sample
+#
+sample1: sample1.c ../dSFMT.c dSFMT-jump.c ../dSFMT-common.h dSFMT-jump.h
+ ${CC} ${CCFLAGS} -DDSFMT_MEXP=1279 -DHAVE_SSE2 -o $@ \
+ sample1.c ../dSFMT.c dSFMT-jump.c
+
+sample2: sample2.c ../dSFMT.c dSFMT-jump.c ../dSFMT-common.h dSFMT-jump.h
+ ${CC} ${CCFLAGS} -DDSFMT_MEXP=521 -DHAVE_SSE2 -o $@ \
+ sample2.c ../dSFMT.c dSFMT-jump.c
+
+#
+# test
+#
+test-jump-M521: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=521 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M1279: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=1279 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M2203: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=2203 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M4253: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=4253 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M11213: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=11213 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M19937: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=19937 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M44497: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=44497 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M86243: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=86243 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M132049: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=132049 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+test-jump-M216091: test-jump.cpp ../dSFMT.c dSFMT-jump.c dSFMT-calc-jump.hpp \
+ ../dSFMT-common.h dSFMT-jump.h
+ ${CPP} ${CPPFLAGS} -DDSFMT_MEXP=216091 -DHAVE_SSE2 -o $@ \
+ test-jump.cpp ../dSFMT.c dSFMT-jump.c ${LINKOPT}
+
+.cpp.o:
+ ${CPP} -c $<
+
+.c.o:
+ ${CC} -c $<
+
+clean:
+ rm -rf *.o *~ *.dSYM
+
+clean-all:
+ rm -f $(ALL_JUMP_TARGET)
diff --git a/apps/medlda_release/dSFMT/jump/calc-jump.cpp b/apps/medlda_release/dSFMT/jump/calc-jump.cpp
new file mode 100644
index 0000000..fbdb217
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/calc-jump.cpp
@@ -0,0 +1,74 @@
+/**
+ * @file calc-jump.cpp
+ *
+ * @brief calc jump function.
+ *
+ * @author Mutsuo Saito (Hiroshima University)
+ * @author Makoto Matsumoto (The University of Tokyo)
+ *
+ * Copyright (C) 2012 Mutsuo Saito, Makoto Matsumoto,
+ * Hiroshima University and The University of Tokyo.
+ * All rights reserved.
+ *
+ * The 3-clause BSD License is applied to this software, see
+ * LICENSE.txt
+ */
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include "dSFMT-calc-jump.hpp"
+
+using namespace NTL;
+using namespace std;
+using namespace dsfmt;
+
+static void read_file(GF2X& lcmpoly, long line_no, const string& file);
+
+int main(int argc, char * argv[]) {
+ if (argc <= 2) {
+ cout << argv[0] << " jump-step poly-file" << endl;
+ cout << " jump-step: a number between zero and 2^{DSFMT_MEXP}-1.\n"
+ << " large decimal number is allowed." << endl;
+ cout << " poly-file: one of poly.{MEXP}.txt "
+ << "file" << endl;
+ return -1;
+ }
+ string step_string = argv[1];
+ string filename = argv[2];
+ long no = 0;
+ GF2X lcmpoly;
+ read_file(lcmpoly, no, filename);
+ ZZ step;
+ stringstream ss(step_string);
+ ss >> step;
+ string jump_str;
+ calc_jump(jump_str, step, lcmpoly);
+ cout << "jump polynomial:" << endl;
+ cout << jump_str << endl;
+ return 0;
+}
+
+
+static void read_file(GF2X& lcmpoly, long line_no, const string& file)
+{
+ ifstream ifs(file.c_str());
+ string line;
+ for (int i = 0; i < line_no; i++) {
+ ifs >> line;
+ ifs >> line;
+ }
+ if (ifs) {
+ ifs >> line;
+ line = "";
+ ifs >> line;
+ }
+ stringtopoly(lcmpoly, line);
+}
diff --git a/apps/medlda_release/dSFMT/jump/check-jump.sh b/apps/medlda_release/dSFMT/jump/check-jump.sh
new file mode 100755
index 0000000..38f76fc
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/check-jump.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+exps="521 1279 2203 4253 11213 19937 44497 86243 132049 216091"
+for mexp in $exps; do
+
+ if ./test-jump-M${mexp} -c > /dev/null
+ then
+ echo jump in mexp = $mexp OK.
+ else
+ exit 1
+ fi
+done
+exit 0
diff --git a/apps/medlda_release/dSFMT/jump/dSFMT-calc-jump.hpp b/apps/medlda_release/dSFMT/jump/dSFMT-calc-jump.hpp
new file mode 100644
index 0000000..b960826
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/dSFMT-calc-jump.hpp
@@ -0,0 +1,106 @@
+#pragma once
+#ifndef DSFMT_CALC_JUMP_HPP
+#define DSFMT_CALC_JUMP_HPP
+/**
+ * @file dSFMT-calc-jump.hpp
+ *
+ * @brief functions for calculating jump polynomial.
+ *
+ * @author Mutsuo Saito (Hiroshima University)
+ * @author Makoto Matsumoto (The University of Tokyo)
+ *
+ * Copyright (C) 2012 Mutsuo Saito, Makoto Matsumoto,
+ * Hiroshima University and The University of Tokyo.
+ * All rights reserved.
+ *
+ * The 3-clause BSD License is applied to this software, see
+ * LICENSE.txt
+ */
+#include
+#include
+#include
+#include
+
+namespace dsfmt {
+/**
+ * converts polynomial to string for convenient use in C language.
+ * @param x output string
+ * @param polynomial input polynomial
+ */
+ static inline void polytostring(std::string& x, NTL::GF2X& polynomial)
+ {
+ using namespace NTL;
+ using namespace std;
+
+ long degree = deg(polynomial);
+ int buff;
+ stringstream ss;
+ for (int i = 0; i <= degree; i+=4) {
+ buff = 0;
+ for (int j = 0; j < 4; j++) {
+ if (IsOne(coeff(polynomial, i + j))) {
+ buff |= 1 << j;
+ } else {
+ buff &= (0x0f ^ (1 << j));
+ }
+ }
+ ss << hex << buff;
+ }
+ ss << flush;
+ x = ss.str();
+ }
+
+/**
+ * converts string to polynomial
+ * @param str string
+ * @param poly output polynomial
+ */
+ static inline void stringtopoly(NTL::GF2X& poly, std::string& str)
+ {
+ using namespace NTL;
+ using namespace std;
+
+ stringstream ss(str);
+ char c;
+ long p = 0;
+ clear(poly);
+ while(ss) {
+ ss >> c;
+ if (!ss) {
+ break;
+ }
+ if (c >= 'a') {
+ c = c - 'a' + 10;
+ } else {
+ c = c - '0';
+ }
+ for (int j = 0; j < 4; j++) {
+ if (c & (1 << j)) {
+ SetCoeff(poly, p, 1);
+ } else {
+ SetCoeff(poly, p, 0);
+ }
+ p++;
+ }
+ }
+ }
+
+/**
+ * calculate the jump polynomial.
+ * SFMT generates 4 32-bit integers from one internal state.
+ * @param jump_str output string which represents jump polynomial.
+ * @param step jump step of internal state
+ * @param characteristic polynomial
+ */
+ static inline void calc_jump(std::string& jump_str,
+ NTL::ZZ& step,
+ NTL::GF2X& characteristic)
+ {
+ using namespace NTL;
+ using namespace std;
+ GF2X jump;
+ PowerXMod(jump, step, characteristic);
+ polytostring(jump_str, jump);
+ }
+}
+#endif
diff --git a/apps/medlda_release/dSFMT/jump/dSFMT-jump.c b/apps/medlda_release/dSFMT/jump/dSFMT-jump.c
new file mode 100644
index 0000000..7481dc5
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/dSFMT-jump.c
@@ -0,0 +1,182 @@
+/**
+ * @file dSFMT-jump.c
+ *
+ * @brief do jump using jump polynomial.
+ *
+ * @author Mutsuo Saito (Hiroshima University)
+ * @author Makoto Matsumoto (The University of Tokyo)
+ *
+ * Copyright (C) 2012 Mutsuo Saito, Makoto Matsumoto,
+ * Hiroshima University and The University of Tokyo.
+ * All rights reserved.
+ *
+ * The 3-clause BSD License is applied to this software, see
+ * LICENSE.txt
+ */
+
+#include
+#include
+#include
+#include
+#include "dSFMT-params.h"
+#include "dSFMT.h"
+#include "dSFMT-jump.h"
+#include "dSFMT-common.h"
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+ struct FIX_T {
+ int mexp;
+ uint64_t fix[4];
+ };
+
+ struct FIX_T fix_table[] = {
+ {521, {UINT64_C(0x3fff56977f035125),
+ UINT64_C(0x3ff553857b015035),
+ UINT64_C(0x4034434434434434),
+ UINT64_C(0x0140151151351371)}},
+ {1279, {UINT64_C(0x3ff87befce70e89f),
+ UINT64_C(0x3ff5f6afa3c60868),
+ UINT64_C(0xa4ca4caccaccacdb),
+ UINT64_C(0x40444444444c44c4)}},
+ {4253, {UINT64_C(0x3ff85a66da51a81a),
+ UINT64_C(0x3ff4f4aeab9688eb),
+ UINT64_C(0x20524524534d34d3),
+ UINT64_C(0xc9cc9cc9cc9ccdcf)}},
+ {216091, {UINT64_C(0x3ff096d54a871071),
+ UINT64_C(0x3ffafa9bfbd5d55d),
+ UINT64_C(0x0470470470573573),
+ UINT64_C(0x0250250251259259)}},
+ {0, {}}
+ };
+
+ inline static void next_state(dsfmt_t * dsfmt);
+
+#if defined(HAVE_SSE2)
+/**
+ * add internal state of src to dest as F2-vector.
+ * @param dest destination state
+ * @param src source state
+ */
+ inline static void add(dsfmt_t *dest, dsfmt_t *src) {
+ int dp = dest->idx / 2;
+ int sp = src->idx / 2;
+ int diff = (sp - dp + DSFMT_N) % DSFMT_N;
+ int p;
+ int i;
+ for (i = 0; i < DSFMT_N - diff; i++) {
+ p = i + diff;
+ dest->status[i].si
+ = _mm_xor_si128(dest->status[i].si, src->status[p].si);
+ }
+ for (i = DSFMT_N - diff; i < DSFMT_N; i++) {
+ p = i + diff - DSFMT_N;
+ dest->status[i].si
+ = _mm_xor_si128(dest->status[i].si, src->status[p].si);
+ }
+ dest->status[DSFMT_N].si
+ = _mm_xor_si128(dest->status[DSFMT_N].si,
+ src->status[DSFMT_N].si);
+ }
+#else
+ inline static void add(dsfmt_t *dest, dsfmt_t *src) {
+ int dp = dest->idx / 2;
+ int sp = src->idx / 2;
+ int diff = (sp - dp + DSFMT_N) % DSFMT_N;
+ int p;
+ int i;
+ for (i = 0; i < DSFMT_N - diff; i++) {
+ p = i + diff;
+ dest->status[i].u[0] ^= src->status[p].u[0];
+ dest->status[i].u[1] ^= src->status[p].u[1];
+ }
+ for (; i < DSFMT_N; i++) {
+ p = i + diff - DSFMT_N;
+ dest->status[i].u[0] ^= src->status[p].u[0];
+ dest->status[i].u[1] ^= src->status[p].u[1];
+ }
+ dest->status[DSFMT_N].u[0] ^= src->status[DSFMT_N].u[0];
+ dest->status[DSFMT_N].u[1] ^= src->status[DSFMT_N].u[1];
+ }
+#endif
+
+/**
+ * calculate next state
+ * @param dsfmt dSFMT internal state
+ */
+ inline static void next_state(dsfmt_t * dsfmt) {
+ int idx = (dsfmt->idx / 2) % DSFMT_N;
+ w128_t * lung;
+ w128_t * pstate = &dsfmt->status[0];
+
+ lung = &pstate[DSFMT_N];
+ do_recursion(&pstate[idx],
+ &pstate[idx],
+ &pstate[(idx + DSFMT_POS1) % DSFMT_N],
+ lung);
+ dsfmt->idx = (dsfmt->idx + 2) % DSFMT_N64;
+ }
+
+ inline static void add_fix(dsfmt_t * dsfmt) {
+ int i;
+ int index = -1;
+ for (i = 0; fix_table[i].mexp != 0; i++) {
+ if (fix_table[i].mexp == DSFMT_MEXP) {
+ index = i;
+ }
+ if (fix_table[i].mexp > DSFMT_MEXP) {
+ break;
+ }
+ }
+ if (index < 0) {
+ return;
+ }
+ for (i = 0; i < DSFMT_N; i++) {
+ dsfmt->status[i].u[0] ^= fix_table[index].fix[0];
+ dsfmt->status[i].u[1] ^= fix_table[index].fix[1];
+ }
+ dsfmt->status[DSFMT_N].u[0] ^= fix_table[index].fix[2];
+ dsfmt->status[DSFMT_N].u[1] ^= fix_table[index].fix[3];
+ }
+
+/**
+ * jump ahead using jump_string
+ * @param dsfmt dSFMT internal state input and output.
+ * @param jump_string string which represents jump polynomial.
+ */
+ void dSFMT_jump(dsfmt_t * dsfmt, const char * jump_string) {
+ dsfmt_t work;
+ int index = dsfmt->idx;
+ int bits;
+ memset(&work, 0, sizeof(dsfmt_t));
+ add_fix(dsfmt);
+ dsfmt->idx = DSFMT_N64;
+
+ for (int i = 0; jump_string[i] != '\0'; i++) {
+ bits = jump_string[i];
+ assert(isxdigit(bits));
+ bits = tolower(bits);
+ if (bits >= 'a' && bits <= 'f') {
+ bits = bits - 'a' + 10;
+ } else {
+ bits = bits - '0';
+ }
+ bits = bits & 0x0f;
+ for (int j = 0; j < 4; j++) {
+ if ((bits & 1) != 0) {
+ add(&work, dsfmt);
+ }
+ next_state(dsfmt);
+ bits = bits >> 1;
+ }
+ }
+ *dsfmt = work;
+ add_fix(dsfmt);
+ dsfmt->idx = index;
+ }
+
+#if defined(__cplusplus)
+}
+#endif
diff --git a/apps/medlda_release/dSFMT/jump/dSFMT-jump.h b/apps/medlda_release/dSFMT/jump/dSFMT-jump.h
new file mode 100644
index 0000000..2979f32
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/dSFMT-jump.h
@@ -0,0 +1,29 @@
+#pragma once
+#ifndef DSFMT_JUMP_H
+#define DSFMT_JUMP_H
+/**
+ * @file SFMT-jump.h
+ *
+ * @brief jump header file.
+ *
+ * @author Mutsuo Saito (Hiroshima University)
+ * @author Makoto Matsumoto (The University of Tokyo)
+ *
+ * Copyright (C) 2012 Mutsuo Saito, Makoto Matsumoto,
+ * Hiroshima University and The University of Tokyo.
+ * All rights reserved.
+ *
+ * The 3-clause BSD License is applied to this software, see
+ * LICENSE.txt
+ */
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+#include "dSFMT.h"
+void dSFMT_jump(dsfmt_t * dsfmt, const char * jump_str);
+
+#if defined(__cplusplus)
+}
+#endif
+#endif
diff --git a/apps/medlda_release/dSFMT/jump/poly.11213.txt b/apps/medlda_release/dSFMT/jump/poly.11213.txt
new file mode 100644
index 0000000..e94fa2f
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/poly.11213.txt
@@ -0,0 +1,2 @@
+#11213,37,19,ffffffdf7fffd,dfffffff6bfff
+101100115cf68ab39e5737fb551005d2d5e60fba461aa514f056fe3dea7932881ec502691a4f73cee271a369a9c6952890ba8150ad73d12700639ab4a95b024b5d4e5959ff9028ab91c737cfc42ef9f71f1e1bba39b04d120cd97cd02964bcebe59278ed5ec52a4b8d7dfd3a61771ea2dd1f98290a475aecb8a5f64e4a03e9cb726c3542b50a25f4f16431b9da54aeeb46d7d787c477314555e4b86ba611b6f8cf8647cdc95496ad7521a503b685bf37a7ce5960e96ceacd6870b74ea00b724700cd2daad58d4d0bd84d0653af9161f7d57fe7fc893652fc0b9e24e93c42b8b1a4f1cdd3425c8087abfae9c40aafd058ae58c256ac455947d8cf123968c992832f4836a2fde99e102c5ea3ea9b31008e732feee730c5a58123492433732bcff38749ba00565163daea2f7eea73668b6a3293935ab58ea5418a1dd3f05b651f85d8c9c589032a668901bcc0935e2e71ad93ebd2be3733af33ad0d90a2f82f35ab264bd86755737a468d93f37ec6c9d19b7fed0d1c5115e56559ef544a6bbe1273054a2f9c35d6179357f3ba3dae1fc13b513319f2260fd7d942786387edadc17ddc5b99f3b89d1911b2ea2bea7e8277905ed74eb50f52735a92fdfd6d150ad1ad0dc10a6183265384a831da640c0c97f4132fe9ef9994f7493c0033f75cb55162e683cd551388c81716706a8ce57801c291778257d50fbeeb4c4f04f1088eb8cdf2e8dd9e491717f7f81f16d503db870efeb8136503c67928f5c45ed2a8610c9a91b507b1e8f6a1c51b58a2b5869f71e84daf0a0833e600eca6eb41a3e86e4d8791bbe30977be349f08ff577c73dcdc2a238e4d6e648e4c355bc82429b23d19dc299c5e5eea3974e056b35e9dddd4f0ac083cec44ea1fa80766a4b7938e744ae9a076bdee61e583d952632db5e879900a1b500c61518049defdbb32563d32249cbfc9487c5c721e8e807e1416e6bcdaef848b7a2309169f484f93b6f0fa84d68f1e75ed4d20baa664029b22257428c179b5f76802d8a50a5a3b813b057f765812fdc9085b6d59ba9d6f6521ee1278df96658c2b5ba52d116a1b3d57a18613a003ff323ece8f3c84511b7a56d95075a6e7fd3b78114e02a86ab578ba29c7f3aef98aeeaf3e8ff8e94bbb7bf7eadbe158ab2f3431ce87d8c0345dd30522a58bbcef704de5b09eedec1c8f69b401c526d242b01e7485c56e91499bc7b83953d5b79862ec1d37bb5814189c4d69a2829125cfa8379fee985337e7d13de073a29c256ef982f1bab0c776613e01ee96bde60fe6c73b5850ef54600f3e9a2a0a5ba6f1f3b9b2be211dde87294b1c4170cc51f5b2ae373ef082bad96ac5efdf1d2afd213be345b830b972b62044a12bcabeab2a934406686be38602c93e0ac8a764dcfb756794ad160d2c35afa5986cc2975e96031cffe0bfecadc0076c7d80e0e52b68c23a34b12a2f71cbfec05b881d3fac344c5dc7f7a36ad9c3be38bfc3cf3e1b7001961e8b65a209deadecf310f8060caaf4d994c5936a69588ce6d0adde2306a10387d066f000ad7502b93c193c67b1d2a0c2994e4cc25c76fda207e85676bd57828ae146b2719ff88991822b717ad5914d64abbbcff1378cac976c612c10475cdf826b2a58d1bcd0b9dbe9724c270794a6faf59974665a234176ed331f160cdaac244c396377117af50c79b13261707d4ff5efdf62dd6811e5ceca39cd6c1da3cb474a3b1b6c6b72d1c64a6be2e74b0bc3aa32c8c9aa10eac1a048f283a8427821a8522d25fc5c068d74242653ce821c7bce20b3a8208a8a0022a08a0432a49a0c120c9a8012198f910c128fb92498bfa934a83f8184b91281980b980112090a1102998a992a992a882e8c2f048d06ad8c0726ad8c8f2605a4ab0a00a0aa08202820282028202800000000000001010101018b218b218b218b21832983288228822808080808080808080000000000001000000008aaaaaaaaaaaaaaaa2aaaaabaaaaaaaa200000000000000008
diff --git a/apps/medlda_release/dSFMT/jump/poly.1279.txt b/apps/medlda_release/dSFMT/jump/poly.1279.txt
new file mode 100644
index 0000000..808b5be
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/poly.1279.txt
@@ -0,0 +1,2 @@
+#1279,9,19,efff7ffddffee,fbffffff77fff
+14ca4b14ed4dab59798009986994e69dd13077f1a9e440dbf8b8ed606eeed432fd13b37e501ad87f3078e483cb19c2bd6c4ab7c088a032491825bec1cb67695ca591a4f2b9d9bef559f1f0df86b93107b474c08f65655a38c4dcba34722136b0ce066fbc37a441267541b17a44a7815c27069b930fb28d4d21b55d9d648187a8c361119d3c42dcc534812c607b48fead6d3b4443aad6e11b62511ea1520fa1df6f6920f9df8b94986d91e5e21
diff --git a/apps/medlda_release/dSFMT/jump/poly.132049.txt b/apps/medlda_release/dSFMT/jump/poly.132049.txt
new file mode 100644
index 0000000..7f63d15
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/poly.132049.txt
@@ -0,0 +1,2 @@
+#132049,371,23,fb9f4eff4bf77,fffffbfefff37
+ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000e1efffff1e100000e1efffff1e100000000000000000000000000000000000000000000000000000000000000c3c33c3cff03f33c3cc33cc30003f3c30000000000000000000000000000000000000000000000000000000000000008ff7897606e1e91600876060899100000000efffffffffffffffffffffffffffffff10000000000000000000000f0300c0c00303ff3c0000f0f30003cf0000000000000000000000000000000000000000000000000000000000000000ef160e978166870e1e181000e9f10000000087876878ff16e768789768970006e78700000000000000000000000cf0f33fc0fc3330ffc00fffcfcf33f30000000000000000000000000000000000000000000000000000000000000000e70681600e991e7668f166ef789700000000e160081810606ef781000e1e700068f10000000000000000000000000cc3cc00c00fc003c3330fccc3cf300000000000000000000000000000000000000000000000f0fc0f0ff3ccfc0f03fcea6997c46f0f9970e99166e991000000008f1e76e91e97660ef910eff9f9f76e70000000000eff16e918978768d001a271069ac3ffc3fcc0f3f030000000000000000000000000000000000000000000000000000000000000000006e78187efff9f187689fff9f9106000000000008978910810e910687660e99978f7000000000000000000000000003f333030fcc0c3f30333cd1d6eeeef789f91e16e916e10089f1e100000000000000000000000f3cfcc33c3fcc0cf356200ce51655e666ef7e97e10e760000000000810e76e100e997ef97e991e7e160000000000008f181681087668f9521b496c3d9d13c00ff0c030003300000000000000000000000000000000000ef100000ef100000ef100000ef1000e97e70810600e7e70e910e99f97000000000006e766060e99187e706668b3ad3dddf3c3033c3cc3ccc30cc303c30ff3c3cfff033f30f30c033d740a67687e9918f7608ff7e7ef99f100000000087008789f16899994830d22002a4fcf3fa3bcdfab31687666e70068f1000000000000087e991e789f706810ef18e63c059f3fff0cc3cba315c293007280e526ef0b289f41ff00ccc030cc0fcffffffffffffffffffffffffffffffffff16e1e997608978fff70ef70e18fffff916008168106668187ef9189ff768f768f978f108787000e9918f18f7e999f7fb1e0330cccff3003f003f00cfffff033333f33f30cc300f0cf3c5c73668ff78916081689970687efffffffffffff76ef10e978976007bb4bbfe276f3fc9dfd7db089d2f7897e91818f9108918ff18f1087000e99fff91ef10899160891e63f000330c3048d9fe0ac7df70602b46fbb6e42e0c0cff3fff3f30cfffffffffffffffff0f0fc0f00f0f33f0fc09ace6ec012fe0087681810606effff766e970878708f9789f1600876ef91ef700000e9999918708f97e189f16e169267b7c074ed0fc33f03cfc0fc0000003f3c00c3cc3fccc0000f30e57668f16ef181608f706810089100000000000e1e7e99f1876e1e86e142d89955cf3005da39fa2ab660e9978189f9100e189f9fffff7660e781068f1818ff7eff7e4043ccc0c0f0ff454e0398d637a9160e9c76faef06210a22b11efcf3cffffffffffffffffffff30ff3cc0033fff00aab1cabf1789f108ff78f76600effff9760876008187ef7006060e9106706e16efffff9187ef78108991ef16e79f39cee1188c6dcfff3030fccf3033000003f0fc0ff0f003cfff00ffd20f78910e978f7008787ef9999ffffff1e1000e7eff7ef76e1ef99a2fbf05e577cfcf066d9ffc7f90606e7e9f10066e16e1819e70c33fc6ff16101f81cb575f10060b703f00030cfc03a664de31e1ef181e928813cdaa0b543f2ffc0fff000008f700000606066664c83a665af603c3fcc54983dd35606876e108f708fffffff76e187e7e9768f7ef91006089f166c8c560c0cf52d25d5752b4f54024668b365f58f6a9913f3c3c3cfcf00c300000f03c3f303f303ff003c030a5e70e918991e7e76e910e7e187810066e1000660000ef1e76e1899f5f7a5b9b1ec784159381c68e0878f9918fff9970891820c00fff33ace0a84a619bbadae06e1f02ff3fccf0ffc33be91015ef0a0e9ff1cb24d449071e757863f33cc000000ef76e1e1ef708ff7dba362e52b55fff90c02c41095516e160e7e970e999918708100ef1e1e978f16ef1087e978f9fdcb4cc03cdd64b20001bccd0b513e16edffefb9b11ec3f3fc3fc03ffcfffffff0f3c0cffc0303ffff33c3f042087afddb18863acff10e7081e999916efffff91870e978187899b836c6943dd88a4a46452685e10897e100e9f91e768fd126a9555df6549681e22c3523da18976e0fc30033f0003fca687e9f6816e106085c34ec5e4b6102b91fcf0ffffff9f9181e18100897809b28e1a9e9f330f0777f572ef0108ff918789918766681687e91e781060668910681e187e916d363cc0fc32e84106da1ab66cbae168189d0a6e916b0f1d575300330030000000f00cf030c330f33c0ff3337d4c7db6bb580b05b568781668916876e10000668100060e9970810f21331d34487a46ad48cea26e1ef9160666870600eff91a1b984ac6e644f9b366e2f75fc160e1000fc0f03c0f3ccf4e0b378b87e1e76627f32561317283def030c3ef10000068f708189f1e706f1460f98df3fcfc5f24b5d12978f70ef1891087ef7810876e72666267060766078b17e560069ffacf0cc3c2d37f1571b71d2b0791606eddbe76eebb0d5e6a8333fc3fffff7878ff0e5964695944b75998a9bdea5e97ae0f2133b81e91e76e708910000000008f9999f970006e709809317ccc5239d9d1820dc25d2a2233b831cac789f7a705bb95b9dd4b93e9227086df160870c33fcfc0ccfc00081a58cd608189ff108a1ab9a8ba8be26df870368fffffff9ff1e99f7e7ef7e1d946e1e3d3831345f72be93f10066666e9f768160e9991e17508082e9a89da6658af8289916820fcfcf0f032379baa171f53410876e34bc3470c2ed515a610330f30000000001f16de8da2fbf75e7e12da12ee2811f783bf3bd6ef999f10e9760066e7e7660681891870689f75c1f493cab1ff2500276a6c153075fa5a3e43610008f370ae0be9f36cb839d75e71af60eff9f0fcc00ccc00f3c0c0ca7a658d181c991cbc0354ed4957b935e333810000000066878f166e1e99f61d9704eec5f6c136dc2c84891899999f991878f978f9764c76c8c8abbeda7612c287d20660e7c3cc3c0332dff51db71be52c9f78160e72d8283e334a3ba810000fffffffff1ee90caf3f21ebf0ba2b4f4f98c291f7a6d1e34f9ff70e7068f7e1e7870660e70e9999970e9978129f0f3bfacf24f1f92852f8d2e78a3d30df792e978106742a6b40b89e954345eb29c89f766000f30f30ff30cff3f0f92c10a87a266ba78c917b0160e2b0136946effffff97e78f10e166068f1fc271bf9ce775c05a1c495887810008f1e97666e789168d63b2b8d33c10ee6d33cc95a230000ec0ff3cf0fce02ba0b110a7599f1068f142bcf63ea29ff7a31fccc0e1efffff9ff70ff590ea04d288f4b2e107e0d1df041e386200600087666606668f9ffe9fff7e718687678877d02b6a7538ad6df312aa62d105598780861c570000e176bbedc64ff6002aed0cf661e9f1eff78989398e9a5683f795e66d2ceea7be7480addd5f3592641806f18fffffff766006ef7e97e7608f1ba51697579cbb99c38203dd4d4496b4615d35397008d0a903d4f625f46897d1b0c4b1e9991fcccf3ff0f033e38e21161c5608997eff7d07d9ce5e9c47cd80d5e9f100000000689de5d388bd7324565d0c26289e41b663dbcff78f910008997600ef1d87dcbad9a9a01f6ed72f6ec582b18fdc1c33494b3e863ac1e0133c098978f7600705cebd801b87b7189d63b10ef1e7066f41bfa16391e5154e3afea88f744a0513c9a56c85c2d9472168f99f1668997810e768f99991e0b4fd3f3536ebaa03ed2616ecdea44f6476ab84a91e1cf1eca5f27063c793b1b979e881e970000c3c3cc3f0fc8d45bce1861289f3edfbd3717ee8e99e50a8113766810000060876f41d442ecbc683cea26b12068056df62eb7089f187668106e99700a0ee962d89eb9ec4154d0246c60203bd66c3333218bdb4966a41d75371600e7ef183aaa4ae5e54c98f8d4469f91816e766f6743fe7388984b3545aa50b2c6e16a0cacf940084d8ad6b97e7e181087e9f7876e9ff97ef1e723ad6aaf60c122e353f49e63685c5c0d5c5be3960e99f70aaa6d7e7c6ce0edc3c1b3810e91000f0fcffcf3ff2a29a4151e8badd50ee920f200406f6316ae780e997600006600ef16992a0db5bb8480bf0524438d04ef75aae1e166e910600810068702a4bd8383702dac0dc868b36c2f2b98c2f333cae23c8247d221f917e9789997872fd1b3ec6d85afe520f96d78f9ff16e978c4aba3653321f73e1b3d972f0a739397022485bf79de27d910816878917e91eff1968780ef80f42403b58736b03f02a3cadfa95b276e63102091008181d3bbede91cdce0f851aec7eff18700878bc07b9a5576faea292586cbcab84d98026c9dd68afc38295e7e10000000060e7a1af973a3c7a6ba47d1f7734ad57285013c2354b743cdd2a0d00ebdd1db2ba7e0c72262374a26017bf1c25c03cfcc4f7f508f6cad68febff9781e918167b25082b838f6310020e91606e99f99e2f5c76bde71516cdd810e4e4c99cee0609abe1feb3537e781eff16e040efff17946e5cfe65e37b12eebdbdaff3fb0482f2d169614bcb36ffe78700e111d068911b30943c1cc9c58f918f76ee1e1eeed3e78bcb01819287b4dcd23cffe1a2b7ac3a735ee116e97687897e970ef96b25bc4f95a8fd67a24b90fd16037b20c7a389cafd164c0170810a0cf17c36c0465b2d037e638f0d92ffbfc3ff3cb18af73eb254a2bd8a308f389528f2fa49f8417c23672ee7e76eff76666efd97df6e373ba773f46b9701b44228c94c60039fb1bad4e9160eff161305b456a7d2a407ea7ee3f2557f46c67c3fffd184227ed460295cfaa10ef91006a1a1cc1c395bad746bbf660ef10e10666ee532c86a985b6d3b812ee7776d2075f372d77a24150b69187870087e1e70e166568c31cd96de5ccc6e3daf3e5f6d3acb51d19da5c1d014644e700e789bd8b51f5b921ec675d18690d7cdf03c000c9abca0e047853ba5cbe971fddd605fa3f477c9fa3d0b7168999fffffff7871ed32e5c0ca3a3df181a511cbae60b851e4ad05715b48108787689d69f702f1177a113824413689438c67fdc0cc39468f10b07f2f1dba9478100e9742e78d9c6c42ffbede857e7e7e10e78fffa569cb14febe1b8eae1b1fb25bc33622323cd86ba9b7d2706ef706e18078fff18edccd885cbdf35ac5ed55cf1ed63a32e4b0349862ee9516a00066ef91dd030f0e03582ac3f8c3a762506fbc03ff431c6cc5fc0cd656f9337de3649fd9ae3aa848b1edbe44af997600000006e1e5829fff7a7696070be9ea9e3a4e6215dc1b81ed5f86d4d5f2200e3ab50064d76de217a45f2c6cc8e8d1bec3f33fc0913ae2be19f696a78787ef18f10e17b97c3c81156e68117e1891066000068f6780b0c38c6dc3094c1d6a48d424d8974a7a274860766e7870ef7dfbeffff48798d9d6b439c4b54abd19840c4a76175d8141e80778036b09f70e1817e7cb3330aa07c8fedbcc441944d3453fff27aaece58bedb8a6c52e64c6a015c82a9b98d89f2f930f760e16668168978f1633d92269ccaf107acfce4ca63b363aa0fcb098b86cc2cac3b1000e9f98a9967d90d4e567c1c1a03d3c210f3f0f0b9e84449cb6e8ec462260ed9bdd992346a165f27f1112b7e18fffffffff70da579343f4e04f2d6ab722b0c6de2cb079825838da2a20066068974e506668688d58be78e5387714102786667dd6497df49595b38973cee706ef16e9951021d9048d85a40413f6e08c2939c0ff7d10381e17f5525b41eda3b36da24fa74b38453d02462ab78f1e7668997e7878133f8affa85562c0e777501698587a9c707a604499e5105d01ef9976602537b67ac12ccc2efd5defe1baf0cfc0fccf444a1469b42761724d584de3c4236028b93ea59f0681ff1899fffffff7600fafb2e6876205177b4992528485ee2bae2669ea7f8b97081ef1687e910e53aa18184126e9f7b3846c7d9123ef551486cf152f007b3284b8f1087812714c34a088bee965a6a2460ab73fcffffa274d554f06f8a6e81c5aedbc6862ee9e1888f8ab12b2f16008f181066e1816e1670332e39a7fdce86e743b420d36b6703b4556fadaacc68c091e9f10ea52b0c23825806085068dcdc0097b4fcff87ec07a800b1d3e8e563184ce582f12e1833eee8756cf19ff7e700000006060c6cc4455f7866003c0a1786bcfe1bb01c0cb326c6333b2a2c20e9f76ef99eb27b317333e302cddcd94d4580f7705137a45bac990c10c61e991e1e999a9ce19d3fb2178c3da51e16effffffff98e6fa2339107c19eaba58c87fc257e963ffcd02bf8ddf0816089999106e189f165fe5a335ca12e73f3080c0b9b91710afe7346e5febe2f3016e7ef16e0768cd8c8bb261ee921e3a370cd3f3c0000c8ad1b086b270d81597e9da7768102e62fe45dede0c6f7e76666668976608188e822e6d16526fe6fc9d7d583a6b1de6b966a6bec1dc7d166e1e7689f11a974b827d6462ee4611c585a8efcc0cf08d514996ab6bce8b8f508fbf7622bc73b208c18a1e769d36870efffffff766e6f44884a750d6dc9ccebaeb76e776efc177e0952e15e9760818ff910608f2e122e34278bc73511c2f52c747e0884e0a450c3bc17401ddb1081810e95d0f296613b96615651be1bdd303c00ff842c3f1e13f1da501b241b323370f7119cea3b0c8d894fd781ef99f9fff70e9f1e7060dbfb38f3b9d71565d504f2595d27cd1162a02afe09606e91e76024110f8a5e6ef49f5ffaff03e47cf0000fc92dba373652d9c1f5b00a2f72b64b8edd367759fde7690efff9fffffff789794cdfd51fe8b88515cce829bfb953e9e1db078cbace97e7066e0e781687c6496beb4736f293701fd535d92c9478ca2098e03c77b6b55f99fff99785a4d7b3febf7ca3a1ae717ef927fccffffaacbe5b14324e4517e1bad2a4e6674a6a55232664bd1df1870818b32222c3cb5ab5b4d6b5856e8c1f65cfe95ff1626c57cc4ff60d45be1c4478181816842eb286563b4a8c1819e38d30220f00cff0ccc5e652af1a390d1ea8dd63e1dedbadd562da394466a56606efffffff9f91a78326fa39d17d5a4404b3e415b9adc37b3b965d72ad54f019697660008f31d5235e12e5dd03a97b0b20d130ca2d63e4257bc544d7fb3ff7608f10ef2ff953453bdef8d35c59706000000008108f14586d22b344ac1444fe3e74d91562367f01fadad691e9166620464e385ed9e9207dd0dcf465aea00cd28f48f480e0158e885988369dd10891ef78e94a6781276d2374c69b29b03483fccc03ff4e5f4ef5fe45a0b24aa7d22724bf28b30336056d8c7d910e78787e1e18910e96ff87152fe1b6c84a77e1379684e5afab1f73b3b8979d81089160e9f96bb6f79fdb3914c1e7e0e479782f0cc3c3760e3eaf9bd8cd33a05909c619aac27f6111d2c8363e30ff97e1000000000e1f58f7d6e60db60be5a62531d57662c90696be6b401b7891e97e9f78f7006dfcf65551201cae9661782d8ad8e97cb2216650253f98253c08106e1897c5b63a7322799fa9cf53919363f03c0f077e18742244ee5bff3173d68778a8cde89393146822c2f00899100e7eff7878f1e7866dbc200b7e1d8ac273eb71b0f5746ae9dbe16802301999fff10e7a237fd654cfebc2ae64273a34cd03f33fc00338be8025c460944845ca4c73ff9196eb15a884258ea87ef16000000089971591ca25421d515400656c4dc1f240d4e40340d8df7e1eff99f106060895dd35931a60f043a71cc539fb62327f921fb913bd9cfae980f60891089fb836dc262a7142ae5270c587a2dfcfffff9106a92f0e233785c4a7a97fe46017e99531ed108bd3179f1e10024a322cbddbbd35047d8e3aaa22a52c5515e647884da55f06e47c52c877399f76e7e94acb80b80c81c414782e585cdad33f3c0cffcc9e6f02481813547e39598040ba720cf9b9240b0226cf1efffffffff9f10490d07f252a023bbee3f72b09463ee341ba90af72642c5fe07f8f10008917469f5d09b4c56d89b8d7b1f74f0baaca9be844910f4bb3e1260e9ff18fff1688f415015bbb15118781e10000008100065c726bf551783484411fbf2b84a7fe5ba7eaf0ea5689168787ef16effff7651f7b59ed0ed3489d81fa34f474588507e2c4124ea22cdc660870e9f80b00e986d4a82be33a706274f8330f0000f45ebb90bb47ec9d63df28a1c30d6f38494e455871502fff108787e1e181e7e8a430c3ece85ebaa87f628e6b79c107fc12b39128ed9c2870087878ff96ad37828ef09a792bd6648f6e10f03003c81b524b3eb51830b67d077b090b696b88e9c0bf1ef1de3f9f9700000000897698550ae376b3a0b32528468c20b74709f64096651ff97e78700e976e7666dff9381bc4b7b770296e79b0f3b171d8ab39493c372f1129e460681897ebf3271905a7ef025aa5f0eaf41c3ccfff78187346513c0fa547200d24e21795df136572658da86108f7818f99fff70e187b9f228d413078fd7ccd8d3d6f023c0de7fb7ead9f162411f1ef991899d5fb7eae13ceddd946fccfc6ebe30cfcffc9688568e9a5bf822451609994387f8e7e1c79a8f9ae4f06e1effffffff7870f4b2b1425a542366edbcc6bbca13fe9908995b7d66c7e1e7e18e9f1060831206c02adb2a249bcceb645be1c5fa27bd83d64e50ed885ba2ff9f78f7c560660692f023db8b0ac891edfc0000006681c17c0a204613b05e3fbf34ae5aa6bfcd2164fab7c2f706600087e1effff99fc2413b66ff000187cfe316606238170334c44032327945410e9f70682cea911014cf1904619d3f5e6220cc30000060a8960928c3a1b9fd060dc212fd18a3cccb5e30864f1878f7000000060e9d13143c21839817342c5f6e14849a6b387dc67acbe055bff16ef9f1e7666c02ad9272b8b12e1495b28eb6ecc34351aec55bca84e3a574d1e1e7606000e18ff4729de3a8f09c970891000000068916ad507eb82ca480623eb8cf0f0412a07c64d988d6f1e160897e16681000000cbe0aee87692c20e18022b7ebcdb708755e83ba857afd1a108181891168b59174303c57f1b70730e7ec0ccff00008138b8f6667c6821892886fa8a05ea45e01bc33bcaf36e16e16660000687897ba4f8dc97db18f16225205de2e28236522d20cc467e4a8978976e1e911d1ec705a8b2e0e25be87dc1ea3f00f0f08a179312c6f5af96612810c991cfffbff978ff79904141897e1000000008f7674fb500d0419d5702e5eee74207ad7f2f3cacd89df91681ef7e99f708999203acb80cf5b7c18b71dc6f0e60cfca18e4d541f41a081748f9706e70e729f112217881ac06a546999f7f03fcf0087e9f75485a469ed4096f3363d1977665829b97bf030686e1e9f10681008787e94597623b02e106085b9cf469a93c58e11751ec03b79fe19810ef7087edac88c7ade3062a3630131b1be3cfcc0fc30b8f260f6e56b339d8c3658f295a03f784f687685231e60870000000008970f48317821db00e03858ae3f6dd95f14299f9e70c3448978700ef160681e3323651abe1a9f20808ad34b8c233fc11ab91c401e4e31fdd949ff76081a0932b71ab4ac5f88c0a0e9fff100000006e7850118ca91074e9b06492ea838b2bada6ff330e0002e16e160ef10e1081666ee19e1f98e96e77e787060262636d88f24296921200e070d6006668f94aba61425e10480c9c0cc486dcecff00ff3f64c3cdf8cc1845521de220f7de1706fb7d998c3abf9116818700000006060a85d89944c9c970a90ddf5e15387798589a2ba10005335e1e78f9160efff0459f3233b247149abdd19141c3fffc3f9b6824b9db042df116689700e7840420bd49687ae007a10eff70000000068160b23e88d93d52b5ae77bf0898e6c020bc28c3b89f6870878fff1ef91089f703d765702370c258fd4c918990da616cd1dda25203d18ed98189f18701f703cf87bc65b9433d648700c100f00000379ea2f776e881cd4f53eea786eb00afd67b5b716bebb7ef706666000060818ee8472246365e6deb98a8ce2222df4e150556fce24850b910006e700601a1878b124787bea2c34ddf1b00cff330f42a15925ef051787d83e76c7e9b550dad6da91eb4734bd99ff1000000008991f65c779c8ed6b45a17576001209b20b26e797609f7ef91ef106608f18f7e4e14ddb85d91b1ac690a66ad80f00803053aa1effc3ed1ea2a7e9781e7eb21b746882766eeab5f1f9187000000ff8b20c312dbed41e673b769ccca0d50b3f6f24846e027e4897e18f7060008f166e7687dcadf1c78e0c6da5878abf5869a27c2e992ce5a998eef160ef160c5f620b68cc2292423085157a8ccffc30f361ec600e3d97a02bda062d18cc1c80ec60a4ca94fdeab06600000000008768e22241298f1387c6fb7aa2cc62333d79e16818189706608f18100891687a02900a1609e6b112c0fd57be3e330c0339ea88c3527d9b3b7f9f10606eb55b98264064e22a805cf181060000000069fba0da3be1e5d94e9f1990d1edabc0fe1a24f0e6882708976e78ff1e10008181691871668ea64592a47600b2aea0cc6aa91ba0f2dde15bd6e70e706842e5595744caea5f97936181a7ef3000ff3f0f5a5a32976887760d6f26576c68d70ca919e67701e6ef160000000006e91cff36b64993b2b3998744bf7ebbe656c165533e70635d408168ff91e7e18d054f55faced9129f98411a8f3030c3c06171de98729ae3c83660687608fce630bba576ba1e08ee10e91000000006837ae084011988e7407ca123b84a07b66cc8906f5481e78766668106681089166bd8096550935b025813f27c20348670df61b19759ca552a78f7081e7ff2272a032c7a19c3ee2e20ef1000000fc038256361be18db6cad7e6814abd648b2ee18106088402e9910666600006810ef8066fe18f845f3c8f081f31922a01efad42f49825dc85f10e9978f78903cea0605463ffac0f6a03132e30c3f3c345ce26c687e236ae79b7085891ab51964fe201460a181d10000000000008f6d17d34ffefbc3094bf261faab6d91c7fdf1060e9f91087606600e78708ff75ec78eaaa3ab050d7f297cd5c50cf33d20cd35fc5ab25b85d0006e99910a3d4b57e7fb6313c30300e9f7000000f074de870b7351faaf7a0d75db2b7768a759ecdbe222d1bad9ff9999181008787666081897e97ac32fd0592ed416204c0950c99b8c704b2209666e9976e1ac21d7e7ca1850833e40340cf50f00f0fcffcfc3326f19bd878de24ab5514e8d5747003fb6f7e6057e7000000000089976bdb0f997d12d9cfeabe07674211a5fd6e187668160876e1008187e9f76c2c5b5bcc6193a5dd2a16870600c3fcfae43475b9c18bff3e910ef1e70e31a13cf2005f52e9871ab89f99700000005d3ae35af338dc957d5381419dcfb25a7088706895e2a9b7810089970e1081eff161e10708779c3a73cb6c906808f56d2236b9ca608045963787008ff13c429b66218b153cad8d200ef91000000cc0fc56aac3945dda9399d5bae8e2414b81730e532ade22060600000000060ef173bc43bcbff8c23f487a7543c011a068f2dca1e99c2b2e706ef91818766950fc5e527fef45347331f24713f330cc2767ad03317892d0a99106e97e91073bca69c76ab4a9de7068f7000000067b8d0464541fa43c4499f1b60610e295b67e9f9f7608f9f189ff1891e910000e753e14a16b2ede405685b1b500cf4074cf4df3a59e403823f97897e9777be7006b175df1a03468b7e9700000fffff861cd77060453caea6d23b54e8657c2f72a67c4c7431e70606666000060e7e1878f9f1e92095f02f9558e662e5805ecfddf1358aeeac1818976e76086a5ca44e23d25fd4a30b468f7ef0c03c3c3003c0dadb28605496c181c10ed9137dc49c442d431d27f70000000000089b902c5e9b174e2b8a92e130e64d05f26d600870e18187e7ef16060e9918997b976d336f6e9cde36f34168c07fc3f3e205a5ff9b27f471bf28760810ef3ebf33e162b9df48deb9708910000000088d44f49a98ee91f7fd37979cdbf3539e0d9768b44c32c5e9976e1660008f1e181608189100ef5aca2b547069c0ffce291920fd1cbced29e60810681812c02c01aa38f03daa8459a166e1000f300cfc3c33b028bb303cba000968da87b8261c2f6f2f9a56df9700000000008780719807e0fe23ddf181a8dbce78c379917660897006ef787081e108ff9f7a85609df0b5434fc704c90bd73f003009406000c7f916465992f1e1e787a3891c7386a2d19fcfc7a87878700000005a71741832906a36794319bc4b4d73fec9ed18f78187668f970891891e10000e7e17689e99f0ed44daa5519a253cc27105d8c396a0d33745470e7810e94ceaf881361a3db6e1d9df97060000000033f35555d1e287c1408be29db9727bfbc65303b93398b068160000000006e16891687687eff87ff297e9c088316bfe78fc45bf9f7b4bc70e189f7ef976027adeece6309d50a5fef9f9f41f0f0c3f003c094c2183bcc287606066008f79289e4efb014ee0220000000000000689e6437cb5b2885df8448ae0e3c4b4523dd816818168f76e91e976e7681000087bd09d26e4aeac47a7dc3a3bf3f0baffdd81ac4e78c57b0a1e1816087f7834ca429375e56c55086e18100000000037267ffbc8d988a59146f3c61d0d3fabc989f9e97889760810666600006878918f78910061187e8d8bf4bedf3f3f7dfc3255c6632acad0e1e97e1e76e8a919ecf055cac9cc4ee80e1870000c3f030f0fcc31eb6e80b0e3876a76e3873d5a106b8f2596fdc97000000000008f45da9f79a4dc5fa2f328d6a9e4fa78d68689991ef18ff78f708f187e70899756b5bf398fadaff05cbc8ba00dc303300d13f3f9e5e57b377e70066e9ff31e37b15416760effc10ff1000000000084e9c75a32c6f86dc77bb3bbd046716fd5e9f916ef9f7e91876876681008787810087e16891872416a3999cd11c30f7f96749f0e690ce1886000eff9f1aac0de833a947fcfa2f99d1e760000f0fccfc33fc9996cff1574fcb9a8939ab28da12f425dafb0b60e70000000000897089f7668781468f69259cf2a879fe4183608910081666687e76068f1681e532587603146e7063203cff930ef303f0cf0cff35ff987651d2f100600857fd5c5c1dcdbb3c3c30000000000000005d8be5a433951a9881ab3f3451b2725595ab787e16668997687e18100e10816e16889f981ef66ac8ee9f55e33b3cf2697bd4dae8cdbaac99ae1060060824ac043546f7a3426b5a5f7e91000000ff00035a5a33005925ad6def42eb6bef30fd28f96e9bc7ef76060000000006060060008f76e782e9cb0c0364068f12ff568aa458706dc45081e99766eff99e3392217b12ea598bb887870000000f3fc0ccc6a1717587b88189f781660d9c686f45a0788ecf320000000000000671906effee808135b3d3ec862dd3f5bc1e9e106e18781e999f78999ff91089f165b9f2d975b1a7e4784c6b4befc3430c7ff242c3197da6a9e970081609e18a575d07fdb63cfe0f7600000000f000c8ae92fb0462a61841e91c4099f18df04ff7870e99f706ef7066660000608187e78ff7ef15a798e09b217711f017818af2503ef40da73089f1e997689e568bc05faef229a71101160870000c30ff3c000eede0c67ba6026e7268fb55dfaacefbd3b25fbe8f700000000000899160878181664792dfca07cf9e0964790d91681668ff166681660008f18f70dff5df8a57e356b277d68fd1efc000330f3d20c7252b4692cd7816e99f1a47131f3340241f3f0fc00000000000ff842c3cdc032c3c2ff25a84cd688b65c7f24000e766e7e181ef1066060008f160e187e91668951aa95425f22022c6e87d4f52097a312407f091e1e1e106cbee7f84a5c669ec784666e7e10000f30fcfccc30fcfcc36e785d6eb47e5d64de0c32bd64832ca97e9700000000008768970e76e99f52e7a0345c5a11521f3a56600081087870e1ef1ef0e781687c6490b8b2738ec64f771e7e1e91000303330fe0e54b7f6a796e7689f916a5da1529f67cda5123c0cf1e10000000005534d581bc24d54ee91334dbafb84a854edd99f78ff7606870818b322dd3cf79a85cddb5aab51d6cfde5c09ccccf2c2d85d41e81dca497c44991606891d564307db9e1788a8d834876008ff789890a2d7f800c4b7f7b76e4f3a6d9f472acb76870e787e99760e9fffffffff9f9168706e9106e1b2cd426d7ece20f034fac8c61c9ff6221b1632670e9fff70ce2cb456098d3d28b9b1897e7000003c0303ccaa9b942b171f9997666006be1eb4129de7cc0a531e9f10000000081081e760efff1898cd1cbbe61bfbdb664f70ef1e187e16810816662079b2f49e2a1191f9b6f44ebf132a2b1780fc0f3ff0fc1f2b590df712487e9766e7973ae006eb857000f3cff000000e7068ea005807de89a117c0e2a55eacd0a3bfc1cb97e9f1e970e10891e781600689910e99f99f1e1e65d627b7a507fb0cf1d366a6244df6017dde4a1afff91681944900f9d3c49e81befb9e78910000c3c3fffff0cf3f0fc35926177f69a0fc226c267da5a9f97608f999100000000008fff16e976e72f68ceb57fbf3644b9a79e10e76ef1060ef976e70ed8712d8826ac490be1f59b14e030e78ff10000333c00ea109ce9fa4bbef91060897c5373a793904b30ffc330000006e78177981e18ee8ef9f9992c0f4591426f4be7ff000818f99970ef100e168168ff7870e18f999ff164bf182d136dc80ec6030a6f1d872aac55a1770960e9f7062d47f315a7c79cea947ff000000000f0fc0033f0cfcfff356b86446c78c3ceaec994b90e97899ff97e976000000008916e7e7608970cfdeadf7e738c160261183066870e997ef1068ff916cd843fce115d546e97f27d27a43df97600003fc0f30e22dff38f7d986e76e7897a6a7533e49d32330100c00ef1000e97e70efff99f7e91e9744fa38b76f035a36ac979d99f9918ff1891876854cddcd5edbb132ad3a5a24d63326d53911cd3cff0cf02de6235511983f6e89ff99f9cb227faeaea039a0ecfc300000870087850ea4c3f0b7fc01590e2552ca7a7d17072ae9976876e997891600000000060e7089766e760669c24fe5e55d8955e16d07c119652151eb6680c989526e79a5cf0334f966f92bbb6af2008100000fccf3f03003c3fe21d740e7660666087069ff7f1890e99e10e7000006e9ff78106e7e9187897e2d2af449e964cab83546c7087666681876e16e1e18edf1fcc7a99789767c78ea2626ef9f6bccccf0cc3f308035547b789a381066e10f8476009c101b7e0c03030000000891f10e63d44878701685b9dba0199102a443b7dc2781ef766e99f970ef7eff1891ef97687876060d7fd4de35677d4fac0fcf2e1e16e789057f9738f97e53b11d1bd32d03fc20cc10ff2fcf1000000c33c003cfcc003cca70d6c886f86fc0710f88319e1e78166066891000089916060e106ef99ff9b659adbc3d55c4cc1aedeef106600081666818916001b7f2e5274e019e00ce93f25031816063f3c03c00f2c3f2a66f1b3fa38f99f91895eb31775796396923fc00000000e1e7e918fff9999678724f8e5ac0d7a9b93398c985f1600081000066816e100608f1ef1e9918fffff1e7e508930ef6e530330ff084638788c6df956206e916d9b44b1f2de0d217e2d3ff0000000000f30030fffc33ffffcc0c966e16e9b770ada898fff10ef9f189708f10000689fff100066870e97cd5d7e9d381a5f9d134fb8706666681eff106600e89373716d6539eb344e215ddeaee256e9103f0ccf3cfc3ffc3fcb2bc4ea1e1e9160a3e7066e991e9ff93cffff1e1000e7eff789f7ef9f9f4b83a8d69843cc3b66de930a2a08f7660687089f7e916007f70c359c66e970619f72aae2f997ef2003f03fcceb0c6ab5770bd4278100ef4e5a59532f7b510d0f3fff3000008f700000606000004c83c00faf6444a300df7bbae5b9f7e18f91e70899ffffff76e76689f999f91000e669442aabd9de953fc60ad789f5f4a76a6a1a3000cd7d6c1c97ad9fff3cfc0cf300cb70000f03c0cc3c303c30333d840b87660e1087e9181818108f99f991e166e1000660000878f1008768fd0037b83233445d56ca63046066ef78f970e7e781ef946410fff33908781b9bef681caee7ef07c00cf030f33333429dc0b303491e18722445f979f067618a33c3f0000000ef76e1e1e7660000d3b5ed22d4a9e01fb44b8cd2c3b818187600066689ff7e70816897899789760e7f6e918f918f7ccb43c03cdea7e7eb243aae2a3920e16c1e8e685de100000cff0f00cc0000000f0000303300330c0c00c762b997e183a97e05b5566e9f76e7878f1e91000006e7006000ef1e97c609e2821dfd0385b565878897ef9f9f999f18ff76e9b1a9df338235876e30202023eca4687e10f03ccfc3c3c3c3c553161ae766e7600048a5ed9b9d9b9b7ad3300000000606e7e160060000090a28e19ff61efff074bf81100f81006e78999706e976e97876e9991668789108f970008ff1e1346d33f0ccdefff15463ca8ed24108f7e7c00c211bccc255ba0cc00c300000000ff0333333333f330c0cffc420e16a60b120065b506006e1e16e991e100006681897606e9106069e823ef504046c951511dd100897689f78fff7ef7ef10e3658487092e9708fbf40bf707b76000000c30333cc33cc3b5d9ed96e16e91600897600870ef10e1000000ef10000068f766600000000f9b3466530000006f142c10558f7e7081e18f1606891e76810cfff3810891e99995666a1891f78ccf0c33c1f1669913586245af6087e1427543978f7000664c03cc0000008787000e999700007887ffce55b6e99f08e1f7572d291e9700e9ff9f1600000000899f9f70606000e985906f7f906333d6f00f3330878b2c400296c4b9f10e5605b42fb1000000cffccc3f30000000c330f0333333333be875a5891e16897e766ef99f7870ef10087ef97000000060089700008fff70500bab3333bccc4505387900681ef16e9f91ef99f18768f1fcff0b7e976effff0300f481689130fc00033fffff76d90516e457608185a3a34cbd32c524a91000000000000000ef16e910000000f31ce91ade7e10ef62fbeff547897eff187e99700081e766660008ff9997e700660008ff9997e70cfffcf8760e16e785000b9e10687c812055910000000c00cfcc000000000f0f0f0f0f0f0f0f0000ffff0600668766080668606600e1006e9ff100000000660e1e100e9ff16fa5f2d1eff1600ef63a03360e910e7899f18997e16ef187c30886da9787878744877733000000c3cc0f0000000000c5a271f181810087e991810e7e7eff7810000000000000e1e978700000000f12da8480000000800235fa96e999f9f9976060008fff9f1000008108f991000000008108f9910cf330ffd1e1e1e16c12bf0e300efff172006210000efff1f3000c00000000000000000000000000c3ff3ce97e99fff12270a3168166000e1e7060000006818f787008700e10117f8880f880fee6600000087891e1008f7897687891e1c0bc8ba453000000c033f33333000003f03c030000000003792c03ef766e910e76eff10e766e910efffff1e100000600899f10000000360fbaaf1000000650eeda208f760ef160e1e9108f760e08ffffff0e700081ffffffff0e700081333f0c0000000000ba277470087ef78e76e87870087ef78efff000000008ff78976068100008ff7797a3aa0e1e1e100110cbbc0000000e100e166000000899910008166e766ef9910008166eb69a9c303ca21681a07b7bd1dda216816c8b7712e20000000c0cf0f303000000fccccfffffffffff0333300600e768f1606e7e9910e768f1606e7e9f1000000006e1e9fffffff1cf06e1d9fffffff12ee1003666e18100e1e1000666e1befcc33cfc2fff103ffcc33cfc2fff100300c0fcc0000008150e311dc0e10870870ef1e100e108789100000000000e706608187870000e73aac7d4b470000003a230d253970689916eff1e9f970689910000818f1e7060000000818f1ebc5c0c00315a99ff3bd3f591bea56600c7ef366e70000000cfff30000000000000000000000000cfffffff38f10006c168ff1e50e100060e9700e168100000608f999f99768f958f7c999f99768f95eff30060081e76e16e9181000812761e62528d50000c00ff0cc30c3000000f3fc3f3000000006959c3f36899f999f76600006899f9999100000000006e7660600e1600006e4693af021600000840722e8b818106e10081e187818106e9700008fff7000000000008fff703f3f0f00303f00003f3f86784ec0ffff700089787effffff70000000000000000000000000000ccf33fc0f3bcff70aa1c27598dcaff7066ef18997e760000660066810ef18970e10066810ef1897087000000e7e97681891060e106e97ab2b51050d2e1000c333c0030330000000000000000000000000000060e78f16e100000e91e78f16e100000ef1000e91687666e700000e6e977666e7000006fff906e7e1e10600e10606e7e1e106091efffff00000000ffffffff0000ff3ff0300f0f0000ffbefe466179e91e76e10e766e76e91e766000000000008700878700870000b7cfb7b800770000362ed75778e0000006e1e7687810000000000087668106066000008766810ac950f0fc3fc0008536a171f447d0004a3652bd088b1000c3cfc33c00f30000000000000000000000000000efff10e91e1e1ef7efff10e91e1e1ef7000006e99f9f9978fffff9189f9f9978fffffff1000ef7ef1600e1e1000ef7ef160012e10000f3000000f3000000f30000fcfc3f0cc3f0000075ecb61acb0706e18700891608f706e10e1000000000000891e1e1e9700000f451d121257000061351dfde3b0e1e910681ef1ef70e1e97e9100878f976810e70000878f976810e80f0f0f000008768ee696901000047a7e166a6c10000c0cfffff3f3000000000000000000000cfffffff30000006af708f7620000006608f70891000089999999f70000006e999999f7000000e70000e9f97e1876e1e1e1e9187e188a1d2d2d30d10000fcfccccc303000003333333300000000333333da91608189100000e9916081891000000000000e10666668760000fee39a6564860000feede21d1c11e1e1ef1e1e1e10e1e1e1e10000818fffff7e700000818fffff4e73cc33fc30008946e42b5de2cfff7606e7e76e1effffff70000000000000000000000000000cf000000cf000000a98ff99f50100000668ff99f9f100000000000e9f9999970600000e9f99999706000006666666666878787876666a6997878b8e10000c0ffffff3f0000000000000000000000000000e1e7e91606efffff1006e91606effffff1e1000e78fffff18700000d7700000d770000030fffff9cf68976e97000006006897619700000f0000000f0000000f0000003333333300000006555555dc10000089766666ef1000008f1000000000008f7000008f7000004c8333337fb00000c37aaaaa69d00000008999999910000000000081efffff7e10000081effff37ddffff3fc30000473466662152000cbb38999522a1000c3c30000c3c300000000000000000000000000060effff1689999970efffff1689999976e1000660000006810000068100000681000000e100000666666660000000066666656c0000030c0000030c0000030c0000f0f00000f0f00000f0f000088e86666e181000087e76666e18100000000000ef760000ef760000d389ffff2c7600063cffff78abffff789700008768ffff7e970008787000087870000878700004bb40000cc3300083ddcfff7c2230008f1effff70e100000000000000000000000000000000000c3000000c3000000ad766666cb1000006e76666608100000000006081000060810000608100006081000e1e100000ef100000ef1000cfdf1000c1c10000cf300000cf3000000000000000000000000000068ffffff9700000068ffffff9700000000000060600000606000009090000090900000f0f00008679000089760000897600008976000000000000000000000000003cf000003cf00008adf000082af00008160000081600000087000000000000000000000000000c0030000c0030000a0e20000a0e2000060e1000060e100000000008f7000008f7000008f7000008f70000000000008ff910008ff910008ff910008ff9100000000000000000000000000000000000000000e1e10000ef100000ef100000ef1000000ef10000000000000000000000000000000000000000068f1000068f1000068f1000068f100000000000000000000000000ffff0000ffff0000ffff0008ef9f000810600008106000081060000000000087870000878700007887000078870000ff000000ff000000000000000000000000000000000000000000000000000cc330000cc330008d4230008d42300081810000818100000000000000000000000000000000000000000000000000e9700000e9700000e9700000e97000000000000000000000000000000000000000000efff1000efff1000efff1000efff10000000000000000000000000000000000000000000000000ef100000ef100000ef100000ef100000000000000000000000000000000000000000000000000897600008976000089760000897600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e10000e1e10000e1e10000e1e10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000efffffffffffffffffffffffffffffff10000000000000000000000f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008787878787878787878787878787878700000000000000000000000cf30cf30cf30cf30cf30cf30cf30cf30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000008f708f708f708f708f708f708f708f70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000000000000000000ff00ff00ff00ff00ff00ff00ff00ff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c300000000000000000000000ef10ef10ef10ef10ef10ef10ef10ef10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000878787878787878787878787878787870000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000efffffffffffffffffffffffffffffff1
diff --git a/apps/medlda_release/dSFMT/jump/poly.19937.txt b/apps/medlda_release/dSFMT/jump/poly.19937.txt
new file mode 100644
index 0000000..ff70fd1
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/poly.19937.txt
@@ -0,0 +1,2 @@
+#19937,117,19,ffafffffffb3f,ffdfffc90fffd
+10455110544511444054554514541dbbb0a20820a288a00a80a82208280b73237d2ff2ab5e2fcac914510101df18802aaaa08a022820a02aaa202ae822c364b91fb08598fe4410154041f028a266586e59cf12ce316b3a56af45cb49d02c7059cb89d2d81b0d288badbb25fa4e53b280aa88a22aa82abe7fc0645b7d7a4650c1dec48f21224e3d0e6e04c062c2273ef0d8361415c724dbc8f79118d5fac429f35dc460f6007e54c3966c28808e4c9308cc46e2e0e153bd922223796d4101af867e16e6641e6831e06ebbd2beaf52b2b47076dbf3a3e36c6d14d19dbf5d4b2b44b4d3aa6e1ea102578d765f08e1cb0749220075b8aae81c6e99692a56b35ddd4cf91b1034f1398c98e2d4ac8dbed09bc73ede098514cf3ffdf45cbb59335e3ec42f5f6a5672acc4ca8daa02a2502350ac0485f8b36f27d7a1d4d4b22fc7601e22a4f7c6ba53782b335837a21a068e8fcf3fdebb28860157301519cdea328b1ef4b8d5bc512ce65ff33298c34cc98ea1558f7b6d4db594f4bcab58d9f7bcf5cc59e259216de13f77569bbcee1c8abd55de985b7129e611d156c08cafa022ad7a2206a34a61e5c4c91e75495112003ec03c182a0155d9221382d0b30f45a00d6c19740f9ecebb448de78dfc0342f14166f54afdb97d00ac1a390355ce2aa9de1b3c919d8dd188fc9451ce9c86fa560a2da9dcaa681efd21fe5b6055f8e35a833e5704936245d06e387bf9956251bf0a252628be7a3cb0edab4aaaf141e6d7a9929cc03afa76ca433016d880def9e4cf10f7274e58aa35c372b7b7fb210fe0dc1a6b8445e7774ad6001b9aa1f2a01a790ee849e7ac810e0a646e733a7121bd727a9b593e0c9f5306dff5105af5967e3cee81069100d7e91a9c266e64c9e073a6e527765308879b22ca062668f9a564da6314dcad51405f160e8259582b7c06c313c84b0acba44958c052e6be540a7688e240232bee40b990dc48ee07d560786ca34e7df1bbdd2bca38a30c548ec57e91906b8417ff0da68db9c154d8ad83b06a6fc2b2e14ca5fbe7bd50382949c9b1f6e8540d9d43b35fa76a6ded27c2f17095a4f330626c5e86e8ff88ae53e05a434356a04a1ddae43b6e2ab883719360fbece72b6090ab17414ca7006e49d183813422c808fde53a30f872254bb554653aef86855f95a9361782100de2402efd749cc8cf6a837066c1c40c0160e415d8119e53a09877f1160ef8b99b2839e9b8c09b1e461e906041344c8fc2ef0a8eda04e319da41e001e60bc64dcdfc0593dff0f4b390580e1cd5b3c16204e77df10217791f99de49fcdc9160b793fd980bff7ae0cbd570425eb439352e5032e03797461376b5fb92aa156ad64935cc201a162f10f04b6d2d20a0415ae16f299e98baa86466f6f517f05f430254884a4010ac196540b0644e3c274323d4f0206780d38175f1e41fcb65bd387be073abee61b99d43f6b9106953ae4f6906e6ac0741e26af05fa9150c4f380558668aa667e404e3784b839d631e35af015024dbfc3dce4685574cd1e58eb72c70011090a2a876b65e34cb6cf297d24cb61ccca5a9706f34ae1f66345998f850de4e48d77cdf6e00fb0d2210ec9fb53fed02a781f7dfcdb609b9f955504f450e4b7b623cb0f5ba1ea09d92cd8d14f7e827b4580855f3a7dc2e5a45817df9e26adb5934f6026f745cb0f65e71c590bd954d1abc3826379719b7c6f4a0cbe6eb22a903b98bef785bb96efe2fc96988722c91f3e59d28d8244c8bfb59ee26082d82cad937ee70f178b44082533308ca24f236d8b91ca7af5b3d865c90d61410e1ffe39be6433a12ef2932e101b4bb34befa76748e0364a96f06e7932f44297fd5f85765b662c3ade19d9a9d9479f6de20b6b753d3dcbadf63e344578b98af85b4c4c63be9d154864f5d341f210f3503a60efec38ee59069499d0049aedfaef9264a7ce9de460a01e5437254fc68dfaebaa5e0e791380806bc149aedbc1d771457770937a5d606fc5ae728993783e6c45e1f5e1b9492a32f9df46a01020792a3803af04837a3905e7cc6ae68c512cb58f4facb457476729bac1ac89a7a32dc6857edbd6624ebeffed9d4e84a2f4ded9759962635aac94ca72d039c14af6e932fc84c25de28688acab0f41ae931a0f35b9c4195483d902f95e0d3e745e08f334cf5062da9fbd18fbb9efeb275a50a8a479939aa3e376821a030f0d241a4c4f6e3298a43a7f2166db483946c5ca623087b6252e27b09805d92a834ad914b9555f9c36150bb17d7e85f6b1a10b41a5c36a1fd0fdc354ec91720b245b0abcde6b38fdd33f471aa6ba1dbb4f178c3c6d8140a1f0700e072b0f9aafe1208abc94eea750b84e74ba6781b48c398ddfd2842e5447a11767e4f467864e4447382379010669f07870339ca42ac290063b40eaba1daa63cf6cd70c5a600c018f6933dc8bec000a521344cad7320ba121dd21f4723d38a8d3ab8c1f0f6c5a6995b796af79407ae1a7ce6d78922677d9990dd2a588f8a3323d80e9a69417f5224565afa60b64604e7316229514dcb7282b4e638981a5751d114da1ac9bf31f0e2fff5213f2020f9f2f31a8fd0c614e80c1a056d4b1af3ded2f696578f56427962ca54f4a28a502a0ac59013416abd81515fb1956ccb494c05ef61cab48474b6b1609cc5a3871a5111f8bf0a76b378f0e646687829e30f5762156da66c1b1c7abc0eb84e6ff2b9f5b22d34540ab97d643e8dd2e35f6e9e4fc2c30d8af88b2caab7bd5d4a6cf967e8ef79967c1ae85bf7d410a79f4630f13fdc6507d339909b81a29d84741103371310e5b4e279758431df627553b6826fc4c98e5fb6551315b0bd811b7b0f357198210dd99ccd8fba2904114c3e0b344eba43832b3c507e8b6b586e4ab3dc7a2ec71e150c54a13eca2340328d0b3e419ab2ba862ee93fc239fb46d907628055e105318e7fa52f9a83deb0e3cb02c62b8817702ead02a315f76aa1d08860cc5214a867808e33f8e075241956f148f876f3bc66566773610c9c5935b559c0ac47d84b6bfb112f59842be58df51055cf9180264f53f7795d4c934718bc65f359e34a8d230408854685b59c3a9f4d73a229bb465d4da3165404c6786c767299f57dfa85a83492fb4f61386441c928224cd88a7f4b36f245b7aa2b5c97b545ac4db8afe9a1a87e27b57d94c2bbffdb6e88f812aa27e0908048812086c2a72289d7bf136b3a1042a44d1913d39caec24ffda22814706f080b6cbe00e9cd442ccdcb600a436c0daeacbc5482021ba8a06c1fedbb333793557d5175b9313799ff91dfa620380a9e2a10132f0818bba72072e359726e2bd1f2ec98e0face32e0f88ee2c6f7cef7c2fbceffe8d3ccdff97b7ff71d861ba8b98237ccfb00176ee02206ccc08026cee082a88a8a349a1c9016983ea10789272105032f89b3113fd9b75b35c884622ec884622ee8aee2aaa2aeae86868c868ea68ea6862e0624062ea22aa66ee66ee44ee64ce64ce64ce646464c4808081808080a0a0828282828282822222a8898888888888aaaa2aaaaaaaaaaaaa2000000000000000008
diff --git a/apps/medlda_release/dSFMT/jump/poly.216091.txt b/apps/medlda_release/dSFMT/jump/poly.216091.txt
new file mode 100644
index 0000000..c885ecb
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/poly.216091.txt
@@ -0,0 +1,2 @@
+#216091,1890,23,bf7df7fefcfff,e7ffffef737ff
+10004040000040400000404000004040100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001115401000145111111540100014511100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000541114045104000054111404510400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001050104140001014011401055144015000000000000000000a8222808a2080000a8222808a20800000000000000004444114000405544444411400040554400000000000000000000000000000000000000000000000000000000000000000404000004040000040400000404000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000511515045051445405414150040510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000114114104541551505540005515441000000000000000000a22a2a08a0a288a80a8282a0080a2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111011101111111111101110111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040541541411544041541514514000000000000000000000000000000000000000000000000000000000000000000045445410514501511415054100145000000000000000000000000000000000000000000000000000000000000000005510514415450000551051441545000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111454154455414001040544544510000000000000000080a82a82822a88082a82a28a2800000000000000000004405405005154554145110045541150000000000000000008a88a820a28a02a2282a0a820028a00000000000000001054054150041044044011554410045000000000000000000aa20a2882a8a0000aa20a2882a8a00000000000000004444444404440444444444440444044400000000000000000000000000000000000000000000000000000000000001000404000004040000040400000404010000000000000000000000000000000000000000000000000000000000000000000000110551100015444015444005510100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014105555551000001410555555100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000150150404514104441544451441451000000000000000000220aa220002a88802a88800aa2020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015555541505514550100411444000000000000000000002820aaaaaa2000002820aaaaaa200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000451001004410000045100100441000000000000000000000000000000000000000000000000000000000000000000000000515141441144115544001455405100000000000000000000000000000000000000000000000000000000000000000440455400044111144111104550400000000000000000000000000000000000000000000000000000000000000000045455011550410145551400545100000000000000000000000000000000000000000000000000000000000000000040504555555000004050455555500000000000000000000000000000000000000000000000000000000000000000054540411415400005454041141540000000000000000000000000000000000000000000000000000000000000000000000144501015001015045110500450441000000000000000000a2a28288228822aa880028aa80a2000000000000000004414410105505001154111550150550000000000000000008808aa800088222288222208aa080000000000000000000040401515515051155410440045000000000000000000008a8aa022aa082028aaa2800a8a200000000000000000000445555154145505514000540111000000000000000000080a08aaaaaa0000080a08aaaaaa000000000000000000040015051011150004001505101115000000000000000000a8a8082282a80000a8a8082282a800000000000000000000550041011414110514011155541100554000000000000000000000000000000000000000000000000000000000000404000004040000040400000404000000000000000000000000000000000000000000000000000000000000000000000000111044145040140541040544550100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000501515410405100050151541040510000000000000000000000000000000000000000000000000000000000000000000000144144445505514104115511154110000000000000000002020228220a8202a2aa822200aa800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010541110114114401001110544414100000000000000000022208828a080280a82080a88aa0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004054500054110450440454505041000000000000000000a02a2a82080a2000a02a2a82080a2000000000000000000000000441504000050400145154400451500000000000000000000000000000000000000000000000000000000000000000504054054041504444514440045110000000000000000000000000000000000000000000000000000000000000000004105400445154545154441055510000000000000000000000000000000000000000000000000000000000000000044400150510140141500141155140000000000000000000000000000000000000000000000000000000000000000044000004440101505441015454400000000000000000000000000000000000000000000000000000000000000000041445401054505041100005005041114441000000000000000000882a080000a080028a2a88008a2a000000000000055550010104415511005541404004441540000000000000000008080880a8082a088a8a2a88008a22000000000000000001005505155104040145011000054500000000000000000000820a80088a2a8a8a2a88820aaa200000000000000000404154404405401140044404111505000000000000000000888002a0a20280282a002822aa280000000000000000000055041504515405105410101450400000000000000000088000008880202a0a88202a8a880000000000000000000001415101441014541501000114000101500000000000008288a82a0028a0008288a82a0028a00000000000000000044145051050450004414505105045000000000000000000aaaa082280aa0000aaaa082280aa000000000000000000000000411044415451444101405055145450000000000000000000000000000000000000000000000000000000000004040000040400000404000004040000000000000000000000000000000000000000000000000000000000000000000000000001454545545401010044111100000000000000000000000000000000000000000000000000000000000000000000000041155451144440055110010500540000000000000000000020a88280a2822a2a0aa0a0202a00000000000000000005100510000000000510051000000000000000000000000000000000000000000000000000000000000000000000000015541505411151040511010414510000000000000000002200882a8a28882828020aa28a8a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015000145140051140045140454101100000000000000000000028a8a8aa8a8020200882222000000000000000000000000004154154144454150410410555010000000000000000000000000000000000000000000000000000000000000000555004515055501510544515140441000000000000000000a200a20000000000a200a2000000000000000000000000004411554515001151140551555055000000000000000000000000000000000000000000000000000000000000451014505515415544051511154550515100000000000000000000000000000000000000000000000000000000000000000554501414511140400005101541000000000000000000000000000000000000000000000000000000000000000000000405500511545104055450401111454000000000000000000082a82a82888a82a0820820aaa02000000000000000000004110155441115045015500410411000000000000000000080822a028a0a88a828a282808820000000000000000004551540404054005444114515000100000000000000000008822aa8a2a0022a2280aa2aaa0aa00000000000005411105115501415105410011000005055000000000000000000880002a82aa022a0a02808aa0a2a200000000000000000145154544154441054054544540000000000000000000000aa8a02828a2228080000a202a8200000000000000000044100405005155115410540115405044140000000000000000080a2a2aa2a228080002a88800000000000000000000000044145100455410010140410100000000000000000000000002aaa000080008000aaaa8000000000000000000000004551114154045505455551011114111000000000000000008a008a00000000008a008a0000000000000000000040005101510140004000510151014000000000000000000a822202a88080000a822202a8808000000000000000000005504040101400144515540455511450050000000000000000000000000000000000000000000000000000000000004040000040405140444411500105504504544400000000000000000000a08220a2882a08228820288828000000000000000000145510504055150501555000000000000000000000000000000000000000000000000000000000000000000000000004104504411151415111000154414100000000000000000000280a802aa000002820a222822200000000000005115100051151000511510005115100000000000000000000000000000000000000000000000000000000000000000000001140510101155114500011504110100000000000000000000aa080028808a2888208228a00a00000000000000000000000000041101415155455001141401400000000000000000000000000000000000000000000000000000000000010151510501155015501155050410015010000000000000000028aa20a080aa2a0a02aaa000000000000000000000000000045550544105110414051014500410000000000000000000000000000000000000000000000000000000000004100404404511015555040150514405440000000000000a22a2000a22a2000a22a2000a22a200000000000000000000000000445540005051404400405000440000000000000000000000000000000000000000000000000000000000000000000451011541514400150440041054105410000000000000000000008220282a2aa8aa00228280280000000000000000041515040500545414005110000511110000000000000000000820a808a02a820a802a08022a020000000000000000040510114455004455115044555545400000000000000000008aaa0a8820a2208280a2028a0082000000000000040541554500114141510511045544115050000000000000000000080282288a2000080a08a880a880000000000000454450114140050510455455000010001510000000000000000000088aa8000a0a280880080a0008800000000000005510511514154045104141154451004451141540000000000000008a202080220aa022a00a80a2082000000000000000001010441044500515015000540441100000000000000000000082a22a82a02a22008a00800a200000000000000000040445450115145415015454545100514151000000000000000080aaa082028aa828288aa20000000000000000000000010105050415415001104455040400000000000000000080a82a08aa2202a0a02a28a88aa0000000000000000000005000101140155441145454050104410110000000000008a88a0008a88a0008a88a0008a88a00000000000000000044155111550440500500555011411445001144100000000aa20aaaa008a0002aa2a880a802a2020aa282a8000000000000000050044110401045144455454515000000000000000000000000000000000000000000000000000000000000404000004040041500551450100411444140150000000000000000000000a82008a2280a0a800a22282a20000000000000011041510100041104515540044110000000000000000000000000000000000000000000000000000000000000000000000004051041104005450541401444410000000000000000000020a2aa2a28288820a82288202200000000000000141000001410001415011510044415510111550000000000000000000000000000000000000000000000000000000000000044051050500050411104004015405411000000000000000a008822080208a2888aa8a8a2a00000000000000000000000000450140000455004104041141400000000000000000000000000000000000000000000000000000000000015054044004411554114415514041505450000000000000022082a20200082208a2aa800882200000000000000000000000000414405544455041401050504410000000000000000000000000000000000000000000000000000000000000150000401145054555410415451155555110400000000028200000282000282a022a2008882aa20222aa00000000000000004405400541441401150411440040150000000000000000000000080008a882028280808aa0a82200000000451000045511504450151514104115540514450000000000000000000008a02800008aa008208082282800000000000000051144545515411001141114115440144100000000000000000000082a000aa8028282208a880a8a0000000000000044005450550004040455541055545455000000000000000000000082880aa888aa0828020a0a08820000000000000045455554511050410504514544144155454555000000000000000808a8aa8a0a022a082a802a08800000000000000405000000544401544551511111014545000000000000000000000880a882a2a0a2aa208a2002a08000000000000054540000451104540115110544450140055150400000000000000082002a8002800aa022aa2a2aa8200000000000000000144545444545410010004455501151000000000000000000a2288a8a0a8aaaa08000202a28a2000000000000000004414110110111550554015004454414105000000000000008800a8a080000a800aa8a22002a80000000000000000000040040404454545441054144544440405044100000000008a8aaaaa282008822a8a0008280080882a8aaa000000000441000010040115151410510555505451000000000000080a0000080a0000080a0000080a000000000000000000040015000400150144145105455504544450010100000000a8a80000a8a80082222820028828228822a2a0800000000055000104001014411050501400151004100000000000000000000000000000000000000000000000000000000000040400000404000101511110144114000541055000000000000000000000088a22222280a80a88208820a000000000000000111100050450145451150045040101144011110000000000000000000000000000000000000000000000000000000000000044115104145540504541540541415551000000000000000282a028a220a20020228a0a8a2000000000000050151000501510001545155551515115445401500000000000000000000000000000000000000000000000000000000000014015100545055511554410000414541010000000000000208aa2028828aa0a028aa2a200820000000000000000000000000041445550054014015104005000000000000000000000000000000000000000000000000000000000000001050054454014001045045104515004155554111000000002222000a08a028a8a22a008a080202288022220000000000000000450545054454440104114150500150000000000000000000000000a82208a8a00a00202a82aaa2000000004051000441404504010510401444414455140100000000a02a2000a02a20002a8a2aaaa2a2a22a88a802a000000000000004451504554555454455000011141040400000000000000000000000a0a22800880028802a88a820200000000000004005550440044101005014550140405010000000000000000000008288aaa00a802802a20800a0000000000000000004510000104150400410440150551454155500000000000000000002aa8888802822822a002a082000000000000004444000405514111001455504545415000000000000000000000008a0a8a8aa2000220a822a0a222000000000000044000000510551550545405000400014040411100000000000000080a8280aa808a0080880a282aa00000000000004144501440045100115055141541155154100000000000000000088a2a082aa2a8a80a02aa880002000000000000005555040111050455400544410505505455450410000000000000800aaa0802a0aa28280aaa8a000a00000000000000000010051454054005105041054151115501541441100000000008a20000a0080a0800202200a02888220aaa0000000004041041151014541005011111105040550000000000000008888000820a280a280a280aa28880000000000000000000055400000545405045100050154014040511110000000088000000888202a82aa8a2aa82aa2aa22a082220000000001450001141140514001000115515414400000000000008288a0008288a0008288a0008288a00000000000000000044145000441450541441110444500445544151110000000aaaa0000aaaa00022220000a082a8220288a082000000000000001150000445500140055500415050514054055500000000000000000000000000000000000000000000001000000000000000045440100154554410141114514551000000000000000000a22aa02a02a0222a8a220aa00000000000000000000000514545454100055415144015010411000000000000000000000000000000000000000000000000000000000000041554550411001045044105504050054400000000000000022a0a8000822a00a02828a8288000000000000000000000000000001440041141414454101155010000000000000000000000000000000000000000000000000000000000000111000444554441404010050045510155455000000000022a000088aa002800aaa0082a0a0a280a80aaa000000000000000045010510514414154441111014015400000000000000000000000080280a028222a22a808aa20000000001504110011401404005115444455410555100050000000000000000a28a8a8a82000aa82a28802a020822000000000000000411555111100450140010545401454440000000000000000000000002a88a208a8aaa8aa8820a88000000000000000444551151000010115444444014505540000000000000000000000028800822828288a82022aa020000000000000044555555514541101001554101411411411115000000000000000008022a2008aa020a80802a20a000000111111115550111140010410500514554405010400000000000000000000008a020a2aaa220aaa8aaaa0a802000000000000005500000015105005104410505014410515011100000000000000008a88a288288288882aa808a20000000000000000000004155554110410050450141141000000000000000000000822aaa222a02002088828a2aa0000000000000000000000545115101054115144501401445145550000000000000008882822000a88208280a0a2a02200000000000000000000515444044540101015010115514540541450410000000088aaaaa288a22080220280a0a8a0808a02222a0000000004440000155501411154011140155015500000000000000888200002aa2080802a20808a082000000000000000000145110005115541541500014010054450055545100000000aa00000088022000220a2a8aa80a8a822a0222000000044105400145055045041144544101540500000000000000000000008a0a2a2a2a2a2a2aa02000000000000000000000000000000014555045045405004540014044040000000000000000008000802a8808a2a08a8a280a8aaa0000000000000000000504404450504100550440154044404111100000000000000000000000000000000000000000000000101010101010101000001445054501551110100545444410000000000000000828a800880aa8a00082a02aa00000044444444444444441010515555410544555540545154505000000000000000000000000000000000000000000000000000000000000005111401540010441444151055541444000000000000000a00000882a22820a02008280a0000000000000000000000051504050405151540155501451400510000000000000000000000000000000000000000000000000000000000004140011045150040055414145041114504405000000000000000088a88aaa08800aa08802a8088808222200000000000000000000455154555544455051554505105000000000000000000000008200828222aa2020a288888200000000110000040010154145114045040451505451000000000000000000a8a82a22220a8200aaaa80a8a2a8a0a000000000000000045551114455105144504115544551550000000000000000000000008a20282a28082a2a882888000000001011010400115141404051451115004510144540000000000000000a2a080a080a2a2a802aaa028a2800a20000000000000045100044554150004010505454040444411500000000000000000000882020a8820a2aa0282aaa20000000110011001104411050454540414014554455115500000000000000000000000008aa2a282282280280082a0000000000000000000000400105115551510404501405450554100000000000000000a0a2200228a2a2000a8288a2000000111111111111111451504545414105414010500111000000000000000000008aaa2222820828a208a800088000000000000000000000451041550440554014155444145001500000000000000082000002a8a80a0828000a028200000000000000000000041540004011151545411100054051045101551000000008a200088228800088200aa8aa00a0aa8a22a00000000000501005010540500150154414550001541000000000000000000002a22aaa20a02802800a00000000000000000000011001004511000450550151444514154044511100000000000000000820a88a208aaaa288aa00a000aa820000000044000000145454441415401410454510550000000000000000000082a2a8a82222a8a8a080000000000000000000010100000510115140410150050414050545514510000000000000000a880222a22a2a0a002280a00a002a0000000040440400404445405004114111145400154414505040000000000008a82028202820282880000000000000000000011101110111000514155440141115110101515415441000000000000008202a028a8220202a022a88802a8200000044004400440015451051440401451405044104501550100000000000000000000000000000000000000000000000010101010101010101010554554440140551100541145150000000000000000000088aa0022a00aa82a8a20aa00000444444444444444405015444055114411555415010114150000000000000000000000000000000000000000000000100000000000000000004445151101014545554501505011440410000000000000000a08a0a8088a80a0002a8828a0a0800000000000005141141450110044514410010454004044550000000000000000000000000aaa0a8a20a828a2aa8820000000000000000055115541511501011001001155454051000000000000008a0aa2a208288aa00a088208a02aa02000000000000000000000455000000105451050441415544000000000000000000000000008a2880a28a2082008a2a000000000000000044100440405504401001541455005550000000000000000828a2000822aa00a2aaa82a0202282a000000000000000000004014151511555450005051410440141100000000000000000008aa80a0aa8802820820882000000000000000000104015504105415404055414105550000000000000000a2822828a022008882a82a80a0080a2000000000000000000004444445155541010044050015055505500000000000000000000a8a08a88828882222882a0000000000000000004105555540515104404144544441500000000000000000000000008aa008800a20aa282a0a080000000000000000000004101551500545550100100555044115000000000000000000002aa20888208a2a82aa08a200000000000000000000050555541555144414515504104440141155100000000000000802820aa2aa020002888882802202822000000000000111544000140514500500114114500000000000000000000000820a28220a208aa80aa00000000000000000000004505400151041500015111501000455010150000000000000008888828008228aa0a20802a0228aa0aa00000000000004045144541454010444411445144400000000000000000000a28aa8a00aa2aa8888a8200000000000000000000000000401454100515544411015141454551010000000000000008202a0802200a20020a0a022088822a000000000000000015000540004450001114501545504514401100000000000a0aa0000aaaa00000a00000000000000000000000000004544100105500010140140051514514140540000000000002228a2a800aa28022aaa808a228a00000000000000000004001015404110501554010541550504501000000000008a0a80a0a2802a0a82200000000000000000000000000000001454404501540405555101050110551451000000000000800080088220a208a828a828a2888000000000000000000504400440044404545050415410145504100000000000000000000000000000000000000000000000000000000000000000000040401111400014154150551005101000000000000000800a20a82a8a2808a02a8aa08a2880220000000000050551414410440040141411014044555445500000000000000000000000000a282a8a0aaa0288080a80000000000000004001155044111410054055410144115410000000000000008002228a2202aa8020a82aa0a08a0200000000000051541140550051540010110501110504044100000000000000000000000002aa222a880a82880aa28a2000000000000000115500105041011015441504441141400000000000000088a088a088208a8a0a082a82028aa082000000000000000000004511444405441151150510555541005500000000000000000000080802028282880022a88200000000000000041450110051144145140055551015000000000000000000a0aa282882088000080a88aa282aa2a000000000000000000004440015150100505114415445144145000000000000000000008a28288888aa220aa80a20000000000000000000005550440415415150551410051111000000000000000a2a82280aa00a2a82022a2088222a0200000000000000000000441545040501410111111111004111440000000000000000000028808800a2a0a2a0aa0222000000000000000004501140151104400010510004150040051500511000000000000008a2280aa822208888aaa82000a0200aa00000000000041014055155400111411151444055100000000000000000000208a082a82aa008a220a0200000000000000000000414555045444500511015104005154450045100000000000000888008088200a022282a0aaa000828a0000000000000545405455104154145005154455401000000000000000000000208880aa882a200a8002000000000000000000000454154040001541145405551150504401044100000000000000882a80a02a8800200a08a8aaa2822288000000000000041451500105410440151001544001415054100000000000002a202a202aa000aa20000000000000000000000000000004445405440141150104441005451451500451000000000008202808a0200a88a88a8aa08280aa200000000000000005051404144101151040011141110140504400000000000828aa0a02a2a8aa082a0000000000000000000000000000411145155511114441115001505405405051000000000000a8aa0202aa0080a0aa2020208aa802000000000000000000045100115110140514050011550441514000000000008a82a8028a2802a8aa0000000000000000000000000000000011405145500511110445544451015554014554100000008202a028a20a08028208a20a8800282a0a820000000000051455555011001115145554050505411451045400000000000000000000000000008a802080200828008a2000000000000000414445154400005500501500044044510000000000000088882aa28828a8a022282220280a08800000000000045404114114140450040445510401541005500000000000000000000000000880202080aaa2000a0a20000000000000004444050050145041441514415404055510000000000000000202a0028a2a8280a0022aa0882a280000000000005145454010155115004150415441050115154450100000000000000000000aaaa220a0a2aaaa0a8802200000000000000055501155544550441114444410141441000000000000008a08aaa020a022a280000aa8aa8a2a22000000000000000000004510004511000051110104154514444000000000000000000000002a0280282aa20a028aa0000000000000000441450514105455140540444400055000000000000000008a8082282282808a8288a0a02828082000000000000000000004014151541044040140110050115514100000000000000000008aa808a82aa080800aa228000000000000000000104054514541004455011110150555151441151100000a28a8a80202aa22a00a2a80a0a00082a2a0088a0200000000004401400405445411545505055100114100000000000000000000a000a2a80a000282aa8280000000000000000004105515554415055150551004500044550544050000000000000008a200800aaa80880aa0a0a8a2aa8888000000000000455554140051444511445141441114100000000000000000000222a8aa02a0a220222a0a000000000000000000000051100141105544145141405001051055005000000000000000802820aa0028aa8888888282800aa28200000000000011000510451105004555110110455045500101500000000000080882080a200a8a00aa200000000000000000000045051541411101414400015555451000455001514000000000088028a2200208a8a8a8288a2a800228200000000000004045114411445105515101410045541410445500000000000a20aaa280888a220a0a8200000000000000000000000000405050050140551144144445001405401111000000000008aaaa22a2a02282a880802882a22282000000000000000015051000051051005545541451115000014100000000000a220a80a8282a0a828000000000000000000000000000045444410440141104114440151144510045555501000000022022808008280000a82aa8a208aa08aa00202a000000004001041004544011014140144040444044154454000008a0a2a2280808088a020008a808a08a8a82002a28000000000145541450455140015544450114541510515041000000080008008882228aaa2a22022008aa8282088aa000000000504404415000044105500441104110001511141000000000000000000000000000080220aa22aa8a2222200000000000000000454554054415114500101505150045100000000000000802888a8808a80aaa828a222a000028200000000000545454514005044544411010454105045440514510000000000000000000002a8028a0220a0208aa0a00000000000000040045500104011510015441151444510100000000000000088882200aa2002828a02220a80282800000000000051504055150400401441015414101500441104551000000000000000000002a222a82020aa8220880a0000000000000000115044114441044504114410400115410000000000000088a8820000a8820aaa00082a0822aa020000000000000000000045511015041055040554444405114400000000000000000000000082a228202802a8a880a000000000000000041415551551010140151050050101505055511041000000a8a8a8a2800a088208a0002aa28aaa828802a28a200000000004444155104555055554050510404450100000000000000000008a20a002082a8a88a0288a000000000000000000005040450451441510450155100405414440040100000a2a080aa2a080080280808082a28202a080208aa20000000000445451040501404401040404410115150000000000000000000020a882aaaa8a2aa0200080000000000000000004501141500455441441404411544510405550540000000000000008aa228020a8a8a80a8802800a2a288000000000000000414545515000155514041441510454454101004000000000028022a2220a2288a028a20000000000000000000004151540105055444554545155401401410504505500000000008888200828aaa280822220a000288a02000000000000544115441051150110515404005045104155545100000000000222a8008a2a282a8aa0000000000000000000000045410141145105500155445014501015514110555000000000088a8a8a80a0008888a88088822222a2a000000000000041451111040515455005144454514550154404000000000002a22a000088220a0a2000000000000000000000000000004401011044551544410145151141454510450154100000000828a2808822aa0aa222a2082a208a88a8202008000000505451150004044411450545000104110045400500000082a2a2aa0222a2aa808000088028028a02288a0aa000000411115151551405544504154541515541444040451000000a8802a22aa2a088a28a202aa00a08a2082aaa8a200000000041404441115511005444154451514145010014000008a82028aa828a820880000088028aa28202800aaa00000000011415045551404041000145505155015014415000000008202a028a82aa8a82000a2a8a8a28aa02a8808000000000514554554544010040001540511550115155140510550000000000000000000000080a8aaa2208a8a02200000000000000000455114505554501010405405004015000000000000000088aa2a0a0a02802a0a808a2a22a08a20000000000004145510455010154444104155105105004441550400000000000000000000000080802228200802a280000000000000004445550514151055510041410554505100000000000000000a0a080a8a0a20a888aa028a28a8882000000000005141141105445154150105541504040001150401100000000000000000000aaa8080222022a88888a8200000000000000055111440440554001100100044045450011510410100008a0aaa2888a0008000208a200200202808aa2a20aa0000000000455045001105500140015041441540400000000000000000000008a2288aaa88a0a0a0a2a000000000000000044100015144010444055504515154054444441444100000828aa208aa0202a888a2020a8888880888aa2aa0800000000004014501505514101544151451545404000000000000000000008aa88aa000aa08880a228a000000000000000000104011410100040450011151445145405050044100000a28228220a88a2a80a20aa2a282aaa80aa800802200000000004444404451404541141104411015455450555454110000000000a8a02022a0008aa8a82aa0000000000000000004105555555401404455015054110505400005454504510000000008aa0828022200a080022880208aa8080000000000004101150415411155515554141415045501501411400000000002aaa8282828028a0822aa2000000000000000000000505505444144155504451040014510541154451010000000008028aaaa002228200220aaa828aa808000000000000011154005055040004101544501444011414404110000000000082820282aa08a8a882a000000000000000000000045054005050550041401041001555041145004111505501000088888aaa08a8080200228a0a200a8aa8a0aaa8a8220004045144045010401010540010110004550100440050400000a28aaa022a800000020820008a2a02a20aaa8a08a20000040145405154514150155144545000001041051455000000820220a2aa2a000aaa0a220a222a08aa02a02822800000015000015105014045455400555510155405050115000000a0aaa00aa0a0aa000a0000882a0288022aaa8a202000004544100000105154404140444051404405110051510000002228aaa08822820822080808028880228288082200000004001010054044150455050101541501010441454411058a0a80a8082a80a882200008802a00828a22002880000000001454404501554040411411050150545140010500000000800080088228200a808a8aa202220a282a2880200000000504400405510111415444501151155511441004514000000000000000000000000080aa88020800aa220200000000000000000044111151004510051000504515055100000000000000800a00220a8a008a8000a82028a8a2820000000000050555550555511100550154151145501014400115000000000000000000000a282000a22a2a0aa22020000000000000004001515041500504004044115115401115050114500000008000280a00a08aa0a0a0882a0802a20a28828220a051541145005500441400545500050455101455001000000000000000000002aaa0a0282828a0280a220000000000000000115545004555515454110010040450440455110551000088a0800a2082282a88808a20882aa8a282808a28000000000000451101415041050100504545100540450000000000000000000008082a8228a808022a20a000000000000000041450545004000105140410144540444544051151100000a0aaaaa0aaaa22280002a02a020a08a822a00022a00000000004440401504045054005400044444540411155100540000000008a28a0a2a8002022820a82000000000000000000005554511054145000455050005105445500411154041a2a8228a00aa0088080820a020222080a20aaa002000000000044154554151505144410410150104041401101500000000000002880a208220a2a828802a2000000000000000004501140104415410101041150111454404450004501000000000008a220aa020aa8822a0202280a0aa808a000000000000410545555054554544455150104151505511504100000000002082088082a202028880020000000000000000000041455005050554145411154505410514010550054515540000088808a8028aa08a820008a08aa88a808222aa200a8005454014005444115104504155014445005454405405100000002008028200822a0a08020000880a208a02a0a8082454154005445055514115000451551545551004450511010000882a800002a2a20a208a2a0282208082802202a00000041451505401050150114451450510514404400440455000002a20208a0008a802a2a00000080a8880a020aa020000000444540405010441045110104145550050055415010000000820a8a802800a2200802aa88a082a2a0aa22a0820000005051451004014104100055110150501401454414110544828aaaa28a800008a2a0000888082aa2a88200888200000411145145400445115454155501141144004451001000000a8aa0a0a2288280a88aa2aa2a0288820a002a02200000000045105511154001114155001040511110040145115518a82a80a2082a80aaa0000088002a0828a08aa20800000000011405145500005404454155511500004051410000000008202a028a202aa00a2aa8808a0a222220aa8aa20000000051455551440040014150155155415145100440005010000000000000000000000000aa00a8222828a220a20000000000000004140150114154554105005451105154540400555000000888800aa2a0a22a0aa288288a20220a220a2a20a88045400010111405510051414450415400051410440000000000000000000000880a82020820aa232a0c040000040400000040445155441500555450104145105554014105500000000020002a0a2a80282aa80208280282a22208022aa205145454545400001444054004411055014114045000000000000000000000aaa28a802a8280a82a000200000000000000055505055511411045054414141545444410101114000008a08a22a00220282aa8a2a0808288a00280080a02000000000004510450405011404451041540441504004541150510000000000002aaa880088a2800020a0000000000000000441454045550110144114455415044050445005545041118a80002022280aa2828a80200028a82002822088000000000004014505145545451115545041111005151415440140000000008aa8880082aaa8a8a80822000000000000000000104050404440140405454410414411541151401444550a28a8a8a8a80000288a28a002220822a288a808a000000000004401441511415554445450514501415055444455510000000000a00008a08a8a8a8028aa80000000000000000004105515541111111440555011504145401004000544154144000008a2082828aa00aa02aa820008822a08008a822a0a20455514051145445515541055001450451555054414551000000222208aa828a80208822a000000113dc09a8a1c7331400511500541544454155411541515105550541000401000008028aa220a0a88822a80022a022200a2a282a880280011000115454410004410545151544514051514004510000000080008828a0a08a2a22a2000088080a88002888aa045051545151005001144415041154144550055104054101000088028200208a22a00822002a020282a0aa8888aaa20004045114111401001154415000551151100101151541105154a20aa8820820aaa08808200082aa8a28020028280000000405050101444555544555151440040445551410410000008aaa2208aaaa82a0a08888080028a088a25e399e245104015005444455510151404515505141501550141541000110a22008088a20080828000088a028222080a8002200000045444411410110140054411400140114045514005000000022022000880a2a8a28a8220aa2a88aa02228a8a000000004001044451400550500045150550440415101415144518a0a2a2a2a2a2a2aa020008200820088a02a220a20000000001455414504541014514441044014410415044050415410c4108008882aa2aa022a88a00aa0022a0a0a2aaa20200a2f8440445050404441044140414000415405144110011000000000000000000000000000082a0002a832f2104140001014011405555511151041401050554500515ed67395cb3180000a020a28808aa8a028a2a002220284e4e3bea82405764101004554045144015514004550000115054441040000000000000000000002a8008882088288808a4040000040400000004411014405450115110414504114014010044050100000888a22828aa2a00080808002a0aaaa880a2a288a2051504050405151540500544445504014151551505551010041100000000002a2a0a0aa2288282a8a820000000000000000115001004504155004144441554105514011515110454198a88aaa08a88820822a022022a822a0000d13517245051445401145405555401145510044515040441015440101110000000000008282220222208a2a008200000000000000041415104104100050015440151040451454141540100440a8a82a2a800a8200aaaa0088aa280080a0088820800000000004444545105400515404555014044401450110511450000000008a20282aa0a2a8a80000aa000000000000000000005044505150554414445514115041510454100000104f6a090a080a2a2a80a802882a282280a2028a2a0aaa20200822445451500001110000455001100451054451144051500150000020a8a88a288888a2a2a220000008bb4bb4904ded270444015555410154401415415554514141f23a3b59b0a788a80228a8882a0a2a2820aaaa280808088202a880202220004105155151551415554100454405400451500455440000000280a228aaa0a280aa88020000001bb99bb3a1118915040401104041155055550505444141151544011040054000008888a208280a88282aa0288a22288028a0220a228a0054411141405540405010455515400545004114504144510144022aa80a0a20a200020000000000828228a8a02aa045410145401515410405010140100400551140145001110000088a8a80008000a822aa828a82028a20a828e8fcb7414154011501115045550551000415451050405055551451414042a22aaa20a82aaa220a00000000020a00047c45c90514505110405405550015415141550001114410144111100000000820a88a208aaaa20280a0808880a8088d71ad1c415450505105414454154514005451551054555514140150505582a2a8a82222a8a8a08000000000aaa0820022a00200000411115141400150040151140141155010515010000155105fd81222a22a2a0a0280080082a800a8880a0a8a0a00a22028c1401040150101500000505155504001111115454508a820282028202828800000000000888a080aabb3114541544440010445114145410404115111500155400c5b93b8787fc9aa8022a808820a8a02a282a8a2008a0acc0fe8702d3d1c1140001000114005554155001504514104ca9dbd34a28a02a2282a0a820028a000000002802020218dc054150041044044054000044101544454144010100551fe20b69d3b9e0000a2aa028a00aa828a0a8a2aa20a00ec6ee6ec844e0ee40501544445515441155515454554014040445504414150154140000000000000000008022aa88120860400000404000000405151141455141541414440540040005051050045040110a08a0a8882a800000a0a2a8880aa22880899adf115140405051454444004455040155101454000405411141415110000000000aaa0a8a2aa0a2a080a200200000000000000055115541511505005054515501501514050404555050109a0aa2a2082a0220aa82aa0aaa8a880a0a281e3a7d5555100000514055555001511050550440011054041101541441000000000008a2880a822820202200a000000000000000044100440405500441100154101151455151015445541005c3db3000822aa00a2aaa2a00888aa2280a0aaa088282a02a8284014151511015100445415554010155405510005554551400008aa80a0a20200200a828a000000008978358e84d06705111154104001444550114405411044110360fb62a29180a0a28a888820a8a0020aaa200aaa82080a82228282a224444445155500500050500550155005510444101451451500000a8a08a80a2a288a0a822a0000008aa8b7f5d5e1317041004151141110101455151551454154507921ebfbfe310000a280a22aa828802208000a80a800a8082202a8288204101551500545104440054110544004015504151000455544502aa20888a00a0a282a08a2000000284f9223086cb2050510441455505514514515401100544450141510501500000802820aa2a082a8a0882a8a880802aa80a0a79d14b44005155554540454050510105540401110155015101114011540820a2822220082880aa0000000088a022066a6f7445010110454504105500415544150054145144004545501000088888280082aa808028aa0aaa08a00aa2a804fcfd21151004150014514044415515541050441154540500505544000a28aa8a00a2288a0a8a82000000028828a068f8e575555040141440404000151501010044101115001040001515040c713a0802200a200288288aaa2880080a8f4deac9bc1fca9da54000415044040545505441144500041540404044400a0aa0000aaaa00000a00000000022222828aa2346501011545115140410510514000151501014010050410b2e286cc04b1800288aa00a880a880a8a8080220a0a22ce364381073ad10041450010514454101404400114500104dd1cbb98a0202828a02082a08808000000008a8aa2a000804040151550151511040504400140005105511441500155dfdba162a359282822808a2aa828aa00820a08888288a88cedd5f9d44411051540441500415545105550151001041c1a5cbafafb1554080a08aaaaaa0000000082802822088c0015051011150004001101110051400510400015141104bcac1d62d3ac5115b0a8aa280028200aaa0a88228a08a020f78a43099c1441500015505114150114055140004411050500115514055451500000000000a282a8a80aa222028a260400000404000000041155004555450504404100041040455040401050444118002228aa2a028022028088822808a00088b39266114501000011011004155404045115511455105151114155140000000000002aa222a82808aa20a288820000000000000001155001050411045554515440441445500401400510045ccf5c8a0882202a0aa8a20a082aa0280200d21f974b0e27ba8054440105441044551105411004555144400550555000554000000080802022a02aaaa020822000000089c63c6e26b7540415505544104104054141540410504000746432886f1aa2a20a2022208a000a0a8880888a80a0022aa280aa8a2a4440015150440001044054400015050141140440101105400008a28288800082282a22a22000000009ad4913099c36110540504504541551451040400050014453631dc778f0200002202200a2a8000820a0a822aa820a2a22282aa2800441545040505505104111045014140114055015115005545555028808808800aa200a08222000008a26a76782270411510511550504541404400545510405504b56f2ed65c5f2000a8880288a0aa2a280a0a20a808a8a288800a8e43d060041510054504105105550154004110041144014001001454051208a082a02800a2a220a02000000a22a0a2d0427601541400010014440154451115140105514005051045004000008880080882a8aa888a28a0a808aa0a02822a0cb07600100551110050514011511551055155500114050055551554450208880aaa08a80aa800200000008a00002ee4a8954051400541515550450415504141415004115541450144554009c6ac0a02a802a08aa8aa0aa808280228a84e802aa64662eeef54515544544455045140150011045440540404454012a202a202a202a2000000000000020a8004b4c7ea1054501404505445144010050411401505011500111045887b4c54d6e30088882a208a88a2aaa0a822008a2fd5d001030ceb85e240140550505440401445544154150511405c190c802a828aa8a0a0a028822a22000000aa80a2282089805505114010555414100444101511000041450445544450c71fd557019aaaa08a808802aa8882a0aa2aaa280a22e86b7ce0ee8da50141115545055515504451405450505500ddc143b94e7d0004888002a80a28000000000288a2a0880055041504504000040110410551541545541011540451189114558cd805555902008a0a00a80aa82802a008aa8822ab6b5189ec4351014000100141111411014145150555548689ac6e5439e0059388a82a0028a008a8020a2020a2aaa44145051050450004455141410454541054041511504501efff5836c4ea5114f2228a88a808aa80aa88aa882aa20888a880c130c4411111055510011010141404445514441104545401004150001440000000000088020200808220aa2a2e0400000404000000404050010504445540444150111000154540114454415114743b0020a82a020a088a28200a8222a2a8a8296768dba000800055554154100150401544145540415000411401050110100000aaaa220aaa28a220a0a82000000000cb1ddcdeeb6555501545455401115101151000111001410561fc8a603828282020028228888800aaa88a2a0822208d9a873800a224510514544145000500055050404441115001504141511500000002a0280822aaa282aa8000000000881d54bf63df410045005054440150405150441151404414661099676761aaaa002a020aa2020080a0822a0200aa8020082a0002884014151541504550414150515051505401140110045451555408aa808a8a20822a828a02a00000008158a0b6db63a31405100551005010405154410054001544500439bd0b340000000aaaa82aa2082a88a208a0a20a082a00082e374170545054555014511411501401110140114110014054454411510a000a2a02a2222a08a2280000008a2aa87552a6385504054151001114405405555051540140551405f705a25000008a20aa000080aa28a8208800a82888222a0266b9574140555011111150451404041501110005044404111554151450222a8aa0aa8a2aa088a0a000000020e73216d05715444444110414410515445514115450051451441555510500511817c21aa0080a0828a8280002a82a0a802825dcda343de3bb9144511545101515154411150014450114455110050540808820808a2a20800aa2000000080a8a82a2a4ad5455400045151540451000044501450455111554110000d2ad7b4b9b10a0a0aaa00280a000a80820280222288822a6b3af733f25541015050050404101155040154014055000d0d33aa080a0a0a020228a002000000000280820a88006d51540444551000450140411014414145141010040110158873ebd3c4ab000088282002a2022880222200022d63bb851bd70b7cf415410501504404011145100501514444104c84447b8cdd1cffe22aaa802222a200000022028008a22b65154540410000010040454155145104441011451410054fe9b53d6a83551100082220288000a208222a000282286e188c270a1bd4154414000151115004400000414411141051085b32df54041100080a228a0008a808a08a28a08208800044145101000004514411011145140144105000111150110446bbb855445080822820aaa0a22a222aa08a8a280288845591b665044111045550150111045054504505100015515cf10df11004000008a008a0000802202882082a02842005101510140004004055411500501554051440144445f927643b895c4501e124b8a0002822828828a200a222aa827d2484898b60dfb28fac0040515401410040501555551004550010441455405441140000002a8028a80a00882a800604000004040d1ea8e6244501141015440554140444504014511040041a587746e0008080802822802aaa28228aa028020a200b675eba80822000101154054454440411405450054104141154100054440000002a222a82aa28220a0882800000000049acfacd8e1155015501511511454145150451411104010417c5f1886620000822a8228002aa80222a880802fb3f9a20fb371080554001010115045554144550451411010110515001550141545100082a228882a022888a8a00000000011c2f18f1f200401010150054555544015111544501011040ab481ab30a000088800a082a0200208080aa08888aa00208828a269b4505440441515405450110405044550555010411051050045418a20a002808008020aa0a80000000010173f90d2932541100544001041000150151104405045400517cbec70010000002022a802280a22a2a02000002a82082822edffa5004400144445001510140105545055000001445444410000111020a882a2882802a2a88080000008aa4320406ca8010154055415110445144001055545551400f62e7515b76f2000aa8112808200aa82aa2a82a0a2aa22020220a22e4d7400eee8f3551000000455111104444504151000445001005444128022a22a0880a22888a20000000aa80a002067ba1541005450510500555540010145141554554005045540000c72df5f93a2a2a2aa822a2228a220a8aa0aaa0202ebf35036b9b821511110011115401411011050101441114045865fc18820002020a22aa0a800200000008282808a00cad1445544111014544510051105111510541415554554410daef4b008c4a88888880a2a00a88222880aa000a2e2debf7eda685327041454054401454011404045515015100105449028302ac90100008028202a88000000020a028cfec7ab141400145005450105144445044051145545011504104050d9fbd05c8d155000222aaa288002a08888a08aa5592f3353617edc875501115040555545054554141451410400401de3538ae192041008a2028aa082088028a8220222aa21810441005411000140140014055004414544045010450040486a27b6a315150aaa0080a08aa88a8020220a2a0022e266d4729bf9240114545450041001504541555500045544105c1ba2b040115400080aa2a0000088028a2a000088288a10105050404000044455051010150455500150144540084f92e1ceae5044488820200288882200880808a0a808802d88a9a314521018642001401410144045555555401014de89b5008bc9e455cb8ce0008a88a0080a8aa8a28a8aa8aec15511155044058af6fa44441115504444015001054040af64affe05df4116e3e03aaa20aa202aa8a8022000a80aaaa0a880ad2a64586350820445440010100000044415505540144501400405114555540000000008080a20aa8082a82e040000040400c9d6e3a4155041515151111004051141445001014505504ac7506a82000002a2a2aa00a088008222a008203b8635170c132a801150414155040511004105011544504454011450410001100000aaa80802828a880228228000000000086af129c815445010011414511004410554111551040155531e67034820000822022288a80220280aa028022363a00029698aa96505150101155515041004044000404041100110154141510140008a2288a0002888a08a0a00000000000cc0d9633f00101051040045554515001001511555040100a04d8e0d7b000088a880020000aaa2022a8820a82288a0280080ed010014544005444055010455140454441400415100045144515008aa88aa0880a22a002a2a800000008978568c4aa7e514400154145005004150140444101000154635d6f6f1c62000022a08280a8220a8828880aaa00a8a088a8022843664110041155505154105015110014004400055551401405545450a8a0202a802a802a288aa0000008aa837a2aa4058405010000114101410105141541105145555393005103c700029a1b3a8a022800aa0200a2008a228080822002aee054417503c55550454011140455504105450141011004401001c102202008080808880a282800000002847922286fdb1554100415100511545104401154500051411050005504508f464138b30000082aa200a80aa000888828002ad1164547c2c3f10514115111441555151015410144005441111051d2f00882a000000082a00882a000000088a00a0cc2ad454055404545400545005551500544155050545455551051183ccc7310200008828a0aaa8aa08200800880a0265e775f6f71ca9a5015441055145051451451540515140011511184ca80804b110000808a80800a0008a2a2a20288c8d820000544000110500054040411011400010404101555445145cc5fd55f09401000a8a2aa0888a8a0a820a8a80d674aa2a6d91078601144000451105404155155104114101104544d7502a65bc34150082002a20a820882a00aaa082a802944545440001510010101501101510544041455014500415b67ddfde6db741000822a222200a0820002a82002a002ee3e9b8b3a5b1451551411014550501155041405414015009d00a8a875e811108800a8a820a8008802a082aa2082a0004004040444000140404140415140555401011051140054dbdbeafb703151d3a2a88208288208a0028a0a20220a802ccb00209854451d776100415555445055014511450500594a41415d0f5504084e4000080a00080aa802a00aa802ac00150004001501c41c5744544044101101440150555555b9ec4111fda904873b7d9000a8a8000aaaaa8a8a282a02aad50229aea010ce3c6d2a054111051554010005141455501114404554144151154044000000a282000282a2000220240400000404080b0fd30405105450544015401555101105145054405144589a2b332000000aa8a2a222aaa88828aaa02002b111000ab913220454450404055050100054111051410551500445401155400000002aaa0a022a220a020088000000000008ecb15a3b600544051141454441445110015555500554150297b9a7bb2000082a22888aa2202022aa8a0220f81d382af0bfb0881114054144145405540400440104555440455100555555505411008082a8280282a82882000000000089ca1730c4a0001011154001011145054404004041045555718aa61897920000a828802200a882082aaa282220228808aa8288e9441110455510510454150041451441144555540545551005555418a28a0a220a220a2aa8a80000000009ad2a7eed6831555554011104545041144540505114040542226045123320008a88a080a0a282820aa20aa2208820aa2a0088a450501100100511010551040105040041504441044151141014005a80a880aa00aa00a08002800000008a262f3080467105444114105410055541101444005410504b47b3044a52a200077280a00a02a2008200a8808a208aaa8808a8c67150451fda9321150414455150554445140014041540441441000a0a0202000000000a0a020200000000a2220884aaf75005451415150055500005005555545454114444445500010868c323181000000a00a82a22082a082288aaaaa0471000066bff9200154050541105441415410055551054055445442aa8a880000000002aa8a88000008802808008c644000051440114444400005500414115514545054454414500059f5f52a53200008a200020aa000a22082a08820e608a0a8d9c414e00005500051441055545055014140541051155584a82aa8ab10000080a82aa8aa000080aa82880c364f01440045544455450151110014005140105054444114445488a2a59729241540882a0aa08202aaa80a2800200f7dfa62113250150545444011105015104410050454111405110c00aaa002e5b5500800aaa002a0a0088808802a880880230051454445140040441411044104545545005554055551518e600015ce7515222a80a0a02a80a80a2a8208882a826043ac13d90100515541041144051550155415450550004498880001dccc40518888000088880088002a0aa8002a0a20554000005540001004000555411441141111545154010c951514199011049020aa00088000822aaa0aa2a20aa08a8b4f0aa19440050433450040505054440044510401140087dde045d7ddb045d798a0008288a000aa00aa00aa00aa0441450004414505c3e2ad11145410441501111040150044ffff4400bffb00037fb99000aaaa00008a82a8a20a80202888888115000009b7aa04114155551554544110511510144414440044000010504404000000880a820a820a820b0a00000000000000cdcae7e4441414144155440410011550411115055500511e77ae67b1000002aaa00a0aaa82a008aa0000220000002a88880a204400555554444411554411444500404045104015551045000000aaa28a808a808a8020220000000000c3776755961504514105400011400100455000001104414467e0f1a4d30000080a22aa2288820a2288a800a8aaa808aaaaa208a340514544540511045154544145004514111144050454145400000002aaa88aa88aa88aaa200000000088119800005100404154140514541441455400141105010462a5400132a10082282aaaaa880aaa0288a2802a2882888008800045014504011551151500550511144114055555001011004400000088828282828282820a0000000000008158c3380335054544015554455141055400051115155515051054101100000008800aaaaaaaaa0aa28aa0a000a0080808a204bb555551044501005414141045044001051000145544500004040002a28a200000000002a28a200000008a2a2828a6461414005541010444141014515501015105011444000501111100280a28a000000000280a28a0000008a282222ac4f5555104140141045555510414010415155055004041014444000802080200000000080208020000000133333337550111111115550555011101001540440141114154044051000108a028a020000000808228822022002280aaaaaaa7500000004105110550000000410550451115451155510454444408a88aa88200000008a88aa882000088000000880000004505041541100000450514014104001140141004400000832aaaaa288000000a82828200a8282020a20008802200054515555011500115451555150115114455551011451000888282820a000000888282820a000082aaa22082aaa2200515444441510000451555555040111104541000554510088aaaaaa2200000a88aaaaaa22000080aa2aa08aaa2aa00444000000501414144400000050141114050405040504088820000888200008882000088820088a02a0288a02a02145110001451100400511000011114401511445414514010aa000000aa000000aa000000aa000828a222a828a222a441054001410540014105400411054050545554500455540000000000000000000000000000008200820082008200000000000000000011000000151505014400550040155001000000000000000022002200000008a22aa22aa208a200000000000000000000000001505555054505450415501000000000000000000000000000000000000000000000001010101010101010000010150110101100111004010110000000000000000008282828200000000828282820000004444444444444444444444401544444040044000110440000000000000000000000000000000002a800880088008802200000000000005111001151000000410000005111001110000000000000a0000000a00000000a000000a0000000aa0000000000000000000000000000000040404040404040400000000000000000000000000002a2a0a0a0a0a0a0a202000000000004140011150151044551454440540451141010000000000000000000000000002a0aaaaaaaaaaaaa80a00000000000000000000000000001004444444444444544000000000000000000000000008200000000000000820000000000000011000000140505004101000014050500500100000000000000000000000008a200000000000008a20000000000000000000004555555011000000455555501100000000000000000000000000000000000000000000000000000000000101101040011010510110104001101050000000000000000000000000000000000000000000000000000000000000000000045100000011000004510000001100000000000000000000000000000880088000000000088008800000000110011001100110111101010110011010010011000000000000000000000000000000000000000000000000000000000000000000000404000040400000040400004040000000000000000000000a0a0a0a000000000a0a0a0a0000000111111111111111044455544001111105554445511000000000000000000008aaaaaaa200000008aaaaaaa200000000000000000000045440044450000004544004445000000000000000000008200000082000000820000008200000000000000000000045001010551000004500101055100000000000000000008a2000008a2000008a2000008a200000000000000000000501044441454000050104444145400000000000000000000000000000000000000000000000000000000000000000110010001100100011001000110010000000000000000000000000000000000000000000000000000000000000000440000004400000044000000440000000000000000000000000000000000000000000000000000000000000000000101000001010000010100000101000000000000000000000000000000000000000000000000000000000000000000404404004044040040440400404404000000000000000000000000000000000000000000000000000000000000000111011101110111011101110111011100000000000000000000000000000000000000000000000000000000000000440044004400440044004400440044000000000000000000000000000000000000000000000000000000000000000101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000444444444444444444444444444444440000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000001
diff --git a/apps/medlda_release/dSFMT/jump/poly.2203.txt b/apps/medlda_release/dSFMT/jump/poly.2203.txt
new file mode 100644
index 0000000..0a2241f
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/poly.2203.txt
@@ -0,0 +1,2 @@
+#2203,7,19,fdffff5edbfff,f77fffffffbfe
+1407b8c6688f1c0775fea3883299244920796c03596070e493f8a2466b86e7415739c0304943507214066639931675ff67f0b7aa0d5a59fcd60b35a658e3b0718ced7e1d63afa917bd3f2e0ba47059a48846f24d2145184e41b4b552020209d27237e6afdd3bfa9cfc958b26802191881eaf9240b1543e395e50247e31992d5dac592c5780c5ab642461fd9aaaf9fdf04f0c2a7bce50d70550d2e8269ef57a1bc1b14aa3108d0555d03299d068fa02520574ddc5c4b121037e2a5f9d0142fc871fc146b947aa81adcb6d32f0d801094c8de6573c027a0a0418f7fff8f2c85e16cd1086d5dce3b93d546a4b4bcea0864eb26213230195583f6eb49fccb02659a558b7bcfd09f218e3160356515144401010555550100001
diff --git a/apps/medlda_release/dSFMT/jump/poly.4253.txt b/apps/medlda_release/dSFMT/jump/poly.4253.txt
new file mode 100644
index 0000000..a358af8
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/poly.4253.txt
@@ -0,0 +1,2 @@
+#4253,19,19,7b7fffef5feff,ffdffeffefbfc
+11110a3af24f296024e376f219a750d04bac6afd10cff9221e5d6bbf24b7970687dabb371262579d55820616b7eef3ad2979f44619d0d21a422c56968795ddba6f92bca413c1787299e56c271dc053d10e7675b8973938f1851ca195e3457c6022d6f894977e69be85838bb2ef0266ad19311b944de9a7b9bcbbe9453421c723d84a3832bbebc316ec1a951edf54d1e0ff7de2e2fc6ac5d72439e56d2e4caa0f95ab3243ee2b6b89144dc92bb542c61c3611a625e33c4cbc67bdfd5012ce34e332eeecf028a105fce45bb220295362ccf8aa176c92b99383c37faa63defba250bf1cb32251f9ad36a8722ede5baa33d8b5a16c577777b9493f4e4c021a8d5d3ce07b54eddfd3a796997a2a65decd4b6890b7bdc5bf139d2ffbfa6cfc4636932ae195c937c9a00770a5146839461315adabab10511697ab431275373b47563da464fa3a4f4c4378dc62fae3b56e269df2e8a21a23fc3ef78bb52fabea47377967bdfd8b238cb0dc55fa5ff974c469d926a8108b4b27ec8a8f863f3f2a2e517d3fe4ab86af410c0bb85085d285edb9d5e548c6e1f5db0c77167bc9f2d8c66322dc0897e1bd225632aa4ed55987883f062daa6020355986826f65f7d672d18d26f66352b2e46b86c1c39bb1ca976b353d043c6cde4ba4741ad83e7969ae374ef96b4aad17d6eaa95cc6fc99d609bd78c60eb0695794397e9c7e9e8bcbc343e3e3e6ee6eeebbaaa00aaabafffff7777777777fffffaaaaa000001
diff --git a/apps/medlda_release/dSFMT/jump/poly.44497.txt b/apps/medlda_release/dSFMT/jump/poly.44497.txt
new file mode 100644
index 0000000..da909bf
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/poly.44497.txt
@@ -0,0 +1,2 @@
+#44497,304,19,ff6dfffffffef,7ffdddeefff6f
+500045114515410505455041105054550000000000000000000000000000000000000000000000000441044411451501555154000592000aa80aa82a08282aa20a808282aa2000000000000045444150111015400155004050515100000000000000000000000000000000000000000000000051145415041110111005154054444a222a8288808822088a2002828a8a0000000000000000010015051055114100115045054140040000000000000000000000000000005111541444044110404141151004401540455111010049008828a08aa80a00dd860b382a46506410514011145004154114144011418b99c3b572713ad102aa0080a0a2a2000000140155150154450415541110018b7139c11516b25317f6bfe69dc5208a0a8a8aa220828c9c5a89b2dfc4de44455445445544410104511445515514005540100545400000000000000000001445111150150444051440001410e4b71cd19b37a2726ba32f22ee236b0800aa802aaa8aa0358f7294593f270550055050401114555405455404144ce3c7e2fff804a42727926ea4f335b31155045540155404551110440145418878f290fbdc287cb4abd1017ca4f01889c5547e4a2e762f1f269fe64465693da51760be8ca899cbf8da98eb99d62101455045140540445454500104549abbf83af32c18844926799440a59c3bd4962848005e778d6db832d42534cc4ac7d3c01f99c268190a0780c2bc144015141014414145414114014000559627304c87cbcb99c3cec5eea5595c54403d8b031b3922675bab4389b847028d4448650285b47778409472835ff3adf64db4435b3cf1303d48970bdf701c20ac431255ce803f5b7b842d4c553015410401551051544010044555105000a039acf2f2fb59858b81c892f4e3be5980e74926698024016b959e6735d8facf447872abb19930db9d6512f49010405014401010405414005100001c6ab1e12975df5bd147fae6056d134e0b03672414a59672c24f63e3964dccc8d48ecd6fa096e5df8bcf535c31024af12b94f607c32c3b4729f7dd446548a7422de41e9d562d054d9671bfd915004667ec97cc467f5b61c74837500928db282f73de4002de18f2bfdd9ef3019e07e0305621365cb3a881e00d2618328724e832828800d9aa910d4933725154150000044155444115510145518f37ed5c85e33e5cb621a64dc923ff6bd8f27437cc14f095593027d0110504db058d097f88d2c9a12b7ce48b715ee5364633c9d2ab687a3714a4b1114540e3ce2ebccf623f9ddec0904a3a5f51e544690aa16f397bec0a66d24ad78c524a8364578bc37a1663c833b0cd71ff70ef0b703c49c6c3da672da3e714969a3057c9d5bcdf1e8d97f2632515105174b8875795206b0acf3bad597effa486aca8b36aef8d30057d19a28e24b1462990a5a2c6b5bc55b6353b1a61dabdd1952b24fb35bf72f12f0bc4e160881ff95a75c04f342ce4d45f74141ceeb89b5c558d20ea2c4b1f4ab5e750ea1f3bf9915e8682082ef15fb5e525c1143568ac573e433784a3b01effaeb1b48600ccbff1a027e10afd97d501501dbd6a062c0877068ffae4cf4b254b5a0a33efe259f91f57b9dc4b5551f8cc673b9bfcef25acc6102974218ac64508bacd184a291a9476aefdfb8a34496ef29b2367f0189370f513df6c2900fa59b2c09e4702177fe8b8e9dab05171fe6575c290463e36ed41ec37c0bd30542210a0fc050a575b617997e40614c214e16aaa6f61b6b0aa6cf7b44d26552371e4654d23ca82a2bf60965415d1197653e8f669b5c44689c6a3337e7f9c9d6a82327b657e85af7b29806c39f3908ffdf56e20eb14835f2dc000195a6e36faa0ae4abb0f18d08b925155cb9cc28f55cac1ffbdd40e7b48adc2dfe234ca4ad5ebb4c3b161978b1f12a902462539900488c77522878be1b210519f93a4d7414287d52b6599df2210da37d9f07bb5e2da71bfa9824a6c4e151d072f17aca918141f2bcae204149b3d293c03f05484ce4979db3c3b1af2e9e46ed8eaa55497827e017a14f454dfa909d9105b12beb2da0240a933cd71cf07b8424e93fcd5063e87514540155af51a697e11c2191b7c364b43caa3dd6ad99fd98783abf8167846f707849cb9eba3998c4aef1d5f4017ceae71f5f4fe50badb90fe2bb90cdf90d0055102fb4be7b46cfc8a1f4c97c663d0abf05919fe45cd70343ad6d4ffa2ae0b59274ea4d121ea8bab57acaa32f5975aa982e54df81bd2d4da173197772101e77b00aa1c025e89e486b5b0e5d164fff8393321a5f9c7842baece0e8307f2b7d7ea7c9ce9b765f32591782d524a867c887e21b36d0e3e3276275a4401809ec71857b5a3dee6df22355bc2d214412216b87d62b366693a0d3454514fccc4f22bbd925641c01dda9bf5fd3e67b6b0237047f9199c3392f291ed0c3cb137ad8b03c2924d8f37b1caf588eb0aea78a110a77bb211c947045410da22d7df9101aea0b3b98b6a87e56dfecb66328eefb1197c241cc7ea0705e9422fdcf232ce7506d0ed616ba7a46498056b4fcef149c295eb21603327419730d03ecdb826a237935dc04059761b33f33b9fb23a6f9fb545760d80473a365b5b6d4a2467f373e0a440ee6821532dd7ee8fef6bd8279e11701ae144df91f06f6e16cb3be6e06535cab61c710448a2b77be375da438c2cb365104c332440b123f359912a238bbb108d6095bc749db13c54bbe9c25928b499d45ed20f6dbd84a1ea7aa385b9e15df9d44bb60edab5099cfdf2dc5331d01505432bc8afd64c26d48210375855079fc1f018dbde79910ac6f17e13831485ddcb588f46ebba97a0e35fa72acd4340189c1a1492ead96ec7321733e46109f6dc8113ab92d96a6406bfbbf42770e1ebef9452db4dea76d4dfcc0ce7c4648d00a7a98a3a465685f3cf2f37ba2a49c2e54bf32e0dc7b6bea9dbc7605d69aaa516e268b6550efd95fa264120edbcd505d82b673340aeb2e3a60515cc25fdd516e491104b3a765c2e6f1f77eac5bec76db99a668f77ceab6526482544b6e1247e455bf279503ee2e47c2887aaae86a80f723e411818df54154a2f33c12ac9b8eea5fc836d8ecbaaba7a75bd86455467d69a2b0d4a96905c7a0238714017e73868aa13edb49740628c86ac3f8e50330411fda79dc34055b9d621f2d4c580cb09917f694985042d0ea3f47b86d3b377fa560eaf1c011a2a861e02ac770f0d1c7fbaa50a41e721baa4b4ca17924634fc67c41415516106ae0a85e025c7d79337b3a1254183647f108d6029ca6998ab254054496a23aa7635b01f5721bf4bffbcf1644bfbc282b5c0c9fbc53f0a16a5f1615c52a8e2a24d4d2aeadc1faeec4457411189c8fb93f70f47f27a4b724104092c5adf2c0a5f0638ad4905372bf40122729e80e0256d97bbcd77f3850d2501332243fa17ef3e4b505e128d4b641011427193cf129d855b447e88446144dee5a1eb13cc0955da8eb7d14c69151f23bcec80270d7989496626f11630061715e1e19b56a5d1015935d91ed54e4c1371b0e84a1739d3dee793f3604c8c970043bde48df756d9200af75a441dc10384e90ca51598ae3e63d100104fa019662717db735b80d320fd5b8304368fe1c8c7ad463cd801fcd83b1655964185a6fbf643a6c79969e0b98c55441d45db7c31534fa547725aa60001da882533d76e59158c544b8e8f8b30554705bffacd66fea0e60453cd9b0441ef518bee7115aa2b35c63a1aa3f64166fe7f707777f093994f82bd8083151d9de9772a6040ced12e12154ec6c1146ad95a27d1632e1f16a32d3a479c1111bb77ed09d62f578d263e96743f006296461c6a7c9df51b4667fa4d015045370ee27cfab3c06500c35e6bd75440d79afbb08ad4e99eb33b585030404822bd9e802ba8210facda691165c4741cc93486b5edb30f3700ca41d5a324df2ad01724caf7322974d542371332015a7e131b08b1775cbbe142a0d1005c15bcd893e743f3f5a0d2f6555646152239487e7e2e76f318e3f770e4b1740e457bf2c89cd4491206e5534ebd700745a3007fe44362214000b0ddb531408cc76a4b69e88d2a115a51d6acb9510a1369066c13a3289b3c6823533a60165500eff989e309fbfdad72135a815fc253767527e8469b57e077bdd32401c1916d3ee361da41816c5bf12f7915e576d384da3812801fd90bce374015cbec4e72756b38cf6c8e87ffe87d8241b5aa7d1fe29e6d5e77e1ae940666404643a440d9fb882f701bae78608a148aee3f7e59292e3a099e40af3e0001ddbd3bb88400205ba7736061943111041f6a3dd40114365c1dddbfcfea810d25b004df5f448439d4d99cfd6983001dd8a57cecf9b4dfb0ca7c1a6fd2141a18a1562b4e5841fe6e82ec4a9cd15110e9ca266a0a18b729ee42a3007951a2ad6eb6c64d5094cfa26c207e0e50ba4d8bd51615c0b5d55966b977d541c8b706216085528b1a5aa9795286714922086176b74aca02efe3988e01115546666247d460e7da61638d4884e1304f0f9ccf8fdd4f5efd82130ff6e1700808016a6205ae4ab62aba6d5fcf12451d36f338b0d9aa621d24751f6554140e92c95137ab94438d9c0db89fd45414a1c3f0cfc5b1518a1cee6fa9fd214bcec148cd7ee04a78e31d6ba48e604249c8c1047185157567c0725e343111c9c8ab7da3b982aadf7ae60abd6d4401c7a3743a940852ea0d384d1bc535459e938ef73166074692bedd756dc10bd6615a23809ddc1fcd4b792a807119490fdd7990f1227ce5fe560eb83f15d5361047be2ae83e18574a95d4101018d6ecbc27e94f5db6d5ac4df97f8315b1394c546c34dc89acb40c9d59475590deb592d1c9f9abe75395e3ac3c55838b198f309202849d5a2e24545510cb7c3ea6a1f2289c398e6509c1dcb2e91ed835e2f1c8af69a4a039abf2000130f4c6a024e1fe6045d30eccf1b7415da7dd21960851efb3c0b79ec2c64147e33a37cedc751f66655d237c46815f918ed421d352080a834affe56893586482da2b90cd2fca85eeccc5233a50eb4a0d22cd156a0abb65bd731ae01014718a34c9bb12b9d9f1895684e4505040f84b9475add2040ee62d9374544d0303ecd87f15931929766751068760af3703f8f203e494b7029bdf4fd721ce323f2c3b26a6c3bb58844915c4a4005fcaefe973f500216b297501d5504939573ed9356d37156b675cea57b260e217b20dd573b2cb81760650f891ea96f3a39e3543752006864717f1cd714744f7231ee600a6d6a266d887e53455356a15d156611214b44ab00153f851ea10396458c636dd0a82b34c43250adc2fc7e02cceaa5be2c574c2a2d6b719ab7d7d855ba5afb9867ba696963418fc44c3ce4316cb2828a75a6df42da7f9bacc99f0703f87cddebf91b7444559fb506cc2ea98adb2ba27f2fef9274cb6213e62a9a5a59f3d4eef3c65023d67d696a2c66c68e54c65a9bb300586eae1f7fab5e9a6ee9c49bae48e5504838c8243eb21f332290075ce67d4cd68e33d8710572491254cd2e7dbb2e59465b11843f70c217b4679503d537f04588c9b22f6963f9ca15b6778cc9615c8948e200c8ac006483e7bc0f8109c11cfa7e28549b4a1e564740fb2565b1fe27044c7ac9b60ea2c06f0eb2214a2386e73b9a60a4b6f2879d9f32acf6009902eabddf025dbc70220051fb92039b5c0541ab220a97913741755011015a5aa24e2b06860864a189cd46a01d22c6bfc5db696dc5127df85746b8750c55d51fa66f9048c9f674c886d42e6804cd265cc56443a397cbda55354411176a57d6b4ba0e2134770a40e63f71a151b6e79760dbe9f682174850244e9108e082342075224815d6192822a6318acf685cf90fbc158e629654501100d019bf9fb35f09090d0d2ad57b6e045100c35872aab7e95214f4f3cc74729ffbd1ab042871fd0014c0d641095265f083cbf7b72bb4ca20a286d3fbb4240a0f44585a0851e9f67ed86cdff297798a5c6729444359fcf535ab1c04455c9cbab88ab2dd0fbd3c1139c74783d6fb04d3a6e3088428fd240047c7e47501ae06e529a2d8ee939861d2067fd0a22f7c414f3eb3c0b10953e87124454115e82036a85317bc827da4292a03f41b24af5338aefba8c1c927b0bc0d7cccc1fde83ddaa215caaaef849263f70e6d6520f61b45859c2752c20726455d102b5a409193a0ec7200d3219b6d4502aecd0287ea32265f113eee65fa7eb40cb353893cdf6002f0bdcc883b1249be6be61b89b98e6af295c9dc24f2052de43c2b7612d260de4d2cce407b1250e94e732f40fca48badb792e4004194b5f62c3f20015b43c2c433e917761f277aec1b505cdc38dca99e9314345472219fc283db80d1b0a90bc8daddcf0eaad1555c6f7d9533c5edc5211151d42d50eaf8289bfc36fe93db23d770f6d637a98472ee952cff84e8ff4b48d86a7a59df518b2f3c7447cf66963e31010601660978ad4b2b8aa97827e4548ab59dd284f8d2f34daff4deb909101f40fdf884cf2c961256723cd8d9b6423f2f68734ab4ec552c6c537719a3d2f4cba46ba24ae03960f6704623277594adeecd6da5269f25ba9b2689e6123e000b8b0bfdcbe6cfe8d079df015548afbe7bdff9c1d3c1f7812e56f1bfc6a635c709c981b7b5b68487ad9931e282ca6ea74003a091cc856fe70a0df4957f484e8b49ea2251b7a27d8ec455406974b21f65491237b5e4d928a98c38fa90078c86d4e6cc261ddf545a5c2f02ee2d3b5beda6f93280df876ac7151364610c0766d86cce1cb8259e0e0108a82873283ce0a5968ed022e25a4ce550dee9320452c824458eb826415788a6215b5ba823b8b88b03b986f5451a24a816bd0c23010544a946ad1c67551cb893452692cfeb89d04738f3aa0e834de4f07bf540151418e5b46ab1550489f872fe0117e011c5dd6fcb5c67bc382c115a40fadfb1e8cde4abb44f6f4c9b1f5a0004146c1adc5d194217067b5e4fe00fab5505450f0bf11bef40019ffe6bc539815ea0cbbe2e953dc10bab5e894aab5b8c5ee5e073a015e137e0dec77da38c24eecf550cf32907be31fedd7ab990211144ab9c3ba8d12550028c93c8a8a6bb682bf4baf4909f831ffe37cc141527270aaa72dc0450663a27b176ad4d80a884be2cff75915c700cb2404519f2455419f645054ca2010c8bef80b491779af275456e5e2b9934144ee0fe45044151505ea1ba010550e89c77363da2a200fd8c722368b2f7fcceb004e99fe045bd9ef554a9dab1935abbf2326988c1971faeb6762cc88ab5eab5e14504404ff4fab4b5400000c644a61c5af09aa79614e6081fe49aa9545e055f045f045a450f550b145e8564ac7c27642654d521bd2d2224620ebbb5b1af4a14404fefa4a4eb4b0008ec28a720c4aa250dfc38b23591aa75e324e771b725b370e675f764a231b3a2a8882828802200c7bd9d6d6890324e0151154b0454100b5015004b501508ef94d9a8e534d30cbb80ccf9e475934054555415010001444555104445551aa8a82a228080025ff8ad7a77d08558b4fa445ab4fa441be1eb414be1eb41e90043aa43aae901b84402ab12eea80110440001104400000000000000008aa208a28aa208a2dfa758a2dfa758a8550f500a550f504b414b414b414b49c1436149c1436148855670098556700105545001055450000000000000008a28a2008a28a200da28f200da28f20a5a0a5a0a5a0a5a0a0a0a0a0a0a0a0208a2a20808a2a2095ca3f6095ca3f60154015401540154000000000000008200820082008200d250d250d250d250505050505050505000000000000008822882288228822dd77dd77dd77dd775555555555555555000000000000082828282828282828282828282828282000000000000000000000000000008aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa2
diff --git a/apps/medlda_release/dSFMT/jump/poly.521.txt b/apps/medlda_release/dSFMT/jump/poly.521.txt
new file mode 100644
index 0000000..428415c
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/poly.521.txt
@@ -0,0 +1,2 @@
+#521,3,25,fbfefff77efff,ffeebfbdfbfdf
+148e2d345750a90fa0b09763ecb70053a2490bdaedef3aa8fa0c85fc079aa729496743b5d59b0d7a9cea17df2a67dd59ea7a3bb1beef4c3d1ec90221d62cc371642710111
diff --git a/apps/medlda_release/dSFMT/jump/poly.86243.txt b/apps/medlda_release/dSFMT/jump/poly.86243.txt
new file mode 100644
index 0000000..ab01c00
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/poly.86243.txt
@@ -0,0 +1,2 @@
+#86243,231,13,ffedff6ffffdf,ffff7fdffff7e
+3333c3cc0c030f3cc3fcf030ccc00c3300000000000000000000000000e1e10006081000ef76e7e9768991e7e100000000000000000000000000c0ccfc300cf00fc0000cc03cc003f3c0000000000000000000000000008f700e9760897e16ef91089f91081e1006666878918160e7897e9f1608a923446000c03f3c0ccfc0fff3fc3f0000000000000000000000000000ef106e991081e10e181e76668ff760eff7e76068ff70ef16efff76e976239dbbe333fcc300f30ff3cf3cc0f0ffffffffffffffffffffffffffff78ff970006e910e7081000e997606efff9f9978ffff7e9187e7606e100815bde3cffcc30c0f30ff330f0000000000000000000000000000000000081e7ef94e27a6f10148bdcff703d3fc462b77d766e99700e70ef78f78912edc30dfdc84e61fae5886f463f9189ff978fffffffffffffffffffff70899ff9f910e978ff9f99ff99fffffff997e78ff997081e70ef760e10c3c3033cff03ffcf03333cc3cfcfffffffffffff9f9181eff18f789ff91eff97653e0926bcadc670c9e300f00fccb3468f9f76e9f1e16e70e1e505d3f03edf8dd30bab507cd353cc74915d7900f0c3cccf000000000008916ef708f16e1e7e9f78f978ff10e9918f9997e97e7899f9f166668978f9ccf333cf3033fccc0cf0ccfc3cc330fcc3cfc3990dd90666891ef7000e789ff70889ae0a875d3fd324df6222c85d970e1006668f9978f1878667a381ca6de86f106fc649d1d07d4a20bad03c3f3f30fcffffffffff100600efff999f97006eff166ef1687e7899f99f18f1810891666e70e7905486b6029944c58efd54fe33fc33f3f03ff3cccc0c02091e7ef997e78789916068eba032aefed79e023fe0efa0ff3e99f18f706e1000e91818f52ea68a0afd5344383c4b1bf5be0e112d17ffffcffccc30000000000008f768f768f97e708106897006363e4972749ec051c5d698b0dfbb8ed76d98517e19dfb4a9924e43dc331318da34a460797bfca981e78ff766e18ff9f916edfd79e10b2ca34cf3f92f8af33d781870660068760876606086edf0e7df19208900dc0abd27b1c3cc9d0ecc0ffc0033000000000000e766006e7e1e7660668f91068f164c61a23a0dc13abcf7943358c96a979d5ec464776f3dec93aaf13303c38f933c23407f7d003bb9d4320d454f7b29871368e64383b9e9e477d080fd28d01008918f9166e70899f708fff8fa700e721900fc3c22863235c8df33f73cfcfcf0cc0cc0ccc0f3fc3c33419c28f99910e91891e978910041c29f5ca91b809c602afb6caebf7efacfb22976670dd0a2c957cba5703ff375ae8dfb8c38f2afe2b6e0b1e91c5a2e9702e90200416a3f9f3e5369bd2606687e70e1e10087e9f7e781eb0bc162813258b9d8d0f4eeb0ea802dc568e16ac0f0ff3ffcc3f03f3cea6e9e876008f7068f7870e70069d1e37c01ff91d0f7ab2f06c21bf7680558e081abe2734257f068f156e639dc3fb97d7353c87766e6f6c820cb12f1e4060afb6870e752c95c80b49567e9700e97e760607186e057356d17de5b5a400b6b89a3512e4f240de2b4b292c32230fccf8a1f094ee25e6756df7eff76e1818997668ff97e494dd630aa9fad652a36dc25c1e789ea4777a4e80f505558e0e0f3d598cb3f470f85b587db6dab101e47cb41e527b91081bd27e966a8a06911aa1bd2870ef706e7ef95b8c504b7e4858fd38656190d91216f73c13e47ae3c0afee9f53033f3c40b42c62dde9ba7dc938a4a3b82a29b3fb86699f4c059518b35e215e66eda6c30ef9760607f4060125329636f08f0ebf18cd567227ab092abe175594077d5202fd806d211805a82b0327d10aa37d5b5266810681891ef73a1e4ac49d314fbcd0522285fa3071c69d3f8d6c840df86c55cb399b76c9279a43a774b28fecdfb53d239a37558b500ef9d8aa7b63cd613caf50942bec1e97687992f2b423c0b5d908a1c8d1bca597b02302ffd6750b10f22286253c4972517096ca529e2bcf3a56114662e45687681606e9ff1e4bf93c11b83574bbae18d9a35c943018f80b07d3b4014aa30e64c4ba557f6898a1113083f0b2eef755fd40ccdc5c7dff9b70560ff93907cfe201506da787e70ef999bebc24912a3c9fd28f4970d35318005f026fb26d7b53992777f124f143d207fefc22611d6433362a94168f9f91870eff1e97bcf2088f90c2a501f0bf5a5d702b7d43023f7ba89e163041d99fec0561e2c5567febb485e032a98871d089b5d1833006ef95612d4756ac94763ef50e1efff7e18e9cdabdcf3f0c7cf3c15c41ca55e3418c474ff8a0129f9751ad7669fb740bb817ef3801bb2f704e1f467ff806f3f6e97cc09ff07e435be2ddd181e12dcf9d1072fe7571c19b4154d4aa696d1933501fa0e5aa50acde6e4a6987118a6a751e45fa72590ac2a73748de3697cb55c2faf166e76e9f993e358f219b26425c49867c8845df48a29c1b64edbb6fe846efc83f15356840b66cc2c092534aadb295de8e6e79bd85320e70229a54dd6af5fe2b36f0c21176bd446f10ea7dc26a32bd5c25ca66a05a0084d2524b9f14f174dee526f05f677ba44733c7b61284b5744296923f95ddff1e7068f78c2ec716b68ae8d240883bf6107dcab6f6ed08dccd5c3e1055944ab75eb43f3d06492a82636a29fadec70376e1f6dda6e5976006ca29b3436e841d483c658fe2cdecf9983e9665bb15704282f25664c251ee24dfd7ef424b5979540d55ec6d550d256221a17d7d962776dab2b3b7f76ef160eff1851321c0f22850dff7df86568739fa6af8cfb4eb2d0c8baf5fb5e3abea03019528344836e200a7b9ef023e8aefb3fb22a08f168f50032758955550fa3f3bdbed776816693f8e8f731cf5d636d82abf94a379f604d9149d8e5c8dae13f2ddf85abdb6abe17e847ba983355c7a90aad81d1703015e34e8bacfae761458f425f3633009b7d222691c262695ecce5251ab4e816a81f29c5379176b07df1feeeb6750f7f35ea41b07932dcd76aec73f2282612b08148c567e9168a24c6b8c31644c9bde66174c2b20936c812726287f3d5e5a4e91bc435b0d4616638aea50c954f1d797ff0247f6d5c6f50622711edbd8af6f98a000cadadf0f57057979760be10f3495c8aef6d55ecafefbdf2aa8a16ca981499d33e29a1b6f27e3ef278e0dbd6389c7a6e2e98b9db7a7e89700066bd994fd883526c2abaa27ae8f8504bfa87967849ff169b55cce3632c6af7a842d316d70108e1731ccf589dd53eeb411045a93dbdb5944dd63bde6c271b1a98c87810c92f339943e8f76e29bc074018d78bdb771a50228ced69e7fb52e3f9f3a438c45ac454801eae516fb605057f97ce91e16a09b4b863d6cf9068d6418468abac7927c3d741c0eb0adc3fac113d6eba9414a8be2b91e927a6a7ba60d7cb0812230b5cf79c11ad0be409bf961d13e7ff29dd8c616e96cd820d82f08810b5b36fee1e00d0ec29237387ab2a281dbc2f6983e4d819e60c5e955c62b132478e348bcc295087254f9ed1bb2549ae31e4275de6a47b324040c94e869614e3a270a2b6b97acf2aa92eca39320a7fb4bbfe5ca9f59c98fb7f5eed9ce4cd4b5d78240f91be13169d3f848af9999549299a0b7d3fc1226d7f820db1c8a15237f27bcf56899f933d121f1b370d27edc55c54a5d8d0486ccc9571a1095c193b7e84e9bf6ead83920dfaedc4da6ad1feb48ff791145c1fa60053ff090c20b1ddee2f762edf1a3ff76aa29de28069ec5d6f5a2269a2feb99569fdd966991038a6a7810635a3095bbfd3753b6189cd54e15b960ed1defdd524cdba0246a61bfe75b9dd8707060fc40474162d5e0cb3c5eda4314a54e7e64956b628f6c41324f3e598b6822a0f1ef587e8aa83eb88aee67785a1d2637b230699ce82c5eb05558b11d4d8cec9d7ffdfc4ba9a79a9cef7a6884a5416cc816668106cd7c6137de416d8c066d711b73864d40c32abbc2c2ba73946cb9bc240cfb4a49445b98e0dac7b45e7953d306cf1cc508e9280720b3bb8a5aa7cb4cfec8e25a7876693965d4b7823d0b7fda659916a12724aef230617bda77715e92b16372c9e175e252b68c41fad24ed3041f6885545fa660a9517bb2fd89e2cfdf7a153f459380e79ab894347d13350f5b7d5ef775c07f3df8cb458fdaa53e5bcf10a1f27d1935ea0e06fe63db42e16b0dae196f4ec232f850ff1060ffccdf593d6060037876075a866a1ac07226bc8cd792bfd86eb3374cf17ff7b514d4d09e43a355430fb4c08a57ab3f7e9145df691bc9fbc8c40f85301173f0059a369c9a66b8187289061ad8b937aa662646908da277c237b1c0b6483d90d2e37d734b8adf41216fa6f699e7790f2e78416e768f76d2f78946a365b3591e1f43dd41978747e3cb5a96b57606c10a5b9ce4622092455d10bf251dbfc1cf186de6cb0d24018d41f0589605ec6a59a4718a57b609bce891ed5a911d4410361f9ae9f9e62bdd7b9f1a113e21ee52dbcc66089ebe0fc6ada93fee793c4295c1e8aea945e20874e7606081ebb0cd551346b6d180126d2659bb4b31c9e3a7d6c5799396946bc604c0c1f108e490fcd60b663c8a03fdf40d91ab7b46e10be115541ba9f81fdd9e511ff5787768196ff6aff17c787551e69f9691c72075bda7546a4f96e82960085bbd19e214a7147ccbf5d574db8b74a9b69ff030be7598ff4af5933ee3adf6c577b1f0a2060a3982cf310904dc49157f9217d6d2d3bb2604a5dc8f21a51eb7b366f5839b4ef5a1cfe235f38482456913eb9861232306331f4f166816e3a072b366500bba36e507ee9eb87d20bf16ec488cb5998299cc870b123e7fad4b0099e0fbd853ef18333c441006da3386a61ba77a648ff122d5650b199ed898d5981c9914863862ec0355f95e43b0f5a5d1db5cc2d514ce345a7058a06d2b481cdd475be0eb5aa5b2870cf8cd760402e166e70660f4abd313982825ab6b090abac98123c5e9325147f4a5c1a5e79fcf37feede3ead61f3c7f620aa1ab2e875994fb7497e1e1998426e36e692bcfafbc41eec5170ef8a139b4c833d44b6b1bb2a9700a889479477306c6eebbda9dd23f93305d184199389ee66481149583595ba2457cc76818f970cea78c3927cdd84c5ffdbcd1b76de1ac1967aaab80276ee92e4f8acbb57f53bc7f9ea3d2093fc3c67f41bd705d4ad2ef1eaf76d8ea35286fc0a6d4df8cf99efe9f7845ecaaff5c9d70b2209493472b6cf82eb1d90ba97891131c7128d07a28876e6a07d70564aa9a21860d13ae8a476ba14426a68143b761a4b1307c8019eca57e067c315f5656deee1cf499039178f2820fe07d12118f8337a6e83c4521a505c8592ff05e7ec329bc6e00aad5d7fe95f23296ef9916e90555f98dd062ea1df5ba077f3e9492f68b4b88253e359bb3bcdc236354eaa73106127ab2de75bc7688fe7b4e39c068c124fb79a004528aa27cfb57e03a78f3ef1f9e8f711170f6d1962686bdb5c3586a691da02e7e861de3b629e8b4088ac2feb1c5cbdcd84d5db2713c0a0a1153e9e0660e1606ea21b652183921ae71763553b14cb0f3bace70982178cbb4bfaa9c33e9ca63414fe40d74af1e927c990d8b4e08ddd9953a969212ab3a5abd89256976bc301fe787e28a725c307f800fb6e0562780014ca8de74a0dbde1416af0392fada7e7f7dd25eb7e49edef992e45012fc86b1c39108f766641a9ce2279faebab0611de49333e6aed724fb590090d130330ff062bffe12d7dd4fb8d67554b693b7ebcac71ae346f109cc1248c604d6c7528d4a6a6542272c00e7e78f2f4138d37695e31b040092fab7e02e0693d9cdc3938fb7668465fd8d6d70c8e758b0a6d1c2350e8b2f130a7ab15040ddf420989b2323d37dfc5ae7871238b65f7771190ff618a7634f8c2584d627d6b990fb8102b7bf70f8781c56516345606c4a9126f9d1b0efcaf49339493c44c9f81e760e90c914cd41f569abf6b8f15759fb80de5f563277d1858bcdc32a533d49d3f96aad2dcd844650e9e720986781dc02eceff650db8d8273c1b0a8a4eac27b590a62f766e7ef916a7637d8ccc0fe5cf340a7d04661f29025d8e95aabce106b9e7a19d87112af4e773be419d55a8bcd94c06ff18189f706a60b644f139c3c83b924eb08b6df36fcf3053c535ec09da600313bf275fe48256778fa24c2936511afe420984c74066e62a47653fc55a66a38bc841597017bf978f181132f0f1e537a1c425a80e384cba84717f8219587e70b52c7a549718980cf8d407f20c4a5adb3c950f9b85fd0e16efff9bd19b44a15a7c7be2d47f8dde017f0302bf1ea396d4f4307f79e7352e77ddcdf6a70a67fcf1959687548862e99110ef199161337d02786aa9685ef1a382d6c91687ef7e405d23833ba20664d3f495a213e643b71986ae4a69e5badeba8880802fecafd5dd8087a003a9a818e4fb032c55f9a58be65999a3d905227cced385cbd4d715b7e777300e927d490f62734f4cfffa9208e45766a0ef4b2118cdb502b8ae079a7101209d5483b41eea4d2df08318c2c6c87668789ea6eb64e08bed2309636d9a37cb107ea412d807f8dbf256bfd8052001adfc5f827bd80664e03041dc2231922539ba0e7c2bc75011c51fce6af0684e6fe0594e78082f2d42a7a06364872e8b75b2cfb7f741b0b457bd550eadb66c615a969371309d2abd68ae8bc6e304b3fa8703d9dae9789f70e18004cd7f7537b86fce164b2ef02d9d4f86b61bdb17fdc007d507d65927fd18a5dc82c44ec42b37ec7cd2899a083497c296458c4b2712104c4591ce32c0b000810ef595cd947a684e0add58a41fbc2b9d323ee217cfbc4137633acd4f766e66bc71fc7549b4d37cb99ff85b6000687668f16e16221ce218ceeb8c3fede30be6af2bb3ee3edcef4bf2b2975b3597972c6f8156cc31300cfdc16b31e88dd42ff8e684a81e76e1a114dc0f71c994a2d511f498aff7819924d6bb2b035b275f98a6e36a4a52802b0b5b8aa09bafffaede97f03fae3a48e9d639324bf985ab8d58fc69bc9f2aeea33ebfde0c129e33a90873a4a2acc31a076a1862693deb5b983d8d210335cd1d022b6b9c5165c5c66e49ef6c9e3f6e58525072f2bde5f53bcf28dc074ca5fe05029370ef1c9d662c590987924146730604424e044b24195922c8084a43c67f8284b72815737252135303c61cb19bd661c91e315ee8767c8b27103fbc5f153bf991583d14439ffff9a135b9aeb1b430d6176ae24f04c5a506c65d56f1e49edbe41b885e27b8e7e29279273f3eb50e510600fbb9f978f76ef13d94ef8de74d061d1dba0ba2a35690286ebe62d2adb39f45a3ab12870d95045134c3235d7760f98aa35334a8285dcc70e5608ffb2d671cc9653c472f5b3e79274951e19508784e351ea0fc0f69768ead9dd02351e17dcd452622cf7aa19b50ce1875dd62d412fcf83a5727fac658106068f9f9783f465a3cfd55240ac7e61f3ade10fc81a1edcf35d0c179ac2f32ce6945a3864499f066c68b2cddaf50844ba71684198a760e978b97dd824e69808704d5b21dd72d0ef19b0f4bcda1941522ba27ab0c460c3ed16b84882b77c643c17fb85ce2999e755ff26a7c0d08c4b39acf83fbeee519e31d95cd7fe6af6ec489d098275adb90210f98ff91458b7fc69764e63f25b600a6671075b5dc2b71ee6302d223a1bca720ff46836fbbcb67fd2e7e19a295386adf189f1687897d2dde4b4914c2d1058fedbf300545ff3a19eb1c7e6cb17ef96a4295c94be5073e9d3657fe294143d517083a43908a218f787814a4909301389fffe1aa86fb6b4e70769f10311768f1de7f661b356bc65522d040accee58f01a9557fd3f99289c695cd66fb1ec295ae959e9dcb066ef1e7089f9976a1eff7e52a2d93c1ff5c8d75141fe7c66f80f7b89036e1d6e9d866bda6104aa2e2932601bb600e9a00f299051ef6f3f7e70ebcf9f4852e5c2754173e32df6a0a0e762ec8acc648de375eacf927a2e74133c33dce66e81168e0976f18861f7a0ec7253f7ce203b360c22667f58f7060e7e9976494ec9cfcc7bc69d6067dfee5d4ac0da37040293f950f883f1abecf00a2e27c335b7448fb6e74f6a133b3fe81d2d6540f1e766ed594f3b24b67d53d7ffb387e97e789f8b332008858859828263ede0fd0e920c01def07b54c8f915ab3f798ff1939fe1cf4bb6bd580fce3d5855137573137d04d46e1666029a2cf71b49f0924722daecc916e0179046d55696c9aa37d4ea5b1ddc1bdf8e03058f23aa8f1a636a03675adffd20302e06a0c277a711faacc36e9181891e1e34999e7837fbeea4e26837577d1a2104f20672fcf3d19d4802d9185bcc29e37e662331d2af04c9a68265681366e2e2f0760e9ff5065723e6bca20f4e236ad5d40e91681101acb3981125441617ac7d93810ff20ae6424a54f463bf400bf2129590aedb9a0a11dbae46c1f7bbbc1660eff9918703db4cca2de30494deb27d835cec555c237086cce6b8d435a8cebb06dfa20a3f7ded3d9ccbb851d9d9619d888b6983e20d781066ac8b6bebe472f2f3bf7608910ef7660e308e8d70cf07ca57ec464635f06c198ded54f97efeff43b4e9f73dca7b1e84900f71a480519ec1103c8781008181068f7ef108f7843546d9308c221ad73e8bb50b76ca1ead73506944e41507f2dd72ed4d1c55beafa1c5f506ef416ec68fad5f5ff787ef5cf474f1ff958de7b50176689166e9f0a0dabff62536ae8dbee7aaac3c2dd541e6407bfe6571f5e91de6010989854463fb7883364a6c207fb23dc2d25da25de64e9f9f10aa8984043e884b0a6b9e3887810e90fc381adef44e1a369213c61f39e85f61a56a7e45b6f246e2c10340b1f0d9001c6b561e2cbae65040b779a70e18f16006080099ff1e9fc3db7f9ca9adafb39d7827b00fd90bec839a047d8ac2e4e9078759e92a69d087a4c13c3387b4892b1664287e1006adae08efac87d2f98047a4e708ff981b1310d14d73163930612e3f5bf399214d1ba96a7f9958b6c95126c4c6c86d15bb1a441ab81eb19e6df301ef1e10e10e78f1689f7006a9077a4b0a3a755352d2f0e7067f82b7f621e7df075805849cf5af35a8fd18bf220970fbea051d631b62b201068f95541d3c752c9ab3ee68e7e1e1e18999fd5401ce7abcd8963434d5e734e804466652e1e9c2ca0c251cc4fd2d51b89c86c23b7ee181b8fa77c4acf7e10081899ff76687eff17ed36025407d03282039ea1df7e58354d3ccbccbc54fd0018d51a191a1f72e0f3251d3067f9f07879068b28708f9181409fa15f948356b643f308166e97e19e0e679fe074df237f65746aeb99cc31e29eff8816952ded339d350dbaf8d38ed0811e67254c0558c9e2da4db5c27ceaef030e18993d570968c676b866953fc7008189ed11aca576e853b38bf45dd22df325e3a46f89b0b54b8c599200afb5f6ef4192ab651f2d9a4cfdd488147fff97e768700e1897606066dfba5ec9fa9bca7c942f05b3d701c6baf1ba18a4815a39fda95568879d249579dbd057c83f867282ced6d8be9106e720e82e62879df193a9e4b166008f70e9b1e9566edf785e768ef3ecacf43df23502376c54a53ad45a70489c1c4c1bc2c8fd3731c830bf569bad9fff916878789168ffff1e9bf0f50b991b78f283edebf760ef04baf8f3618d178bea27e4edee8098e8eed3d43917fde8e01142d1bc0ef4e18910e3dcecec6803917d622082ef768187e7158483969f0bcb67dd6b6baa80373b45a1547e70c450f5d9ebc908cd7b53e0266043da0894b03824d0318789766ef700000606e978a68a60c1af3e30cf80ac2608ff9dc1cfb1a128b9562ce18e2dddd885c67cbea6363506439879193d5dfd902ae7e1e78d188d2b835b045516b2660e9f999f708c2861bf2b8d4392e817a9fe7a338322350e79a269f6860f96eafa761921207d1f07832f9f4c025114f7eff79966d4311c06e1e18be13abd3c3cd54a38c3f999f7e916aa1ea487da16b460f94766df28a7d9a9a1eefa90052372f31e765dba62364eccedf02df3edaa31ee67a6d7660e1608766660e9e1d0fce30ff15b1d8acdef8e14e4b16e0a1a87a29723f9bd75e24e003d34a3cfd9130c80938971bfa9c9a478482dc56660eb53177bd79a361bbb2e47081608990e806ee06e6789e887879c3242c3c5424c256b96feec77d631466bdc1ee8db2f01230e133edcfb3f7fc2189f9916e18ff976879bc8224b79b312fd1645c1b075b9f108f8e862ce8b3f6cbeee8fc0d6c56f809e6dc099430355fda2baa20d58f29fbe97e76e3b91c6a027a02127624f9f76870e7818af2031e3f580c4bfe1d8f92b33586c98eb2fde8e93a6a6c85cb7df15ae132416c49bb5a800794604b8ff991e76e9ff78f1e50c9696af5b01f01515ff7829a56870895e379dde6ade0a5faa9d86aa26988886f9884c9c139c2c1e1004db2724faad9f168fd57fe67196711119a4008108768f9f1870ad802d4e2b52ec9144172b482d3af41a38bba758ff781e02e9c3ba2cfc4060001ddab101a1225c353baab20d5b8dc54587feb24d7fe3adb5cd23ee77253897ef97798e6f801f07779e71063ea2ff9910eff680b939092d1d235332de11122442122e11e1e2e2e0beaefc5a39978f9f9f700ef976495d8f8b073087efd83b81fd69cf76e251eb6060e768ff1bc4b9b46995f108f104314b5f0d420f06870378b779ddfe681a70b38c4f34c324a72c87477b91eff106068f7000ef1660668be32a5add3422c5c62822db1b326e187116d6ef6447e33f0c00033c0f15ed4fe576066e78916ef7e76819bf959904b89f9f7fb7ed08ed2f7e78eabd56bfcf46d758d2554c2dffc97e18f1a65f1dc389d96c999994b7bb2e507a9f1281414da70e7816ebff3f3330ef976897006e6788175e4077dfa9e00f1130bf8ea71c49de4235353dcc6fba124e033f7910064fefde0dc6678f16e7e100ef70e18ff910b6559b9940e76e763945fb9928ff99860f80f0f8e61f6970f4cdb0fb8f78f160ec8b16a1668346e97e20c03c81ebd7660030f0f0f0f0f6190729f9f1e7ef7666e16604de2afb065b300664b65a1a8fc2a91f880ef1a94da23b22a5efdc0c0304f78106c2970ffc3ee12c89f768ff00cd102a068247b476a0e7e1e9f2292def31ef7818910ef108ff918ff700f989c7008ff97e1eef87c0ffbcff76810e1eeeee1b133c00c0c0000f30e4d31eb0410668ff181eff99787b58fcdd23ed1081e4af134cc483e7872730f18ff76eff10a80dfb4e3f3ef916e9bc0a42ffa52086e9100ef33f62c161081c0f03cfc999187e1290fc303e70e181efff99910ef1081ef9ff999108700ef9708f958e00a7ef1878106a7138e8dfc000000000cfcedfa8ff97899f700e10e9189f1e73bff3cb6826000e1ba9f3cbe15081611066000008918971f54833e3030e10818db723e0cf8031606600effc3d6fce9706cf30c00e18f7608fdf30c00006e760e9f999160cf00c4f481e99160cf083d636e1eb0a1ccc7066e7e914f9ecc0c0ccfc08f9f3f81ad0cc9a087e7ef1e910068f16e9f105303f1b11e1606e1bc73f1d7fff916e78f7000087089f18fe2a1f03c0068f7e19a8130f3bc2440687820c0cfbc4cb100000000000e187e18760891600e189160087e1e70f33804bf18768f10f3bfe3d9918eb5f62f84081ef78eb5f62cfc0ff300066ef99df00cf66c6497089e0f0363839318fe003ff0a6ef7689fee13ff0ce9787600e9f70600e9108100818f76cc08ff10810668703cf45ca10e70000cccf3fc030330000c3c0f31230d4060e760000e10efff1e915cff0d7b0c40606e24661d7bedc9f109ef9610000008f107fdcb14ef33e1066e7a28f7100e03b689f1ece3ff3decaef18d3f0c3c030876899b5f0c3c03087600818f976e100000870876e16e10870e1e9f9f915f654bfe108106e75399c333033f00000cfc0fc305b0f1606e7600000e7066ef7e76ccf3260f9910e99fdaf32e799f100eff16000089fff100cea6d03f006e97e9d6d623c0841e9e9f1870f3ff841e778160000003306e916e91000003306ef16e7ef18f013cfc9aed476e9f013cf48a6a4766a39622f87087eff9b39aee30cccc0600606caaa0cccc0e9f189f76600068f9f789ff2330ff947e18f1ef4350fff49999160e7060000816e768106eff1c0c00e7689fff3c2ff0cc29160891c333fcccc00066000000000e1e1000689f91891e18f708f108767a2c3195dcd787e7f33c37725dd707969e0c03008999179a62ccf0cc0f8f7efb92b81c33f6167008ff78effff999000e92cc33cc389168766dda33cc38916687ef1600810008766e18991081008100e7ef9910f003797589760000f0cf3ccfcc00000000ccccccc27687e18997000e7ef7899108a433eca25ef768f94533e25d46e760e99700008f99108761220dfcf3ceffff7f328cf3fca9696818f1810f0f6798689700000030df78f70818700030df78f91818700e10000000006e106e10087876606869c991088848700679a96dffcf0fc3c00000fcff3f3fc5a66066660000008708f1088533cf03bdb9760674bcbf03db5878f7ef9f7000e78f9f7e99f12d00cc6689ff78990dffcc99b9189f7820ff00ff300606000000000e1e991e970000000e1e1008f706e9133d25ba266e10e9133d253daff9fee6772c330e9ff7e8e644e0ffccf7f1e1e1dadcccc2819910876e10000e7668108b77f3f3ff0b99fff3e674f3ff0b918f1687870000000e9ff99ff700008ff7e1e16e1acc3fb0c21c1060edcc3f3f33f300000000000000000066666666000008f9916e9954fffc1527138f9f32fffc1dd88c1ef99ff100000668999950f10000cf8f9f91a11e0ec040911e2f9f7e0ec08f1e81bef160033003b9ffffff76033003b9ff16ef7600e91000897ef7e76e991008f1e18f99718ffff78876687e1ff3cfcff00c3030000c303000044ecf9f97e16000e97eff9f762d6333d2ff56ef1e339a233b0e56eff70e991008f10ef918f102f51c0c689168781f1ae3f39a0e781e1deffffffc6600660000000e1008f706e700000e10089f7081660e1000ef978999760e1000ef78f9f01084050c0387060f0087350c0303300000033000000ba166666ef70000089f976890c700000f30000efe3ef1000f3e7081818ff1000000ef7e7e7e910000068100000682300006eccffff913300000033000000000000000000000000000000068ffffff97f0c0e1686f5f7ef7f0c0e100f6a081606600000066000000a6c00000c0499fff3fb6600027499fff18766000e7000000e700303030bf7000008f403030bf7000008f70000000660000006600087066ef189f4630087030df189f203000003030000000000000000e1810000e181006810810068dc8100683d0000683d0000004d81000081810000818100008d4100000c4f70000c4f70000c4f106060ef700000006060606000000008700000087000000870000008700000006060000060600000606000006063333333300000000333333330000000000000000891000008910000089f1e1e16b13000003e2e1e1e20300000b920000089100000891000008910000000ef100000ef100000ef100000ef10000000000000000000000000000000000000000000000000000000006666666600000000666666660000000000000000000000000000000000000000060600000606000006060000063500000033000000330000003300000000000000000000000000000000e1000000e1000000e1000000e100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0c00000c0c00000c0c00000c6a00000066000000660000006600000008f7000008f7000008f7000008f700000000000000000000000000000003030000030300000303000003030000000000000000000000000000000ef100000ef100000ef100000ef100000081810000818100008181000081810000000000003333333333333333333333333333333300000000000000000000000000e1e1e1e1e1e1e1e1e18181e1e18181e100606000006060000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000000000000000003030008f40bf708f40bf708f40bf708f708f700666666666666666666689766656b9465030df203030df20303030303000000000000000000000000000ef10ef10ef10ef10ef10ef10ef10ef1008181818181818181818181818d418d410cc00cc00cc00cc00cc06ca00000606000006060000060600008700870087008700870087008700870006060606060606060606060606063535000033330000333300003333000000000000000000000000000000e1e10003e2e20303e2e20303e2e2030b920b92089108910891089108910891000ef10ef10ef10ef10ef10ef10ef10ef1000000000000000000000000000000000000000000000000000006666000066660000666600006666000000000000000000000000000000000000060606060606060606060606063506350033003300330033003300330000000000000000000000000000e100e100e100e100e100e100e100e10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c6a0c6a0066006600660066006600660008f708f708f708f708f708f708f708f70000000000000000000000000003030303030303030303030303030303000000000000000000000000000ef10ef10ef10ef10ef10ef10ef10ef10081818181818181818181818181818181000000000000000000000000000000000000000000000000000000000000000000000000000000000000606060606060606060606060606060600000000000000000000000000000000000000000000000000000000000003030303030303030303030303030303000000000000000000000000000ef10ef10ef10ef10ef10ef10ef10ef1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060606060606060606060606060606060000000000000000000000000000000000000000000000000000000000003333333333333333333333333333333300000000000000000000000000e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066666666666666666666666666666666
diff --git a/apps/medlda_release/dSFMT/jump/readme-jp.html b/apps/medlda_release/dSFMT/jump/readme-jp.html
new file mode 100644
index 0000000..4943550
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/readme-jp.html
@@ -0,0 +1,179 @@
+
+
+
+
+
+ dSFMT jump function
+
+
+
+ 罨
+
+
+
+
+
+ 吾c潟罘純篏帥dSFMT倶N鴻緇倶荐膊
+ 堺ャ障dSFMT箙掩亥2N若喝冴с
+ N紊с翫箙掩亥cN鴻緇倶腱祉с障
+ 吾c潟罘純後篏睡羈dSFMTc鐚激鐚筝с
+ 篋篆荐若茲違緇с
+
+
+ 吾c潟絎茵篋ゃ鴻障吾c潟紊綣荐膊倶
+ 紊眼с
+
+
+
+
+ 吾c潟紊綣荐膊荐膊羝帥紊綣篏睡障
+ 荐膊羝帥紊綣 poly.{DSFMT_MEXP}.txt<ゃ
+ 篆絖障鐚紊綣ゃ茯ャ障鐚
+
+ make c篏絎茵純<ゃ 'calc-jump'篏帥c
+ 潟潟ゃ潟吾c潟紊綣荐膊с障
+ 篏睡羈篁ヤс
+
+
+
+./calc-jump jump-step polynomial-file
+ jump-step: a number between zero and 2^{DSFMT_MEXP}-1.
+ large decimal number is allowed.
+ polynomial-file: one of poly.{DSFMT_MEXP}.txt file
+
+
+
+ jump-step我違ф絎紊с違絎堺ャ障
+ no. params c poly.{DSFMT_MEXP}.txt
+ <ゃ篏睡絎
+
+ C++ ∽ 'dsfmt::calc_jump' 篏帥c吾c潟紊綣荐膊
+ с障∽違 'dSFMT-calc-jump.hpp' <ゃ筝у臂障
+
+ 吾c潟紊綣荐膊Victor Shoup
+ NTL: A Library for doing Number
+ Theory 綽荀с
+
+ 障吾c潟紊綣荐膊dSFMT倶綽荀障
+ 荐膊羝水綣主<ゃ篁ュ<祉潟違箴絖障
+
+
+
+
+
+ 鴻dSFMT<祉潟違箴絖障
+ 吾c潟紊綣荐膊篏睡荐膊羝水綣絲上<祉潟違
+ 綽篏睡
+
+ C荐茯ф吾dSFMT_jump∽違鴻絎茵障
+ ∽違dSFMT-jump.h筝уh障
+ ∽違潟潟ゃdSFMT 若吾с2.2 綽荀с
+
+
+
+
+
+ Jump 違с潟潟ゃс障dSFMT 2.2 純若鴻<ゃ
+ 綽荀с
+
+ - NTLゃ潟鴻若
+ ゃ潟鴻若
+ - ≪若ゃ<ゃ茹e障
+ - 堺ャc(dSFMTJump-src-xxx)筝jumpc
+ dSFMTc潟若障
+
+dSFMT-src-2.2
+ +---html
+ +---jump
+
+ - 潟若jumpccd 障
+ - NTLゃ潟鴻若gmp gf2x 篏睡翫Makefile
+ 篁ヤ茵<潟<潟紊綽荀障
+
+#LIBGF2X = -lgf2x
+#LIBGMP = -lgmp
+
+ - make 絎茵障
+
+
+make all
+make check
+
+
+ - make check 腟 OK 茵腓冴違鴻с
+
+ make check т test-jump-MXXX <ゃ-s
+ 絎絎茵吾c潟紊綣荐膊吾c潟絎茵茵腓冴障
+
+
+
+$ ./test-jump-M19937 -s
+mexp 19937 jump 10^04 steps calc_jump: 0.707ms
+mexp 19937 jump 10^04 steps dSFMT_jump: 0.166ms
+mexp 19937 jump 10^06 steps calc_jump: 3.527ms
+mexp 19937 jump 10^06 steps dSFMT_jump: 3.657ms
+mexp 19937 jump 10^08 steps calc_jump: 6.310ms
+mexp 19937 jump 10^08 steps dSFMT_jump: 3.628ms
+mexp 19937 jump 10^10 steps calc_jump: 9.221ms
+mexp 19937 jump 10^10 steps dSFMT_jump: 3.579ms
+mexp 19937 jump 10^12 steps calc_jump:12.175ms
+mexp 19937 jump 10^12 steps dSFMT_jump: 3.638ms
+mexp 19937 jump 10^14 steps calc_jump:15.176ms
+mexp 19937 jump 10^14 steps dSFMT_jump: 3.630ms
+mexp 19937 jump 10^16 steps calc_jump:18.064ms
+mexp 19937 jump 10^16 steps dSFMT_jump: 3.626ms
+mexp 19937 jump 10^18 steps calc_jump:20.959ms
+mexp 19937 jump 10^18 steps dSFMT_jump: 3.606ms
+mexp 19937 jump 10^20 steps calc_jump:23.884ms
+mexp 19937 jump 10^20 steps dSFMT_jump: 3.600ms
+mexp 19937 jump 10^22 steps calc_jump:26.920ms
+mexp 19937 jump 10^22 steps dSFMT_jump: 3.592ms
+
+
+
+
+
+ ≪若ゃ罌宴 sample1.c<ゃ
+ dSFMT1279篏帥c1020
+ 鴻吾c潟c篆荐若5
+ 障5dSFMT1020篁ヤ篌寂恒違
+ 障
+
+
+ 紊с吾c潟鴻絎
+ 吾c潟罘純荀с
+ 吾c潟罘純篏帥c筝蚊ゃ篌寂恒医堺ャ障
+ sample2.cс5dSFMT521篏睡
+ 蚊ゃ篌寂恒医
+ 蚊ゃdSFMT521ч罨∞篌寂恒医罸莠障
+
+ 泣潟с罨∞罸莠絨吾c潟鴻篏帥c
+ 障絎蚊ゃ篌寂恒医筝c紊с
+ 吾c潟鴻篏睡с
+
+
+
+
+ dSFMT-jump dSFMT 罕с障
+ 荅括完LICENSE.txt с
+
+
+
diff --git a/apps/medlda_release/dSFMT/jump/readme.html b/apps/medlda_release/dSFMT/jump/readme.html
new file mode 100644
index 0000000..9247571
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/readme.html
@@ -0,0 +1,176 @@
+
+
+
+
+
+ SFMT jump function
+
+
+
+ Index
+
+
+
+
+ For a given integer N, this jump function executes the N-step
+ jump. Namely, from the given state, obtain the state of dSFMT
+ after N steps generation. This is equivalent to call the dSFMT
+ double precision floating point number generation 2N times
+ with discarding the
+ outputs. A typical usage of a jump function is to obtain
+ distinct sub streams from a whole period of pseudorandom number
+ sequence generated by one dSFMT.
+
+
+ There are two steps for doing jump. Calculations of jump polynomial
+ and changing internal state.
+
+
+
+
+ To calculate jump polynomial, we use pre-calculated polynomials for
+ MEXPs, we omit explanation of the polynomial.
+ The pre-calculated polynomials are stored in
+ 'poly.{MEXP}.txt files.
+ The executable binary file 'calc-jump' calculates jump polynomial
+ from command line. Here is a usage:
+
+
+./calc-jump jump-step polynomial-file
+ jump-step: a number between zero and 2^{DSFMT_MEXP}-1.
+ large decimal number is allowed.
+ polynomial-file: one of poly.{DSFMT_MEXP}.txt file
+
+
+
+ Users can call C++ function 'dsfmt::calc_jump' in C++ header file
+ 'dSFMT-calc-jump.hpp' to calculate jump polynomials.
+
+ NTL: A Library for doing Number
+ Theory by Victor Shoup is used for polynomial calculation and
+ handling large integers.
+
+ This step does not use dSFMT internal state and independent
+ from MEXPs except file names of the pre-calculated polynomials.
+
+
+
+
+ This step depends on MEXPs of dSFMT, and the
+ polynomial file dSFMT should be the same as one used for the jump
+ polynomial calculation.
+
+ The function dSFMT_jump written in C language does this step.
+ For our convenience, we used C structure for dSFMT internal state,
+ and almost of all functions provided in dSFMT ver. 2.2 were
+ re-written to use dSFMT structures.
+
+
+
+ Test program needs source programs of SFMT ver. 2.2 to be compiled.
+
+
+
+ - Install NTL
+ if not installed.
+ - Expand archive file
+ - Copy jump directory in dSFMTJump-src-xxxx to
+ the directory of dSFMT.
+
+SFMT-src-2.2
+ +---html
+ +---jump
+
+ - Change directory to copied jump directory
+ - If you specify gmp or gf2x when you installed NTL,
+ you need to uncomment one of below lines in Makefile.
+
+
+#LIBGF2X = -lgf2x
+#LIBGMP = -lgmp
+
+ - make
+
+
+make all
+make check
+
+
+ - Check if OK is showed and no NG
+
+
+ test-jump-MXXX files made by above can invoke with '-s'
+ argument like this:
+
+
+
+$ ./test-jump-M19937 -s
+mexp 19937 jump 10^04 steps calc_jump: 0.707ms
+mexp 19937 jump 10^04 steps dSFMT_jump: 0.166ms
+mexp 19937 jump 10^06 steps calc_jump: 3.527ms
+mexp 19937 jump 10^06 steps dSFMT_jump: 3.657ms
+mexp 19937 jump 10^08 steps calc_jump: 6.310ms
+mexp 19937 jump 10^08 steps dSFMT_jump: 3.628ms
+mexp 19937 jump 10^10 steps calc_jump: 9.221ms
+mexp 19937 jump 10^10 steps dSFMT_jump: 3.579ms
+mexp 19937 jump 10^12 steps calc_jump:12.175ms
+mexp 19937 jump 10^12 steps dSFMT_jump: 3.638ms
+mexp 19937 jump 10^14 steps calc_jump:15.176ms
+mexp 19937 jump 10^14 steps dSFMT_jump: 3.630ms
+mexp 19937 jump 10^16 steps calc_jump:18.064ms
+mexp 19937 jump 10^16 steps dSFMT_jump: 3.626ms
+mexp 19937 jump 10^18 steps calc_jump:20.959ms
+mexp 19937 jump 10^18 steps dSFMT_jump: 3.606ms
+mexp 19937 jump 10^20 steps calc_jump:23.884ms
+mexp 19937 jump 10^20 steps dSFMT_jump: 3.600ms
+mexp 19937 jump 10^22 steps calc_jump:26.920ms
+mexp 19937 jump 10^22 steps dSFMT_jump: 3.592ms
+
+
+
+
+
+ sample1.c file included in the
+ archive shows generation of
+ 5 distinct sub-sequences using 1020 steps jump.
+ As far as the length of each sub-sequence is smaller than
+ 1020 the sub-sequences are not overlapping.
+
+
+ Getting distinct sub sequences is an important purpose of
+ jump function, however jump function is also available to get
+ a sub-sequence using parallel computing.
+
+ Here is a sample of generating a sequence using 5 dSFMT instances.
+ This sample is included in the archive.
+ sample2.c
+
+
+
+
+ sSFMT-jump, as well as sSFMT, can be used freely for any purpose,
+ including commercial use.
+ See LICENSE.txt for detail.
+
+
+
diff --git a/apps/medlda_release/dSFMT/jump/sample1.c b/apps/medlda_release/dSFMT/jump/sample1.c
new file mode 100644
index 0000000..68c845b
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/sample1.c
@@ -0,0 +1,55 @@
+/**
+ * @file sample.c
+ *
+ * @brief sample jump using pre-computed jump polynomial.
+ *
+ * The jump polynomial used in this program was calculated like this:
+
+$ ./calc-jump 100000000000000000000 poly.1279.txt
+jump polynomial:
+2c6b058dca1fbfb57ebf41e67fec066c8828f2bf9414331d2767fa740aba89987685a79114b3543edbc83476e35fd1e52b8b2436932b9d18a728d8c7d7009a31aabed9bf4646909b8138f3e2a05e611c48dd1ce58a46183adabf3314da38599af92720efca1535872e7f85ef916b2c1e41dfe8ea764730f6ba2654ab287a55214bcf08cfae416906e4979108d606819b5d9e5b2f11ce028577f6c3788a9c688f1d64f5ae341eb95169824954
+
+*/
+/*
+ * In this sample, jump polynomial is fixed, then DSFMT_MEXP should be fixed.
+ */
+#define DSFMT_MEXP 1279
+#include
+#include "dSFMT.h"
+#include "dSFMT-jump.h"
+
+/*
+ * jump step is dSFMT internal state step,
+ * for double, 2 * jump step numbers are skipped.
+ */
+static const int size = 5;
+/* 10^20 will be enough */
+static const char * jumppoly = "2c6b058dca1fbfb57ebf41e67fec066c8828f2bf"
+ "9414331d2767fa740aba89987685a79114b3543edbc83476e35fd1e52b8b2436932"
+ "b9d18a728d8c7d7009a31aabed9bf4646909b8138f3e2a05e611c48dd1ce58a4618"
+ "3adabf3314da38599af92720efca1535872e7f85ef916b2c1e41dfe8ea764730f6b"
+ "a2654ab287a55214bcf08cfae416906e4979108d606819b5d9e5b2f11ce028577f6"
+ "c3788a9c688f1d64f5ae341eb95169824954";
+
+int main(int argc, char * argv[])
+{
+ uint32_t seed = 4321;
+ dsfmt_t dsfmt[size];
+
+ dsfmt_init_gen_rand(&dsfmt[0], seed);
+ for (int i = 1; i < size; i++) {
+ dsfmt[i] = dsfmt[i - 1];
+ dSFMT_jump(&dsfmt[i], jumppoly);
+ }
+
+ for (int i = 0; i < 10; i++) {
+ /* simulating parallel generation */
+ printf("%f %f %f %f %f\n",
+ dsfmt_genrand_close_open(&dsfmt[0]),
+ dsfmt_genrand_close_open(&dsfmt[1]),
+ dsfmt_genrand_close_open(&dsfmt[2]),
+ dsfmt_genrand_close_open(&dsfmt[3]),
+ dsfmt_genrand_close_open(&dsfmt[4]));
+ }
+ return 0;
+}
diff --git a/apps/medlda_release/dSFMT/jump/sample2.c b/apps/medlda_release/dSFMT/jump/sample2.c
new file mode 100644
index 0000000..944f81c
--- /dev/null
+++ b/apps/medlda_release/dSFMT/jump/sample2.c
@@ -0,0 +1,85 @@
+/**
+ * @file sample.c
+ *
+ * @brief sample jump using pre-computed jump polynomial.
+ *
+ * The jump polynomial used in this program was calculated like this:
+
+$ ./calc-jump 10000 lcm.521.txt
+jump polynomial:
+61cfe6581dea7caf5009f3366e7ba5c81e78da9f2700af2ad3cddc005b1b542bf9295a1a81c7d41ebae4edd16780347d604da7b861074aa7abadbfb4a5cbf9ea0d6a65bbd
+
+* This jump step is too small for actual use, just for check.
+* Use larger step for your application.
+*/
+/*
+ * In this sample, jump polynomial is fixed, then DSFMT_MEXP should be fixed.
+ */
+#define DSFMT_MEXP 521
+#include
+#include "dSFMT.h"
+#include "dSFMT-jump.h"
+
+/*
+ * jump step is dSFMT internal state step,
+ * for double, 2 * jump step numbers are skipped.
+ */
+static const int step = 2 * 2000;
+static const int size = 5;
+static const char * jump2000 = "19976402611e3971602315ac42c1362b69367b411"
+ "1785f40aa0ab67ce3e41e8d60eb1f3b012ed9854d7b594094b4b58670b30b9b1ea18a"
+ "dba31d715592b6595195e01d458";
+static const char * jump8000 = "b615c968ff87afc24e13d91dc2c27737a396667f6e"
+ "b2979039b0de4d622a169d4d0b8200d2ee3b86d5f4528573abb4e55330bb0f002d66b"
+ "762f42956f74a38e1cb5dbee2c";
+
+int main(int argc, char * argv[])
+{
+ uint32_t seed = 1234;
+ dsfmt_t dsfmt[size];
+ dsfmt_t serial;
+ uint32_t array[size * step];
+
+ /* set up initial position of six sfmt instances
+ * sfmt[0]: position 0 -- 2000, jump, 10000 -- 12000
+ * sfmt[1]: position 2000 -- 4000, jump, 12000 -- 14000
+ * sfmt[2]: position 4000 -- 6000
+ * sfmt[3]: position 6000 -- 8000
+ * sfmt[4]: position 8000 -- 10000
+ */
+ dsfmt_init_gen_rand(&dsfmt[0], seed);
+ for (int i = 1; i < size; i++) {
+ dsfmt[i] = dsfmt[i - 1];
+ dSFMT_jump(&dsfmt[i], jump2000);
+ }
+ /* initialize serial generator */
+ dsfmt_init_gen_rand(&serial, seed);
+ /* generate and compare with serial generation */
+ for (int i = 0; i < 10; i++) {
+ /* simulating parallel generation */
+ for (int j = 0; j < step; j++) {
+ array[j + 0 * step] = dsfmt_genrand_uint32(&dsfmt[0]);
+ array[j + 1 * step] = dsfmt_genrand_uint32(&dsfmt[1]);
+ array[j + 2 * step] = dsfmt_genrand_uint32(&dsfmt[2]);
+ array[j + 3 * step] = dsfmt_genrand_uint32(&dsfmt[3]);
+ array[j + 4 * step] = dsfmt_genrand_uint32(&dsfmt[4]);
+ }
+ /* checking */
+ printf("comparing with serial generation %d to %d",
+ i * 10000, (i + 1) * 10000 -1);
+ for (int j = 0; j < size * step; j++) {
+ if (dsfmt_genrand_uint32(&serial) != array[j]) {
+ printf("something wrong! i=%d, j=%d\n", i, j);
+ return -1;
+ }
+ }
+ printf(" OK\n");
+ /* simulating parallel jump */
+ dSFMT_jump(&dsfmt[0], jump8000);
+ dSFMT_jump(&dsfmt[1], jump8000);
+ dSFMT_jump(&dsfmt[2], jump8000);
+ dSFMT_jump(&dsfmt[3], jump8000);
+ dSFMT_jump(&dsfmt[4], jump8000);
+ }
+ return 0;
+}
diff --git a/apps/medlda_release/dSFMT/test.c b/apps/medlda_release/dSFMT/test.c
new file mode 100644
index 0000000..82d55db
--- /dev/null
+++ b/apps/medlda_release/dSFMT/test.c
@@ -0,0 +1,769 @@
+#include
+#include
+#include
+#include
+#include
+#define DSFMT_DO_NOT_USE_OLD_NAMES
+#include "dSFMT.h"
+
+#define NUM_RANDS 50000
+#define TIC_MAG 1
+#define TIC_COUNT 2000
+
+w128_t dummy[NUM_RANDS / 2 + 1];
+
+typedef double (*genrand_t)(void);
+typedef double (*st_genrand_t)(dsfmt_t *dsfmt);
+typedef void (*fill_array_t)(double array[], int size);
+typedef void (*st_fill_array_t)(dsfmt_t *dsfmt, double array[], int size);
+
+#ifdef __GNUC__
+static void test_co(void) __attribute__((noinline));
+static void test_oc(void) __attribute__((noinline));
+static void test_oo(void) __attribute__((noinline));
+static void test_12(void) __attribute__((noinline));
+static void test_seq_co(void) __attribute__((noinline));
+static void test_seq_oc(void) __attribute__((noinline));
+static void test_seq_oo(void) __attribute__((noinline));
+static void test_seq_12(void) __attribute__((noinline));
+#else
+static void test_co(void);
+static void test_oc(void);
+static void test_oo(void);
+static void test_12(void);
+static void test_seq_co(void);
+static void test_seq_oc(void);
+static void test_seq_oo(void);
+static void test_seq_12(void);
+#endif
+static void check(char *start_mess, genrand_t genrand, fill_array_t fill_array,
+ st_genrand_t st_genrand, st_fill_array_t st_fill_array,
+ uint32_t seed, int n);
+static void check_ar(char *start_mess, genrand_t genrand,
+ fill_array_t fill_array,
+ st_genrand_t st_genrand,
+ st_fill_array_t st_fill_array,
+ int n);
+
+/* not inline wrapper functions for check() */
+static double s_genrand_close_open(void) {
+ return dsfmt_gv_genrand_close_open();
+}
+static double s_genrand_open_close(void) {
+ return dsfmt_gv_genrand_open_close();
+}
+static double s_genrand_open_open(void) {
+ return dsfmt_gv_genrand_open_open();
+}
+static double s_genrand_close1_open2(void) {
+ return dsfmt_gv_genrand_close1_open2();
+}
+static double sst_genrand_close_open(dsfmt_t *dsfmt) {
+ return dsfmt_genrand_close_open(dsfmt);
+}
+static double sst_genrand_open_close(dsfmt_t *dsfmt) {
+ return dsfmt_genrand_open_close(dsfmt);
+}
+static double sst_genrand_open_open(dsfmt_t *dsfmt) {
+ return dsfmt_genrand_open_open(dsfmt);
+}
+static double sst_genrand_close1_open2(dsfmt_t *dsfmt) {
+ return dsfmt_genrand_close1_open2(dsfmt);
+}
+static void s_fill_array_close_open(double array[], int size) {
+ dsfmt_gv_fill_array_close_open(array, size);
+}
+static void s_fill_array_open_close(double array[], int size) {
+ dsfmt_gv_fill_array_open_close(array, size);
+}
+static void s_fill_array_open_open(double array[], int size) {
+ dsfmt_gv_fill_array_open_open(array, size);
+}
+static void s_fill_array_close1_open2(double array[], int size) {
+ dsfmt_gv_fill_array_close1_open2(array, size);
+}
+static void sst_fill_array_close_open(dsfmt_t *dsfmt, double array[],
+ int size) {
+ dsfmt_fill_array_close_open(dsfmt, array, size);
+}
+static void sst_fill_array_open_close(dsfmt_t *dsfmt, double array[],
+ int size) {
+ dsfmt_fill_array_open_close(dsfmt, array, size);
+}
+static void sst_fill_array_open_open(dsfmt_t *dsfmt, double array[],
+ int size) {
+ dsfmt_fill_array_open_open(dsfmt, array, size);
+}
+static void sst_fill_array_close1_open2(dsfmt_t *dsfmt, double array[],
+ int size) {
+ dsfmt_fill_array_close1_open2(dsfmt, array, size);
+}
+
+static void check(char *range_str, genrand_t genrand, fill_array_t fill_array,
+ st_genrand_t st_genrand, st_fill_array_t st_fill_array,
+ uint32_t seed, int print_size) {
+ int i;
+ union W64_T {
+ uint64_t u;
+ double d;
+ };
+ w128_t little[DSFMT_N+1];
+ union W64_T *array = (union W64_T *)dummy;
+ union W64_T *plittle = (union W64_T *)little;
+ union W64_T r, r_st;
+ int lsize = DSFMT_N * 2 + 2;
+ dsfmt_t dsfmt;
+
+ printf("generated randoms %s\n", range_str);
+ dsfmt_gv_init_gen_rand(seed);
+ fill_array(&plittle[0].d, lsize);
+ fill_array(&array[0].d, 5000);
+ dsfmt_gv_init_gen_rand(seed);
+ dsfmt_init_gen_rand(&dsfmt, seed);
+ for (i = 0; i < lsize; i++) {
+ r.d = genrand();
+ r_st.d = st_genrand(&dsfmt);
+ if (r.u != r_st.u || r.u != plittle[i].u) {
+ printf("\n%s mismatch i = %d: r = %1.15f(%08"PRIx64"), "
+ "st = %1.15f(%08"PRIx64")"
+ "array = %1.15f(%08"PRIx64")\n",
+ range_str, i, r.d, r.u,
+ r_st.d, r_st.u,
+ plittle[i].d, plittle[i].u);
+ exit(1);
+ }
+ if (i < print_size) {
+ printf("%1.15f ", plittle[i].d);
+ if (i % 4 == 3) {
+ printf("\n");
+ }
+ }
+ }
+ for (i = 0; i < 5000; i++) {
+ r.d = genrand();
+ if (r.u != array[i].u) {
+ printf("\n%s mismatch i = %d: r = %1.15f(%08"PRIx64"), "
+ "array = %1.15f(%08"PRIx64")\n",
+ range_str, i + lsize, r.d, r.u,
+ array[i].d, array[i].u);
+ exit(1);
+ }
+ if (i + lsize < print_size) {
+ printf("%1.15f ", array[i].d);
+ if ((i + lsize) % 4 == 3) {
+ printf("\n");
+ }
+ }
+ }
+
+ dsfmt_init_gen_rand(&dsfmt, seed);
+ st_fill_array(&dsfmt, &plittle[0].d, lsize);
+ st_fill_array(&dsfmt, &array[0].d, 5000);
+ dsfmt_init_gen_rand(&dsfmt, seed);
+ for (i = 0; i < lsize; i++) {
+ r_st.d = st_genrand(&dsfmt);
+ if (r_st.u != plittle[i].u) {
+ printf("\n%s mismatch i = %d: st = %1.15f(%08"PRIx64"), "
+ "array = %1.15f(%08"PRIx64")\n",
+ range_str, i, r_st.d, r_st.u,
+ plittle[i].d, plittle[i].u);
+ exit(1);
+ }
+ }
+ for (i = 0; i < 5000; i++) {
+ r_st.d = st_genrand(&dsfmt);
+ if (r_st.u != array[i].u) {
+ printf("\n%s mismatch i = %d: r = %1.15f(%08"PRIx64"), "
+ "array = %1.15f(%08"PRIx64")\n",
+ range_str, i + lsize, r_st.d, r_st.u,
+ array[i].d, array[i].u);
+ exit(1);
+ }
+ }
+}
+
+static void check_ar(char *range_str, genrand_t genrand,
+ fill_array_t fill_array,
+ st_genrand_t st_genrand,
+ st_fill_array_t st_fill_array,
+ int print_size) {
+ int i;
+ union W64_T {
+ uint64_t u;
+ double d;
+ };
+ w128_t little[DSFMT_N+1];
+ union W64_T *array = (union W64_T *)dummy;
+ union W64_T *plittle = (union W64_T *)little;
+ union W64_T r, r_st;
+ int lsize = DSFMT_N * 2 + 2;
+ dsfmt_t dsfmt;
+ uint32_t ar[4] = {1, 2, 3, 4};
+
+ printf("generated randoms %s\n", range_str);
+ dsfmt_gv_init_by_array(ar, 4);
+ fill_array(&plittle[0].d, lsize);
+ fill_array(&array[0].d, 5000);
+ dsfmt_gv_init_by_array(ar, 4);
+ dsfmt_init_by_array(&dsfmt, ar, 4);
+ for (i = 0; i < lsize; i++) {
+ r.d = genrand();
+ r_st.d = st_genrand(&dsfmt);
+ if (r.u != r_st.u || r.u != plittle[i].u) {
+ printf("\n%s mismatch i = %d: r = %1.15f(%08"PRIx64"), "
+ "st = %1.15f(%08"PRIx64")"
+ "array = %1.15f(%08"PRIx64")\n",
+ range_str, i, r.d, r.u,
+ r_st.d, r_st.u,
+ plittle[i].d, plittle[i].u);
+ exit(1);
+ }
+ if (i < print_size) {
+ printf("%1.15f ", plittle[i].d);
+ if (i % 4 == 3) {
+ printf("\n");
+ }
+ }
+ }
+ for (i = 0; i < 5000; i++) {
+ r.d = genrand();
+ if (r.u != array[i].u) {
+ printf("\n%s mismatch i = %d: r = %1.15f(%08"PRIx64"), "
+ "array = %1.15f(%08"PRIx64")\n",
+ range_str, i + lsize, r.d, r.u,
+ array[i].d, array[i].u);
+ exit(1);
+ }
+ if (i + lsize < print_size) {
+ printf("%1.15f ", array[i].d);
+ if ((i + lsize) % 4 == 3) {
+ printf("\n");
+ }
+ }
+ }
+
+ dsfmt_init_by_array(&dsfmt, ar, 4);
+ st_fill_array(&dsfmt, &plittle[0].d, lsize);
+ st_fill_array(&dsfmt, &array[0].d, 5000);
+ dsfmt_init_by_array(&dsfmt, ar, 4);
+ for (i = 0; i < lsize; i++) {
+ r_st.d = st_genrand(&dsfmt);
+ if (r_st.u != plittle[i].u) {
+ printf("\n%s mismatch i = %d: st = %1.15f(%08"PRIx64"), "
+ "array = %1.15f(%08"PRIx64")\n",
+ range_str, i, r_st.d, r_st.u,
+ plittle[i].d, plittle[i].u);
+ exit(1);
+ }
+ }
+ for (i = 0; i < 5000; i++) {
+ r_st.d = st_genrand(&dsfmt);
+ if (r_st.u != array[i].u) {
+ printf("\n%s mismatch i = %d: r = %1.15f(%08"PRIx64"), "
+ "array = %1.15f(%08"PRIx64")\n",
+ range_str, i + lsize, r_st.d, r_st.u,
+ array[i].d, array[i].u);
+ exit(1);
+ }
+ }
+}
+
+static void test_co(void) {
+ uint32_t i, j;
+ uint64_t clo;
+ uint64_t sum;
+ double *array = (double *)dummy;
+ dsfmt_t dsfmt;
+
+#if 0
+ dsfmt_gv_init_gen_rand(1234);
+ sum = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ dsfmt_gv_fill_array_close_open(array, NUM_RANDS);
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ printf("GL BLOCK [0, 1) AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+#endif
+ dsfmt_init_gen_rand(&dsfmt, 1234);
+ sum = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ dsfmt_fill_array_close_open(&dsfmt, array, NUM_RANDS);
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ printf("ST BLOCK [0, 1) AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+}
+
+static void test_oc(void) {
+ uint32_t i, j;
+ uint64_t clo;
+ uint64_t sum;
+ double *array = (double *)dummy;
+ dsfmt_t dsfmt;
+#if 0
+ dsfmt_gv_init_gen_rand(1234);
+ sum = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ dsfmt_gv_fill_array_open_close(array, NUM_RANDS);
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ printf("GL BLOCK (0, 1] AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+#endif
+ dsfmt_init_gen_rand(&dsfmt, 1234);
+ sum = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ dsfmt_fill_array_open_close(&dsfmt, array, NUM_RANDS);
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ printf("ST BLOCK (0, 1] AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+}
+
+static void test_oo(void) {
+ uint32_t i, j;
+ uint64_t clo;
+ uint64_t sum;
+ double *array = (double *)dummy;
+ dsfmt_t dsfmt;
+#if 0
+ dsfmt_gv_init_gen_rand(1234);
+ sum = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ dsfmt_gv_fill_array_open_open(array, NUM_RANDS);
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ printf("GL BLOCK (0, 1) AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+#endif
+ dsfmt_init_gen_rand(&dsfmt, 1234);
+ sum = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ dsfmt_fill_array_open_open(&dsfmt, array, NUM_RANDS);
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ printf("ST BLOCK (0, 1) AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+}
+
+static void test_12(void) {
+ uint32_t i, j;
+ uint64_t clo;
+ uint64_t sum;
+ double *array = (double *)dummy;
+ dsfmt_t dsfmt;
+#if 0
+ dsfmt_gv_init_gen_rand(1234);
+ sum = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ dsfmt_gv_fill_array_close1_open2(array, NUM_RANDS);
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ printf("GL BLOCK [1, 2) AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+#endif
+ dsfmt_init_gen_rand(&dsfmt, 1234);
+ sum = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ dsfmt_fill_array_close1_open2(&dsfmt, array, NUM_RANDS);
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ printf("ST BLOCK [1, 2) AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+}
+
+static void test_seq_co(void) {
+ uint32_t i, j, k;
+ uint64_t clo;
+ uint64_t sum;
+ double *array = (double *)dummy;
+ double r;
+ double total = 0;
+ dsfmt_t dsfmt;
+#if 0
+ dsfmt_gv_init_gen_rand(1234);
+ sum = 0;
+ r = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ for (k = 0; k < NUM_RANDS; k++) {
+ r += dsfmt_gv_genrand_close_open();
+ }
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ total = r;
+ printf("GL SEQ [0, 1) 1 AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+
+ sum = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ for (k = 0; k < NUM_RANDS; k++) {
+ array[k] = dsfmt_gv_genrand_close_open();
+ }
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ for (k = 0; k < NUM_RANDS; k++) {
+ total += array[k];
+ }
+ printf("GL SEQ [0, 1) 2 AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+#endif
+ dsfmt_init_gen_rand(&dsfmt, 1234);
+ sum = 0;
+ r = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ for (k = 0; k < NUM_RANDS; k++) {
+ r += dsfmt_genrand_close_open(&dsfmt);
+ }
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ total = r;
+ printf("ST SEQ [0, 1) 1 AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+
+ sum = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ for (k = 0; k < NUM_RANDS; k++) {
+ array[k] = dsfmt_genrand_close_open(&dsfmt);
+ }
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ for (k = 0; k < NUM_RANDS; k++) {
+ total += array[k];
+ }
+ printf("ST SEQ [0, 1) 2 AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+
+ printf("total = %f\n", total);
+}
+
+static void test_seq_oc(void) {
+ uint32_t i, j, k;
+ uint64_t clo;
+ uint64_t sum;
+ double *array = (double *)dummy;
+ double r;
+ double total = 0;
+ dsfmt_t dsfmt;
+#if 0
+ dsfmt_gv_init_gen_rand(1234);
+ sum = 0;
+ r = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ for (k = 0; k < NUM_RANDS; k++) {
+ r += dsfmt_gv_genrand_open_close();
+ }
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ total = r;
+ printf("GL SEQ (0, 1] 1 AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+ sum = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ for (k = 0; k < NUM_RANDS; k++) {
+ array[k] = dsfmt_gv_genrand_open_close();
+ }
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ for (k = 0; k < NUM_RANDS; k++) {
+ total += array[k];
+ }
+ printf("GL SEQ (0, 1] 2 AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+#endif
+ dsfmt_init_gen_rand(&dsfmt, 1234);
+ sum = 0;
+ r = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ for (k = 0; k < NUM_RANDS; k++) {
+ r += dsfmt_genrand_open_close(&dsfmt);
+ }
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ total += r;
+ printf("ST SEQ (0, 1] 1 AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+ sum = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ for (k = 0; k < NUM_RANDS; k++) {
+ array[k] = dsfmt_genrand_open_close(&dsfmt);
+ }
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ for (k = 0; k < NUM_RANDS; k++) {
+ total += array[k];
+ }
+ printf("ST SEQ (0, 1] 2 AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+ printf("total = %f\n", total);
+}
+
+static void test_seq_oo(void) {
+ uint32_t i, j, k;
+ uint64_t clo;
+ uint64_t sum;
+ double *array = (double *)dummy;
+ double r;
+ double total = 0;
+ dsfmt_t dsfmt;
+#if 0
+ dsfmt_gv_init_gen_rand(1234);
+ sum = 0;
+ r = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ for (k = 0; k < NUM_RANDS; k++) {
+ r += dsfmt_gv_genrand_open_open();
+ }
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ total = r;
+ printf("GL SEQ (0, 1) 1 AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+ sum = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ for (k = 0; k < NUM_RANDS; k++) {
+ array[k] = dsfmt_gv_genrand_open_open();
+ }
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ for (k = 0; k < NUM_RANDS; k++) {
+ total += array[k];
+ }
+ printf("GL SEQ (0, 1) 2 AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+#endif
+ dsfmt_init_gen_rand(&dsfmt, 1234);
+ sum = 0;
+ r = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ for (k = 0; k < NUM_RANDS; k++) {
+ r += dsfmt_genrand_open_open(&dsfmt);
+ }
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ total += r;
+ printf("ST SEQ (0, 1) 1 AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+ sum = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ for (k = 0; k < NUM_RANDS; k++) {
+ array[k] = dsfmt_genrand_open_open(&dsfmt);
+ }
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ for (k = 0; k < NUM_RANDS; k++) {
+ total += array[k];
+ }
+ printf("ST SEQ (0, 1) 2 AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+ printf("total = %f\n", total);
+}
+
+static void test_seq_12(void) {
+ uint32_t i, j, k;
+ uint64_t clo;
+ uint64_t sum;
+ double *array = (double *)dummy;
+ double r;
+ double total = 0;
+ dsfmt_t dsfmt;
+#if 0
+ dsfmt_gv_init_gen_rand(1234);
+ sum = 0;
+ r = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ for (k = 0; k < NUM_RANDS; k++) {
+ r += dsfmt_gv_genrand_close1_open2();
+ }
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ total = r;
+ printf("GL SEQ [1, 2) 1 AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+ sum = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ for (k = 0; k < NUM_RANDS; k++) {
+ array[k] = dsfmt_gv_genrand_close1_open2();
+ }
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ for (k = 0; k < NUM_RANDS; k++) {
+ total += array[k];
+ }
+ printf("GL SEQ [1, 2) 2 AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+#endif
+ dsfmt_init_gen_rand(&dsfmt, 1234);
+ sum = 0;
+ r = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ for (k = 0; k < NUM_RANDS; k++) {
+ r += dsfmt_genrand_close1_open2(&dsfmt);
+ }
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ total += r;
+ printf("ST SEQ [1, 2) 1 AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+ sum = 0;
+ for (i = 0; i < 10; i++) {
+ clo = clock();
+ for (j = 0; j < TIC_COUNT; j++) {
+ for (k = 0; k < NUM_RANDS; k++) {
+ array[k] = dsfmt_genrand_close1_open2(&dsfmt);
+ }
+ }
+ clo = clock() - clo;
+ sum += clo;
+ }
+ for (k = 0; k < NUM_RANDS; k++) {
+ total += array[k];
+ }
+ printf("ST SEQ [1, 2) 2 AVE:%4"PRIu64"ms.\n",
+ (sum * 100) / CLOCKS_PER_SEC);
+ printf("total = %f\n", total);
+}
+
+int main(int argc, char *argv[]) {
+ int i;
+
+ if ((argc >= 2) && (strncmp(argv[1],"-s",2) == 0)) {
+ printf("consumed time for generating %d randoms.\n",
+ NUM_RANDS * TIC_COUNT);
+ test_co();
+ test_oc();
+ test_oo();
+ test_12();
+ test_seq_co();
+ test_seq_oc();
+ test_seq_oo();
+ test_seq_12();
+ } else {
+ printf("%s\n", dsfmt_get_idstring());
+ printf("init_gen_rand(0) ");
+ check("[1, 2)", s_genrand_close1_open2, s_fill_array_close1_open2,
+ sst_genrand_close1_open2, sst_fill_array_close1_open2, 0, 1000);
+ for (i = 0; i < 20; i++) {
+ printf("init_gen_rand(%d) ", i);
+ switch (i % 4) {
+ case 0:
+ check("[0, 1)", s_genrand_close_open, s_fill_array_close_open,
+ sst_genrand_close_open, sst_fill_array_close_open, i, 12);
+ break;
+ case 1:
+ check("(0, 1]", s_genrand_open_close, s_fill_array_open_close,
+ sst_genrand_open_close, sst_fill_array_open_close, i, 12);
+ break;
+ case 2:
+ check("(0, 1)", s_genrand_open_open, s_fill_array_open_open,
+ sst_genrand_open_open, sst_fill_array_open_open, i, 12);
+ break;
+ case 3:
+ default:
+ check("[1, 2)", s_genrand_close1_open2,
+ s_fill_array_close1_open2,
+ sst_genrand_close1_open2,
+ sst_fill_array_close1_open2, i, 12);
+ }
+ }
+ printf("init_by_array {1, 2, 3, 4} ");
+ check_ar("[1, 2)", s_genrand_close1_open2,
+ s_fill_array_close1_open2,
+ sst_genrand_close1_open2,
+ sst_fill_array_close1_open2,
+ 1000);
+ }
+ return 0;
+}
diff --git a/apps/medlda_release/dsfmt.cpp b/apps/medlda_release/dsfmt.cpp
new file mode 100644
index 0000000..c496028
--- /dev/null
+++ b/apps/medlda_release/dsfmt.cpp
@@ -0,0 +1,39 @@
+#include "dsfmt.hpp"
+#include "dSFMT-jump.h"
+#include "dsfmt_polys.c"
+#include
+#include
+
+DSFMT::DSFMT(uint32_t seed) {
+ dsfmt_init_gen_rand(&state, seed);
+ _saved = NAN;
+ _saved_available = false;
+};
+
+void DSFMT::jump_state(uint64_t steps) {
+ for (int b=0; b < 64; b++)
+ if ((steps>>b) & 1)
+ dSFMT_jump(&state, JUMP_19937_2POWS[b]);
+};
+
+double DSFMT::uniform_real() {
+ return dsfmt_genrand_close_open(&state);
+};
+
+double DSFMT::standard_normal() {
+ if (_saved_available) {
+ _saved_available = false;
+ return _saved;
+ }
+ _saved_available = true;
+ double x, y, r2;
+ do {
+ x = 2.0 * dsfmt_genrand_open_open(&state) - 1.0;
+ y = 2.0 * dsfmt_genrand_open_open(&state) - 1.0;
+ r2 = x * x + y * y;
+ } while (r2 > 1.0 || r2 == 0.0);
+
+ const double mult = std::sqrt(-2 * std::log(r2) / r2);
+ _saved = y * mult;
+ return x * mult;
+};
diff --git a/apps/medlda_release/dsfmt.hpp b/apps/medlda_release/dsfmt.hpp
new file mode 100644
index 0000000..43af6ab
--- /dev/null
+++ b/apps/medlda_release/dsfmt.hpp
@@ -0,0 +1,22 @@
+#ifndef DSFMT_HPP
+#define DSFMT_HPP
+
+#define DSFMT_MEXP 19937
+#include "dSFMT.h"
+
+#define DEFAULT_SEED 56789U
+#define DEFAULT_JUMP 1<<30
+
+struct DSFMT {
+ DSFMT(uint32_t seed = DEFAULT_SEED);
+ void jump_state(uint64_t steps = DEFAULT_JUMP);
+ void discard(uint64_t steps) { jump_state(steps>>1); }
+ double uniform_real(); /* half closed [0, 1) */
+ double standard_normal(); /* box muller as in gnu C++11 impl */
+
+ dsfmt_t state;
+ double _saved;
+ bool _saved_available;
+};
+
+#endif
diff --git a/apps/medlda_release/dsfmt_polys.c b/apps/medlda_release/dsfmt_polys.c
new file mode 100644
index 0000000..ecb2d6e
--- /dev/null
+++ b/apps/medlda_release/dsfmt_polys.c
@@ -0,0 +1,70 @@
+#ifndef DSFMT_POLYS_C
+#define DSFMT_POLYS_C
+static const char * const POLY_19937 = "10455110544511444054554514541dbbb0a20820a288a00a80a82208280b73237d2ff2ab5e2fcac914510101df18802aaaa08a022820a02aaa202ae822c364b91fb08598fe4410154041f028a266586e59cf12ce316b3a56af45cb49d02c7059cb89d2d81b0d288badbb25fa4e53b280aa88a22aa82abe7fc0645b7d7a4650c1dec48f21224e3d0e6e04c062c2273ef0d8361415c724dbc8f79118d5fac429f35dc460f6007e54c3966c28808e4c9308cc46e2e0e153bd922223796d4101af867e16e6641e6831e06ebbd2beaf52b2b47076dbf3a3e36c6d14d19dbf5d4b2b44b4d3aa6e1ea102578d765f08e1cb0749220075b8aae81c6e99692a56b35ddd4cf91b1034f1398c98e2d4ac8dbed09bc73ede098514cf3ffdf45cbb59335e3ec42f5f6a5672acc4ca8daa02a2502350ac0485f8b36f27d7a1d4d4b22fc7601e22a4f7c6ba53782b335837a21a068e8fcf3fdebb28860157301519cdea328b1ef4b8d5bc512ce65ff33298c34cc98ea1558f7b6d4db594f4bcab58d9f7bcf5cc59e259216de13f77569bbcee1c8abd55de985b7129e611d156c08cafa022ad7a2206a34a61e5c4c91e75495112003ec03c182a0155d9221382d0b30f45a00d6c19740f9ecebb448de78dfc0342f14166f54afdb97d00ac1a390355ce2aa9de1b3c919d8dd188fc9451ce9c86fa560a2da9dcaa681efd21fe5b6055f8e35a833e5704936245d06e387bf9956251bf0a252628be7a3cb0edab4aaaf141e6d7a9929cc03afa76ca433016d880def9e4cf10f7274e58aa35c372b7b7fb210fe0dc1a6b8445e7774ad6001b9aa1f2a01a790ee849e7ac810e0a646e733a7121bd727a9b593e0c9f5306dff5105af5967e3cee81069100d7e91a9c266e64c9e073a6e527765308879b22ca062668f9a564da6314dcad51405f160e8259582b7c06c313c84b0acba44958c052e6be540a7688e240232bee40b990dc48ee07d560786ca34e7df1bbdd2bca38a30c548ec57e91906b8417ff0da68db9c154d8ad83b06a6fc2b2e14ca5fbe7bd50382949c9b1f6e8540d9d43b35fa76a6ded27c2f17095a4f330626c5e86e8ff88ae53e05a434356a04a1ddae43b6e2ab883719360fbece72b6090ab17414ca7006e49d183813422c808fde53a30f872254bb554653aef86855f95a9361782100de2402efd749cc8cf6a837066c1c40c0160e415d8119e53a09877f1160ef8b99b2839e9b8c09b1e461e906041344c8fc2ef0a8eda04e319da41e001e60bc64dcdfc0593dff0f4b390580e1cd5b3c16204e77df10217791f99de49fcdc9160b793fd980bff7ae0cbd570425eb439352e5032e03797461376b5fb92aa156ad64935cc201a162f10f04b6d2d20a0415ae16f299e98baa86466f6f517f05f430254884a4010ac196540b0644e3c274323d4f0206780d38175f1e41fcb65bd387be073abee61b99d43f6b9106953ae4f6906e6ac0741e26af05fa9150c4f380558668aa667e404e3784b839d631e35af015024dbfc3dce4685574cd1e58eb72c70011090a2a876b65e34cb6cf297d24cb61ccca5a9706f34ae1f66345998f850de4e48d77cdf6e00fb0d2210ec9fb53fed02a781f7dfcdb609b9f955504f450e4b7b623cb0f5ba1ea09d92cd8d14f7e827b4580855f3a7dc2e5a45817df9e26adb5934f6026f745cb0f65e71c590bd954d1abc3826379719b7c6f4a0cbe6eb22a903b98bef785bb96efe2fc96988722c91f3e59d28d8244c8bfb59ee26082d82cad937ee70f178b44082533308ca24f236d8b91ca7af5b3d865c90d61410e1ffe39be6433a12ef2932e101b4bb34befa76748e0364a96f06e7932f44297fd5f85765b662c3ade19d9a9d9479f6de20b6b753d3dcbadf63e344578b98af85b4c4c63be9d154864f5d341f210f3503a60efec38ee59069499d0049aedfaef9264a7ce9de460a01e5437254fc68dfaebaa5e0e791380806bc149aedbc1d771457770937a5d606fc5ae728993783e6c45e1f5e1b9492a32f9df46a01020792a3803af04837a3905e7cc6ae68c512cb58f4facb457476729bac1ac89a7a32dc6857edbd6624ebeffed9d4e84a2f4ded9759962635aac94ca72d039c14af6e932fc84c25de28688acab0f41ae931a0f35b9c4195483d902f95e0d3e745e08f334cf5062da9fbd18fbb9efeb275a50a8a479939aa3e376821a030f0d241a4c4f6e3298a43a7f2166db483946c5ca623087b6252e27b09805d92a834ad914b9555f9c36150bb17d7e85f6b1a10b41a5c36a1fd0fdc354ec91720b245b0abcde6b38fdd33f471aa6ba1dbb4f178c3c6d8140a1f0700e072b0f9aafe1208abc94eea750b84e74ba6781b48c398ddfd2842e5447a11767e4f467864e4447382379010669f07870339ca42ac290063b40eaba1daa63cf6cd70c5a600c018f6933dc8bec000a521344cad7320ba121dd21f4723d38a8d3ab8c1f0f6c5a6995b796af79407ae1a7ce6d78922677d9990dd2a588f8a3323d80e9a69417f5224565afa60b64604e7316229514dcb7282b4e638981a5751d114da1ac9bf31f0e2fff5213f2020f9f2f31a8fd0c614e80c1a056d4b1af3ded2f696578f56427962ca54f4a28a502a0ac59013416abd81515fb1956ccb494c05ef61cab48474b6b1609cc5a3871a5111f8bf0a76b378f0e646687829e30f5762156da66c1b1c7abc0eb84e6ff2b9f5b22d34540ab97d643e8dd2e35f6e9e4fc2c30d8af88b2caab7bd5d4a6cf967e8ef79967c1ae85bf7d410a79f4630f13fdc6507d339909b81a29d84741103371310e5b4e279758431df627553b6826fc4c98e5fb6551315b0bd811b7b0f357198210dd99ccd8fba2904114c3e0b344eba43832b3c507e8b6b586e4ab3dc7a2ec71e150c54a13eca2340328d0b3e419ab2ba862ee93fc239fb46d907628055e105318e7fa52f9a83deb0e3cb02c62b8817702ead02a315f76aa1d08860cc5214a867808e33f8e075241956f148f876f3bc66566773610c9c5935b559c0ac47d84b6bfb112f59842be58df51055cf9180264f53f7795d4c934718bc65f359e34a8d230408854685b59c3a9f4d73a229bb465d4da3165404c6786c767299f57dfa85a83492fb4f61386441c928224cd88a7f4b36f245b7aa2b5c97b545ac4db8afe9a1a87e27b57d94c2bbffdb6e88f812aa27e0908048812086c2a72289d7bf136b3a1042a44d1913d39caec24ffda22814706f080b6cbe00e9cd442ccdcb600a436c0daeacbc5482021ba8a06c1fedbb333793557d5175b9313799ff91dfa620380a9e2a10132f0818bba72072e359726e2bd1f2ec98e0face32e0f88ee2c6f7cef7c2fbceffe8d3ccdff97b7ff71d861ba8b98237ccfb00176ee02206ccc08026cee082a88a8a349a1c9016983ea10789272105032f89b3113fd9b75b35c884622ec884622ee8aee2aaa2aeae86868c868ea68ea6862e0624062ea22aa66ee66ee44ee64ce64ce64ce646464c4808081808080a0a0828282828282822222a8898888888888aaaa2aaaaaaaaaaaaa2000000000000000008";
+static const char * const JUMP_19937_2POWS[64] = {
+ "2",
+ "4",
+ "01",
+ "001",
+ "00001",
+ "000000001",
+ "00000000000000001",
+ "000000000000000000000000000000001",
+ "00000000000000000000000000000000000000000000000000000000000000001",
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001",
+ "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001",
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001",
+ "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001",
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001",
+ "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001",
+ "68c34d2697e14c0f02bdcd7a5d1c302acf452d46785cb057c03d8cbc5b1854a75bede79e731fbba2ee410867f6d7bfd962bcf7cd7cba95a51bbcb80cdeb956faf48c527299c28be727ab92a41b6033e40ce2727f523260d5a0e686e208f7a6f6bba579da2ac16752578a4e71bd272da0b5e51a7996d7c619e9b35450ae0a657416271c3e4648953975cc635b5d2e162df890585bd471b43e8ddd07d4f46e87174b6ea74a48f68899b572d137ce38ee3092e906ff78811355c57032a831924cc96296a30b66d58207e06d6f3f94e38149cd590f32033b5f075c293fed33d9c3f0032bed7fad53f8b2828ccf903cb5efba68280bf020e5f3284a32978b0fe14d3ed8f0f6db0b13a642f2ea7e1a13fbf8db63be112a627c43692bcd4fa330974a8d2ac566558f6f640f14c0860c94a0c8d640681516ab9e3901739bb740d3ecc9d6cc09a091f48b5d870dff50d572a35771432fa5f3631bb70c4f4e70e040b6cdabc343ae07dd42f29c3d44c5bf43b7308cd3c679ea4d01c0c22481797c17532863a84c70f95bfcd748286eee1bd04a2dfd2ca1f70d5d769e0d6b07e52d568a2f6411e86225225bf7def78283b31bd318efdcbcd4a9f613202ead2b498d0e66070131e364a0344d4b55ba1b399951fcc8bd77dd1c0ee4d4a1329ca7d6c61837f8cddb0084082217be461f43d26c145517e487cb950cf5b7e2e0675942aea87373b5de7031e724d7376ee52b74f2bc9998203c43cbc890efcd6c57bed57664f5d6aa4980bf3de9a7d4fe530f24500bb2782bbd456a9551c5f561fc5d943e7e114eae52adc4ea4544c134bb9e60edfc625ad34881939218daec135ca7f9bba75208b0a878eb115d245f72d461fa190c172af54f83ec5998f6f246ed49f4c3c38824c968c14545d9a2577fb1e67559d52e484f7d368aa84239dbe2947781b93df85058cb54342e6db92f0d30e5df2c655c79602bf6251f345609f0f3bcaffd1db991da0efc14c6a606dd07ff484569d3b36b0532a272445105f90f98de29624327e9c7de1b0252d4219cd992ccf718622c34c74abb1c879c38faf730a508701cdf7033f029e4a45300a5e1e116a047b36608ac57c100546a1c34af75924a4ecda1c8b4b6b7285e364e4f76d63f702ed18b14413f237044c06c8ddb3b3ae3ef5fd706e6a7b254bb993425a1e08aac730e563096b1c5433a091fc5452a3ab8f0207687547499765a65eb5fac613263cec6b9369ef515e94fd23d7608914a2e9a65a892ff370b64c3977eec738da793c13dac7c94ee34a79e0f3e89896b3376eeb908ed165c4a47cc2225788b6e2664d17d2425a946d0079c1bb82ee0d861722c0b340bdc162a5c4f880fcdc7f1fe9c40ff199bf2bb1eafb2da31569c1529dfce4a68a034c98b5270a2986c36686b94067716fc992ebfa416b0a32609e4f7b88328db92ddd825be773001c16cc02faf6c3dcdb02505695434ad7c15de8d957bce7cf8e4b86ee7672292367e3fd7fd0a18ced106b8f654d0a3ec12ef1dc6c58e3557affeeca82acc3664abfe9616abf24ca7868de44496b6d6559765e584950373cea963cc63c6dd76786d39541a2edd21898224d2ccac8cb58d03628581a2a0809c6dcf420c8ab95c142eeddb1ae439f76ab7f1a9e992006e95c4612dfa5e80d6c666fa333b16b78030ff24fa5467dd4af9c23377d39e05b2f61da9242a7d6257e2fb066e1273c264cfa2f53c196697882f783914b15fc7af40656b16a0ba5d6a3b3d505d9839df8e6caac4db6bbf10af20a318968ea89da0ce052aed88c4938dda63a1d8f4699d6bf25ef27554251dcc640611f80c5b720db51a73c20223b6278e7f0432b4c166551f80564a63f9ecfc076a2ee44f0ef50f35d047988304ae77235cb9133995f2b4639acf7c21d6e90fa700c37f78c231ec0285e614024eecc2e18c0f9c2b82c4e1475a455caf7adfc1d813d597f60e0e7eefda82ecce3428cf815001fbde03acca8225eb201ec77e25a6bac8c7e402446f3af868ae0ffa7e549d0ff93313597dcb230341317d480833895f127bfe3896c36922f92283da8f4c21428bbad3500a2a45e7a31259c8a7f87b532b8f6cd04349a1b937a9099f3b9c7cf12e25c576deed260b7cadacc90cb7647ddb4f24132e10b61abe0a4679834fb359671d106e2727ab3759bd8b472837df95a5ec737384532be61089077a8bfa3ade810ec4e21e52148a067a9521be744c3fb5975781775626fa8ee40571cd404213d403fe53425af15dcf3a44cce93cad2183bbff35c64f8e2d902ef21231231e17e23d9bc9c53130e57a3625a13ae3786704d3a0be4de9b5131b3cf8557578be1f484f1af3cc7b75a7240708024e43935686e561ad6eca14c18a24fe73213fc18828ae3f0251bfbc6c331bae4686b74a45c7d0e1e7f6ae19845f68618fa34386a6c62b6fc35c668bc18cd3b15a8892c2be22d7ed032219a94be97b55a83cb9bca3b099a482f803bb3696e6a948707170e26a37dd8c88a3f16ae412ef5f5893f546e3bb0b88390f94badb18e493cfbf7cc08a85120c1142142b40de583f378ce63324a31181de748550e5e072d5faad58caab8b69429023387b226d8abd6847c06fb0daddbe903e2d63d737b11636574097d19a254e881ad2c31f1e3bb33bac3039bbcf36037fbfab56a2c23b6362693bcc672765ebee8214235193e85d655bb223b37f0b82615f112c60d4adfbff77ff7489aa1001b58d17ea197281dbec7727a59bcc31e26f731d77901856e7f1097c0b4fe0c9e73e6aa7af4ee2bd9289ebb503f124154ad60f4edb9374abd867d9e96d48a3875653e058b2c3bf6ea951d35524624cd4edd4ca7fbeaeeb8cb4bef3890945893194a54878899957f30150b66d7e7c96fcf62c3e2d6e563ef7b3b9fa811cac0f1eb914982b27cd846deca58a5342ac400b2d055797b83bda034143ccfb8567a9a170b76a3310449a8b15002209077206c5e9ab59db41c96b5d7321c8a2609f8654426ba024ec9fc779fa81cb153a8ddb35ac8875c41738cefa9d9f5a0a764f17fdc8924e22e9d6e458e05dddbc9b44aa4eac40f838ca7b6e9471471fc564fca96927e28acdf18dadb3c610c469bbb33af6425996354f170b1af8b20143d6c3a4222907eb67f531c32f76b7a2f8b028052dcba1867c0f4b56243059669757e710810cebf990c928bf8d79d94050daeb15f19a332e30df8d435596e4ba856e3ac0f4148820d205b02cd98fbea77bd39de7d572bcd71fb4560054878504eaa5bec78022d5f05b02f53cfcf95c62530aa2f511c0717f2d809c392ad17a48f9d4f5b398bf8aefc6fb1d137747a27c05334e435cb75c2f91536bd1098fee97f4013df94c635867210a725d93badf1d690ecb31851ae6f3fba87e6653f37d6c96d998a94bc25e63cf1de64f39e02b0d1922e66d7f045f4057f6e0022ac78d46dfda0dc00908dd63bf69e02963302a09964836ef2f44ed5fa9f89c1df9c4c1d9cbb77d79b718d90b6982087982c52fd03b7dbabd76c0ed07ae86423e89c573e60680e3a0bd49f8b4c4b16754008cd6",
+ "f1661d3416921f15785f292a25629a1532179e7e6874c8349e96302146a323e793f6e37382397ed336c0978aeba2f8f8777aa87a5742429c30166f23fadb0e70e6463a9787b0a32ec977a4c099dcab743805e24e037df41878c464627aebb6eeee7dca11fa813423e3f4a360e332f61f6a77a33321cb3f162fbaf3951d17946ff57e755526470434b12d5ada9c9234661c34a64c7f2bf6574fad1b0768576f1a0bd3834bf0f4538a9d4d843e2227ee4df24be646c49d22fb01bb7cc526ae4ffe282041783d654aa0a90546309418f8c76b8fac6e13e0b2069636e1cdfe058c3b1f0511585b0bfc99979c463d55890b02c8aedec85421fcc7c27a9b6e2581d8e7577e4850a4bbcffdec7a9de5d03d197fc50bf7cb75e5f33dc5fb119ecb4da0d0602c59cde441b8a357a65a867264c788043880176e5bf21d1258f77e69a44b2bfd381e9a8f307e433ca38811721825673cf472ddd7cab3f5fe398fabc62f7e8b92c3f1e98ea2a5ad7819603e64cc19b6b6c9b3c7f418e309e9e1e65b72a93df716f99ea50e7f860d0dc7147eee9fcd009fd7566cbfc34263e4adce9a47188cd156abbac0e3ecb78c47707c3db4aa18d8b7f0e25ee711843a6f70a5bb035cbee08fa521bc442e1370d2e34b92d440fb73d64fcd551848b940ce7ca83cb36e3bb1cfed024febd483711bf004ace75d5fdb936db242319cb71383de789a1cd25dfc940e29a62cbe59a47e22cd91c784c9b7ab2f8d0561fbd01ba59dd3206bb409ba927d132fec35a6b923e1c0a00eac121ff3e91ba873cf2f7fb2ffd0a6d2fe3aa3ba6aba7ce8ecadb921ec086a40664949c3849f6fa61c78236b9e0135b5f3e521a996d81cee783b26af79a0685fc32264c74fd84ced2ca0ce22e0b9d0f75b8faef01912dacb64cf700154a4294f31540eb7d7496ff090c534aca2b6f4d7fe46d374f00be40fc2bb0f1517c7e1ccd806b86c6f51282f55bdaf792072f87123da0be0e5d5a5030025ed4f067004600fe87b758b37abec304bcc907bfb64ecc8f9368e5a88ad600e767cfcec9ee826fade86ee66fa67bb957b945c215360a963809d5b981d1b61fcd1159bd2c4c0604876843e592a68b9de3eecc42ddafd9fe78caf608981c16f9ed032afa781e63eb2d09bff739d88e07ebc60753a0ebe4ad143488f1649d1216ca0de440bed1caf16b57d5f00e44341631248db8e48377378e724cbde655a029be54f4ee9c4818f6fecb5a48cce6865f39c2fc60aecd83fed5ed35c32cc4dd43c15151365c9db935d50bc317ea110051c478aa4dff67dd96ff646a2619653aaec223a2820edec40e8a26d61771c0c5d5fa139f357608b27583e20c300b4417f9048736ad6e172bb5f849b1dc936e38bfc3650c99c917c9837def6384d1cff631723b2fc5765eec4fd0545b51ce6f14670e487600b2fedd3fd4eb1166870c22f64dcbaba7bdcc5779998391cb9c8ddd352ccd468f7da3c486d45a836618ec930c33a9af24c4b09729eb5e6425d6e7c6610590453958d5768a92788fd15ddecd028f225022726eb78381e2bffb4d891898309cb723e7cabdc49319fc572b66303e6453358bed8ab40adb5328d7d304449ec3faaba1fc69669825e292703cc80569344889638de326ce6da3e260be9d85ea69aa667fa9ea3551d32604d794d62cff4300e6dde2ed4d14e7eabc7b6e981277dfafb8991c35cadd3f6aa933abfe57269c9cbe5cb98f53b3563c1e3e6ed6f262085445e520902e5e0e7bd8cbbb6e9d27ec4cf7709a23f429ecd875e5aa99be384ebaefa70bef227237cadd3abd58f83d13774128a9782f2bf30e0769983394a977ee98a311757dbf80c20bea4fe0e2740cd96c5d6574107ce4bafb8aa31fe9048d0d9ad925f1ccdfeabf601d314208b89aeca5e830f73c4a7fc60fa3b71449946026995cc8c260ab59005191a375e55229e6110fa1fb112847ffa11c2da6392e92a13831e6d3590acf5825d8894e4a98c946ab56ac533cadf8bc3e6e2ea1dcfc1c64b1d386418407ae997c5deb9f0205112178bb773a61a9e5596b79c8ab7c314b24491d1f3a4812b384d90671729a59afb378e3285f929a7990824cc1f55255331cd4aec3e88e581afec9e7773c7e4b55c1b625396b51efcf0c27fd9845cde58ff2ff1b5602923f6911a3face7da3fc2c91cfc43d881e4c95b5d243acefedeb8f489fd42f0432d8854ae7d3bda931c3b538019ab1557fbb9e0f54d585c09c1e8c32a8cd6639babd5d181b429785fb491653aab50c29b16234a1f24c39586873d99bd04a83a2b301b79ea9955129ddef8d2f180147929521248b4f9923d36e671ba1e48b75a1571b8ee192b6c98bd547b28f4539780ec876297f41c4682877d48810e0bb2221d5024ef34bc3651085582c24bf70d9d4141bebc86bf93b9ef7c2b5c27333c49c1d2560c9a22aae264da3f01d04607e8f5b5612f2e7498c6a38b08225c5e268d6b89d5717891fdfa2e9dd1ad35e8b5e25480381e133634da42447ffb8a5fbe34e63f66af17ea85cff657bff992d48702291a71adc20a3d0333d126146e6936f01e156f24223d60dfd28a43cd20edc269c7b725f73968077e4f66c41ab6ee8f78fe6bd55e9d02a26eed79181b19e7ee65808254138f6f98c83ba5916bc4b6fdc684fd28109b8102af470d07a02e197f77deac13a8c529398396fe7e08cd6e74c8d8568517faa549a1b83b2071e260c21586417fb7672a84067037a613e443cd23f5394cc3f76fe9cecd5e4f9ac0315c5b3d199daa15a0f0fcd3f376821d2546f59988d7be0c0ec491175d3c0f408de1dbbf92388301790b2c3186c530469d046320e9fed4d4d7a4124df80cfd3f17e07778fe1f1a58d162e523578bb9b406b261dc3fc452bd3512f5a4e73c4bbbd04913fb85f42213b589a8437934f0fd5172dad9231b82b32f520abbf46eb40f4c6232b05cd75bbfa9d5e6e0ad4ccca534c7aadf8603aa8a1737188c2ab694c00d4f0e6677645ffaf9951065c113e10df5a9821958189821b65e1b206f486b4416478a498b419a6cdfb75340ec5bd32130e0634f60aba135aa3d9a074f323a04e9903df20fefdefe8aecc1eb5912a62bbf3719d5df3084429f3cfe6886dce697d5832da147bb3d385fb24920519130bef949f5eecfcf1981cef5a52b0762b5e7a7fcb851650d8754b38551d021b94dc81e1dad1a9955bb820a8eb70d1ee56461571294dc0706607e3e1095b28d5147ac4728cc416efaf57f8d5ad23a467efa09a11b1e1d81273ae6755c97d4641327a513e914b3bba862e68ea98536f3580fbc3e22d872694aae20bf30dd441d470ff6e3ae3b93ec8bbb32dfe367e8311a91f7c80db35e88e5f76da335529100284c40209f80d16366fa09e1a53ff27e5ec94e12a658f8e6bf2fd9e219e8fef32b90d18f2497f27a42a096ed7af624a07431e022711c61dae5d0520f1771f377a5b57d14dc72b36cf0d4a2d609d16a48c4ca0fb1c7ba9585551763819120a3536dcd481f879b169e60c2a8127d76c3cd9ff2347ac9ab713e858bb2ae711329659f2263db94b1",
+ "6daf30c4188755e18fc691c5fe88c3cafa3e2d1cd08b6755b0027c78fbe0a3f7386ec39dc8f1738b2659f9f71bd4910c0d390738b803f3326665a5e321a26fea67b4ae111eb73f6ae121a9ff67a68e9044895a4ddf3c095566d044ab6938b43277e24f0657fcb516486abca7755908693e0f43bb6310f30e4552293f1705aed6f9832d9d3cfc733a69f1b23b7faef55ad45dd097357a0713e1f87f9e4290d26603832ec21fb1128a484e1ef5ff8b2acaee5ad4ca6dfbb8442390f36434a4abb715a79b50935fb034dc0b88e54b43f3d4d2f1e4e1f4537d9fbe85be03d5dbdc1a2cf4a5cc56708fadef8ec1d2aad39c522d0a4732c45a4f8c60cb0b3cfd96f8c9380c4820d7511a113a03a9aed78e394757b17634d8e97346f525c40d5210742e2a3497c831011590e0623c5b36bb03ac08796fb60721c548d48ebd4bd021ada216c32e87f1cb739152f88a0da4e07c3747d1dc38021268ac57ee63551cf41ad9c7ca336a56a475996a86b160d15ea798479f7fece46745cf5b63270218ad23bb8ef761e101b54777a5588d429b6ed1bcef1a909572659d3207979b3cc1c8d3f5f90ab39dca7f28721a4f039f6e760f1609f17a42101d8db92add1d9087b13774cce2534674b435407877f91d8871429ebc9b33362efac0fbfa15d444c4a92a8487834d76d5a84e31f98fefb11974c110ee72c8375164501aefc7414d3f34bcf3e668483ff53246c05a50c1973aa27d879fc62b1819e8655ce4ce7f514fcbe2278b877ad95a1508a492390da50157afe1ea8144b6c8fa78afa96b37697ef91f8638f85f171a915b8edb658744089ed88dcc0255db9d57173e92711422bf0d21534cc520c9e5a9edb67524d10432463a8f1e0f89b8bbdf96dfbe911ce7bbdc6178e98a9f123c35c32568521d0a191363c3f890ccf6a784f8197056704c942828a5d7df0325e2375a9bff0e819d205373eec38cf660258eb2da6ac115f344a308030a77f6342ab86234731df8608fba07914c30ec809d1bcf17a23ac8a0491aa2b0299bcdacf0ebc7d716bd8f702f01dd6b4e63e2f9c948fd5f73f6f06b6a540c85e5ce12dab3c1a061eed86e2615a25c2b3b6b225593ab4efce9e087b4805c5a39d5c534e4d63fdf13b98ac5d836838d7335e2d92d391f8291dda2438ff2c9449aa7932aefb317ac14b66bea0de4bf37068bb80da00bf22e369f36cad110f19e8633080c79046593495c8bf690c63b57588a3ab991c34a9955396888defc1a3c105121a9c1648dfe3268aa04eb34b5d767234551e2b06ff3071cb7a0e3d2cd040e8829e4df068519569f90763b75c8a6f8fe3013d759c005f60d89603c556b6fbe974d54c692ed0aa0aa2289a131d77d0a8a57d68213b63d3c87bb8029d9531a05d1c446a986f2fcb04a9c86a8eb28a12d00fb9396174dc2a72cf1e2d193c4b824aa1f711f887895d34ca94614563c6a82c2b48bec2a7b94893003c245e324de3d1aff181e69396c076c6179d7e13d0c45d307acb86c865b6cb6bb7f2ffceb7a544ebc55d7a0ac7b771296c70990cc814234e788528688101b2bc3787d92d81248dae513199b0e1e7b4201204fc5e84d57573ab38666e5d41cd2bfb5c1b9ed722ed0e36e724129e13a46a082e44ca392c43585a708a91891922c0fb53e7a107dcf3426125f54affe3c1fb81c3319dd912b5631d9687b09cd52e1757625110c1ad77e98b9b27e7600fa6d51f6c05f451de423d15a4407935ef68c81783f69b983060b40ced3b85d56a46d36ed6215b454a478789e7f1952c55582ad132365698cccfaccfbfcbf5048a3c356b6c23f89871487b40fc51cb9640e4d0ea6db8b6c0edeefdeb99a319063d68eb2a234d623190ce7268a46dcea20f7119ebafe6c6f8c09b77ffda3c4342d7f45eb25d374e63d2a2616d4ca44a82371af95e3e7f3f866779c6aae8fdc5b7e786dd4b439a9ad10211c2f0978e8864bbc1e756f48f67d66e6a50748604e10b540e7f098d46bfbd8632c41da18aaf670ccd3256ede1d928a207c221d5459769538da6f5a7834b0f3a1e90a19b67f7e9a0d5ad88c3f0989b51e697b469cb08643bd83dca074a7a281ce9929b4fb1bc166f659b50888c552ceecae83858f1b6e072f760aeb3f0522215b4f406d4f2f60a06441a2631bae5d9b90b38b418be4ddfbdc2b443b29a985e5ba22509218c9e35b47e3112a620ed1a1111d655a33081b87368f6c18486c092de6463ac780f0aaece52433b86b8145843297d3f90bd8d520b6fa2cbddc8979678a382ab7259aa2cf89b3f8c18500a4497a51f868dde3b98a55e9109d45756b5db52c4ec75c6a0d3cf178c184cb872af5d8499b367f57773986bc3afe419c1d117fa34053bd3a5295f3ecabac3dff716e099625df955acb8f9b1e20bde9a63858f9ba86aa451421b6f997e9b76d493ec3bab9070424f0ca9b719ff25239bae7431341c3ea5ae040ea6bdfc5011cb864194922c9c84bb2535b1ac7edacd69a297d3da51bbfdf358eb7f60adfb8d9d639db61880ef94978f3ef4bf7e623465d501b2ae632dabd374c417990bf0c9bde0d88bf0b62fa48c5364a78f08212aa23488c073b4b8d75aec535c537bedd57cb3bdf10c91aa4634aa5826f8c993a8e0452da024adb6bf8e960054c545b8992feb75a2870efe461271606212e360bd1b5bd4e636b0fd09f13bed23bb14717121fd2176b53a4b52c21e66993032c93cde63bf5a49a6ee5b1950db2d20ba3dae6d1ff4181458fad40b265e1eb510ab96438fc99901330a889d6d3491e97fd81b905edb3cde7ef7e029a4a228d39af03407d3b41b4d6924e3c1bde88d7a7e26ce3275bb3a28ff568a926ebd54f949402d1d2ee12390dbcbc7b51f250fc14ece67bbdf97bfa2170ec332ac533cff23676805bef5fcf0c0c0477ce65cd8a256cf769251dd0af22f850fe97586e678f9c492dc496395b1f2a220224c60e535543c0f44b1ecc8d26dea90921a24393bd088c70c6ffd3500671d88b5d124ba7e8a4bd94db9abfe596f39d91b0f16767bb11e41ea088d18f1b1e23849863e08d5dd523e5a4a8174adaf361329b5b956e075b99c853a4cebef3e785de8143f44d97647f179b26be583e66d363be5f5093a754d9a8ed623f6c4dd2fecb2ee299e8895fbcf0ed0e96725543e53d53ad5e42604303fe207e40e8694731fc1f4a43c3d3a0b9db29a1c2b5652597a4b5b4e6d606328492417461d9c035eab7444cf111b790ac7d8f45dbd5c9f23266d3b528e5988c1bbcb3e3bc25cdc33ca3abdca8c509845b2635e52ac5d42a117d8cf7be58cdb984d4ea4e2567b649099de4e576c4ed0412cb44563ae0d8d7e8ab47ebff8de16c929a94e532e5b37dc6e4babcf1f116486b3770a89f57406a1e8b12a59ef73a18c946e59fc97f717f3f99f85f441f0ff5222046bdd68e66e38a1c6ea88e617b1b10506d71cd9c144c3137338d72784bb710444099d4acd1978f037b34eb8995afe07a41ff385aea6b1866b26f0a5f137cb4eeacb520db6d54c5a016d2fc71939f90aa454b3a06038279e8ec5ce861aa2f51",
+ "5c3f84174d130ff3ede11ac6de40d6f5dba84ebf6f6f3183d9f2898de5ef625d226c6d9b036d012ff91c49c0407f05385e059db20c3862bb1822f6a956a850ad571744142510efb7f64c9bc049eab88e1ccf6436c9527233aa612d251f746baced11afe51904e4f82d0ac970e881182f96722d5ad242021a9b4319f17a658a32759787fe404fc65fa804f70f28a31545d9ef5d4b5f45d35190717d6dd6e6e0c6b44640a9c7c6e04bece7176689a9bc71a8c2d03b4fddd3c30c3a2a3ad7883964c1dfbb15c441c85c22a3f2917990c85da9b8395329ba8a3d2c791dc4fb64038bc81fbf0a7dd5158aba74c0f03a739b964113c6d45b0786ebec4a7575c9de62240a127b090f4453655aef2bc4fad35aacf2c90ce305350c976d7ab2965635e9849058b538b365ad8ed8e63dc3ec308b2b971b64cdae52e0eca6a485c885d5877f3c92e78c0708ebe96417e7404d56f496b03857ab1ec0f8635acb02a535ea278eb09db4c31d4ff56bef870ea451709fdf64d7a7f84e3315e6545b1a804dcc226b8bbcca7edde60d528b0c73469aef583a4151a9de59c6767d87822b3fc375dc2146c907b208cfd5f8aa9ca8f7c3cbaf6091fdafea9658986bf001d010244f8dd5883e9e4947d0a269fd9c0f5a5596a94e988f1e528d469001a2b5201171b3fa1d1d677a01dea0b4b1e76dfdfed2cfd3ed8085a0869959b09c73d42cea9b0d3a3ec9c2c4763b8bfe3b6f99e3be8330c432dbb71a1749d569bf02836ef217b45d669d63646b6b0ad9398716f1d666e5aeace3b09cc4f3b2abe4249515c3805f5d5134bd24f6484db839456cc95aecdd80ba00fe560bbaa23bbd8b7902858e85a61e1596b5f5b509429555b2066d88983fde974b3870d5b64b8c6785edb0df19c83e4b05e4955c0bb3e0bb3ffe49781ed36203a7e7309b9b95588554789b8ec0f734ff04c7a850f698d122911769e1d3807527367c1eeade15f3f85a75e6e9ff73747bb1084564e9b715c434998fa323cba62ab5ac932283f72d36d78a1ffc3896d3cdcf4ebbc4a631d49a99bfc7dbbdcb9662718f9f6df48da94158543f08cdb242cf5d1763a38f1500b9b355656062317d4ce5d80203399e12a7597856664f0b855c6909fc96ecc5b95f3b8b2f9d46e113a13bd48ceee0bd2afd48ae4992127343ba449054868da49d646ab26368161f71b83d00a57ffc5d37236ae3c57a81d831a3f6f8306c3a3cf341c274a6ed8c18601247f66e49b6d368e277db51f15003062d8bca83f17b0027ddda096bd29aa1511de401f7fc9db5dff5a4fe8bc8e14c41bdc246a69444a33cb25a5d73e4e095cc65d254f40b0c995fd1bc2ee4de79b0c72a95ec953b010c77ba8182e18471aa281d92d1242104281ae2717cbc52c6d67a3855c9d6e310b0b2cf784a3518727729f17a6bad083e7c530a2b68fe20dd5fffa1614960acb7e91156b3849494a0be593bbec27517989082827cf11ecfcc51714ba98a9c6a11aefecb962b37d61ce8ad9158513dc3c970dc8c0df80f09d9a8c731692e11a045672e8c32362085019f15d6cb97348413d2d5cb6f4dd45d89c6161b91271d5da0331235a06e941e300fd065cd39041de82afe8ca42b3c1ec552606dea0cccef0d8c265159a3f6d779b8e9b383018a1e9fa6bfc3685f5ec5266dc2c6ab31470f4bfe272ba1105846038d93ec72365816b7b6d5cb30883c2c7e3b021d095f88aa66a22c476802c9bb13e1ac1d73d1e85dd6fc53d77c818832de881c5380117ef49b03f91af5620f0340f29ec89cac649c652cfe1a3f9c3e0b36f8568cb291194fd2a8437fd176ba1908fdf65986ac297fef9cc8fd0e82da4c2237ede2305ae8b9938abd2b3d4068a5c9d7cf3e1f7900f243a500354ad1da72935b2a329709f4f9de89dd7dc97a8545a1dccfb02a7cda01f2c1952e5bf2c4dc75304e7d7247eafbe6ef1cc0a2e31182c303444a88667977c33e8cb1c0e3777cd70a5ffaf457015ccf987bdc3f177585eec207b88a16350645aff4e9585c3e5b827cdec920f5f62e39c7b428af084920e68a2f956bcf614ac8319fcc8b12452fc9efc0e80ddbeb3de735da61f28983fbf8ded062dfc7ebdc6c30bb2198cf70349fb01e9a56e911122832ee9280d86c26042354edce7a9da6bd0c694f5e5984c81d56c16339b40719265a44a54ca5341b7c29dfaf21be209525aa95a184e400dd94c379516f2053bc700307d11fb87be2736c947d1b93dad1e036d87327b3acface12762ceab7a286965f296ff4fcbb8a55fa2bb7e4220453a40069fc5e76fe2a51665779abd6208e941ec32b784e68055533c78753b91a1f97847a85bbb2d5e1909aa0a9c960ca4bc1e9cbeb8831942b93935d64d621da3b29d693c6fcf556ef00c72b32b8dc1847d1d8821e20aec98549270eaf2422ce12cfefb59b46d8ac11e6a14c31c4338ac974aa006b32a9934ba00757f9915b8894e4c41917c60baac80303dc3ba46764d6366862bbdb039d04f04352642f9a88ed3636a671f97818729c469ca4041f0f74b4419293dd4f2cb3aefcfb8385a380b86dade678ddb48976a603f7a1172c4efe91c6b996609262131a54075124adb15fbf01056148e7281995321fd3d841e40e0d0cb2192410a264cd7cdb68a43cc6300415344fc4dc07e42e97280169d39f33fded8148cc53b1af573445ea177b0863c0d8257aa453cd37e8946baa1db6f3a45f06938b2408cf67fad6c92e97bb795c4c41d13b682504a2d505712d0297b66528bf27c26b584905eae0e0b8c3c66d4a390357ee64ee765b11d246147e7d5df483c3f193c9ea462a0660f49d0a3b5e09063650404fa4b9078c8aa2eac5023fb01235600e8b6c4c5f283f0516c2fe68a602f11a2a94be3fb6e9299a586c88a369b7eed797a209a232854d2da308cec7702e49c709bdf380fac80242d339cba6f6a8dab15588dea47660b1f4c95e65f1355581048b76a20dccef2101da6d57c5bbff83fbb78e97a57bb566e6aef3ddff52c93166759b2a02c1df244a31458b341447036a8b06bd31f5a1706014905c766a0987d89c1db2170756989d7528f43515b41aef7b71a7996c2e6162c07d1e7b318b100c08dcd60b63055089278b93be45eae452606dae66647a738463b5723019ee73fff434ddf0c01e4ad85089602849159b723761c0ea030a661337d138cd25c7414836394d3eec82ccad0d4f7a7f2b373c179098220f285035d6b94fe8cd2c9275a927411ade8c29b16e9fe5b7afd0aa3b4863fd463637e1aee95288548622b5f43f4ddfd80f784aa8247095cf587887edff6861b978218093850b5529a187c5e649a5762c7219711255959accd99fe430c658441e8ca88792fa8c76824d52348c7616fc0e26f562c580a0616705d296a08c4facce46f6400f5946f67f8a9a111d8303ff74f025209d1b003e3778f6bbddf1c59926304022ddb8074b80bb3e889aaffd25c9a63e1155b4e8bea3e58d854cf759653afcf5eac67130fdb6df7306957f968aaad15e72b47b9bb378b917732dc45e9af51fd164176cca654c82038c6301d49ae2",
+ "0ead7120f16192474447fc3e5635023c4de2a07c463126ea9bebb3e9a02c0b7f9bbaa3b0f16d860bc83ba1c2f55eebefd61fe521bbaefdf7d91aec4148e1c463dd7a7607df7bc04fe8bfa26366f754facbb61eebc1666bf87a4ace1127e7d04bea1fe8428b9464f62cf203ff3826bac32e659d2fd62b6d26826e7dcc312c2d31f353193e08506c2862b7f734abe1516921b7f90685c63a33d885aa0e54398f4ee999775fadf81d0e3fa103d92aea02cbc76dbf804d4af24bdab38f4a005287bce4c16d1d619eac93bbe90a9e70e9aec198abba701231c37487336bafeb77214233a4d4a36a083ac510c341a0d97023a20116d1b4ccab53714e8147b9c8ec97616f8ca49cb5c89cdb847173a5dc25cf00da00a39bcf5098b29a9c2dc9792f45ea29f105d7a5d6906a1ee15fb615af44fea8745204c8d71a77274c4240b58d76d2515f71ac16c2de3804f1a705fdd06a763223b1ef6b612df103b432075d27b106ea5e8a2df5c02e84871b502554cad5fe490fcd9f6a0dbd129537c91dd03ff421c62088568387b67257d7cace7aac4f00cf525f03893f2c24c387c7233cafd9f31977a85da31441505f61908f1f1a962095f83d9bbedbaf1c86e9ac6a94011914ca9304b80c61eef2303ab8b1647db3ef109204fdbf47ab1d5759668c9352e121d4ebba0f6520a5be28345517ffd4b14cf3aa93accc271729a18b708a0528d41a69424a6f6261367866381f8b3790b929241323bf2209146a7a53ecc7ceb60d200d3e39336614f040fc5e3dfd01b9755fc0b1749c9bc98be236cfb69c4bb0ef609749e81f1a1443e9e9541afc338c005b8e7da45fe8cf0a82fff1edb0f3cf742001d35af3c0de017e85aa910aae886e1f41c79ffd788ac4b1b050f85bd7641a4e14549a17cff8262b50f7d640ac1d46eac6ec83cde6d67560a81381dc053353b8130d8344a19a3fc534ab555ee817dcca82731dcc4b35b3965e4c05cea14b79890b13e51f7d67e615c04dc08cf2edb16331043fbb21254e9f08303d85aad45ee6b5b4a9a0fa0beccf15168cb21897ff81be419a2fec66f38511a86b6ea35256fc95a88690794a486dd0eb0fbaa0802babbc6232bd29aaa3d23645502bc78402b4cb09d7177ccd53e33859ab04817608534353578726b432fbdb9edcc9859e270957892e8fdcc9c7f5ed4e071d288c843921a17bb8a9902fc5ed3441f9444311c4925b87fc8ae1700dc3376007bf69525fd3fdfa3da6f2b02fe53a670c2be076813fcce12b869eacc19898dac8b55ad30b2c3b745a873aaa114efa51b20363140a745e94e1c247a47e88112d1b06e6da098836c2c2388c1501d2d6c785993b07bc5f2a526811d1b5e68f3a9a0ae6ee74d0ed895cea931a94fad8c6449d8b953930d692fb391dfc3e043e2b7fb4f9030d019b34a4c9e600becd234838bce69ca096875787e18bdbc4fed78d4883ecd372640cb2c79b0405479d4f52cb6ccfaf26eee41e9344695f42204a224264cd94b39b55fa5c403cad1ec60b75e4ee6e5cd8af32f16f9b1ff7de654f2f259d7a7993cbcee21cd488a3e699504d4769c3b13c702326a228bad14090c7b93345b8bdff549e295488afff805329a0ee7bd72a961f6f292dd8b39b42e28846c1da2a30b7dfc143b8408825b1206cc78e69583b1e0aa367f86ad4734ae0fec7494f951c0e97dd92046ec219f0b71383573642f1dfae4342a0c1b82d188d7b774e2e0701ac1d463df2b812f37f4932fba612ddd360286da7b69aaebf90bdbc6e481a77df02dbd26a6dcd86621cbc217391bd962234d8aa8b082e7fd26716b8d565285c717d3e173bf8a7eb06e512769166c80f4178a93833038d8410fba6b6a6db53ced225905bf947efcef7ab9e817d5bf918d47af0bc4bf19cc67b7053326ba9c4d13aad9fdd6fd1a76c804951d86cd1c655c716ea18ab33ea0ede14a3b8a2fcb35697a5c9394c63e8721df859f863bbbd757d1501d2c7aeb5310c18a0e9eba27881b81284aa433d65d092b6503428b2b01319768da513d83b853e18a39f478d2c779af1f920d92910772d99d25633a9219d05f1514ae22d7261253b79becec7b4ffe6b16e8fe62fa8c1d37bb9ed1b405639b7ec034cfe23122b3bfabfc47dc5186632e5fd8ae2c893cd9d24bfbe913b8b6184dcd19815db8770aeb3693fe0733460ed60405e7dfaf5a120edfa1a8085bb622d84641a0f4f9188c4a7d1fd7a62533b4e36c1800fc3d3d904f51c15342c328033a3a0cc285e36fe48c1aee15e86cfb8b8886d180c006433f05300a81315648397f300b4bc603578d43047a41ce8d33e80cf93f9ed1e1507486de689a7dcc6acb51d533d6562e1b3c9c154122c8014db886d9ad0d35154fbf71f4fd909f96514f68295d98de983ab9a0f730a60d8c308dfeaa3c8750973399df4807c1ba22106f849282c5ca1a8707f26ab33fb13683d98c2f4c63ea2b25c1b2153398db488abc033cb7a0bd01052f55445e9fef7a64c88f1d41198f7ed9fc35597b807a28011fe6a095e7c8789496ab7522223a95fa472d919215771d69de88ba4e3851f935b47b605ee9b439ab16cf7e40d0c76bef0dd015112e9e1f78d8b312ddb3cdc6b57b2a0498918b696c3b957aa48bb3f725125420ddc3b59b866b97f4c4aa8b0a4ec1760876410636bfdf48ea8b37fad32e51149b7dd9f40469e2bd2a1e065d3a754a0da5b755b81ba9dee6a057e3d197b49d88b8f7ee797a8f51dd3525a7e2e07267b9e15f6b378d1e542828ca17e351e9b4d6b64328f070a6fbc50c9abc2aa04bce54d10ab67474e0cdea6087b7858e61851e6a47139b4cd25243bd06801431e9e346dd97e070a62fce91c5d884f2184ddd35bf0746bc83ed9d0537dabea9ebc1c73fd388c1fb52bedf05cc0ea6c7e46ed91ebe8db6906e7c34397b3ff99978e62eb926f4bb33004e87a829f17b8fe270b20dcc428943006b18f9b3ef04b66ea4230e212dcf6f1490cf840bcf5ab116ef2162dba68f4d357c94219bca417e2c13a751284e8d632e2abdb010ef6de21ccf99010baa1706e86f6c0eb251ee60fc4cc4d97bbf9fb73c9059ec7361202bc066ac8f03444cd0abd9927cc3bab69f0cb031119349e2d03e6c420b00ec7656a8ff1219c503f41718d14c489f187c86727bbd32e69695c8c858616aa9a0e27395f98581f392a2355f3edd517873b11d388dbdf4b5d1f241a67643102e149178a65ac371efe4fafc44676a6805ccfd0375af25b8efbf7dc4f4c714fa83c9ac2de4f6bf18a94113873ed41e4da167f847b25d094985053c81b9065a09b47b73ab07428af465fb6fac567aaa5e4d0f44acae14a0c40858b055c05a583f1c7665404bc9d4541b6bc7298e3037da0da5a8e2b48728cb92238f2162b7c8caa0dcfc10723c128c739cd7935c2740d7044fcb2b06b8156a556f09217cadbf6c836ed46cddb800732cfd040d37f11bb896fd604f9e6eab268727b8fccafd27324b2c04016e86978be03c946bdf5e71050f5bb1b256483ee51289014a9906500a9068492c3d1539289be0967ee7a3493b72d199ec7",
+ "5e78ff2f4d7d9be11fff96e0d8c3b6d38bbf6ba63f979e46e2600ef08bc60000dac2c162ec5795d166a1811a8a12481d98a1a820698d1f8cae8b252d11fbc1fe1304f81f6a1956e191742f95b93d6236532fce2b187cd351e2f94eb251ac1df7cdf34f7411d8c478675fcd4bfd5e21a2cd9160b54c28e252786748b8f2a1287ca4392e69af00b192adb117b6ea060608f5c2d854912bd09de9345aec44c6a54baa5800b7e8e7d7b4f28bd4f21ea38171f1d4cc72436da7271836b19e36c21ec3d31ef95de7b0fe2c590c89bf6457e47fb008acd7e2ad0dcf410a90c45f961ac6c5b327f30e8a9fddf17e604e08fb2e6cba228fb768c82efa28bee91cdadb0b611ca0e8130d75b752c4cdad45304688ab95e9c0c76d696287b65c8d0231dc219e5433c7c2cadf351d0ab61aeecd3c6f09ba053473643e5f473940004806aafa323b991a406744928c387e7492879ff7cd15b89a896d2c755e2b62f93c248ba42f874a60ee03d9b29c8cb71ccad851df04f37439fa19a95b9cdd917db98268fff9d0ebedd2da10896921caf8720e2f85ce5ae62da20259821d677cbc52d8e645fc46ab121c7e9e19bb9294469f9e3c55ac4054a058c16b3ecb0e969124226fc759f41cfb06a8b5988f44e528ff20bd91e953fe25b63f00e70779dc12dc417b16eb90b9f96ef6738eccbf2fb5610128acbdbe9ade1d57e5410ee1efd29c58bfcade782bf8fd4616d872e1381ad6961cba4f9a3abb9a1fce2cb9225b2dbb89454124b8a54b813c2d024eedc128d1d9a57f37633d034aecdd47e651422ed500896ada8519e3cd15dd17cc1b4633e08fed0789640e55c92a6c635c1a75cf447107f900af6cdaf6f6606a2bd039c3aa615cc90f77dc6703073a6fd9b22a4ccc83b5a54335a0b1585984d48b6d741d79cdc6dac37459a8812dffea64e90769c5aeb5764e4a6352c753b7ad45ebb16581df17bd59fef0b914b1819f45c1dd5e32f7f37113d89cb84daa2c7c867e11cdc851d719e1522babce671fc96cf1bfe3d10233d3d0696c8f2adcc7e077eaef79de21948eec315deda92d9e98e023498f5868f380412fbd3dbb869cc94ef170e184f70fa385c7de5d2fa1dbfe3d51bd2bf981a58741dd670a9804255dec6aa9dabdb0a1a95bf4072d2411c8f8813b52d1546b546bcff0295cc10883bc7375994bbdd5aebbdc7b23512716ada99eb5952dc819029720ddf6bb1d04d00ec9c6025ceb415de2da9fd47401924be83f10bf3d4f6c6586591260f481d6292cda0310fe2d099683478eebb3622339966bd34d61400bb21f28e9da939b454445c677754ff097d75a5e81d0d2b6f6065777cae91f0fbbb1e030a7eb14733b973d6c48102795acffca0525356c01c5496e40933139d9ba5dc9cb30d8df08ba087edac588da5f0e4f4a23678cdaabca10ff7d00b153642bd81211bd97ceafe42772c6ec76e622750d0d194a68980542dd1d0e3c54f825b8d4ad5b2bab4a1f22fcb6dbf256480113165ce9702b0a09ace82d25adfdc6b7253eb4e2fff3f120ce04644fa13c479f57e870cef73066ed79e853a3a494b73641929ca9db757f9d6f8bdcbba42483e71e2fb004fb09e2e04ed4ed98c3b5a14218d37cd1422bf0429509202f198c0201c8b0c9f9504e002bf1d167ebb7cd1b8c609f123ed77daf003983aa0e9d8a69d3dd63b55c35938a629b2f83a30cb13e3894043206f110697aa2bf84da35e4116733ba4b53ecfb5f71e069829019a06432483bb4d657c6e8a815c3c0d396fa574e43d83fe4b35c82523c6c540cf36240a7b30c83f83bc9aebb4cd4da4ce7f004d31fe8beef8a94d538d82d7aa544a66a917706538fbda34ae74bea3c7a1fdeef0cb498f5cb7ac9ca8e9a56fbf26862f9a1a44b0cf921fa0f37226fb452fd25a6da16a2cebea2234fde9f947b56d49ee25371ebe8dcdbbd5dfea7cbdad0930afce3ee8637afe12fd6c7aaec53caceb0b3025799173753543892c9e3bd087af46e2c8bf9f97744a0904bb00be7a789742ffd0dbbff4232b99affc47bb18a68a5f2762dcad7be4efbd811962f3b285cf385df8dd9f43368bf57f744d674fa985a4dd9d5b9a83b587eb9578b79c131da924a3f898b052f442556286e18217d7a2b0801b2998637a5aeebe9f4ffceff49719558fdd7589057024683938d52262b35b98e76dd0c35ba271f7700d33bb75325fde53b36ec2e62c261ac3ce99eec799bae9b8e85a1f3b65cf544f46fd7bf3e919c239f4df12e9a9431bf26bf12da1e5d5f73fdb04f3a42bd845cc650b00e5518b4bd52427bd21866264980013a99a09d95249a5d4b0388c50cf1ddf6c3eee29cc40913b07ab8529cbc7b24f528045d0c3965682fb5b11e7da7b78902b6f5e5b918bafa0e0aff7765f29b7763045b870b0ed6e77420e376b3e6c770f8877dc42a48df094cb0735c9d81b4a394be087f2d6b9ae0d55cf7e7a73a513fdb5b72bbaa9ee21400fb78fa1aea91a49bcf300069cd7e569038f564d0e55d2eefa635c6fffc3c4780774ec38c32c407e8784c6a56c9cb63089af204b9d39995057ef72e78e9f1632d52e47eb53c65f0a9fc1295a437632cd3aa2a2814e461c02e4dbeb9f27858d380116fa39533523a10510c37104698e79c350c963182fef24ac28b206291dfee586af187751dd927732f121ec2a023ed2ecc5c2ffca5bbb814386ba23958fdaa84c49f7ab8f6b99032ce8615f65fd214e6267d791ff35ced52f41aaf336a33c09dc1c74bac2e76e4e7604f97fa6c3d5dbe1dd35d33fb5269bded73d07a58db75fe7d6baedace9edf3a11ff9ad12d2ab7e79f5e925efe6ad3c32117f65db1a92a2f703b194af1acce7c1f39d424daa7a2c33aa7423c4dc125b06e5a1bd9935880291f9ba517881eb2967d9de03466fe709fab0536b0caf9f01b7bcdd358ee0534f1c56b6dc1e50c0b882eef4b4aa491f583e0e89b322b1ffbb40a24af61669beb81c38512ae6cc3aa64720ba547c473ab59935913d43a50b52f1c0232587211b55b863d0b6cf338d2f25a32356b32d5b9d0a6dca602191923a5175b6e8080c33ce715251a638cc15a6769540743aa97507f8f98d587d5381d39b7fd6fc4fbdfc4fdb831333b90e4e17df9683a480cfa2265f5588f3ad7960a786baa6a9e8e523c0ddaf144aff2c4ce4a4905427f64ae796e3d5b81284529203635040e0c43a41581f9691f572c31ceff121d6d6d13efbbc654b69f8dfc8d30be47061798338b0722610ca95c167356fdd676d3fd43e40afd268d1a4665daf4095f454cf9fdc4140e73d6429de427f77a0ee70142b4de3789879d2c89c56a1b7729e8e44ec3c8f46e6bfc861bf98790ca82e31291958dff15e7e4bfaddb191c9a7efedd808bb0eff7ea1c2055431528749b49a8686163fd68ff8cdbb3b40e4af701022a46daa7954e5c0c58aadbc19566b7b4dd094f64953c3bbe87355659ddacebef56751d56040a4185f7f52605a3e74acf3b849cff66ff587f6f32a8de5fd92ceaf95d54baa0e4e9ac89ed6754b6f1172d6d7e3caad10025e07e880479503a91b58a2186",
+ "f4c0cb0241ca5177c3fab99a19e369fec0a8dc4692d9319a55083b3e592e335dca3d43fd010962ca5338015951f9b297eaf3125a364b38d193190634d2c74af7bb52b09f6e383dff17dcea44fd537f1d6eb3d8bef7f96f6396bbd0b1e9b3c92841d964b082816efb84430e2f3314985d0241605495e1d4d08f4dc6fe4fea79f0139bfd3510d31fa23fad2c8083f520ef189d27d7d1c8ebab4250dd2ac46ea3ec8467b55fc33b7283e8070e46d3c8875fb0ba9dcba76a6ba6b7d06ea7d2826d8c5bbce59db345ff86e4e1fc1fe414933fbe943e111057210b6340f832288583b4dac383bef90794b9bca7a6fb6a045bc18615a766370e149863869eceee2bed8dc88566d014b542edfb8008846e9794b198388cb8463f71654e302144bcc9fd057456400c0adbf35f11e0e50e1ae8db0cacaa4d9aa10adfbe9988767b553e90090a125e1b16cdfed23fb2e6c23c95b1c2a6291f22f219bc2ca90656f3c840e036b0ae0a09a73dfdbc6efd0cd7053f2dd1b7aa6da7499e116749d272d0868d6fa68ebc7ff87bd40988fe732c2209f01dae34b1510238b2334542121306fa4c2e664b591d84117ba284554202813a64cf0926c1b259ee4cc9876ab3654f296958e49babb09cdd46738e9ab9dd9ba9a6f05bca9f9d269099e95f79a31c9ce56bb6df5424f9933a31de1283c2199bf1ed9086bf4c65a0e586f8a841c6d44f401dd06733388785a0a8a6d9f16dd37fd040529b7e1db1a61093db69e62efd8ff4a298178019f7ce6fe5c9b0f7df14613d62e74b4989956dfc09aac14551cba31df800439849cc946c9814c7cf17af193659c001569f815ffb5c8b4c3ac7f0d450a61f19f377b3ccee3ef8625ad1e15f5ad1c6f2081ffef8e599604ab9b6634a50b077792de0e5b59834829d02cb3611f53f95b048e47f62c4bf92606546012fd608f1a0bfc521c7c9c7a5611b11dbad5bd2baa38e9fc02b3e6b7ae7cc262219590ad44f268c62ec3a75d33b57b6c33d57dfdf568b8095866dfad2e60b2272cf8ecc29cd05f8e6b198213bce34a516f7eca8cb7f0a887dd8f526a553c38e63add69122789b95400a34c6be796e4453c03f709dbe9035526aca3315894f10fcea9f040e812aa23f8309eaea2b278df57433c8ad454cecbbbd1cb334342a7daac4938feface151d5186c06089a0607b85eaf9359663a3b667edb2a00d8cde24eff364d8b36120ea27061eadea24cd16003fb1adb7379b0048b7a40aadd659648a78c0d1a0ee44e18810e0a24c8de91babdf58642cfacddab2277eca8cf0a62e6f1049ba5df4e4ff527b8de61a533b3be689b3e22bb4ff7320f7ae58621d80b26921920a67a71423777a294d27b4383b8ab15c642e59b9f91a00e1e4a1b314260851f8de4e5bd3e49e8733b6d9414b29e204af576b5dd66392201737884f0728e7d1e7e7d36d6d38a851a7b08525d10af5abb5108cd63e72d4d49a07f5a1ddea8cab5ff16c16f11a9f8f0c3fb61d7c710cf96616fc035837ac4a40cfcb4c9f3b4363779b8812b302e13f80eb11349fa2984d50369b3d88a2a8a2bdd868ca6e10b4de45d427b224b0ac0dd19ac15979a0f146e894855ec77ec745dc15dd76605c78ee85810d4a2dcc8688658ac2facc7f11c5319b0a6fc16b0ec2795f0f8b25f56329e2e6edab6533f480dd4190f6c0346a5c2fe21577e31499364fa142a32e21db0a2d0b0f1cc35fb9d3633aa1f99b4b9c53f5e43660dcfc18e852ffeca38ee73840cb316ecf18e7e2f1c98e4e2b1e5b4e67587f259163d456de328e0fda6b9e9eddbdde9d996743ebb1fb0afae79790e49597f723f1fd3f68c1b604bd7ccd6d7f029cad0d3081b70c13fef7f26a69d50ccfdc78aec988861fc459b06ccaecbeb56a99e467c9ee0e0b4d903f0ab86fd8ea7511a96fb66b8ea3024ed50cd0c04dd6897ce861786bb94a4fe50d5480bd8ca4fc3fd83ec20bad42ac13bf8e17097d846fd7fe2c3543baf96994e110e5667efa152cf8f80c3c0590282958980b819d3bc2def5f9e6e8c011dcdc05307f5ab09c5684076693c6ed577971c056708d5f261c7829a351780e55ac359d7b8212cbbba0646e0ef1ec6fbb5d4da6f198b8697dd3fd1e7016aacfc944f9a0ff6f92f32a33fa4cb765e968d3f26c527ef9beb5ecb6c0d125b36bb35d0c615b74ee70a9f99a98613923baf669e7c343c422823084063a848ec3aa580191317edbf83d7ee577a727e6b20369831bfd4d766607a2bc51e8a2c67d431ecaa96a0adb0bdd3f4795c8a29bd3683d4875c92ca9f49da866fc53da5a949f9ab6f52d8e479728c51f7cf5bfa3315609c5defa36fec80fc79b043e79b2e7a17b98901f4e445a60f8565ccb42d295d9ab6b97839565b2691b64b71ac197394c1b2890703ece40a3c039b9451641110bf8997188d891e78c9b6a8b3da4e8020d02c3d715fcd18af2d3222e5cfb2cea22e0117ca4e52e100e7bbcf402c8bfbc210739bfd374c6a9d19ccf52faba3209c84bd927eefe7065f552995b696c4d1b037f71b26380d68730a9ce31054f6805c323490f5214604a1e74b5557a08eded954e2915141383168d3249d24a0df3f94144af41d6f2f65a6e48f5e907a0d5f7d912d9d98d780e741c0cf7cd4a34f45fd4e33308971fdc37c85dc8c219235b53ee84b33913ac3ab7e46a617178db119f201cc3e078c3b102163c0f7b6090c11e149933b87e798eede5f1ae9e1156b6477f60feeed5f6abc25b5eb3c2aae6c2ac5633e6e69294ce62223febb030dc3706d756660660a058e9ff7e0ff6267ecc4e597d50d37152467a982d410b5a8a4f4ea1273b3083cc375fa1b5460e1cc9049a269a10adb0a23cc0e17fd30471372dfaf72b7d37bce160ca06856debf3df1cf7ca6bb39f55a486e927a7f291084500c4a43bf9f54a176a7109e56ebf8cc23e0ecbd4df035b10f2f0733143e9b14682c2acba44ff81d1578fe706160b686fa1ec6fd8bd375940e2d0dd375ab5dc57f4edf8d1d2044dc4f6e5562e4267c740c70c92ea741a861877453eccf83edbb6ea824e7afa72cec6cdf9deb2fe34342e0d01634570568d2b1c98b6e66db9ab837377d6bce8d8f6c5d29ba2fe11985eb74def6f8701f6cc747137333afe8816ec09eda1ffde415861dd2cc45320244225c549dcc86480adc4336d76292ccf62a76ea6ce45034479d1534ff42779ad2ab5338fcdc67d05049a17b283a14934b73c0bfb9cdc16bcc87c8542264c3c29bb9efdc4db02fa2d88cfa69b66f4bf0cd6711c867eeec129eed66a9b76863f9729f3a6496ede2b254d238b965f9e474dcdb1798305c988fc3d2e3def0847fa2889f3b5935d0409bcd0d1517c886be5f4ed020cc5b37e95e13c23c837e919bb368f8df8d960a189c9fdac4ba32266616f9276c4b021d19650fa6fe0323669c6e07a23c32bc5329013077004d023e559b81b709c00b6879b2a2dc37ce872dbfc74eb6dff08bad82dd7270edd65d0ec3862dd0406a2417a4f259d0d783b525a2bee6dea0c39f6bf09391f0c73b966f754585337210be72f3f870db4de1b908e4",
+ "c26059b1547d391fefeb4fe82f7576549c16257e73960ad5229718d6def66d74dd542594df04b7ba7295b42585ef2bca5454513ded29ad6903d1942fce9c2b5f57bb977d7501819a0df555ee90e79d0664da6c137d6903e00f13512c698093126919a3b3f915a16bd1afa326731b5c15c2f1a4cf9019721a36847208a9b9bdc90dcab0c4373cd59fd271b20552049f81c0a63a72df3d9e919b528b05e7fa24e3395aebbea4a1c82ba0d950e57b974adae06e0de849951856bce0c3ac29b3e295d573201b34b986bfc2417f77d74bf95b4a1982d89755fce352f336a64fdf66d2cd9a694ce6369f3d88425b5d9cb0312c0dbd4df2980ffb4714d26749a920eaefccb8379cdcaffd976cec694c0f9f2136c10a727ff757e9e6e80b53238d8ffeeecb2f687e6ad49d765a6080eb600f57c2de3c6870b16528af5e392d5013e97e895c75269f1f839442059e69dc6bdfa97a28a1687bd4e2b3af97f0f07cd7e56707b6f24563931913eef9332f33e03eb57254b0e5d264c03318e7390f5bca0f409d27dabd7a156b23166bfedfb2f25eb3d592f70f7497436974e8fb2a80e3a9b41096ff2de3d95e826f4691f6b3940f5e97716dea2135a73ff3442aa16c03dff04cfb2ab139dba8f9b49113dc5c20ecbc7e3513b81a829b1f2c2a0b1a314601e8b96dc70d117cbb0b114e865ea4ff48f67711e1321e8c5a66794dab33eab50edc786f68cfe47826157617bac0156f250bd6a08c9e6a9535d50389c4abab5d6470b37d532cbe33b550b0f20149e937e50af609d04299625c810a35f5d9a66272d7f2903f048b326b6c6a30f7fb9956ecace327aad56a6e88a861f36142ea0c4d9a5a8574ff11928cb3ded4d1078ef5ed4a88d75b08d51f770b4d7c9a3e954c43757b383ed28851cc8cf7c3957502332c8d4f83bc0ce6eb85c1e47f99b4335173c4d5c8b5cb6df13a048e73164b36239803996044e77a80123fe9f390d9c1e57040d1e1159341c6a0080f62209730550b1d3f2404aff791d0fe3a693f0ef49e6360eaa79461edbbb311f8705aea9cdd94a0ea7d5c7e888df127bc2a4dd9fd094a206378b132838b58c73a8a315a3130ac1563c701936d0756d6ec37b74795b1723659421d96968482f44e716b763cd3d8b470d594e209b03f6a4268e4a52a312e7f6960a8f195ed868c890e36ced4b58fb6745da8ed46427ad7fc5bf30111ba2e672945debfa34a9418b9293981abb92f8a457ae317c79bcc7471dbc403c873219ae24e78a3a9f72cdf6ed5ae3b4dde6ead636de56f207172a4e2dbb4e3cccc63ceda864143155a0187ad923fa4bebedb2b9234b27891bc5731a8f4f533ddd7d40c7a0c36377df59157dcd2ae55cf1a3378a67fd746b950e8057dd6de92b862aca556159302c59abdee658bb7a97b0c752dccf9b12e534ecc78d8a303a994f140375c0941e1f06c4c499026a93708adde6f2f9c96fbc3b5814a9ab4f1690adabb546de226eea7e5038df6bc17f57c31c040468460a50bf71feb05eb360e112da495fd7adcb37cf29923f0dbf21a70d91d0bbf4ddf7dc8555735bab1257af7163d772482f177c80c0c3423b4cbe52e8f5796542112eda4d8a8d59bc788d510e16b7f28b3aa15d2e2a32cb7767064bf9cbb4a2f1b0da6bb98be9fa4c0f49e1d443e4beef2fb5ffcd4152af0839f47f6b7095da758395cd75d636c22f20bdaf19cffe0a319a9bab281e865c70e73fd875c6b56d429e054a64ceaa44fc19be4a80a358ad887a42abe3fe3ca1e05114f91a7996f0fcf29c5175d528c47f912524ef26f39f70f7603fd67a441ca767fdce1100e4dd4f7a504a8b790d80819a5b954ce5762ed52e93a73d09aa459a85ab5d5d761a08fb78b3b647f8b7838b516d98e6aac41aee5309af516c9981aa4941f5c2b5de291467d698a3b576cf90c033a60530d1a025f46cd3fc5124d7551970c0a0a949dd090fa2beb9a40f9b2d15b3d150e87405db907ac2fee9be327e7aba22527fe81e76443e665f6305824ddfb04917259196c0bc171ac3e65c5e15c8c68427eab0693d79e4507a59deb7852421eae469efb27876ea2d99c9b121d3f013f6c3b905734deac08611a15176b177dcd996b2fc372177ad0f581f772134d4f3a529cfea50a556bf0c0511599eaf4589d3e477c4b6cb54554d3be8c8890eba2d858c04222ac517be09edf38f76593e4ff128d7ef1c7170251868df776c4cd0f26b0a0fb4147e1eaa82e9ecb335a62462e0a1a936086dd956d5db1fa9b47a12ffa5501f8184de77be411d9fcdeb4c6a0bbed2370c3c1ee6f88febf4105ddb73f2d703519d67cf26ad3da0a82bccf7e0925808d14359dd98aca07062392796e9b975a6568b02be403f9383bc2b54cd135969b2a80019b6b9002d0e0e8dc0edd85b5072cb055e260aea8e6bdeed48cd359292818ea56aa6123553326f273d9276f9892d24a97eeaedbf24da73806039fc709bec5b584ff90d3febd978ddf8a3613a833bcf0aa52a17a078edc30a334a38b1b1585e9776683c952854c975b8f0c8c04673f5116daa2b50a0cf63f8c3e82ecc4caa39cc7ff43c33114bcab5c651f7e85f9317047bb7f73cf7d5ab383bfae0e798e9f022b4ae8d4addf9d1c5239e83003b1852e49a04456ebaa9e0658c31918f6d428e5700f49b9a6981c6d9385a2937064cc1639f65c1c56378dfe7f22f6b2f0c1416b5eba6068a3fa59aae125f7c055010db1f14b4d8ece6cee2e556337a06aa79c3132538542c1210a243c830d41729c271ed56e29052fb1187206bce404cabf12302693fc1419782e5c31081fb2a0eadecfa05979bc53284a19b6f878466f219453a6b610fe92a988dd5aa9e1aa710b1c49a07e6ce4e55756a26f73cc7c56daa7b269e886f841ee50e50c1a58cb3ba17cfc5eb71853e10492dc11f3f314cf223394a5bff8fbde0e759884b0eb53e02ed93320fc1446535abc01046259f02bb6892f508ebed8fcd78bd6955dda39014064e203a74882e80d2e9d549d2aecb9ee30fa938367955b10befe0b84ee9531b3db172906e3e7e4b25267f8cd024ff2fd0e149dfb4161cdefeee7fb31ee7064ab0e748f6e78bc9310a9ee255d4e0732163f333c1472edf6ef5813dad0ddb089442a4c710a448d3d743bf908f63286a7901f2773d6f1d543760001dc7d0f72961449df00b5f79b775d3105d27b081d8e7f277706eae03e257e9fe8864e64bb81989e5bf22cc895e04abcee0838cd54f13240ecda6c03962417575f926bdb1552dd2712f5faaa9efc2f0c5c27cf64e3173e6ce040ba7275363b1a00b61becb70c87df8ec45c2b59374b3f7dda46a600f37b5a0c714ac6e66967d6322b36e260c22ae4221830bdd520e3bbae7ded6e02a443d790d802512b4a79cda7ee8b6b284dd16f02a18e44c4bb44c5957f4bf92f7fea48a51b0b23fd08fc0cef11e9f564f5b513013ada3ae7d1ffad7827396c08c254c5b05df9dc3681999c4966b7f8a94a161098a8da795963123786903dc0c2a1ba61704ae7b4e9c9b9e2eea87f824fc501d5391aad9c7101844dacf659c67165",
+ "24ec2ed10659935d725120dcffc3747b33f50f91a3efc665637f296540e8ed002effd0d9a0fc884e72fc39086e9790726ad60a01f066bfd7e47ef0e60e78cba838ede91256d9056afa5a2d7cbb2bdaa8df88b4137ea6248ac7a9f18209c29c057f8bf40eab3fb18d46e5583d23a56e66c63d21a84850cff44faf54ed3b268f077fafb46c5fe478001ebe2e8ceb1c30edfb6d4eabeb268275d9d0151f2afeb001006e4ea1e4248a4bf997359515026b35823680d63250fd7caf6e9ba4ba20d4eeb5a66e962248a4a4f9b221c46a769298c83d89019b2f5cf54e0a9d7310092c8f8156c7cac3fc36bd028f10f430188c9d46f1f2fc5dd53dc87768fbb98813ba9f18588163f726ef9cdb71c0531a9c46a84e54e80562841fa37afb6319c4803cea83c41a54cd877a2ef2026a756b79848039eb2729663cd15864faa64db32a089a2abaea903aa940151e2d9da2cf581e493b9c441a2b2ba6a82b7ad3229137682bd2d3a7480cf12845082d8e399378eb1d3ae7bc0deffc67475a0dac336a73d0ec758a795aed15db493c61eb1f685ec9d08a43a42f7859caafcdab9c967ae105305c690bab46de0c68781df510f9c8c00dde6253e7758893028f6b42d2c5c0af123bdbbc56ee464c80a6433f528299004722ea1ef5bd3c2e8b21f748d8db805b532812447b3e8265e3efb46cb8eecc8baacd1d98a76cc44fde57aa11428f9c123fcde0b6080031e2e0bd5f517b4c310820878d76cca929a7083fd45406ba61522dc253b239b00fd85907b46c9397f62ff25610daca994567985390c8052797dc7f8972181f4c53b4ee3ae25e6576f5c7a31a4192416b14535a54611f805359598eb42502bb42fc2a9cabf0a4e246b98ffccced574da4994c305f96c9a0ff47aad10159f5a7128db3429158520d16ce2dc9b7a3867349514d55399ea35e768222eecb5626631751f501338d0856714ab940e70e01b29de80ba032172a49a55742b6a711816be3b2992bec0d50d3e5aedd7b8e44aa9abbab7f7f7f88904eb5075d74310073a0989a11078e089def0527b0c05edd42115074c1c6ca869c9b98be6ab5a28b2f285a5a0c55ccb049a4edb29588767d62fc0eab535e08c9a1ec15cbe0c760a91fc7d90a5177b7b652e3e47125ee932b2025abc2863ec01f7d88fe9b12140ffdb7a2d928174b02c5aef423739d8a32bb816937640f36b6bbdce5494d6c4c61b5f32b7cd632c7bb78d063e76df3ca04015139efcf7ed241f0af6d4b66a38b26fc9823f6f1260bfdbf21ce01cd5038e3762c42dc5a3a962e2b0a10ad2d76f299dd3d36a8ae6bd32be04027f5461010b4d2ef9ca9ef4748bc3401b30ec024b82571eb4f7eeccb850b8d5a9c40af06b647d9510690035a562ae346c068e13f6f7803be61df7591f378c1a931f31df25cbcd769e284b3f9d0769970b8863d189464826b553b809db087adac94c9ed4e23eeaba6bc9d16749b598da32055a924869a46c632e198d04243807fa58d80c019905bacfc909cd97bd7a0f62186dde899ffcf356856b5838ed1f0f82e311bd1c7018909220705b18c3480dab8b04d88bce79a07d5e986cbdd28f37696a9e677586354f76e5b64e61a1099b0eeefe4889d9d920ebf521816e40058bd7b94d79bd7868ae7a6e2a0c281db7deadcccdd86b4b5f0b384e84d2dbe91e425b078622aefeec2c34e81b62c5e62f322b8a0a0c0b28d9801ad96bdbb57952dafaec7b3c1ea99dbeb4acc57e8b4e5f9498abf68483791c7177cbc8162147c4946dfaa29a1a14cbb23550841498a292b11a674c21e6cf49150d303e70202a470c2f4e6f320aa529303025cee672166c59ff99dce8d7ebae858a629e4f5f551c04e6109827020a91db93af669b43d9331894e80816af2aa233f76c7f2aa2a7fd0ac0d1ecbb9c9c208b5e9cb6522f523c0f160d12b2b2e39750cbf2477a54723b2406aa3164649e8b6d7ae0afdbe7d9dc7d4e70e72408fae783b8eed97df86378b4614871b0ecb6cf903ea0871a895dfd03fd404d1f7e13b9b12b02ea86507760c071a24b8609cfc62904a9129e0d1b36ca8390033a485ee5d94d08bc664d1db74397eb046ccca0e3657505e75c2dd2ca8ea7b307be4b64d28727874ef0e3660f90a636c1c94dff6a5cd7fca32ac5ec2645fcc457840756e30896f193755ae441c4df5a7056f13a09208908bca8485c5c67ae060ea1defe1a8d051b52f269aed6ab9b0f4ee6ddf28201f295e4bc9f746f59e5333fc7b922fd1b4f0c2b49ab5ba6af5ae454f9c1bddc3cec023b404a082540b7f17d2f00dcb631342efc8ba1b1696c425dfe1f5699fd090470de37e17ec9bcb708c6719994c9a0084251539f1e051d7f710b769e23c2d14fa0e5a36453e8867a8ab0b664b12fde2aaaf1bd288159d7e8a958cc63df7fa79341176bfd1c3120b567bbe5cd93c7739394624752d5d624d67324c2f638764341021611aa9d089d3563df0427f24b98555293f4fc1d2dd380802928e451aad085bdfd01ad304deb9981daa82b29e0df1f09a437defebff7fef9145f44c9f070b62e799a50ea27d86613da4a3a9bd0de4bdb4f6d183c1016dbd11d03488cdff6478cb5917afa6b6951956ebe37f23f54ec292859178d31b5fbfc72aadae287660f9a1b43aa2dd61b30f30700f4da4ea02473293114568585f806e38aaf871f9252da96c44d7e156f0cc03fdad3663393889d721dc948f69fc3523974e3bba61e6fe026ca315d29d6fd40daee2122c13507c832e1e7a06a1d65296a0e72c0219f187d2579d4e8dfa9fbdf6f43755db26a7e7cd305f5b8de746bbc0f42dedd97ceadcd65dd08113f27c818597433b2240e0a158133f0d7b1359f96bbb0ebfd6ca0cd6ec9d795ad2259b3b8beed99cc4890565bdfa2f22844a5eff3640c6ddaac7c2e5e25bfc0f02fb828482a4c8d1f24ae97af5ac4d0868a292ec60474cb34bffabef158a88a737f0c7ffc21fedbf582e128c76d9502d28ce8a9762fcc55caa73e7aa6b92d1aa5d8ce9af75928d00859f3dc334084d1e1a1ce69566e099cca95237ddc01e88e02394fe858c0b478452efe4576706089e83ecd3edce1ce18f92aceacaa35d28ea23c767d6b698b6fe1e6e5cdff89adf5d08a11e141619d3434619f80540371faa786d62a6a1c4151bb276415aab7c9e0aad9ca372e613c57d4b052b7243d6f246386be8a3ddc65088f2275e16bd5b4e1c94d7ac555b63c9dc0c8cfd784728a8b1b474e15b69da30a672c1353bbc1e661b73ecbcecef14d56148f149fb23c73fa8020cbd90d7a6e1a99683d0196e3f1ab7e60e30d9216a7c61b43a095466b6c659f8f5cbecd2e8f4f5b41290727420cad3702e1dc0e09ed99c001c99ed3faf8c08da12f2611e2316ce5d6b0bccf1f92c87f1d0bf996f3fe053a9d479a3c9d59a9b708ad169118bdb2575c06cd0951422d06230851ed79b840e49be08ebeef2530d2248f38f01f4b5e17824a19804ddd0e382d2b1136d9daaf3dad1563115751d13845338fa072040a6acbbe5e66730bc24d17f7a054fb4590671e687a66d07b215ebcf9",
+ "d342f79e44da389667aa6e8f488f74547829f554ddcbe499192910564c820a5bcd1d900db1cf5dec730348267dfe6f349efaffb84c1be7ac83262bf9eb18b452029e95db933c7df032e1409b055086544f48556f931c4af1af5c9c349c7fa517f3f7079d3eb8c53ceb4512400b003ee82320d88358e7f1f4970abd4091ad5f93c710a09045dcb23b06b088f49bd91c3ee44bfac4942a0e3e030429c82d258b9c6995193a040e07fcfc9c796441585e5411e5e8a0b7749c19f9d6caa3539d4ceb60f8c545178b025a30ac7bd55d62ff4c514e8dca8df143c89345322e22baeba353691f7099d0267a312ad79426c4f9615b8060574d10baffba7104ddc468535f0c8023dadbb2dd355176b905596b2cf8f9942443b9df5d1571d720947aea1f3959c8d8fa7f098974825cce4127f9ec6cd7f26b778aba6bd586e85f5011d489b9bbd497e3e9d6e9097357208a863ae30935f82121ec0e2e361bae3e70d03c8162e3575bb667c77dbd737f69df93a5b2d14e4ce3a3f37335d7ee471a4592c7a487d9c1f34443e94d161e915f615d852fcf7611bb1bd26c3b9e550e8203169ba5e7db5fb88b129d7dad51933869a525f856ae119bc496e251cc5433378339db6ebdedb7300b27a912f51f25cb1d4e360704166779368103c0f70f11c7d9acff99949863e6d721dce9748b5b455305476b495f31a9a2e940ffb28ed798c5e9e7becbf0c1d77dbbc9c8234fccc087cd67d6985eb99efc44da311dcc28cedac4c61c5bd2be99ed70c35c09035bfa228e63795de05faaedf3f22ebdb664ad6f92882684db8fa043d5aae06d424448cdb988645deb45a35692e4a9478b2c476cf304d54b71f74968a893ac7e2a709568edb726f096ab2f1d8a884d39df56f403ef4772b2a3ffcfc2692067c52572cb7d955b47e8e6445f6e88fdbcaa07cc22975ebb265b1f525636e7859257bcdec8b8819d6bd2ed268ed7b6c353bdc02212387199cd424d54ccc2f003a973df0fe065794f0dc9baa6decf169adc9ad02bffca9860d24d8ba10bca1a2c1e0a6af8663cd5a19ac115848992cfc1fdc0860669d9bb68f6d61c3501f2299f493108053c75054485bada23f3f2a52b983aabf6eb3ccae459dbb38d67563734c94cd08c0868b8dc6ffce28209a47d5897a56f3eff546894c7407663bd7b73a42d23fc219cdd007decb76ca94e966c4a1e80ec76ff9160f85a0327c9a20a17c75c40b5cb52ee60bf5d6625e720c526fed367587301851e757956bb4229690915696f70b30f8409f4e2f074d65e841279c479eba9b4aa24c1b9edd20239f4c3f5f2e48ec023461f0da485c81ae06a7f8a35ee83556f1421f82eaebe1b68b0125c1f0f86ae6487cc929db940357bce735daf427b0cef450e74947d1d306a3fd8cc3ba151b4e359f72b21a428fbcb59ae976a9a43ff7d61e858692dd6f8530b960d41a0386bc8371d40272d22710e49a086d47e1f983e45597869d40bda4c89cdd65db7f374155114f88bf49cd32b854781e4731a49de43b73a187694a92c4c844a353a55607984f9436eba9ce5d0e9f35274d242d46c6439499e4eb8da311478dfceb5ad56a6f16da302ece790caf4ad58943e43d99e62fb09fa66f2ddc077b935a004226e6d870f9a5ff2f4f29a0b5fc22ce7d85ecd790dffcc0944f5fd1aea69981e0133fe567628be18da703e6c07e6d39c9ac2d81989b7ea7bb69e910e015236bc1e41b6d9a33b70889548ee57830d95deefb5f49225bd255243f8b66448c0e6f2429599ddd55358c63cc287e0b9f615e22b90b25f04860cdc5550acabd7404e98212d60b9cf2de07a9b1a5ab4cd9bb82d64ddec54c68c8dfb38b9e746f1fae1ce92da49c7f2749207306c50712e359407e0d9e80c794df397d799d1eaad605af6f1aeed7a2aa93a34f98a89460dad66b9a119a99a30d5b2c9a564ecb2d2b117f0c3274e321256f01f77f25d12a2371fda89af9841ec575969601edc1844dfaf5b6f00d17676bda208846914304f835dd6565f71566143dbe85e8f4fdba2c379a7151fd574b5084a9fbfaa592e9115b8a347340b2897d69f5c3d8ee3534b7689cf1d9057c1ef26e6ad933eeaf628c10db34e1ee010210ca0cd0fb00025fad1875067a231d6d0e0e67f753a06207ff1120cb29f7ecae2a2463dacd95bf48e1e04e52706727693311dad7315284d77abeffe7234faf972ce6233f399724d4a795604aedb3ab73cebf48e319fe3ea129eebb363e878a28a2cd4a336472f7969da98c1682e25cfce506cc00f4a62ccefcd158cad8fd902e0985d61fd0b8caaf0ce960c376f48e522e2a630d3f9febc9c490c81213f1a143274e29869238e9b958f9c02e7f1541f61f3b7756c0f2907f390b4b1f4d90f492f0ebf42664dabd7276683127262d2fb5f42e107ea6b0bf3e45b10ff52bcd12da991031f1b88a35a4b545c1ed93be88fbcc891d65da5716e4c10e21c589a2590d4acee0f050e6b7e761e3a7eaa9264cd6039dc1b3687c33e489ad4ef6b82d7bb63d5f83b13b23e63586be6df9095e75f7770d46bc1d0bbfd957bbb82b18edb5db85acdf8921daa76d588dc602a7be38d22920c90d480171b5ec03c4e52cb9a5c123a68b7e40e2b01f0bd381bf1a1907e12655a826f56c4eb75b5eac7a6f6ed70cf5060b19edfd729123dadb8d1b7809ba994741f49eb66f958ecf29fcd3a5df7ab080cedd3476a11065039e697b40fa6cb7870ec22aa07467604a415a3265b6da15374cd88330ea9ae382eb1dba6ad80425a729098a745c5919aba1c6b5f32597ff3171aee87c8937a47eb1aa3140775b8496117ab5c90da56f4a074ad6ff0db1fa8537e530f6d2a4543b0c82e63397fea0ffb802bace91ab455a6b2d50fe82317c64b4ef8090fb4fc95568c55aaa3853330844b22fba01ebf0b5cef7fcaba7d928d8315708d48dc87ca721396fb8014b9a14a065dd2760e5459ccf692350b16f63107448e81f7d254ecaf282dc598bfbe5b795b0e1fdd9c8040360a9604c22c3ebee0241494348bec1d89b1d89a8893980fee6827b95202e031c9c21229c5a0ac060e4fd1d1716ed22cc716ab9e6ab6c308926b01c5f5a940c5982c99a5e46f95c44548b0ebdc5002b7fa101f487e792669e956003d0da7849219fe5160b4805a5a629db62b3fa16ed33317582387e399167dc9e3620402edb415025ff8a1e1f37d5355169b1435ac7ed9cee3d484e1aee672f433bd0bf127bf0ec26f018d3da9453b43c1f3d7054dfb43bad63d1ada1e20ecf5f6020971734d07851fc57602768bfa1ed15080e87420912749da72368e4698dddd9a8133e4ac460c47aa9652adf50f688abe458b680530ada8fb8b51174e8be45cd5085936ca22d382e0a0ef13453f0b32c43f86ed43d43ab76819ec180dc00ac391b228b257adcc76f0d55b2632082ed66b41123b3f687cddfdb12aa792132989ea63f78d39810ad186fc7c524c4d82664376fa142fda5f8dea391c2be78afeb397b51a6afbe6d351f1d057028ea77bd8bbcc59dbf3ff0961ac980deeebc82a97cb9068225d4d6526ce66",
+ "ca853e18f16f3d4c65e6cceb058b17ddb0efae7e5e21bee78451d8e086ddb7240a40ac4a4372c1cf87a6ea22427de9b5bd140d8239f287ad03d995b9ea64ab0f8fb66df766c252220e4cfe520b20145068fca2117f0925c36e02200e2f96167bdb1eede11737790ab0c0f8432d164e250acd8229c3a48e09c03c3bf4acc69d51a7e0c02d90cbaddb133078e8f9757cad2b3081ab806e1568d4edde1875794adda98681454a03e98712f46d2c9c2032d0366c693e70e58cacdda1e47cb80126aeca58950032c09e1a6bff68a5ace7510a7615a6982eebd123d079a9a29ce353e2eb80c7b728cbf99441d09796aa2415bd2fde9bbd9e1508cb933b3be6b933420d76f5eab5dcc88cb1936a785c1c5d37e7e9952f89795aa0900d1cfb2430eb9a760f098564615df2cbfdb992a0047adf0f3a115408f307e1c24493e27738de1dbfcfc430ebc0666992f4c622b270f92d3c17c46844e0ecfb2eeaf7c3baa4f67f88e28006c46b45541338ba8f86f9d3580d0d7d7ccc8885497c00d27c2c7148abf401a6ef18570345f5e643c83bd07099b9f482995a51518397cc573d2149ba65da353a9dffabbdfdb9629b2bae8659606312905346bc4447f346dca28a1c672e3fcb535fb7713b6828971399b05cbdb7302b2e761cc550245ed89f0d327fa6ca50ef20e3283a89ad5058d0818c71aecad1a4789083ab2db8e522b82a7ee20556621564633a584812d91a3e2184d0b0784828cc3ae506584d859bdfdb6cd235c2599c2e1123d1f0ba55f3ac0c8587e4bd7237c405a54229093af2dc0ce5c9b9f4c1072f812d5b46a4b73dc7ce4adc44b126fe54fa70f57d73c6915f39dc133a84ba6533749631033773ae9834659a6f158910c4f736842b96ff73c7aaa71b4869e5a71e4cf5a96b9fdf61ef5f426828f9803302dd04962374c9fde979fab04b4db726796ee1e5b3a176920631df532a3f8a6fea1f2a145a3ae6b1ff2ff6981c46150852d6f2dd1c83b6c6ed659954e1473593be7ce5b1975b5276d5835f282c07403f3d1a8c9c0e61bbf53e6157bd069ce706f2fac19d0bda10aa0645c43fff54e9c510dff21c9bce37207ec0bef393d12963a9e6b6cbcbba26bb18e59e13c8bb82f09bd5e358cfea7436a2e78bc2295ecfec93ac8ee014ce808656d3fecdb3e205b5f8c3814475504b688c525f703bb70ca9f11970f83c17f0027b468b965fbdbe4be72ee8a639d65e3f5a9c3eca88713a6cf054362466cbba6bd7aab1cfd3f7af6bf81bb56f0d55cf644b633b38b984b6671ddf7090db2804129da7851dbbae36d3ac4c0210c7d0b18786054752eca88ba5c4c44c4f70376ae70d6bfb09409ccbb3e88b54527468da65f3b3e82b18d21d879c72be51653d07ad00375c817dbcf422e4d63e239d3616f03cf24fd072dad32374314aa132a80c9605c2f181046d1e5c037a434cd2a956fa2e32f92714ae7af57edb812fd0e8975ac37619b1af402bffc4cbe4614969767cc7109e292d3b92811fa01ffbcd781724a94a1127044b5341e11a8caa9c4d0e32a3b9d4eb8265ab8c12e32b8f93d030f9c11fa276e52c5ab9752ccb13f26d4888746cbee1817f09f78d42af949aa4553e4000b04c68d0710dd1f8c36b04807476d0b3128a19882fd1a0df8f61790a1ba57ada53506de0a4b41e479714a349ecea7f2359c8fbd2396d47655726bacdfc375cf8c780e0d3b6abce5e1e40445145027586018a4adeb9bdd34e90f929440d6be9be77e0e6957ead8e6d46582d6a7b81b497fedad70940324636f2f6ef410d5bd1593f1fca264e1e38dd089cc69acf3aaeba2ab098dbd00063742e564b420b9d507d31e3b5533f44375c72d28e87da970190bfbb7d1933137b287ed7446367da965f83fb52b44afe07681b4eec6f1b5e98dcd57badfc919c207155d46907afd876b946a9ffe2638d8e37e74cc8477cd5aa53ad0ec0aa11c63d970c11ddee380c591a884a512832e68bc6c71cefbc066952deede3b2d07b23ab92f44060f942201fbc8ee7555145826aebd73a85bb8b467bc5d1d21f72ce5174d4b8a072d8aaf328fcf89871250d77f8b68a64cda3306bbd1ea03c65bfcf983460e1c9abd6cae60856b3d3d11c7572edfb83db4b7a659422c0abffba30ddabb029cacc392a6e53771ed86be9d845310cb6d613f9f10c574ea52523e491e2e884180cd59e84dde5afc924b147f78e9d034d83f5185682ccbe7a816d9d54a7a7fb35f9d460ee0335a0b6b9bd02dd5b131d97aeb1e6f72750829f3b156a84fae0583ed210d0416030fdadde4db1bcd5ce2863563b18e08825ce4d6f68732d494f2c973ec798ed3d2c764d5b48657138528401043c176e79ea02ae9dd28be20544dea24a2f4ae47fb0fceee5291d8bf14b9151b622fa81c90b9b24d90725ba0d550ea58654469d38d279cd1a6f5a6dffd65dd73ebefff938e3825faca9eb8ea6f17ea4001cdf002f81af1eaa017a0f8f25e3ad6e0f6f9e11b229077d1d71c84d613a17886dfb949b08531910262abdb33e44b856b5f0e19c0087c05b43608ce46b5381b93a731fc3633bddd387548c4e73e96395ff8df77d17d95156c4b42c9d2a5ded7ba48d27110e242fd6eb73940b90e8809dc34b3cc684e787536c0e87bd45a7bf746896639d69c21893a01a175a7002cedc658e32798dbfed4b54067a1965f85b5dce4979472a01e35bb9d5bb4dfd7967dc9b87fb7728dc328beccde8c83e0de934d9171b90d4fe8556520202550bbb9bc34c50ef7742e4e892cf0a06ce629542effad8227e31c5da9abcbb5329e3107b7407d614266e1236e962785f6aee830df1f0e6597d6e923498d5801b0c307a2b0e8265877db44e3a8e0a5c5436e761e8e1c6aa689c81d349aff8bf8d74d13766d259c023d8b96bdd515bf1210a4135218229821646584dfd4966f4a1daa9b19dbb6aa4ea05e896416887c0e3117b42f3773d3452482009cd387853f4bfc61a356acf72675c2a81f75b759226a252fdbc0355ff5a0c3099209e7dacfb415a1b5bd26a4397fcae0b9fbc71e576c89414d10ae8c17aafc4755144cc11af1fc87bcf88ad9606071c24c9263e56ac5b4d3a5d395e4bc7a60f9da6d8f1e6aafd37285c142c8ed108f0e1e4499ff8dfbef0075c55ce7ce68269f23c2c29b917f4c658d9c728a0f7c070d3a5f3ca8003d4fa494c389b0d041409299074b478dbf03e90eaa19d17fd55bd9b80acef78b37b00629410a1832a0fa8f32df85ea47a01891fd7f80007f5fa08d0c5beaa253d847b0baa9194d3fd84b8a5de43d698f3825f99b1e105e7e7b9eba9012590e75efa299e6674e1d6e4713a87d3171d261a64283537587d1389b8223b090daa9ab2b89f1313d8f8bc20870fccc9dc256e91bbe4df78ab613c89254c467d0d95747837b00ecde7253b40e90beb5091dee4abe97245774fd303b4c55973c4af780602c7b3bad86409f3f8feda086d6520d3ed38b85919aff9b8b951e4293a2644bab8c45e1c2a643be4a9abbf954fa1fbbe5f0b07f02f3584ae9c5ab569298efeb9565bba7b8943a11e94b7441db1",
+ "35b29357b7f44258ce48e57c932b0e7d4c41ee4a89da46016c9065210b90e3c575926d311f94aad6d06e2e3c94eb809355e7721318b6f85397934212000c2cff95c36a4c315bb3f4e5c2d98bf2baebc23b36cb2cd1f7f2754eb306d4d25c66b9c068c6b691aa281589b15273fbd5231e45898edcf8cd23bfbd4f589970b2cb099c8fcddb35b7c606da27781bf6c0b9878226e819e88c6c9b88e83be0fff0ca5cf7a0b0ec59133a80b7f0877fecc81a43ccbbae581d96fce1420b020e97f096cebaa222997ed2927648f3b27f6bb19382d4be0cb3b2c22309f7d7e13a8be50686e972b9c1a0c8159feff9237a8e1b26ade150c054a555d70e35f3974609fa82c74cc6bccb4f94dba3b82f30d29e79ac54d94693766bee4dd49e59f43e2bd3ea9028a6ee74ae6d5070b9abd6a06878f4782f01e122415f36257ac01a47af96ecd7082239e8d779771a62b5e7b562ef97bcda0e839206119cddb227986bc8398f21890da20ea0aafc69f4a4269f25c17edf06932441782bac57b3ea39e810f5aaa45fc7a1e347e2de472e806341ed9abe7337114ec25ecf688a836f63e19ce54d99b821bc3c4fe36a2079827c71ab934a9e8b4239be35923d9f83f3a1b4890375244da48ced2a3e25589326da177bb2c7a8088cff9493fa06b4d1f1765080ecd5f5db8dea29b3867a6002c6c355c7995c77a805b0fbef363dc9fee1c4f9643911f0539c4439ff5537fd141fdf5e53fe84417ee1b179f869ba91c89bdfab4f65d0ffe4567f2c6d91ac3693014d0c3adbd4c5ef642ea03ab3163252d60a5c39505f69f606cc6f8a685620c71697ef82adae2c4796c84da5f89897b0369c6ecfc82212781622541e93bb75d94879be56e727e830552d196554afd5823f52dab7c84c97275f4631c7f74d99c862d7db21de7f32a21f7b8977c9dd6bf05ce54407867a5e0bb6f9bb5b13639340ad0a9b363452f0a3598f96fe9c518a80beda7972457a7f01c6c19780e01b65302d6185fcb91721780e1372ca05b6f443415b7788bf7b9b9571ae87aa35b07fa596e90f33bd9a5b147d46cc39467c1f65660fcec12924180756644ddc757e78916bfc68b57b885f5db1e1fb530a394cb40e335e0bd65146a082814b10ea4692e5dad6a5f1433cb2820224d727d33fce0915abdcc12ce1a28400b4a5d96d727f436d85f9375ed4cc15128a97d1c52d855a8330b633c2c347b0fb8dd47ac74dbe26acb59a3aa1c44de39c43aae4db38efb08099a610393e86f775462869da177dfda37a732d17c35f7f9ed9bb61fb2a04888a31352876dc40337662d0c0946efac29329f062b99afc92862e1764c4b8b84945e78beb06518ecc10417a67edaed78056276a7a44517d069ba8a8ff566df4c68c4263ed6da7c4d3df291513c734c6d20d0fd4455614de1df3fcd610ebf7cec0b92593af6d7c649fbbcaceb71c06b5a1da48feb0600085a5b0ffbd4fd92e1de9344fba3e1492672e28955601f56f7f0bb3052eda3bfdb8c8dcba55b7119267fc0afd5c908f104089597410300cbf5c8fc2d2d94e6e59a6177e5950397e13c8cf759d850b9cd171dc34e5d0ac781f492fb604c8d1b3e5156f69edd66f784a6996c98db54e9f02f276b2d70f7da8638266ff24e63dc556047b7830b60da70e6bb03bedafd6baeacb480d4250d6e64300834e2559baa32ee4579d6e0d82720619f240392a5644a7c97dadc5d29372a0713c3e92e2cdff6b071124c3ea49f67645ac049d48db78b940e8470b6afcb841dc89df85c70bf08f5bb81090633cba13d15b332eab9b7686cd02f6b7b0044f3311cd952e8ab9ea3358db2732abf7b50bf10b37ffacdded642fba02cb0b6b491d4e77d2b1c262f03f00472d07e47529bcfed9ff3d13ef7dcce2f2a74316fb2f88e2afd2227771e6fb15627697624dd11c3292f778cc3f1be72376770f906f7a408fb6c648a4a4e9ae53d8bee7eaff8e8e597dd28b182cfd335a8ada94e158a5838f1ab2b8ebe89cd964ebb6a684c29d20394112d727199eae34eaa7bd992164215db1f895e9d3ed61ef849a1c25eab105367d7b7b7a89cfcd837fc21b1b172763f1b915776c1a4e89b5001f6912a1ef48a593ac87d0debe6fe5ef349203af1c76dc43aadfaa0a840e1df7fb23bc544468ae4ca01e6cc33f00df97bc74df2833dae54e6591467b5ff69752cb950d9ddf9d3d9136cb6d8fa3ddfba50eeb0f1168331956b95c2fca4d588b75d9e07dfe830b61a7a7f4fb5da9b58549424138ef7c1a9ed4f95073acbe2051689700236ce44bdf9c45459991d2da43c6b1fbd8f06521d759323dfd750e1790189ae28c9671297592cb7f4c5161bc69be0e79897964e83e43f52e9eaac406532fd00756aba741bf548d7db9b51701895cfb5cee31a22a43dcd3618dc509a9efec5c571712d95aae1b4014990120da10462b70ca6e2d63577e37f215acad64ea58d65b50d55619bbe71dddabfd3ae870718cb1a03117a0447f2f4d334d149fbd87c31ee8be7d603152cda96dc30cf71ad1114c0107f4e97ab95d5c76547c7d23e66150f44f54895db2c946ba91504ed75bdfa1503512a7aa0fae1a78594946596e3378fbd36185af4db410897677e4a5fb95f95d3e440d8895366c9f912b00305a16062db4f649c9a5fd92b254322a035c9ac0774950f1d383f344b79b10752129bc820a4865d968c30ca79dd3fbd9f808c20a9039d671677bb76fce133d88d3aa3b30c62a37837b3ca68684f99018b4ad1c31b6a4757b80a425ebe6c66625301892f72949a956d3081ab2d309e7f125cbbe6f1e8471c3f5baec74b66b790e5ec39ed310206900aad5916e625a81165a037fd8e8c1678035c88b3f71107d340d8a5a4a8df8593d3cb9ece25a5a2304ddab89feb86016e3245db31a36f4e94610cb7f982c93c5e9a77fe31806139477eaeedf09a54d99f06997a7d59b1751e4f2c6407e97fac9067b03eaadc55522948d479e90a7982cd8ad8533ff0bbb668b1c7dbfc2f55639b8847ce21f75da8732d85fac777df19bc0a9ffa84c446f31c8d01a7983fd78eda91f49f11417b9f348f0233df7960daef0031453e11ee8ee967dc5474319e7dcc4f84d8d458b0011ac3a67407374f9ea9e1a61a89e27267d188fab97275419893159829b998cb079781eb54bc48e4ae4840e49a6b80e041392c600e31e2ce23a02e90a0b971ba09de65dd0c211c79f8734972a2a8656394687d95d651092ea4a6edbe6ad63bb817fc56c0e4ca2de49175b0beaf5f6986b9d61c79f12aac597741c032f36dc22e754d02da5aad74fb22b22d1a6143bffa32f904f32026ff0f9fc1ff96a030a7084b8b65844be59143ea3a769eaff289fc502510e945c8cec61803c740167bebeb38e2080db616f87105b59eb6ea2a5526e28b95925cc43e823117a02f5faa7a3752c89afa9b3bf9e82d412c33844e6076473febe4fe7d0dca4ac6db7c738340745d74547cb03e24277ecc3809bd70a3d8bad8cf58eb14fbb96619f12b5ef671e05f6614bc355ba01921a64d81dae63b98da5f2d69893175fa83619da19fe02",
+ "1c08fa87fa73d4d0aa9bea57b52345bd5188339b1f3dae8686bad035c6ba535e27133fd5c8e972e5dba2dfef79e381a28f0f8d0f498aec1121a851cf583b36ff71946d140fba749f4170e41c5944f2241b41468caf4e9bd4d102fb17e491d6be98326bc30e09886e5e349eaadae4207c94d7a5d1e4bc825cc9bd94de8494f2dc7ff6589a02bc120aa18b00146e06fe3b206c300d50c7cb266115df1dc11c20b5ad6ac741eee02ff1e74a3da5241d4267e03a13ce29334082bbcf1ab3b36337b40d59443297a6b4e61e67dfb4ce40fe3a97e61ef086c287309152fec7f48c5add84ee3df443556cbfe31b5b71ce8fc38e7ebaadc8379bde409c16be2a13e63ddb14c2fcbfd2bf1bffa9334dfb750862f387b7fd526a89bed78ba4652cb5562fe43586ce7910dc8bb4e6083501dc840cf32e7ee044f94bc07f6574c1d3234d4ed8447eec51a423d542de70cf72af0cf1e9068ef706eebdff7831b9b4e445774254048b23694f65bdef854fabfe7b3886a744fa341572803c24b5b2c268c9b4d0635681eb2fd6fae379ef333fa4ac393372f26ac5f230d10efa7c166788d585a800cdcd57aa7814e54483ae7000b31a521ef60d84e739fc2260357fe58efb59efdd6fa0eb0db9b699bf56307fc0333eb56e553c9319b235e14c2d38cfee45a5d18c0ba6ea7ae5f063b9c22367bfdb73fe1736311953a7b817e0423e616666af2405d8e1d386ac4a246ec15ff667b1d87c80f67c759557ecba9e12ef292f8b584970c9e5fed98d0eda8d857b28c76a85a3a1a64f849c95429b8746c234064acc0f6fe96c91880e9c196a0ad15914aaff9002426bc60e7820ddb44b437d8b4bcdc218c79ed7f059408e0da2a3a9dccfb8a61c9093eb22140585924b59ec6b5d5442c1e5bd31296b878d58ac05c5d1fef78034cfc9b0c73f4bb529dc661fb4dd32f6137e14590751027730aff27ea70bd1072b7939a7d232483e5291f3915b40bfc6a594539a5aa94f267a95141131228dc7a10bbbee9e0e6086960588d9da4507053d3ed013e37f2f32bdda1f908c25d2d5248bb318b17abe7095832bfa50634fe3b23aef34703ce81d8179bd1e332d9061939b17ddf3bcfe1eeb10e55b136d5780399a6d335b24787b2a5863f31754f036819c4809acd2cf07406f1d10c9566248fe411152be600b3fbd0b908dc81c2e4eff7f73470ecfd2c29aa68efed34f772aaddc68dcea2a0753ccb0026ccbfbf0f05b7f45dac69ffc288daac41d32c0e6082be95ff9ad9ed5a6388adaa9d003065dc701a4f9e1923a4b7ffc0e74f35cdf319b7b811f2e58edab7c2c713a0f1432ccd594644f3e40589d209265c13e4be20aaded8c8a9552810f17cdb88b2ab080eedfc826b4f6bc153de2b329caecbcd0da38b280736aec1fee851e36dcf83162898738d6507b6f8157965caa26384a9ea6c4ce5b73fb7fe33d3b12930569a4d0230c150a0f46ff21c05709a2dbe463b5d89c5612c5a546e068d0c874295fb00f78d401f831319337a4535e11f6a021c5ea60ae0b8356a9e6762ca9a17253773922ce346e769cd2a588bc729ae8fcbece4f8f72dd406678c8238eec2bb4a70c55978109f4416ff1ea89b8a56db14b819ad69fac9e4531ceb3e6fa820258fcbe551d9a5468511d574bee9cba64e01d24de9a814b30643817e075cb83c9c889f381a2feae80bd980c6cd74729be4538a7b090ca605bbf5dd6a549c0beada65ce1f9e2deba22c6f7f0b1d89ef02db98f40bb1c1c78cdb0c3e7f8111f3260307a8a2c440c7b2fa24d84f5a003455dde62e4b937ea8b5147e5bddc111643878a6238f2c244174e6eda5ef58c026a25071e55c3cb7808080fe3c855380ff06e7f70f9cad51de7d12e0bec1d48c6c1dbea483847f5c4ab09bcf7302c30117c95e8dd1887f736b529e3e42f4bedd80afaccb4bd36d9aadd1617cdb9cbd1e7d1389e04d037f155ded5b3c99407f5d68eb068e3977777a15686395606d48ae45360303c6795badefcf47f9c179df33c2a04459d45f6ccde55d1225c4d0789b4f4bef2c69ebae69d8d3c9308debdc70ddeb0cd8eae28104b0378cdf99351c4105170714a260b8df27fbf47a988c6ba9fb5b8fd9f9095b14634cc99c609198dda4349eca25da4c69ea0734311dd5e15c58920fc245240738065b4507806134fc628b8e7f7a90a346d4508d8a810d1838093d5da1d0c13ab2be45a38b7b16adce48dbd46e51d6e8ab94dcd45c2b7f04d84269f03a8dcfba1cf5232100bfc755509ac46cc92bb2977c9a83303c991176fdd5c6513fe7633de6966ca210194456b59f086ba62aa69f3c12d09e483de0fa50f8fc82aa43c33eaa54aac4a8bfbf4f51789a88aac8dd7551c2afe211c4d9e44e199fd7693c7b697958142fdf42cf8ffc91837c09606cd1890f563f9ea1487a03a03ab2d09de66e0f89bc90662d4015d529aaf1ea6507148858009eeb6d87c633449fbfd94cdf1e7cac89e2504c0c0ee94c9e138a0ee645cc2d197a747457049c773926026db73e0319b6d8e7def5f75aa6f3fd39bde222e4cf90902a07917a4fe1d80148fd1d6d44156e1dbc7493730e456527a96d9e1c2f3763310213a0f49074be75c883495debcdb661e3dcde1a3619fe9df7acc50f985dab2ccbe76a228e21360d030ab1fad01f7c06a03f8b97d239b64f0671ab167b50a95fa671b93ac0cc32e222f0f0eafe402eb8dea9052f246dc0d3f2f4641b1f34ec81ca7587a6e0a63ab6b946ecdef38bc154dae103b97d78e0f1c6f431da77a950109f6bbc4b9f7370f440dd9d85e2e782ccda16af50fe431c5c5de300e3486765bdf7c574fbb36b1e59195bc2886490b580494e511b7ad74c36f2a062ef93f1e73b6ccaf4da140914f88113304186d21918e1cc3a65fc7c1197fecae908e7902c65a024badd2fa374cecf96443ee11dab7bc710562bd71a0856b2f8ab2f0fc93d060207a8ea393d3ef9e5bae3b5f53ddaf7c045932f308ecb25dee55a0c2678a40c276be8530208a5654bb84036c7d7e17031cb6db952793a2c8db60b6fc2de162db0441352a8b345f6abdcb5ad15c3f24b081781524dca781294ad02edb096c046711edab9c1280e67b8f0ad3b6a08a38b78f5ae8136a8fc7f6e538f0724e48bb7ca56541e87129009ce625ff1dc867a69d4bfb64aaa6fcd75c2a84dae8d7c8316e80a02a0c93752d89025c5bb6fa5277a02196e05f72809ab0ca2033dc30d899786fd24bfa774757dcbca9d6ff210c6efd31247377902eb430edb0e4e0d5bde8bce4dd74e74b06c0b4f38d249d22caec6cf2e7b32f85afe493fc621abddf1a975d90afbdf7322370ad33149339f54a1e92cd9c9c315b9e17738ff423e7bf324f74d0d210ccf645c47ac6489e53a60e91b82f15c73b4a3c35520423d85a9531c42d4b8da597589d3f77ccbebd1213c26ce411b6c56f6ad2d278e843ab26deba5c7151058431fc7d0baa27d2d9a373c5e7e972b4db6215f629a0336ae6602a3dd701c8e22aa7bd046d487641eb258aa4426de8893687bf2c17441965ff3759fc59a1d7cb8ad1be43f332",
+ "d752972ebcfef0bff8c62f1b0d708d29e52eccede5effcdb15bc31d5ab0c8f3ea9e0965da7e01d3ef877607cf93fa63936dcd3d211e542dfe8c32273c17e9a782b9ecfd35165e9d8351019784dc6307cae389bb1f148bf1993979273be088cd6b5f7b69622abfac8decb46277f8c943d00b4e3f2d9829bd02f6c2af40e8ce3232f3f492f6c66b3428eeb01c8673073e553d325d493c986a7338679f1464d1041999ded381edbcc42965988188b4b37550233869a1e18175643a00368d53b5fa2c1ea6157e6c2948de804d77019f15f6d341b3724d9ffe6547fc53b2224a1d7195c4a78c9cdb12f8365ff787ac73eb049ccddd1d83990c7d7a6f0ae4b113be1a49e4bacd963b9f887068dc46cbf296ccea43912ee164f586cc9c4fd652c2b1afe6e70db8cfcce164084b4bde049bd3810eb7cddf51ab5233e2182cadb4ca28b3f36fde5565ab83392e20a72ecdb6ce10d81c49d59e2f215a60e9a45f746b49ef2267f6e15bda9d1f910fbdc02dbaef8ce11581be0d2892236ba8786d1e715f5aa1c35a2cb1706f8b353e22f2af6521a8e7579434cafc0049bb9d79b1c1b02c691eee9a4761ead3702340fbb2777f67ef615119f17b7af2bc2669e51a4fca60cda2a7ca3e6d052f488607e347f845d33160b6e80effdd42f347e526f75611a3b74ca3017cd981587d1efc99fedc0c3dcb76812eeb555755e8a450c89125caeb9eaccd2098ef4c55e304bbb72f4f34c446906e08302c8956a21e742c5240ece5ff16d9cdb68f724bd6046e0e3cb488d225e9de1c78d3fad20fa9df1abee5737ac5652598d15bee2c95403e0e97566fcebae9caa2bbe0fb9095f10dd1cc52b281c048416a3ec543c659f234731bfe729a9e8a463645b2183997b2425556260c7bc8ef557d7c137c61412cd17ebf7008afe0e837d2acf3f97af29c1128a40ac9c23dc2b2fbf7cc1b7b7f7fa71e1a3384a7c36f0b4054255dd3396a777fa9feba2244f021f6f8f776a3cac90382a8110dda5ac88032c7b679024729ffda8c0d10847efee28251ada60c0fa7ab13d11b94d52d656379e15766bf3ad47d05c522500231fa21f1db82953f914f83704d81cb78e457422ae03fbd49ac580c1b65bb6d9de61c8344f5f8a6ae7df01322c0621205e5bf81cabb63435b67004ba954e449b5b43b3fcd49df4dcb0abf613f3fead3612b7933397d44e7b9076d1ec1f1a17f72aeecde17ca54923e3de38e80f3f4ce6eff7327c9212f9cdacdb64a616187ed081d3a4644ae9fb74169fe224b06dce84c43f1f0e1393ecc8b0a1a05bc46f1c13098d3a756f4b45c136705cff653bf3cf857e03e8477c795efda246b706bfcbfac52c78f17ea73a3af98b9efd9aa9082b61a24edf10a324775c4152b4349108bb99af9b54f16eeb80db30282df7c792255b60ace83c70917fe6915b6fb7c56ea6dec9d8862c9bbc612943bb57a66ddb29cda7c1da3ae459d71760ae9828276da43835006e25630c17cbfa966d286135f8bba29b138d40f2b5c237bfe17749799666a793305f02d07a624193a92470f3b0e99490bad147a89f5043227bf166b9f61749f0e6bab0a2ce34217da3fedf914df607fb72c20d09b377f97fc364a423a6b5d086a52f2fd5d78c232d25d1f98e63abeea3b54ff02aa26464dedf482b361982b1fd3ecfccc70fd74c3543c449f5e428334d5383aeebc9c9f9e110123f635d2c80947969ef62c36de69aa4840b92c3ec4207e832af27a1275e5b3967616b0d4f0cca322a86ffbd4b93ccc0c215115d1a20445eeef782382f117de9326499c3bbf1ba8d584dfc8de8d22a09a7ad66136eca9a3dcc3aa5b30ee437207de3794d90a3d7005c5ed3e5dbdba457995091ad2ae51cd51c4be2d0158a413240455e98c629f1c063081d927a460d6423f96ddd3eddfe0f790cbb1951511b367a1a77aca3e4c32e4456b0304e78742ac665d336d96c65a30eacac9b0bda847a8bd2b59d55a17ffecaea6cd3d4ea049f2907dee568a0c663523ef33cb7669fbcb939fead491e1457b77837a84545fcbc4383518ae26f870d301b75ebdde47747de2f1fbc2bed2b70047dcf576e5b9d018019d7259311cc30f21e8e51093f092c47693b9bc731f54755a4ed08fcea7b38fdddc69d2f07891cc3065aa363835956bc8c565141b1de181a63d8d1a43e1a536b7e787a93c453ccfeef92e9774469304852e2c396a1ed40e2c067809a9aa627cbd98363b3d49c4dbc240917e11fab07d92a76642be0691fe9bb11cef277a83722fbbb49352f79733b2b6dfdad5594a188dc60ce4c28f6d9fc67a67f21ac0dba93f0c95a05d31ed44615e60fab30b126f48d3b0fff0f2683a8522e182a2e404313a4d107f46eeb5fc16bc8fec8aa8bd7ef779949dc476a52b5a6b6f62a6e5e5b9a8655984f9c1a2454473c84a049ef5175260a3b0dc0a0b78d253df2f4f55e2439ed9db8931eaa64907da430738ee6a805b01719e24443e9b08bf0f0aca82b4b241fdd2e16ea5d09d43c2c3fcfe815cbf00d54aaa57645e6b5af773a25c78566956f92ef49ea710fe58d264200350b6064e0bb29536e25a525dcc89a9eeabc134dfe769562ea54d12cb51fad481bf34038627d6ba0a9bae15cb8696251148218b952aefbeb1906ffd4a8e4e16f2bcee9bc33eb148eb63aceee9bb4f7191e94e05e317aaa5cb092a6d894a04435f3bcc1a89b39e4358f3d8f36feaf6abdfda7eb3d60b2df03265c91073d494a4f6e43ffadbccca77f9a7bf4bc53c2fd224ce12a6ad19179565081622f8f860f81396fe638dd89259e1f8048c014554ad79e71a196013782b9681e9c4da4a5a7262b1b192fd773722e119e8e9989e0bb2b56de70dd53775553c7ba4406f7e564bd459f66fbd04ed7d5ea5707e5b05281ac256cc17337c4c825570137759e97f0b7e20d60752d7123da5cb2998aa037a08043bba1edfa0779a301343b7c96033de3b579b1962591f4ce372efa3367688611ecfc8456a28e4ce0b9683cc90cf508b2083675cc7cf38ccbb9fd35a771f361be7720dece25e228410003133425eba4e0458e9580147fe6582f733d98bc7e8d71fb7808496362f1727994376d3cdd81ae40bed32cc94eeae2604ffdc575c553d0ce4d4bec3ba944f3665b3cab6a9e751d485e28523b76b2bd7c5cef2c75ef002c8ec5119998be150401ec947e9c675867c847177474e8fd224a79e757a339aec847efaecb5cc5a5cd0c112bb93c6b011c12c5e70d3bca4634c49da028c8e4373d41e6299e860aacdb98cbe99442e939b993b0e62204803a5ca590c95c749425eb6fe694b3ef5510324be25aa85620959d7e5a50b185e7aa8770fbf1c648eca324622a137ee3209e85bc246ace67a2e043583ed8c27317c778067e96711a89d34640dc070bff2f413118af98de0730cff8a044f8b7367f89d4eab5dd28dd2bb8e56b6d2b2952fbc1209714748c88ee342a09db60e88b9633579a9b69f82829200256e0f64370b70ea82e128591d60fc133ec124ad5b29bf5b70dbb07387251760444950c21d382a65b48f9bd1d1d0fed112549bb43",
+ "5803dfecc8a4a25478f03daee3ab7eadb1b0bc02cec6b0aeb6a9445161eb8fb3654e4debfaf90605acc8b50ffb9d058617fee2bb55e0f283503a2b1dc0c1cc444d2ede516daafcc1ec87b102793c1b8f4083c04d2afef06ff174d86434cc944ddbe456df949a255296e596f6bef6c87a48a11923df46d41b0fb7b4cf18436ce8bd3d4abc76bd44455a94767b87e17f28731e789af219f1dfca9a2b8e361c9f9898b5daf2f0ee34954ceef896b9f1f0c1d0521eabb97ec76f987d48951039a4490eb11d1b19366c15e0f16e25e39c00caa5dbcd9eb0f980b3b02bf320bb5f6b80f0163db592ba1eed24d02183d9c2adc0eb0482b6db9904470276f723cf0ef9f80cabc1e3da4a90977e4e68f1c19c4751ab400c23fe6663b16d795cbcdfd4133030b72f942cbc8dd6b02fb240942a0816bb5b1c1ebf08f062a2ba4cc9efb3db9da01f430b5475591465f9a116680b419216e0a7d0925d8d4b1d98479d090fbde07fa7d26576f16645f68ebb3b45377bdda577f9c115500f10279fa43da0c5e8e622c22e786d347ffa57d8c4f2b4711fe7bc979fd3ef0b0e145fec6a8b0b565098752e0f219423f1658cfd50465d290bb516b08ce2f9e245f37d7600bcb871976064fd0f493cbf612b59707c39eecc6f8d277a775acbd8537d59f57ea0680be53f1fa7c4fac1273eda17935400980d24a82e11e45a9f1a87e0dfc25385e85b8e297226db777862ebee27cb4f8aeb562603036917f3008a60aa428accb4db48752240027248ebe49b55926057cccb92f992bd0a2fb4c1695090812b92f967a7e8c7669361da3ff6718a6de8757f53b77cefe737c1a9f0bfd81ae6735209da333a8161bf70bb9c2f7fc0acc0af89afd9f8f6848a9c17264473d2d514929d36f6bf3a7c074ef2e748c9dcc00429845ee4c2321fbd47ba39c515e9aadad2862a82a30b73aacd5dc0e8bed0cc116488067430d4ab57cd463e48a99d06b9c084e882703ac164f93e2b076802a3c5bf2bd2d4f1c33f129feadeeb97d3193aba7b4491ebcd175e05f22bacde68da9715633d07a0d63fee141018d4af5bd659d49a92dcf236ceac1b179a52f5058f0b24a4785c7bc3a6fc30794c5951de25c39199ea1c320b243569eae3122c01af933af94fe3e9510ee95435fd3a388afcabd81c6121ccacdcb48a0f123d1772bd2afccea6c5f226edded3310424d024f78e85fe69b00dae9a713fd301c57f35ee1636e92686fffcbd4c1392fc85d03852f529e70f66306bc0b3e681b0522bd21dbb110c07999bc77400eccc0df3f7f5060458b4ceaa1c7e9dd8614d471feedfd58403eefdb270f8e7509ee05a1296778e75cf00b2480644904bf26776a66262dc1b168379dd8b3a40e4682a25d26fdc5a529c2d0e3b08ea868289a956fa95d1209c1854fef8bbb7fbe1ea7f13d53b9dfddf81b9156a942a305e5e1c67e260118715c25626d006f862012cfc9298d0e79e53fd767359e799a4cb91a2ba526cb442bb80c14ca4f0c64a3680643bbc27dd67e2b390081b7e19b41f479559fd92b666e03ce07d826dc8cfee2f3d7b4ab374f00e4a62702e76d9eec48e311a2f4ae1d17c864f73d8155c29dd7379a982eb2b80902379a426578a3a628ecf74c64e1660d95dfc14df06246a7cb674715bd699afcc7b9426da846b7f1c256b933a42d98a7f9ed60eaff7fb6e5c089c6148258d2a1c8f946493e058d08eef39334052f892aabf0f02a8cc0a6a04b8369cb0a76ed0ab7545b1121b4bc2e59cb4e251dc12d4ab343dce6db40e52a46e473e7018093e515e7bb03b2e0fa51a3f4083facb2d41e99fa6aded1a7c09f56299069c104e5dc728556fd6d3fa827bba47bae2889ff37da8b493d704343acb6fd0013b3a254944678e55bef664e933ab5fbdcda261dec29c1e03441dc0d2c4dbf34774cbd623e59dae4574865441389a3d5a001ce1a1c6e6c25decf1571cc4c7d8852d979d6332df24c101077c35bf80495fc3342e71caae932b5fc3aeaf0e4deb6048c3577c548e4d46bccd65380f8c6148d8ea08d674f654f1c77049102e48a0bd69fcd233bd0f8bfcd907e02764d712ac69e9894e7fffefdd89d0a01176aca2c0958754982f2d02811faa347d7f59bf694752bed610cf9c40e9adadae6613a48f3a17b5aa76b031930af347342defba7afd54038500c8526db0b1d4b40e36294b956d363fa0f4ef6e60b2484f4c9c7edb9fdbd85232741a2a03305f719c8ad08d26c520aaf2b939d515f2cef2629d492ae1894dfbb7b9f53480bd0e4dd7cbe3431a3b8b1b29fb31bab754984a7f859acdb83e0e76736780fe9c306ca6d9493e86112b77320cee3b88b41ffb74b5437a6b52d24969ba254ff9882faa0d416dbe950a0ac3537302256681c4bafd3ffab10ad61c1fb3568802f241e5353e7de7ba576b86a5ec4d92928d69f16d6f7c34abddaf22f3bd6b3d9e16f4a6cb271786c3454972a5e34a102d573ec510c76fb5b8e52050f0dc66b7b45ddc3c07d0bb65f136940659219f41840bc86447c21aee6ce86d3323fd5c54c504dc49ca89e203ec588bc2aa02e55c6e7081c04b3d942d38fe70823c2b4dd9f77e8f50a8b9c2d33d0a6e542034fb61f85cd51eca71ce093dfb9e5b1ecc855ede1177a7aafce41b6c5dc24c3ec8a5b2af00984441e831c88b656a82c1f612b53680664f5b1392f6c464e3215475d7163ba996ffb1a351f213fb3b1ee10d63ded2bda0366583fcefa6ea05e178eee7aa9c798b276d4ab1d1a07440de4b3dcc8284a94ee1ad69ca1b5e87974890beb5d22c4491442d9b6265a160aa44fbb116247e88826289be77ad135a656a12542322dc5733f00e8ba900a6cbf12af8ec23721e3c4219273373a771ea6fe6de931c6065f4bd061a77c3f0ab7856b83700be00f8e732b6f626d30afd76290dde91f0030dd091916a22ec2a4499304af14fdf9e1512fd5f220a2560954a0c497fcad43b116df845c8b8be5f4b5bf143b499e524ad9235d637add0e332e3a951fde00a27c4cd96d05a5dd03b5d953fa25160ccc081283736f5803ba441811fe051d7330c1764bec131a4c03e5896cc6ad96283a055a1f4ebdd77d0f821c473acef5036abb3128d721af3b3e491da9b326a726c09aaca1170d9bacbbd4d51e10870f63de8e69f5a7b3f09a1072df26d998ec166de199868b95bf4c1b27f66ae5c8badfeb8042a1e081aa5a1dd934ce970c1674e5b19f5f7180ff7bbe9868ad879d1944e820f8bd70c301aeb7c7f8312b7a2486bf2053b93cdd3d51a2a3b4d673d2a314c980a663b67c0f4d627ba18edd67ece600f5f85fe5234305c3dbe9b6db80c0e77e61eb6ebb4fda6079a7844adf8f84d12374a106c9f87b98d1ef370b056471187d75432d509c781951a1ca15c9666a6f8eee689cbe7777e4e8922cb6df1de43a0ff2a13e326f7b86ba96b130702b14c5c3080e7db1f21a5ad52293e852b716980dd16a3ed775bd3e38156929f805c3ff256a364b038b4ccd7c013b2731838e633fd98bb580b70d57796c39745fedd93395decd554405734a81417af36279aeb0f62",
+ "80719c9c7a55ad7a03853943791144959d7fb2bdccb30f6cae487bbe01aac1b414af7a1238c7ea0934ba498b6927c950079b00d669899e02dda47ca57aea9ca5577c27c3ee70e65b31db656ab1937bd7e6f394f26c3ab16b0840c189190ec6e21772884a8772fc4f12a7e881a0ef8e43c485da7c69105dc26518035fe578c4f73efda964f3bb52dd324f61fe51078b947c74e615d587a6480e2ac8dd66ca5183d3b4c7968b63b452639f4ffb83a9c110b19b5e6858e4a6a65d9b73eb0ab782a3dfcdb942973c44bd88e8af7bbd6cf77f7869686bbdb98a86fbfff2f5a7540e8f6dd50fd2a76a88a5e803d11b2a608f1ac6eba68e4590bb4adc5456cc6c779f899e750de87561744a8239419b3ba741b70ae05bec461cf88faac9e268644fcf99ed2af41c3b668cbc3cb1ce3c96921f340a516f22be9542b428ee1257c40abc4d49a5287fbe0e1fcd6cb2f3ee9684628dafa30bbbe53e7041942b96bdcc7a0d0d1e4e06606cf2acbcaa8b8653428ad8eb5e8bc1a6459506839990ac6aef837b2d34348cb83e184333f9aaa586aa9ea5bdd28ab551b72219b7d5262bb95a55c69a46d38461db85bf154812c806b35146eca0f22091a0e58e5b1425b6e7d48ff0054c302bd288952b40c0ed60b3f35b088cdf994144ae878f72d6db345b9e39c2d5f38a9252594551e21cd892b7087e92129c103bdd3823f52578e56e5c78604e446ba6ea0d89f88f66cc665d7d4e3d5763505c10c668bc99af548353a9e381caf0b940a32dbd606846109aab2500577a23bffc7828ab5dda7e172eb1c5caaa3e9b99f6592ee51075009e4fe3d63978827b28dc9bb2d2c70fada3bbb9696c1b187372170f36af5363068b478853fe17e6f9493afcb000abbe27ddaf112f5f52ffb009feba03ca60436a610e237be164b727865c2413573156ea1d25a86ba319f674fc492f9d48bee58b969b663923a56644b1642f173e895bac2d6fdeaff764bf42fd3b123f8d6904a8c2bff64b3720198e4dfc560b855e5faf4c2b09f362d9f6d080d144d9d747474c833249f751db7d34eac4b25a291fc878311b1a9c99a40e86a045852f1ef90597b4536e6c31040c1726ab09b3b8be0787e6ff08da214a3e6726a42695d411e7496f67483136d0516eeabfd449f8e8deab319adf4705327c5f63df1e93d08323ecd22096bc166747f46425478a1c8785ca28f15a064bda3673efeb9900a283306871187a76e1cbfaf66b028cb6124e41700aad5d3e785ecffccd9d2ad6ffc468e0c0c3a93bdbbda7c1e2f589db422b21d1ab264b880542e2888e7f817e40d359046a3903a49dbe9fe836729dd86557628f6ec7bc02c2ed01a6347276cde4301abaed15a26fb5e6a08802dc7391e289a11a7a26b965ed28d38fef0038925553b1a811e1dad7bd46176f85e07f6c4f3d2462919bf1f0d0e37ecdad7d50e9178aa6470fb60d9995c1c02c4cc50b3efbc50e114fef873b2b164c7b0a828ce314ad5f46e648f1b1d690eabf264e55765fa02df973683c9e689f74b3377669df3cd1f07f57b8d44564582064adf692c2ec249bf1bad60f182683d4e793238605546ef08c7164c2aa10c87b82639e80ea89ff1da0a88f30ff478052654819fc484a52b205510cb61a037d89054317ca6e075721c95c3ce6dac85329f86ba6cf622c68e42c8f6b0e27db1c1b3e166b41deeb589053858950f733dd141e4d38e7642253d814055c309d0c4a80a9cf3e30c5ed2fd1261b1619de46a7961b725a5f91ecc90113370e807319d2589da8bdc32e9a3f4e21f90d44eda3513630205e261d3d9800a7c90e47e82d79bd73f16d288b3cfa1fe7412186ccf3a80d4dfa7999da751ec5a95e6c0c9db488c2d1bb327a8084735bf9c02aeb83dc76256ab2f73a877713f222f108cc4781abece4f957de28d486c95b83601375b86c971d8298fc0fe5d907accfda876f81de264e3e26612be586fbb2d4ece7b6a00fd6e55ed35c0df15dd95afcb97622beb336da964c2e1c1a36b426e4665e722d84151fe67e516eb8f3126f671484805eaba296c4750553dbef10df862e9c4e05e673d38ebbe2b470904d370870831c143373c63db5ffe38e691a5251d21a7b2482d86dbc106f864d066b9ea08a9629987b6de578751df9c77428dc651368e4a6e8ae17f54975c3c67b693c8fd5ecdfb161e4af0515321800ac313ee881bb02385a5a10148d5780bdd8871a6bb2f32046e8ee65f76bedf51cfa2bc0a34a068b898ade1f601dff91951a1c3bbcd5b17b42fcdfebf329692696ba834762601911d9bdf51ecb7a7508d901a4b7bcf60fbeaf592d84e51146880ed5d8b6733fe4ae3a42b809b9e7ab2d26b36c8a073024682fa1084db0adfc724b5b632d2aa91461018eb093796466728818d805d9579c052e9f775658e6d3c9421a72390cec65e22154a688e34f5ce61b76048f7a005c38ef4d7f437569d8993cca4692286b6485fa53aaf5384caa9badf1982dc49e93cfcacfd92d51f912d9b6c7c2778af4f5ecbc6e1cc61c9f7301109ecdf1ed2062d1979fa25776ce0ecf3106a4c83041ed10a88733538ec7a526b60e29f1aab78bbeef890062e4021f734425fa992ad02fde4d874e626da13124896e71ab713f15bdd9cce4f35d40b2b33bc0409b23b44fdda0010d8109fca3a93b8b6e7641edba38797b8df6759e545b493df71f89004b6fb7b4e3df3f45a6b92f26d58ef980a88870d667ab9773b7d7e2d0a580844493f27a7d28ceb31525a14298d1bc45d45977e4969a195ec8a5393a5eeb9962e90ae7cd2e0071a833bc558935cc413fea07e58d7a5c8dd39cd3f5df8b1bd0fa0431b97577b3d9388d755cbc067345c61b57f113d8d50cf20b5ebe3b16592e8f60d24856d7e3eaf7cbc2591f82039922e90fb1f1fdb13c38f5d10960431dfbd264bc61f7b55b11927b1afcc643e419b37362843effc6d7917c411a7972a220c0fb3cedcb274da64c5bab6bc621bd6c1724d77e2436450a4576372615a25427ebb34387caab7baf9253d539f6b041b207391b2217c4aedc6881efaba502994e88291fda0aabc5dff34b016a847648fd172f1f4426842a7053ba92c05697758d028613dff9e08ab14f2776d461f77f2cc6f371a411a3815bd366fa3b18c2d0497314b96bbd24b0733c717e049bd22d41c881d19e31a94a0fe1b6f62de766f076e18b9e431518ab86f39e61c9c24c856292a049bd7be77008a328cf10c4d1c26e96f4a14c9998480f0c51fba258a1bcce5a9f39ab7b0fc6e4e558ee7089bf389c9c1d4fd70e2a618f288475c6cba26bb9a111f7a026a2e4cb0c8efbd32390d640b99de4977799865461960a1c0269710156c18f018403b28394b4a2bddbe300426b59ecf694f9af584883add5d84fe45347c6cebf6ad8b9884b2917862418c819ad9a371e11870917fa5ecbda13fab5d1fd80ef207faff94dffe34c167cb940061704a40e244ce9f02efa9d21f009ca7b38a205fe59467f2afba92f0bcbbbd5e2e3ea4d1fa2925140731002996a6b700e8772ee71dc85793f63720d2a2253eb51d39fd1",
+ "95b413fdad48f1edc0463794b582b6bff7c0e22e647d6030017f1307cbc5d8196659109c630d597959a85733b1656f1dae23836347f32831bd2422d94efc9b745a9546895f9cd63d024056b0d8fbcbddef426a1d6966c2dbb3ae190f22b440d21acd04f1290fa6c4a7d9cfaf65c00b9e01b2bc744535140061a0426b36a7a69be2ab6f82b9719d5ea6b636d2109ee7b05b5273b9408569d8e796ccbe1dfa0593c690ad46d7de121beced4e16c9a2c261b5fa2ccc6b356e84ea80c840b191f6c7734cfce7e07367a023eeef283ff983180ad5b5d33f424e1b4d78674a512b8b5b7916143b91f0d7c9c71a93eca0a8040c8f155a1fc56995452c881ffa81a794024d242348c3ea7e454d18a480d55e95bd14f8e5e89556e011a298b28482a361bdf78512229ae9b8458de00d86f490d7872e248e65b32087c4bbf774aa689f89d49c16187f75b43b7ce4e4ab2a7d9caee8eaa91587beaaaabd507116c164a08b36e1c04df297159fec46e059f6ec5e00a5cca781c0e6fe6e584c358daadf5fbd16d8424983295445b7aba27c4d91c3d16c06209f5f01b8e38176d8fdce4de664c7d98e4f8ff0415b5ac4ce435fdc0c535e9cf68ae1d490997ab417e94992cb28c3ccb8d5b53c5632ed3169cfebe821b26dc9089e90ee1fe5f0284a133fe28b783d8a9eb372156a34ae2f5ccb6513c050da524208e760fdca5660713c1e1bcb0be3da9d18ce6ce2ad802655f10b28528d61a0c95e65b9c653a24735da64f93116c8877ece0744e87bab77c9abce966617b535cf6a04f5ea5e790d273ab470a037a1858a3305f647e62896474a5ec84ab9b4eea00d31abbd7408e9ef0f2c3821cf0377d641fbfb351db29ded3bc007482ca65a22bc24dbfc70da3a658b5a0368c2f1ca332ee6003b659b966b157e550337db834bc2e37e9562764e0b87d637be37dc8fa27bb5190ea7c559c3683bc46ca069e3031b1d5eacaa8ba7f7ab2e80ebaac5ceb9d6e7d0e1e603aefc4119cfd8d89b8303d7850bf14a3e5d15187bc74b3719be7de521355b76298976bc88ff2a0ac046d02e4a63d9d8e0b62faf5b054cd3c008a4721ed77c855779ce1f3f6520553d8a2f5c05ce21586c72ab57000d248dcb1105cdb1c3b37f6df340ec91a7493c5a11e3b3ef25903feea292f0b1737e40ed5ca83c43e5fc114f785c97a049edf5f6b60ca2d6c347a7714c546f63120117fbe3554716a840a1e016d481a10bb8b4c86969ac4cfc18b61f63422b59c8cf6a0ee9cc7c1060c1ec487ec8089e7c948f03fe332cd329d61bbc031d3efc1a7f0a011676ceb40518f8fdb3ba1426296f0d780c92adf51b4a637f1ed5daf4053f493a671911abfff5496324ee40cf50b6bf276b9d61834a336f845a0018eec619620a69df41304961cab2407b55dd482e4da318732776b9cc434d07bc3fe2f88c05eaaf3c9e60e5ecafcce1f725b441a91f823843148a099d62bdea3fe2cc3cc2d98fd705dfe84632dc7d90e28aeacc64420637a5d6d35fa71379cb49d5c29a1aa08b52f9e50e254e3cf3800b32a1b0ad2a686d7418b5bdee110b5b5f7980e40916b4081c4e2c5c3c3ea653a42ec0dfb06224a465d8d28c68bcac3d1d78e5b06c7ec4ec6692dc16b86bb34e640049a86cb73d4d304bcf8da4f68364fc4df950391e327547acb2d0700ae642cde711f5a6f2f5546dbe8a0cb16c1fb4f1db03caf315327ae5293124cd9101f663133ed18c4055e7174203470a8518fd4d95806e7c85010782c1ed453d727c47586e6f1af6176f8214887f81c2a0d72679178abdae5d751bb0c6254fab7353110765b3e0429c256e5b28f994f49a2cebae053706799591fa05a1b3461e8b60671d4ee0d8f2922e07d1c3bb07f0dfaf4aaaaf5d45fd4bb7787e2f0bdf1e065555a65bcf473ddb5684a7e76d7b4d4348da38609f8e9efc8b3f97dedb7742dc44fb33e1f92ffc5595164348b754472b5e6b26dbe18c437396e67cb22c1406e7c57c2819163507d59b35975d9a8db8ee0f22411c2009d478018f319d3d341f349d944c68a5d4badbd182f48714903a413793a901d18b1a1caf5c97f01aa578f770ed50e915d624290a8c71bb966c19fde30367ac30769fd3038b0ff7fe69cc88c48502d73e536fc6fc3652ef0ce2c095f978bc49350628f2bba74d378d941fc803b6114216533390f7c2c7e2b20a9713857295fed7231a928ff6e2f7130661e40656cb3ecf5d197adf336b0802297819282c8fcd1c1064f6ace074982f99652995289468dd635b8ca1e8c847820a299715f6237957c886dd67c9f60c9c3ca216c1e2bd91e6a68cfcfd102f4b5e416137c6c3e2f78d6e5eed99b50858d1d3b6d02c7c8dd66f19b40b19adf9f1173e840dc9db17c4aa0aa8817670cf6d9349caa765a00b193e7de1c6535e0c0ba51fe5cff01ff2777d958184f0d495a5b84920dffc98c89b84035477b9bb0863f265c0f011ecb934d51d08e322ebfd6a384df65c429784833d64df9ca487c0d9ed92771fc0f05aac914f705a0423fa9ada50fed632485d585d69d45b66561117bc26a1f2a935baeb92a297bc99827e5302b5f4bf689a13a74c38b3d8fd4d3faba50371ec182c766bf606088dcf63159b3a4cd96d450a8376946d709cf00375900edfd629abb308c9851114ad963e451075c5af6a8422507d554b283addc3cc8e30c237df6a6120d97d3b13dff7aa28aa0eedae1c369ecccc6307d8185d1c69c36350f0b8e5ab7bbe128e5308a8bf1a3f0a5964f6bb4def83aec79928bd36f659cc06e53f40cd300043ee65dd30a8384fee0334a09d16e87cd051cc0c95398b7b6f089567183ed5b292b1828c74cf9b93df8050b76953f2268b3095ee28e37aef3600ff65b3aa1c216ee8c830cb1aa13dfd3000bfd561076aec5263efc42089c8d5c9a303ef8e34d94fa06471191ab8d4e6c32d0bc4bf5dec4b5548db67849d26b8d8efa12818822152b084512b3c9435dbc61791a85eaa6cc2bab05e95909b462b0bbbc38d618e036772c7472d114902a8a346ea62c5c51373ded28954f0cca6ff771c6f361b396dfc2236ca03338d272eb860609e755a11b339c2446d739c465a5a85f4a5ef3dd8bc582e358f1837be50e45f60e1845494966d723284641d7182bb28e1dcc7def1e21e175a1a12a49188ffc516445fbebde9c3cc72dc9d5b1f8b01f30589cdfb291c34d18eb037b6d85d421a6a5ed82565df76a63543b251f18561c6abb654da37dcc240b0b412d66f20a2f335b4c21aa1956fe3c5c0ad9cdeb90a9a2ea01aff2e9db0b9668557a0151f7d77071d96898ad771df08dd08249899f6da729b93d452b38db4918d14cbb3566d037820a51f0bb0ad3863513d3989807b7337c9132c0a5e68a17e0b675cff9b51ee890f76ee76f3dbd280a5212890989adf949829c80e1c439b7e0109aad3872c934cd4b9beb61d676778bf38b9ac4977eff67992f72b23253e1a9d9269d74783cea00c9ff1c7d4eada4c0c6d0cf18697da600b2f0d63f5f832e0c42a0f5b4c951b2f1d67b667ffaec48d048fa539df50981fa52b2f07",
+ "ac94960524860521f7f8ed94b95328dfa0bebcd2aaa4de5c3c615f202a66cea48a420224f36ce4b2c456929ebe4b342323f3362ef007dc1afab863b451663064e081ca62d0f1ccf75a601a89937caa85db10975144f78dd7e3e828765d110fd1bfbe3aa50741161aca5f42133b58f7ee3deeee0df88c2203063aa21fecb96ef88b43d024e0d89b45d284365225247c409a056ecbcb9126c7243de83d57a7d984a3aaaebef99720783744a0d98141f8730f69a021f5f3de065c0a523ab6ca96a2a9ff99e7ccb8a9856ef2b9bcb52fe3e1d59727a7f3021446adb6020d5ec4d99b100431f0fcfcaf5fcd0b030657061f649b44b85519c1e43ef38de3d17d91d682c716ddd3e94f2d4c1862eba12c21ad00503ce938aaaea738b51a2396a7482d0cb3aa43f095adc32bfda6481cb0fd2f80fbbc14ce46479045755d2fd9f4f67abaab9b1f9d459f363d4c6491d915d1d6498c7c38b52d30c64fc0d3e9fabe2c2142d7a2427d781d2b94f6eff7ceb2b47897fb11d0fc5db865f8123e7c6443f94cb8789726b987da48488a73bbbcc98a757c35fc100f346ec0fb5f4cd96daa08e7b8dd20e0043074a0076d3a05744c0f96d17c5b92ab838ce1423fa1a2afb56058c895ba255797aec83e18f38f492760e836e9fafb56ea386ba59ef9f7ce9bfdc70012985d1091a6976c1fb5bc5d9ff7db40f5fc9e182cb723ebe2b0b52ce4a62309dd5f729a44f7942fbe89f4859de5e0f1e5cdc62dce3d71fe25b8f89babf562f2b25cb935b04f9bc2db1c60f4365a62ced69190439ed51cd87f2513497a6b8ab7399c74325ffd40221ab5bb82440aa74ea89610740e673764dd703a98981648e80071ac14d0ebb8e23b3be85f7f33930f129acc56cd464cabf9c2258833cc262163f4d9570bfd3cca1bec28cd67d601d6dc195dc63fe5f64991bc8dc8d6004bbec86dbe2beae0f812f35fe2ac3209da760859c9032692f9577fe24ba4f2d152de60875e3f93ada9e25ad987695881c878a14edb77ce1a625e8d5bc1402e40df1114a8b3fcee1b5cfb33883150eba70be73a1548ef40361805a5867db1d05ac8a08f22e06a2989131f0607a4df7f7e646a31928b710e0b7c94a4af3f186d00e055a43b75b5b67fdc92c7f8df5bd11b2e1fff3d1a513ca97fb0675995203523b57411ad7e344107fc0ab66b3f812a0f8ec364964b76bc8564becd4ad175b0e432ab438a908aaa3604dd7fb09780a86718c7af8591c4061cecd68af0e21db30cdf6d4fde2f66989c3d42210b2f090e7128e3e344db60563a8fd4bbb857bc258db9b1835aa84dd8793189aff05d0e7ae952879fc2deceadb9a5d89b935beb198cfaeb13ca415a312d986120ce9c48bee16981775c50129100f27e6ea9f47dcb363374924a314c9009a404de4ff887818ffce371b5e96828c25df513fa8d1b840873112806d8a45719ba1ecacae5cf6c687fb5be28df1f07b9e19fa42f6fe27d9bac05a6c578e567243849851cb5c8ebcd180d468ae843457c54113648bfde38b0710eec67a55f655714e2ef1ab30c427bd303a5d05df98fd753e26eb82610415325f9f02bfa98fbeb8d3090e500c497befc30474e4a1e2637c2359cee8bb089e899191a46dd58064cdc7725c5d0aa0fe69f38d521938ca79ec89c18cc662888c63a39dbd9feed1b3e85f0c6e49747c24e8074f858178d1e34255b46bf8dd021b9cd630ce187b491d069e569af9c0f6051211139327fa1491b218d8a6009240372ec0ce78e019ad2014b839ff202784bdfe8ab96f7c7ef2b4b1f8425713c0cc1f14e685847ef07519609c15766db0c42b2f6ea7cfc0acb5e76a20130c4623ea05ac82ff474a909197a4759b8d2f7204aac6204ad995dd7ab56523a758829e714492f4123fc9753dacff1fe3cf324051b928fd9c9fb151c38cb89cb0b4ddf789d19c49f07851a97a6d19e98bcddf3ea1b46d28c39eacd4f3d2edd29fa00f90ca5b40f1b48897ea94422792bbad280325fc1bba2fbdb72277dd4162c14ebf42682eedcf27f2a8477ba7b3bc67e5ae8a308e4567f268b45df4d983d07724c0001108fdc6912116aab2d9cd6b1531c23d598136f69981bec43e365deb4d940db84df40725e4993cbb7f28b661b47bf43e46dc986b2a80be82e7b9b4e498622f10986f626e5c1f4aa08c2d424c27df87cb65ab8b30d241ec8eaad7cd0ca5fbce56833d4ddef056d4a2e38d4132a6413a3794c6dc0a41620616c67b93796b99b40759f47673e7b0f585449fda3e8f7a61692cd8c200bdfa375c0f0d09c02cdafce7a8a12cc988fae2f64b71ec53866198c981f24c9e3f775a3aef95ba5b65cb2b1f5210f696e0794ea050f44d54ec8b9aea97055b4bd9abbe4818098e9e9ec700d7156ed2af38307f64ea9c5242e0b471cd78809533df32b4f93816627b872f11d45ca60c313166843c854285e223df6291dd171a91fd11782f408272a0a3f7adf11f4c21c4d41da0645dd44d21bb1f4e61a452380fa984a3999beaaa5d592e9ed7dd101763e47ac27ad42cd57bf8b46a6f3d3aaab1163a642648b53de85c9c30d97525ab48cab059caa6d053652102e337ae20bf441f76db60a17f5cbad4bc317e735c85bf8599ca48de342f3f94b42642c88a79a853e4b3eb463322b249bef205b43e1a28c51baeb5ea103723e292c1ae8c913f7a1a8572b061be878e3b1b59874913e9976527dac11ec867fe7f6babddba9fdafbd45a9c35017b9868bda6ede62e4bae029a0cac85e91a1ff097a38e20ae152f3683458cfec393a489a2aef6b2640364e5f496798660392f440fb172d1fd8a647cfae6f81abb319bc206c9697df0d1ded98a729a011442a938feafd25db8ba2f4bd1ae5a2908877eb77a002689a9e0c53dfb2eff3d543164e5d8012e6f7db28672b1640cc606046f7ab5b8aa804d31734114e56a0d669876120191fd96bdb90a034fb5e4752fa49d04473e9eb6c3a783ea53eb201b17add03e01f252d2ffdbc992238d1ca8db6f867986c8aaaa544ec3cee4bc799650ca5304032f4f710a27af0fec21f8382bbc65bf7baacb92fad8b469e478ccee08cbcd2d37a7920f74795ff0ae745aba3d9fb8cb2341505b87803f8f523d2d88766714e81b53c789252221217223574c6b1497687be9edb8a2c1bb91c791570992c9b83965cf564b7a840bc7d26f1e6b4a94e5199df0cb4d059f9e9c728ea736def8d5908c618617617b306b027e4a44fba98bace5bbdda182d0f0747b067aae31d5ce25c52beb4d0c0471a173c3032b0a8379b2fb3ee7f560a2a5d78f04d9b1c330d2215da34c2a4b6f0eb745f6f91ad069bfc268326af77f50526e82815cd54fa462a2caf208c9e44ddeb41a5d30e3e53a118a20f91fd5c93f2f06cc50361a2b1687d11568848be686841b7e6c2d4319e6c15c2e287ec53ba1e4a211ff23b4becd3b5099b5dcc766f73fb46f8c4ad7643da535a32aaa7b811bd82de1bee01bdba6545c29848fbc39d056df07694b209a174a3964bbed78dd59e1436eb5bb80bfa61e9e01528eef79f94047ff2ad2939705258cd3d9667",
+ "34814a57012049aebfd25486a71d33a2966d2125c29adbb30f40d74ede7f2d40bf2a10bd94716e875bf4dc8da5e1f556bd6980de3aea519769963d5d5849c040737cdb643431dbd0d08722b4c214591f54a258776159267b2fd46e3241dc07f9c7c1d2fda1e1824e718c5fa872e1493afc46153e7522538b7705815c90f23b87fccf61c44feb9114083f0bbb52926642604b73e47c3dfe1971e35b0ad98cf6fe325a2754ca4ed9824bf35ee039f944e8f9c4c7994b88a11b251d8bd31524237591b557cffab7bbd2c612ef440e29b21538fdb83b64d5e90518f0479e79da4916c774edbc40af4a09569dbc8acbcc720a88501aa7c81f2d2e9379a97c3f3891e52e6de5e980262e2da4cbf3e6ee942c203268a2937f22ad30d0b6f6460640a4dc3ed3151fb65e4ec08d1fe35c1706fd555bed4ec48208c00dc482603b5f9a7bc260af6f1e554aa0b7a0fdcc43bed280fa508b5d380e7753d1140300a055c1011c187a6330f7373c8e904c314503c2181d5fefa339eff26d95e19fb4a5bb885dc7332b4123fe5960375ca405b7b659d62c6a0d055fadb6f8872ba3f9133c07b1ddd36133a03bfc378aa0e3ab57c0eaaafd5d8bcd2addf222de22f21aac2d2eceb2211be825446a6b9654196c2d4f7de9631e3f5ec9e42f19cd54f9d4490fc817b8493bc76a8906a898fd422cb70a7c87e40cb62965933e0e6fd4572a393ccc43228cb0d3e86653c98c6bcd7f2234b64a4aa059516c4ac1451adc736a313caf7c5f19eb2c62c0b0bb3b70a46d6099fae8e78daab9e9aca305a853a9ca87065fcb888bdd5b2f93d0c11e987c7f9d0f8111451eb3472e70f5a02ac502970acd3ed3639000691740f618329cd5c34f6b9f24b00704353e4875963407c4ee6938634373573a6358555839b5bc863d42181b2d4bd8299ebf0302cc412c218a533c409a7aadb61b7f0b14929412a86d68788e9864c898195da790a18d8470967e8966bfa9922c7592bc80472865531abc0222e2911e7141f23652d6d1aa3a6190c18c29827ea07675f1ed04a961c9b83fcd1fe07037b9ad5c9993a35d5f700a5e2f4c0e962842c1dc935ae4f5047c7ca02d9066e429280cf889a8de1fa0c8121344b0f40a1b45f4e6ffb6fae5c064bb2f0da1e870325645b15fcbca152acea54229ccf753416effc887ae9fe7cddf5c38b6aaff833a10f78ea6a6b4eda6ac923d1fa1912e2b09f39d2a940b4194c2696394d289c23e1db3488ad03d9349a9b90c7716fecbaa310c76c2f3471104e4ee3642fb8ef1059dd869740c2c25d94a8ed3f14342f837321f0b22a20847db8e706bba06f7425e23b83b4feb10e62397454850f688181b27c4fad3efeeaaa1dc0601c5669d29ed4fe43b9e95b29d3ad1cf773c8f0e8baeba473f77d69a21562011cc2a9a8faabf7b6afe6b0afc24ebd621159b6374b368ec009e168b848f1b1ed6c0f5ca04c869835a74d7b650b7b08b67dd2e332e49e2e544ac6e95a714a87788826be1d206c517f01a6a9f114a69b1b15233b3e4bc29357a4cfbe238868922847ebfb2785daf8edd1ce702175333db436dc0240dbd733e4f0bebe4840f170cfb44e5fd4add90c638fbbed2c49c35d4230f78ad28e454d9ea41300e54cec474340820c622c6e35c5ef0b475189e8cd60b9e4936e89067c14ee9457bffeaff9470fe9c834473bc6b571a577ebe11bb5f638434a3bbee18d93aa235b97c46743bfd5db401a8af13946e7266ac1e6f290d0950c6388c2b220c86f3bda6fe88f7fd03db43628b125f31a67f4f120cd8f2f46fb8e48edc6acb4604da25f93f21077c1bba48f4e3275a88b4e1a527e292f376f465b61894b7925769ccd2d3be054370fdd015510a6524427fada4981434174d02ceddcf4501185091e29bffacc66538434d0c168a5b5f3b60737a7c2e97b8f65993f3cf7da2e791c8089ad3651775f3f9eb13a9ead5c410049fe4d55da2f388f87eee82f274c2a5d89041676aafd0e1219bfd1a48b6f6dd0c40162c27cdc1f82ebdc81866ba6469e693f411f1ae4970f50411ce970554c838fab5597e6ebb21a3d373138fd61b4ee2da3ca496e1a998b193aa242f4acae6359ade45a505b5ebb7ff749d90891fc643abf4aaa3708f9eb48ba9124c73d0bd45d7e4993119c488117339ccbb8abb0209a5c2741b3dfc42e913d80074b38195c429c8992834ab63f907991f05386ce914c2d59261eb38183dc6203adc223d6879c1c26dfdb0ffb5e4593344fec03f72cf9df1c3e6f0a329c4fdee38c3261e08db7c1a3835b31c55746ff10a20160e1c99ba430a8ca632da2d46cbdb018e9ed283568f887acb278f83bf767e30bb89ba9e5eed5243f08e4f998954675e8551b528f45a31118b1d935f9dd5c8d44149df0b8742948685516993be7b8fb1d59a8b68753c91c9ff983a95379fa34c2b381c88ea12fa2ae1d9d7746089189fb3440c7c74a662476a74483f3fac13ec8de125caab94c8802629438f0024fc4b8383fcfcd31a96bafe9f668a3dbca26d15b719832097c75f7ad70e736af4b4889bc885a8a7329b17007aedfb00e905469bd056d82059c32c6cba8f07afe96c3dffb08b253889ee787f397602632a9ce4d2b13946f7aaf7dd056a623a16b6ad8bcbae6488c72f1117b8fec9085c08d3783dd86974c26fd8315e4a352e6653ffa1340a124c7834acf903598037065f6793222baa2a8983b262205601c30effcd885ac8d7fdbdbd299387db32a1fb63c2431eb605a04ef17f6ed0ce3a5de5830285a7f51c136ba9adb4f494e77b21cecdd7bc827b7d7077e4a4266887867c5542db93ac614c143baab7a93cfd4124c3e2267d31288acb1b5d1471ddf88b60c5c188f095dac0597588f0f29d9db12f6837fd834b6f1e23a3571114e678814aae7ebde6429acb24d3ddfb792e69d0a4c508032192dd4624613760a5400e1765c9b258f390627641f09b11572459817005001c8a8588f6af16446c20b1ac0deb1c3f976662a408912b84c21a8f8effe35428c2d2b7db3b624be3af52ecf90fa07287ef565d02887346dc88bfebd963f33890b17addd504df6a5cff48666602909566fe40528103c9b8490d26f862947d30bc6dda079246801a8317ddf106ba2c340285dd3664f5b777dfdbcf05bf773fb1c8e40c0ca7d4e9d97923fee0d0fb5417500bb74613845200527b62cc00fc0c42345ca04f2b6f147037c02db1e92018d997702bf904d29000b2be78f7fe4143887a5f9a49483b6e1363d3d3abd1c8a228766699f143c24629116d2c90fc58c948813a2a7399eb9d1352ac28e266be280cb1d54b9cd0b278bba204dc870d2a71a43a3be1e13756520310a3e66d74f5e98488fda8b100d71cfd6554ea44464293301ce2e815928039c776e8a0526fcc77de63380ecc4668a86fa7f3fe0b4fdc727179b4a913e6fd94042fe5ceaab8feeb675e9ade29857b9edccb030c390db6ef8924eedc6c4fd07e9219cf7223c136ca260fe2bbb1608e18de9e66ee2c176935583451100bc8ed919633e85d5a74a39cd594ef5eacb5d667a3a0d487d340f6",
+ "3a3fbc5d289541f922f132d8ab9c329b4190b4f0b732941356a32868298d264aac73a3c0b8699d6ae51512d3ebf9268e90fac8dffe2320af44235a1383065860b8b4a063c64d51164d084d8adc357ab32dc17989b6ab03b4a6eabba5ed4c0f33a2a51f360b94c018932b65f82b4e814bfd55c4f85c8895572adc0683b27a6cb8090a0e29b23d86b686728b577334ae0c4eae3e2fb4589640c200bb62a60ed09b57e46b78e2a73afd3c102868de5bc08c77a90c676b6f139d77ae2a1219b019e1e120c6a73fdacadab5b574f08899acdb0191f4f134cbd32479283131dbad227efe678988c1bd531ce328aa29bbe577c4eab3dd7909e24bc581b5254f1518504aa3ddcb39c072233cde1043c8a9377e436c532c3b5fe15640cc970e6c4501887ccd091e6354b71fdafeb53b41402b7e1d16ec407a2b083236ad51551f44d18b9afdc710990d5b11be37b457b459a5692dbb6193dd9c5012fc2f7ed9786a13c1f906081f1f49e27ef881e98b3ad0799a60d5241d0edf239a948eae00a58351286d5e5817b9c23aa89cb116b5455f6715c9226a188fab5a31213ab36e8659f14a97a5303cce945158feb690dec9593bf80e667b5d595177caff1e344049979b71e76667a9bd40ebdae6551e60e1931389dc4a6fe2d856d7709942d4cef0ba6ee1ff8bebdefe114cd56e936e206e9f9048ebd57b2e18f19bb3d2cef04ba9e4cf8594523042f497633dd21e92aab9719aa34c957f5b2bd47b522beabf0765f99626183f894aff9e998c73d0329b610784ff46acdd6308d64e8af4c75883fca3f6df92a0204cbd5648eb566a68db03013755a5a989ef10e587b7c6e5dcc83b390675ccf675a9c8aea8bcbd479fdfbeb3d08377d38d27f66a0c9647684e2655b9221b2ba33e7f37bcdd190c80cd8cdb81dc687bfdbdef7a6de57ba39d087dd3f2ddad36f37654b3c356a142573f93422dfe4b11bffe6d4c065b0f90e58beb9d0f745edf424db66c777aa48e94fc44eaadb3452bffcd40ae106a82a0f8ab5b819b4961b4bdaa177afbd73a4e24b0e6ca0491688387830ce2fa6583a8387cfff19820a638f4cdf0c9a526f24b9dbb80848a9f54a8a0cfe142aefa882abcf2a6e73e38062e36678503d12b59ddb9e4375599472d59364e8b75bcff051e886f4af66c85a28de1417571a4fa0a70836701a3a49be3d85f71248c12f846eb747c6def7f984e7d315fb0c7bba457d51f6b59b187f6ba50fa717d4a2bbfc959b3c8a6dd85b7af5489744604fac4d8615f19c3b8acf65ba6b5d8e0ab76ec87cd6a2f649927c3685cecd65d736e67cdef535bb29a8adf720661b184a600c359459366673857ad1a9fa1b15c18486d4d3bca065f3f9bf85f41de9e11ac436b0bed726ab3a79345fe378dd8a87d8d1169e391cf876358566eb083543824e0136e9d4fd089b78c427ff652a084f902dedb0aa905cd9c10906b1e509a1dfa2b3a6e70719f9c20f2809b652b5302e1c187a33a01c9ebade5e9d8a7bd7025e08c8f2aa3acc9f914c5d05cbdf227bc2c9095c45e3312ed676051d5efbffca601ba76b3a3fa4b939074eccc21681b74f4747e7a18eb78106a87beb367434d2330b3af1ad39340e4096051a9a973c1e8a0f62ef9fe24c931b12d555af2f8236dfa9e07154b0325d1587a4366c384c1bc0a2c9c9725db4ce3a9dd782f324bc49b0336a5999a8eb700a8a8aae7d7e23fe89fba159e120d2f097f546209cb2a2daf14cd37895dc597e7aad04b8d21f4836bf677ef2b86c273cf7ad2f82664df80527c224d0aa7489f2aaa1ed68bc6a137ceef5da7f5960e641f5f4d414b22f2af55581b1a0940e8f30ca14127f134d25f1a368308d7411f274393d58d44c87df25f3f194ae11c46210fedfad4b856eea44d44f7fe20ac4bb5b896e0ef1651ff9a7a6e06083d5eb73dd9952dd18dfdcdde9c5d1397934c2e5568c959d570389f5c49f65ffcf78d52a4a7cfdf6a9e5c6cea43c94c1fd377c5a1da1196f898353542eeb911603d580d3fc0eb979cccb9e6641e72af0c45f78c553446c646a72aba03bfc85bb7e8cf92161d3ddc536f32b3c0d4d5e74cbca8507c6ccbf4aa0e0e7626b5c361ad7d6b335d39de68171fe8a154b88269dd7fad55313840497a9bcc581d924cf3efb90a259539bdbec5d9d4a8caf43489e58743f7d3e465b5a179c109ebcba51f5bfe791e57176652bbf35913c6fcb2f52997984bb2df9b9e1b1180e90ad5104835e5cc65de8cc91752357664e92b9aa94cdeaf142fa820f341e49aa602e7b6973886c3b175318c61616366e8603088ffa02996b6df6b8656504d1da9e56b21974cf1ba73e74a7f64a754c25a5b3ba941ed183ae7ea9267ae4ab1c66d8350f1b7d6aa33d3b64d91dab81170d98993f9f131ff53969a8243ab73051e116ba4b0f005c363b3163609bd910161954aa98e70a6d94b0d7e50c9f02b637839c36f2160b5e90f8b3dfd1f9c7119b5d31a48b68d28612364d8096964589a91485fa464b40316ecb688100788bcbc960e2ab5d94dbc7e5a731a469f8cbe2c3e5d8e2e4bd6e7094c719aab5b3f792aeaa92036dbcfebfe062c9e1881d726748956fe0fdb8b6e32267408ead9f83a0c26ba33b2adfb9c104faa13e7c0081019db5ca5a588b6567ac02297d420205f34fdc51d55192d5d6fb794f7e73584911c8ad994df92c7c160166dc4295299fb55e80f10f7ae880659b0030b710ffb743b240b285cc2684285d9191bb0211ed9eb2ccbe1b3eca3a6100d8dc2f68e0176804f9b3b00c7fc67fed8b8177a7ac6cef9f064da586da23f90df565bb4be527e1ed4f776f536e14b06d799358632e7771e741ccf6cf74b91c88e075ee575987530a20414f50c95e0f5e2ca88c008576d73df37918e9a573c649d3a5aec47b0ac97c9d38d8154db4379fb09cc33a060e951699c6ad286a36d5c545dff25d7d3610918dae2ef9ed279d5568d5364af2f4f3549bbb915168753ebf54bac943fbd222956da7d7822862204ebd428d71e885ebb6248618619ee9a4a1b78811b9076612791fb903dbd033ec5afe9eedd5f4341d99ce83c96584edc3ea8def9f6a5c83425cb46389ca55ffea57f5cd6b599f0dc3878c14b9d3e86faec0e6dfce9d8226fd54d28f9f6401596183b6c0a47d6b81f5445f5b56679fea73bdc1ae8d3a413387c399cd05ccf3a74ea20084e077dfbffca92551bacd14538dc8d5bafbf5f54a708b391d40357a3c7b41396a9b075eb3bf9f3b845a02dcde915f2c824e26251b54fd80285d8bb831e041da9dec11cd7aec40f7bcf47a184d85816214e25c9ef1f34fe8e56f28fbb85894a9af27f15bbc2358eafc63c2bc4adffc524fb2923f7033ff4ee744eed48e4f32e4fef7ded401902287a457211ff9484356ca5d507149b20c2706818f2b5475f2b0d316668f2f295d5bc14879a6713b548e9dfcf25bf2535c6dcedbb0033516fd8151e46f37f945797fed48e4dd6b8ec933b39deb8f1e8dcfc140fcea7033111272d97d35b593520a8f1288697873ff7a15b69ee0e6f38d6b0e9d71cbea41735ea484e67",
+ "418ed290def6a8b469092dfd065c07c10fff0f0617459d02c41adbdf449fc4ba2a470ea637cff63eb4d9729dab4b3ea8af872e4d6f3c03479fd81aee3e5b8b8bfc8885cf0ceb853e724bd711982394ec9eae289ac208cfd0efdb730754928fa20ae2707c50d45e292e6569ecb40ad024a676a04016713b1dfeda1ec134aabb6fb57b89dabe4488eebbe5eba4ba20229e49e3742834a411d516e1dbf89e248e6f62a90445aadee30171c8c0b14b4a5bae26116ba443fcd9dc19620fb592e809580a7735f873957917553df817fc2345433141ac64489d3bfb19572eed7ab703d748ef2db04194022230d84fe97ac1a5617df43865f41ac3bda1c362f2700fdea9b3c1567df8c70d7f91001e8a556d22b752850c4b2016ec3991c068912aeccfd4caa848e0bc0bcd9d7147a72b819e40eba33a4916263d4f0c3698c19e44194b5d537064c43827cbbab837d0484a71a7a83bf97ba9df4c5a3caa07013bc3816ec4617d82138e0277ac9f5e2c6338a93fa79b4fb0514cc92cae75ab92bdda322eab1bb82789e7ed3ab43d6888e56f1c15a21aa81c13f4ec1eda9e845ec18ac3aa3d72085d016730e08331ce308987ab028a9e9447482a342b2535c0dc78d540f9d9030927ed8d6016605a53cb425d4b3f6a913757e09b082668f795b937f9e422cdba32d14af58deca5ac4de76f2a970df49e098dd38ecdace08b47ae68b90eb484304bd8cca65210a117ac28bbb9fb456cae97db0b9df3d1f61bf5a9ddfa3366bc51651d55f32a422d1613fb4877b19f861971867ca29a172f91b749f5e378b7230b9deffc82e7b7fd70919f7a3ae740d6ff5db0caa4920adc331cce875a68bd7ea64277eb784ff266a23946b49aadeb9b0a6bb122dea080179c6975fcf178a2c2af3679ad2215d6ec3bd0302dbc019164a09d50fd731ea9dd788ad35025357772690a8fbab390e580038b5851db362d8559585f32aa8fcf8f28e25cc931dec95a3aaebfe830b222c756509b08273c9a59055c39020235bf081798ce0bec1be0585c5c70fca361a7312819405c2f165485ef604effad209a4b3fd736a68c6f317be6bb9457366d850419091b545cf4566a029f19328e4494d3eebb40bc2344677962a60ce58873877268e1fb3335122c641e7fd66a99255d6b16e00cfdabc9bd1ad99e3db9f96bf1815b81e080adc3d6f588412d6013ea8cb440a22fe9cbc51c28ae043ec4b3a71f917ec295851b5d4a447797a979d091b896a0704e78a63a682bef03a0535d9e29e34c1c5be506276ad49ab2b1e1ccc1219d0b86838c6836855aa09db4cce75fee9b2ea01274621521a505fd2aaa560fff93e00fa8d5d15684c1e42490a83b526f2fb9bb29dd48c2d824b3ac6e2a984fbc321844b8c66a1f646d9bf61d4c08b96e1188de673a0ec9e7a415a390298fc9751a22c4d3f24f46ff0a6f92b9a27b25ca17e9e0726fbb7e58ae6d36c8fd6e5ca92679352b702aee207c6831c0356685e6553f8a878b810ceffcf74a2e98d32c871e087e599460317637f82b1a6bd11f0acb5f3a83c0ba1537ca97748cf8cb7afd7d7edca50f86477a65e2192baa25fc71b296ad808f86f92c115b5556dedaf898596710485bbf8a030b2c6751e98711c4ff8149ba4b7dc39c9ca34bcf3f641a5b8ebd4c6a401c35645a1743fdf9c65947ba519036bb9c9ce6e7237b367d40edfda51f52a9e1b4f12be94a6a6ee7da2bcc3a00bf4c4635714d3e2c49c35e0bfae682bd03a4c178ee44dd92b1d169ea5471072f3ba40a4b66d8e6d31a264a913e4b868f977ab77771b6a1f2687e72ac37aa58e6c50af5903dfe86d5dd82d7c94492552bf86428ecd1bb689b604c2fe9036a7a1dda90b38ed1168e2c51b090964fb5973f52450d2df11def38a1eb6b12b117efb9e804220eb997a021b445d0835547ddefebf9982cd9968d13dcfc837dc0fb844ced73831d085fb90f4fc125b6775d2d84611b661ab3ec15732477e2333eea0cd01ea19fa7e263311eb0b29890fc6d288f5d1c1009ef624b523f9e07969eb07608f8bcb28f57600266cb00d64ecea46e5f88baeff46a2db2b8da5fa56f244e280931cb45f4c0ba93740d028bb3c4e4aaae342d62ce0710265aab7e10b09ab53b5d3fe219a48f8b59b383c715f74b18f7f5cb424d6ae852d6e6379988c8dc7c9d0a707156b1357deffdd9b22e65e52f1f6e223ddedb19f78a0ba86a14a45066d6fad4ff721b147a9ab468d38928d463ac4ccbb6426c12413bb0538ba100b47fbe17588dfbe9e822707b519505499903f8d7cf6ffb81283b319597415db90da6542ad5f57b8dcf177b2035791747f901fa821b349d23b2292fd1a5981c286b9fbf5e041c5f414454cbaff1f64e4aaad7ca8150c64a49b149a8f953e23193dbc305605cbf73117ee944b12e168a4eb9a26251303170d07f3fac59b93108af4bb2258408ee1c2998ae34ac5f337a5b494f6613173e7abfecbede60379854e1e46b6742995b026b4c10b1d431eaa8f81fcaf6a2033539f4530f2812346717d2311a59124ab4f1b5d8785d6eacc4f458e63f00444af40f8d51c9980b38c1823f5f673593697beb9e982be559bcec36dd60bd79f89b9c061016b15bde84a0dc003657ae106eb7d03327b2af5a983c006a09a8a65051ce0bb72ac1661069a7cdc92754a50ac34c5001055198a22365f7b3be0accec6036a38e722f7a0468c40f9d55a5c72de4edbc93118586ebe87d2ac658a7d7fc4f5ecff6952cc2fad632757e5637dfb1fdcc03eefb77b0686329c63fe6a04ffbc27eeec0a02c3ae5cec43cbf3eb90fccf7cf0102ed1d0ce9947b6740e952ae634f270a239b8ba509900e7b88282dbabf34ba9fc27d1e6a59c4da7ceded59b34cf796a8525836fab494c56c8b24e4a016aad3682830a64e078e7081e47897af07eac55435cfc30060b2862cbb675c52dd5e9805c79f7ee4cdee671b12572b7a6765ee22bdaeb0f8b9a1400a26b594a737d2210182f91f4c22f4ad8f89359307a1373a2fb758d249681c054cbd38d48f0e794274e28bdb693ff8fc529025f68b95b4f8183dd5be367b484113e329ba9a1a1bbfbe36374d5dee186371045fe581422d253214f483384f9434014fda1d59eaf72be2c9715ecc7c744cf092a6faea1f4da2a55bcfe653248df55a7729d36f8db7c36b0b9e49a6af7e5072a5d3a97409058eba44643ff706a2b7e760f19e899baf9c57ca8a9132863b89060a1b4cdf152c9eb57bfbd79974ec41b3f91e73a6d153060d8c8c428a170497f984cb55ecf5c63a7b7d0ca6414fcbb6dee4dfce5dd84ffc9428bba5f55cd754bed49ace75332a8e6b91871761150525ec3b286b0df89c8d1e8593b7d42d73e6ddb7221de26a5c9270035de3d438cec894201c3cb75c26034d134749717b3365deac9b324e9b93e1e4ce44b81addc50ec4540f6f03032b414f3fbeee3b60a2b7a2ceb6cc1c7f56f7fb6072224b6e23df5376144e02913b25c21a4bb371c612a96273b792d0d2438e2d7f9cd8fd62acfc6f3bc0ee2b6c8444a356d48c9fa1e6b4bfbafb6284442093",
+ "41e0c3a891b4ed10810ab8ee541e0e965b155145bf935efc35033a0435df3d0bb3e31947e482129a8b7b69fcbf442687f5f2d8a6203d8a027856b9c4564cf6f1984f013a5cb4128d3e169f30b6ab6c8241a08860f466d22bade97b01cac9be8fb0df0de63faaa4e26d49dbf6789c2008b8241c6d6e649c464e32466ef61bbb9fc053852a6e295ed745ed2c4a662f42e4d416933bb526b9637d6539c491e785b858274a8a727b588145c491b6ff502a260f58b6915244d92e1fddbc1b687d054fbebb159f5eb0c781926d8dfd89f72ccaf9ddeec5f865c8d268fe43b77f2807a62f5473d27055d6713e2bca7b12ddc6189144872aa78a243e8c05b960e978a1e3e6e54491a017fb008ac772d0a3af19d12997c569e57acd092f9e50681a2e040df426a493b9f57070ef8858ee399eccf1e7f33d1f17163c242b37caf1fc4f66319eab56b7fa0d76a7bfeffd9cfa952d60e84ab2397fa26d615d7c72b55efc4ad80c30b6b45eac2fe24f59b574698dc9f05ccc34c9bb1521866ec7252e75a704bcd26f9add78893bf488515702339ef67d13d041fc3c4c4791e9300fb9c33eae9df48704e49fff6f5f1c2f95dd382ba078bb95d3301a913a7533cc215b70e7799b7db1c968b72f35db642a07aa93a36bd67c8cd275e4c14d0d69a4bc00c14631a7a6df1b1454d218dfa7c478c18908b6a27e61bae5fee88e31b4fc00bbc26a28cd08edaab25381b3a601a4d353f00fbd74faeae3747d50988b659825687a3c74c73d44d0322c7fa6b9ec16bb8a60fc8ce24d0f6983260adf2c31ceb4aab421bf8c69f67c6d88b41212ba93d164c1625c4761f9af03c7b06c870460a20072e5c86a13dc52ef0ad7029ba3893f0ddcd3da6378852559600b5095be59c7d503402a6ceacbea83ede30ad705ad2d8427d715e9783a18225d72c03cd8fbe4df62175a286acaaa6c450c37717a78b44ccee64a5dce33b5594761590f1fbd0913c2cdaa9401df50615d20e5e1483513e955363a471534a9e7184b109983b243a7b429d50e35e264abf2caf61cd5ef497d3d48de8f3086059ee2dea24204c3872bd19a3edefaf08785645463c1853e45efbda072e847cd2cfdc478685dd8d07c65c028c9d307457afa833dd579cd3f22c41fa1711ece219e080902e39b2ed900070a37103ee1985f9bc09b5140c2d8ef7eeab4d247980a617c1e21409dbe6749ef028b33448f7d7c99c901c08f24faf047f8c586eb7e2661ac68f18fe141e93a47e59e96f069c149ba093a3b140fcdf83780c082a395986777fc31199c6d5c7b9703466bac1c95652ee0b27e764824a3d8000b2e1246b9384a5b611fe4630daac5ff22c000ca3933ecc98dbbc9f9f7800e2db9b3437a0bf8a214d0dcde1f7f903688ac1a32a5d9aa380274271d7065c8a3d7f2bf9f3960ae7cef4222e206400d13acda8641d54a644b54b53b363bd8f9b804e908ca02aac54cad5ab981ad706ec8ed9d3d1d55123071350458924fa97b87b7446f79a44b5e814d90cc18d54261012b766ae9d9dd82fa0a41269aa72d438347c2ec35f585244f9bdcc6c963c0bac4b1ff4d4a64128c687ab38636baf5aedac219fcaf4b3eafd90febf6a8491f3e91f02ffd26407d2d0dceb267f9cce14c91e3fbdfd02ad3d8f5c76c951e1e4aafcdfc1ea9e7be1af7916d744a9adc4949eadc384a5627bdb8dbea934bd6d3b01648319c7dd2817919e022fdad6b8b0ec8b1f11b3909f4742c84a15f8af405eecb528304451804de99c1fad568682a36f8997aed53a9a3aa7d4aacd7fb8555373fac969ff0ab6b18f70402ac55899fe547b425bd14e1ef9e6c6dd00c39bddf3bf8296401f8a015c508d9564bbec14deaf1c563625d1be26924f8ce98e01e4e89b04b8f67cc15a2c7cc78f34378521641e170a371431645bb3923ff6c93a4a3176763b99a610530bbf798e5f35d499e63ee12c8ebc94773097db4c027b4dc8d05ea3717555dfb54fc1b9bac381ecb5acd2d4a5030335cc6bb57c8c7d18b22478de3c63c3cef47ff76ac9a502add31e56a6785d886ee9e267bc2a3febc0cac35f4f47306ca7fc0d5dd025a20db7f57e2dcb5d4fb7ea0859e34f9c6c14258f7757c5c1c0a6e8594eec9ebe97e96171d078d5351e3d5f04c5099286bc05d13bbfa7c633db977345df4954a08235706e22c39163c2aea6a6db67f95124aae0f6c61b8d1c970735eda91e68a50a44cec2d8df33d19e44c130e17727b50d3b6405656976dcd67a9a47c76681a71255f85adeed884336dba99ad712d3b3e68634d31ee043f24083ba8975c446128fdebf0c84e7798295e5902ab0ff69eeca8707a3ed4a9ee208bcc0db53f88d4ce34e854590d99336ca310431259d32922e6ba89597ed344faa276c71f6d908e8f8b7fadea8a2bd6240b0410f67f500ebbad9d2694cf8226a62598e13fee564bd574eb071da4858d0e0e4a260f7b1569d562a05c7fdc8507928fcbb701bf2a1a91feb9f72edb8e3a89a067efd10635659d3be781b844a6caf9a300df83f162f85e6760c1e06922111cf0b0119ee952fd4b0323a9ce4f98077555751b2c7cb2363c199a1e789ac8f250e79b86742396d14b276e90c7c92226c5d09bc32c36ed45fc81f8d4eee10205cd6bcc6283a113a2ffdeb73fc3b474f2c0d59561bbeff70de0682d3a68949a724e2ead443217c45a4fc59c0d356329a13da47906124afda968808f6aa858eccb065b4bdcf06160bd8d181c297f5d29bcfe28d32f222395aa19e28b15eb7658b6f527dca4e9953091e07216ebd3a299942dfe71cd3b0e474b6168f935edf0bda495625d96d5d204a18f365c06f3d66e2b601513093c9469119ebb6f8ad3f8515891077966e6b897b92dfa4ce698638671e5da3e2e0f792c7ce8c33c61b3583ece1a6316d41fbe8bcfe3a15eb108f2db7e1d70a261a63b2e68482a1750c4288aab2754c4f1231c133c98efe06f184c0d0ef4b0ee5245d5f34f73be0df0d638df2b31b71355b0685099c7ea5006d77c415f0dae5dc18aaa86d4a0631824e254e42d1b188eaf37c7d2aa8ba27c308c37db22bf6576bcb5b7b267adb7863b688c0845a862a47bf5cb9e0d0614f478a51fde3c0170d4daa6ef93e1170e80ba2e647960d0bc8ff43670cb876cf9f4fc5fec2f4a6d051cdaadec2304b90dea3278a3ed6a3e9fc5cfd0a3a201d2a8551a3b87892156fa64deb71dd901188ceacab70430b60f9fa233ad8d64ab714589492171e2e93e1bfd40c1196d6247f3b1f2a0cd4e96352d53c2f527f2caab081966a50ad317e7f42cbe5dc929a6a0ce91a5cd90ef0ee748238d5a9d1a0cac6a123d1dab1dd0af609c365a9daa7868a87fec0bad8d8e52cc2d96438d1ed47816bf66848e976a5a04b701e80693b144511dc14d1f8be70ce16eb4812aa9b84b59279720d661e5b734db035334520b53f705a79f2eee5143f4d30ddfd9402d7e89938a8dffda2c43126ad36af5433e783c5efc2440f4243e20f67af8f68a409e9e151414c7c2f321f2125cea446b0e0e4c652a14cb57eb57935020d11907ec65b44ad152500074",
+ "dcee6a0529fa270d8f0c82e0fbe2a7dccde248e63ca979e6ccb66908a36d6228cedc7e13e274ad02bf944045fe9c8a888378fb71ce82f203f3f718f1c58e1f44bde22278947be5daa2d41618782d5d1968548b03724117871d1f9eebb75d0c53743992792197d85351537facaf137a2d0264abf9798929ab6ea8df60052d2851c3be32d29522a8651e8ca51f17c6a7908829882d1f50eabb50dc4287eff7076a773d6175262efd70a70aee0aa7c1cbbf6e71c297fa4e1d7308710fdae4e5429df7dbf85dacc36af959b589082d4d1e645e27de4a0357bbb6108479f12ab7e73cdc00f67a12a523931ba06ef63beb4f5f5891143f07c25053cad9b6664bca76f25d6fe002b4e7ba0dc0381836a00d6b0a1bc0210508d447edba853258f7e6cca59b4391b8880fcd235b8941102ef6dda6b1d164a18386aee6e5d5ec8afee857584f8fb365798713e52ef76c0dab9c1e1a2bf25e8b41aacd522d0f12e5e4bf3fbab0a1c2aa1632a9c84c57647469db69ebc2f3d1933bc609b65948cedeaa408f2304150d21e21c6d251389cf6c6ab76617f1455bcad1ba74aee08bcc8d9051a036eef361cb527bc5a1cdebc4652796568b6997a7d5798136779569b2bf5d388419e3d08dba7f181479f4d85cbe2ee9c27a16e0f94cfb97f43141b0810625e3dfe7819f9e1e2666efbba4354b5b85b827d3a366d5cac59b7e8474a5b2b9aff806d9762aad47bc2f845a3f7450abbd4475445a6752c3c08b6de5b468e5071926a92e74b4ea97daa06a2b09675c4d47d95487cc29778c0c1fc9cb460415740ae36b7be621fe133b4f16cc641c953e5e9195bf526e1f8ece74c69036e1d84282cfcba120b2bd86f83557653a6bd0a1d42c92eab69b4f3164a49015eac0e5a7004bd47cc97454df14a45834f2c86a3a7c8943d6e3c034a6db138a0af24a90a673a2385736df6b5eb4853b137b0b1fe9dceab522d306eb812ba6945ee9d02ae28d63bfb28eb471b21b387b44a064e6d2905a063fbe8ec7d541b96f0ffad790b61504b2b79d5c96af0201e79a37634a7225e4da4210ce60ff6ab912775746ea981f5e5894e9f3df8ea4da058aa29871d2811464ba55cbf42aa5cc6b1da555879cc2cc30927bc712aa4a04655d43e16651a2ba11d1154f656642156a74f6d8dec2b9c745e848286271740a3662a79d8e51bbc221f0e5f4532027d0f3b12369e131b1f48e05f3864cd5141b5a123b2d6dbc92dedcc5eb0145760a219d9ea72bb31299b17db2b0725475cfbda1683f044d1304b00c9eeffa2e5f22c6a547aadd1a94649f722cfe77d1a0db783a213875ee8fd955fc8f00ed5617c26b1a135e4872a4f7978ec9a63d7028fd6fe2ede8919de84cde8a311713d6f67e2a0a0b0e543dee0d0c9fe17225658f70bbcdad5e4518d56374414e0949c8789f637fa00626f82fefd6b1e04cbd3af07f4bc7d372d03a6e142063a77314f5e7014cd96071c5f4efdb4248313cc1a82dcc93bd7df67c0c380db4e2739c0d60e71d5d31dd4b46d4e9e20a3fa9c5954084c1a3ab5143d4b6a63e558d73280b7cac89bd7a88e79f8ba15f79b20b09281cbc138a34dd4e672cd2f6aa7cf6d42354dfd76a3ec3a5eb6070b8151ba9a62d10f02161c5044b192626a2702d3dc548da2518547099f0a6e3651bfebac5c7b77e41b65702ce8724c661ef8e538d59f5236f21fdf3e4863230a672d272d6cdfc5a6448791e3f18b6e846f613ea0a2b6ad73773e2fb10a632ceb1e1d57eb4b3f453cb69cea67fc879339ae31bcf081749f4bc1289d2e5287c3e152d5ba757f73e49e726384ad65862467d8d5efdde3fb3a666eba2c0637313ab24b36b0cf6090e1e168fd3ce476a2af0a09076a8c4bd4f0909db2f45ae9daddfa60ecbe513135f12d31941ff2a88725322fa235d4d2c78904acf6921b129bd3db2573d4aee340ddd2fd8eb00868a91aed37f023118e208b5f56af37767d0d1e176b21fb5d1654115a019b86fa6499cc7d70ac03aa44ba9819db8490c7e0e7256d6ccc675a99cb1660d0a4ebfbfdbee0af30e0aa6420787264a5c8adc755bde0ddbcf93d6e8459e729e84b374696af174ae252d9e4e81ed05f27554e5fed666b1961f21833e6c9b5b2b644511e5ab32e0262b3472e3028ed7f205779551a15bc51e91638a5cd995813f16346b8e0f47cac851b7d40e8bace9e231e8657e153ac421890366a79ce9cb3a4119532d11d56c6abea58e12049846539142f436d9c0eb2fd3f2661a856c15337bdf6f07621e961ce0f2fc77a9161c55ecbbfa755d26817d732c96bfe569c16c973a10ef0d1e0729df72f2995f5b7b64ce0cd4d476b2f20c1394833e3c3e108271e8f19599edfa0aae9147715e9b32e9b62e36ec715ec71c58d98079149a7207b74f7c810ff78d9ceebbcb3eb0a463134ae0e63b76c79db4b0d223f80e721d521ac2cca5dd67918ea25f8ab5110738c6307e27fec4c086dbc2bb0a1ea4b3dc6820a494afcdcfee9deab616d14d57e2eb807a57529de977f618c75eb8f436e447f861bdfbc2963bf6ea0fd49f70a627c13a26e43767e087bb4be81776a702d5a5e6495aa0655f47cb0c34b68b15275080c220ba0b38ba612d97abc951ccf6d2c7e05312b655552cda7fc302b3c97714869296afb182720444573ae5a5a3e368145f905e4dad52ddc84f1b307acebcc6d557b068deba0422df95b9dddf3b5fb398f35c2b6f0189516b12cded4b7f42aa19c240ffbcc4b3e538012ec9747eae5442c88eb1d78e953d26afc91c9707ebdb949c43d30c9a0d2d31ef2f9790284dac73d421c4d528b32c98501656da3e46b0d7c7d6f0b2c03f32459912c00e6b563aabb1a32981d5408d00c66c0a185234349b28ab6445bae6df29aa65ab0c6d4a02bcbc56916ba02b44f4760c3c74a1ea50e5fee5fbd2549c5aad2c2f52d6632365162573f54890508f523e3ad76f491195935444b5fbc86791a0782e6d1a64d8dc7ff3f3d0911224394d8d0fa68843c7576969547c24b10bbc4b7f8b74c2df1e02bd40793c56cf4de7d5dc125f9b3cb47a417938ef7b1502990f54422465bcb0838e77e31fb6d9b48df1e1940fa7f5d0f93905567fba7b473d9b238465cbcc289e13399683787262812a48b33311e7ccf55d414cc49e86f47fbf4bb0a91837644526334168401c9077592d7f3a5a263d38a08d4c5712a86618b8fb7e6df3a6f97816620825767102834472c9071ba11c66f6b2c44a6e31a36a680eb12db1fae56c5c93bcdc766ba1a3ab943626bd2b7d5f2e5092c258118ef64f2d785ac75f5d3cb7eba8f598de9aa64bd10785a0f22691d8e4b571043fed52ba44d9bf94ded903bd22798b680319de38d8ff1d0fabc2289e0b4011def4807b9048c6ca2227d938c1649d9ae4bc764af3977dd5395abc77427911e7fb9f34ae4769a739766ab5e68a6f0eb8a0485ee77584ad4410c362989e7bbfc7b3d81baf92e5540981c41ed34db11398c9b13afa8013e1fceeb5060071da06f13905662f8d1e8c3d12a54a3b03e1aa64445ac2f87dce633c9a067b5fe12723f264969233",
+ "e55db73e72440901e4dea4f93914b304c2cb6253510936f5260421028ad6db77b845fe41d9224573d40b4dbd3004a32327342f6a6aeeeeb9ed1ba183b95e64d494234bde4680b013c8927dfb3a7d8beac260edea750382bc24c1964d4ef10a47e8abc0d6312d78660f8fc82dd2eb6f090870baf7524d8ff8bf438a206cbf23f37345965742bf259ffe241842bb1e1fd43e3e26d771d27f1c90ee0113da3018a8080a06a65c621ec0c1ba8c82ce05e805bba4bd9cf32edcd0b67e8c85875b26be5aa14024ab9362c01189ff2b91d53bdf8f6fbe9fbd0797df4107aef1340ee3893584b23fcd5b60efc230886bd89b7f18a7587950c88ed1fce5702f22db8ddc0d9a960213f5d10bc1068648a1676d5f1ee9ce9cf0a255ddcb3a22b84890127a7e5b986d916d99023daea83ebd16a8fa8a9497ff0ff1b4dbf5424bd8ffedd58f5b5e5a4820c89fc4b1fe6646bd87b16b86c492cb34b9c96e9db36e5ba6c759b3bb1ff69a4021e462d2494484853621cf7d30eaaa1ff5ba3830b52fcbdebc7f405811d4a5b7e9fc1089c2e31eb441f39907effea6d6897f47bdaf5161ce5f88e6b37a0fa7a1a497b1aefe2d0d073b49ad6e5006b0b3d4707907cff6c2adc0020824b9793853860043a515e024b2a98f6ab43202d0049b2b38738c464d508d0c70513ecb6e27129db1c9206db2d096ccab89171a6a6844557a1580ca4c3db7ec6ea8becd776fc98548bda266c4b89f2d03bd68a479365f5fbc76946cf936a1576b034b3f064c765f04341c58db31b00659a6d64b74a12ba6ea3d5dd7c3a9da1a029a7452d7563a97d226917472d50140b2c1595d1a20b41a877f8cb8e2f5fa7c620fcc906b0cb44c934d2008098124d0217b24cbad6cd3dd58117283f9e849fa57c838b3793350026bdd12b7288bb30fb595e50cf981abb400517dc451967b4ecd36f19c92a326c0800871d25d314b5255784ee01f4227b17fd0f0dfb6d07ce39260076267c9f21c5d40cede2ed3f925609ca32d6f9ea66dc913a42ae817a87a7fb4a012944d8c44e8ffbd74263073af5ed1a601bca7a701a4a352a5aefffb5b7c07d8dbd95069325fe705d84f510fb34327e9cd736a658d7fccec33db98a20c741b5bf4fca18cf239d19faa9fda7fc5f1833aac79613a7cf0bdd98f7c5f0c2745bfbc32ce358f949a45cf8b071680e78e0c1e7b0bd1aab660b3561d399382ead2f41555f83a3180173ac174f6f1322267ce7159ee2b44e9bd9227a2ca055651bbd85750a2b93a2f647353fed6d251d52cea22d5a5596dc5252f6506c62af870967a07cc3537ac95407ec7e1db3724b9892debf31fd9c83b67fe92968fd814e9b812ce3e562fda0a48a3755c4c6ef170fb3187b0f24c5da032bfa8fc81fe71d31ca4a3d0525cbe56ded2b17150e35f602984eeea44b61aaef23c547b3f36b8276f93342e7a81b9e08137233a5d5b810643afff40cb06733dc681abcc954d5b37a015f592a2f3e30f1285773dbab44ca785e3fd4a20f0f61dfb93804a4d4583784afe586ac1f4d105df22be058c5870ad7e80201248161f7c3133cca2af4022aa49e9ed77762195ae64fb89c41b591ff9f6a60da3e220ce2d1365f9bdeed6c3c8b085166c63926f1d617ea0b0246e6aa2a985d6dca2f7e4b72f30cd31d57926fe702c68df0b728aacb2a2c701557fa47262aab5bea93aa6aa78d18fdb1f1774593334fdb0fa8612e1284a3856b518a50d547c6f39e7e2198d6ae15993088be317ab52640ec8fa141818f4760077668040c26b614fa2f35d1f7b855777fde2418885f8b6e2d0e4d1c663f3db9c644437abbd9f3a0b9cb45c942a70629fc16dacc41fab08b79b663d8458403180e9a9bae39cc343c1a74de67950337a3d5d2408ac0115da0082a19e10752d83d4ea0079f4ea93fbc13510a1b73f11731c759e34c40d02d0379caa85150d6b8b78442eec7809d726286e9445e72770c9bd1a645e4e9b624dd37ea1b7be9d70a3f14211c3610c090a815bb1020b49083f20fec04814f3cfd6ca4b17ad2fe3d5cd25a68bc12538f8f361a04580857701ebac756ad3ffbaa8f44d2abca15677806f00375c7129ee7ba265b75f2e24c0c3168f6e20da666200061be3f14b4a84299ad8ca772239e8b1a94e76fd3522d7cee1132903f683474c68c88e1ae087d625d666de8b1a811e8b5390375ebad32aeeb8ddb2600ead2c91df100611141674f8eb98324a3018e5f76cd1e7002f3186dd4b7fcaee34d9afab3550746950ffe9a8e22efa3ab0e7ca9234e2608ea9a18c57ce4f5d935ec509f7baa82f5eac42071ceddf09f09dd150770b3faf0f83f9275e5104c956b7d6252b0d07df523b815bc9d91e952f753616228c3195061b3a625719a3aeb39ab5f33226f22ad191812ee55741b27fb68cdabba6e886a013e1f6f343c2747942fe7af99e3975a2c61018e115bec022af4bd36fced4350a3743e2e9186acb97281e7b7cf3a4bb900e1932d110c28e4f99bd5c76b10d167626d59cce913f809326329e323f16ede73682560509249ee7621ade149ab10ec6044270a84ef0ace73328c70793dbf2ae8e96fc3ee597ebcd9e33e4ff5ea20b5ab8d292acb2a1b1aa8d7d98fabe805150c0cb1d4cdacf6231506ab10756c22924198d218a36fe8d7642893bfa9212988c7d0c402a41027d070fc5442ce1ff13be909e08ebccf935e118f4ba6d448233278b78037ea1c49982297d253ad90ad62dc560831ef649c83c0bb5d08d8d2b654df13987b78cb22bee4143a4e8df2c01bf6043fedea238300ab33d276bdf0d9396042e7970c5f959726c516448f1955ec338590b37bb9fc983025f2288cce70f77643bf758a8bd774feab22c9ec61ddcbdb2973cd09b33377cfd6f93d2f530f940723be74cc97df218ce95d98b94220820fb15a6fc741399e3b303e53a142dab7ceca3e160c2cbcf3a466302b94326f606a5c80de1c136b5f245bbba25cf0b47b40d9f2a87a2adddac4b7269bc11c7978bd75d966ebf199aaef63cf43f2406d77c95ca895e0f187773c41540e92b8a327a0f6eacb491c406273837a3efda0152a243626a05ca9e3efc32523ea295c0c2db531835e2232c8d3640225e300f0970580b6d29a1668d2a828781de03e4970bf477dc38096b1d0cbd50820d6cb11c85655ad998b74040bd9d65cbfd42dfbed03c76c5be21fd46d187381d32139c9acadac6b676ab6155e06318b05fdd32675949dcc21bafd7823e03dd1ddda2a80fc52f5a7dcd838b83ee0b01e3db181f0b6030a423531bc0c5bca39bd786a7a380004a2d1af47c7062366ad4ea7f5618617611f2b6ac452e82b18047419a6e5d7ea166addd70b2fbc3204b3c3c6e458cf5bc6fadda87644474ada87b68d6d8416106919639def532301b27244400697b2824b1419180774aa03df08bf442091fb948e185547026c10e138b8538dde71c543c3764941078415e0bb00e67b06cff03ea7ce1332f73b9f85cb0d0d74555c307a626561cda535f6bf458a019e774e51c6c5246ed344404630ea5f1aafe909b928abb1c5e0f8a4d5e04",
+ "38cdf66901c79aa0e517cdee6e14a9638c3bb7d354a44733f20c40eb3833c9751203057e98d472044cbdf90f92a7ae3ce4ce6cd750185ce3de19c9496810e34b55a18828f36e6b773b251c10e63a19a9db1235bd80fe11d7e010aa61d1f2c4a46097a429a5dbe06de1e7c3800bcb1e9d0f77dff9303a62b028a1a7dd982be864909e737d8aa5418eb38af1985b9a75dfec6ce2d6a543276a60011bb9c4e18119eea52dc8c1c12b469e4b407e45d4c9ca8d58c371cbb716ed31662cc9a02532cd644f182c7bdcee91ebef7acc0df882354608574cf40aa8e8c74eea1061333f46c3eaa9f346ee1ee379e4a33fb94ee68cb49e9fd6ce4c8d173c57d5c1caba0997a16f11085ff30f3a0468d385529245b7eb4f1518ea02918393a66dc5182436a0b08121454dbf643166dc3e7655e83bc89fe9bf585c2f07c8c93e3ec76ff84a1020d70c4e3c031a6ffcb61ff06fedb2b13441d3034495a5b310ac75e970245bc782e6a54cc9dc3925a06da6e06c1ca2aa159822f4a8ec6254604a45d928d343c21f88323b334fcfe2186e1d84150fd14c1d2144dbde606de7a0b612f8f8deb0fc489d169cbb4d1a53f1be945a143a57c9ba3b9e0b8b1982af20863c74f1a7d894856ae84b794172659d32b706f6a1d96727d2fc2abde809309551f8c0a68697614c06eceff6602052a71ccb5ac8b60f245da5687e1c2e4dc0e106fb1c00c8c934641c8fb40f273b932a7cc9654dd5a2bdf1fcb963e39eea082de58e8e04d65a39a4d574db47bef6d559d5d20c2dee297bb20a4b4d81b23b35f549dee4300fb322746b0c12daa49b017a0fa7728f573f2092dc26ab8006572802efacf9d63eb98e81aa18392d113d52b9858095dc36aa456f02b58863ad7533b059c400323332926701a5bad1cb5c17d46c8db30354214f2a1779cb58e8fa8a250c3ad88112b259e257f9a025ee9965ffdd6bd0a28c524457acd898be4bf576df369072df4a02f364cd895a1cd6a7430187afa1e0557a8eafbac557dc69694daaaa22a53d207d0a60083e31db3737f472502599e7e814d0b860811a4822608ec5c2c0f6d3e809ae54a18c2e74f9487a5591ca14a2509f1fb8782c7d81139a51106dc4fcb0ee37a8c55f1f1a65329c9c034eac3b73a8752081cdac4a79795178ce17355c71bd8c76f4e7e6a24416fa7fa816bfbf2996cb91d8181c66e889820ed2310fed00b4f2b016d7ee1dd159848b1362d3e142eec3acb001beb19995f429d6fbcdbf1bd3dcab02e73cc18c6debad548c3a2eb4fcb0cbc4fe1423070090baf67bbda02b8072f1c81bb48652f404680d2d297377f15ae5eda39bf843493c36bc2a1a1417ca816535bc2a4d41813addff8f47d2291507565456c34a1a9c3afb414ba60ef0bd4df27313ed5e4ea189fc431d4433859c21e44d9211f6d2558ec4e3743389ccdf63c5bb6ced4819d7c96d8f6a28222e084e4dcb538465fad152ea762b1af9ac10dda2f2d050fb3ea26ae652626925b9bcf36e04ec369772d02dc6c5dce9b777863dfbc23626e4131e4cc5b33aa2ec273ccb1eb2b79e693a30916f2f0f611ff6766ba7d31965cf7253556372157cae9017f8bb337fcfb757a0b1b58b1a801c16a01ce8d6213a5c301c85c46a62e686de91bec52fc2d63bc839d07296dab0ee1e4dc188cc9a3abdd255f7c12e0f5aae1d260c81ceb224b57dcc0d3ae8ed28659963a3deff54d11d20c2e4bcfbe6f0cf03d7eecc81641e88edc84326ddb57db4b85bcc7e222de39f6d882d148fb8ca85b8aff6e0d42bb472e14a7c1af6e30ca6dd2d2b89bb5bfe8b3870a9ec0238d8beefa06bd887aceeeae4eb9f198e9a41ab7818fecb820a01688d5029bcb163dfdabe544cc233067004374bc506e0ed91056442667e2fadcb13d5594bdb00cdd529b8f05c5a469b13f07706609af5cea193e1c0bd117307ba93f91f29b5df55ff9cad04ec898d9529d53d244b2116209fb3a4262955cc6014dc88d0d4fc39032bd5ffb5fd470274cc3f59e556c6203f4865601568a92cc52b381bf00b7eb9a24333df6ce869f5586c45278fed0a4c445c2b1cd43245c3ae7df2f435dc0ae1ee51c8bf91cde709057e359188b1705d9a0b9e7a8bcc62f5ad6622ee01976b320d21186d78d0ecbb216f28cc7a3847dd56b685184afd3b6fae3ba4564a502c3c2ae872f692b8323563c3c66c8ef0c7cc340a0192c69f740689454b10e3d505d98a76216cd557098e2c72349a6908d43a41fe56272f498fa7880e7032486f5886d3640b1fc76ef99e4fd369de5927d6d89d7f0ceb0a583f22c6a6c5ad0497966711323075f504fa438b43a8902b9d423eb60915323794c7ed3e922281b6ba5a1392b1a5314e221497519bcfe21963a5ccfcdfde39c71af5779c56c3b49a8c7800f06b801ab6994c69ec3ae118dfc5020dfac67a18e7c5acb8aeb99008941a7075751094ce99cf0ba25ce817353c927b84ced324b3c6c5e0cf060ad7bcf8ac55e5874edd80e6094b984f0b08959b2b9525c07009989321495be6aa1c84ed660cca0ebbb78ad2ded8cff81555b540e298f66e9cd99da5d4684de3a6dc0b03b46def3bcab8a1f0e554d83eb6aed19bbcdc72a89344b5a7a88c153f94323ef7ce29e4924208705189212716cf46b2fb3b1f98320b9f41f3cc2798d8c91422cc9efa01372704821c8de28929a02ffabf601f24a0cf5f2f8b6f50cebd7dc7f9d3ff7f098f6109cc1fe2db536d4a8e063d9fa1a181630c83493d5974edb464f787c842cffdea3284c978c670da01b05bc20a4be85c2c3a0ceae07b16731b9e8813bbefab469fdc62fe22b1c43ab0c2fef10493bd900289fcc016cd03d02c05994e568a2fe30974b5803f93801e50a2a436f9d06397c88d673ffda8f579495db1ad4e0d6d1ec12a8b8fa823eaf17c5040e9a6ae53968d64775554a0b2bf9a7064c1a18d19af0fab07d0e7184f33397147542daa6a0e3780858dcce87f2ed71403c4e3c3f96e6b346e7590dcf78df9cd1b62fda913ec997dc59c3a7ea092d46c4b242d10065c15ef2a1482971015baa568f851b0100f19b2abc4c79627cd2815f1c8d298213447db978d0ab6602313d03f8481b07aebb0c08e1962f331d536685aa7d4d940d772a6cdac834e72205814aa25b6c235b7392562404ceb762db11a5df960e7d8f3f6794814c30eac85cbe082e3badabc9337838e1e5a1f1f406b81953be041eee49a70a129ee7b642ab2401f93e33f434fd28f93f8dff2084f2544ccaa9320d695a6eb9a961b47ab06b0eba489f440f6505364a20bcaeb734f734149fc8492291776112af1088a1d80282779560a141ce9c17283b6ec8d75d4c2874de99ea38e3bfce91e51805b89ee816b4f50585ad8f9fb734472333784b916fa8e02b5f4ff85ec65ee38b8a26b30a52d1ced3db4309914b376de07a2bf0b27cd8124d1b28dfbf33857d1f860ee26d49e93a5c3cea63a244ac457691ca44e9c06e3baea9e78d11bd7d30734cce11c0c96f3ebd986b970d5bf3c8ab542218ef00c53f1b4896a1140a98dd952e3bc0c71ec233aa49af7caf7",
+ "79b1903dd57d2444af6ec8252d95a47890c26d3639894020e414096d9546698c99568d8850c7694323981050b68b2e92640f6a30c3ead78efb1d188956703d48f8dc789e450382aa23bf4fd306346cde819bc29f28ad9ed20f8c415cf7d84d25025b34542cd0521b233a0af7d770f3334076a8e01c47e709e700370afa023e307a042738e970383db85086294fc60e4862fa074116b85ca08b0667e78a5fc3d563e047edf3f81d00a9e79450bc4abbc3c9c02ecbfdc230a4743841aea9ad0748086125d0890987f72fbed6612827a56073b94382b1e0951a7c6f9b108fed2e1fc749d59656b55be19628a103cb01c1cd25d25eec12ca49f1fc21781c478bd25059a976adb59472559dd3cf3a75d62e3d92486cb0638d1fad086be51e5975498fa1ea342f4fed2e0da8411004fc4aca22d86c4fa5602d864cb1ec686ba3ffa4e86e9697be62d02cef784b0aaa05fde74380b7aaf3dad23c1b3094ada1b03ed9902aba3fcc08912028ee1dba08773dfde232ac5247a3a775d320e0fdc74a8e8b8ddf8ccacac09cff83e8fe78c82b7ff92feb163d2872cdb28aed88223a423854b41be01b75497cb8ac763ac63edb7248e3ad78faf9033faa2d299a1a13b9a5f1bff61ace549c1825c1ad52826f0036e00e03bbc4a28d67b406a3f93775bfba8c40d2d2db0e889ffb8b7349af8cbd940f1325beb8a8a3b05ea108b465a5fe55445ce076d410064a43ff635ce979f2acb9d7b8a6dfa7c575d5c5d1d5a73b74fb03e074ea6cf2c1d3192087b387b7af6eaaaf0e695c7397af96f0b94cbcd2f83c0be57806a392c4c3e78cb0df697739f1755b6b99576f0b14ed0f4dcd0cbe2c77daf31cdec467fa43c86464adc0dbe0fdd3dcda3d1f780c699d7c21b8d6a02544c9a69815cc109f3c147a93e40805452f0efa0c2dc36d12937ef8d409dc187e2e6410552f573eded5890f5049599875b08affa16bd9b8f995de5dc0ca9ea70c59c82b1c0d6ea601833b1084606c66b43a9d18245840a3347a073f7a19f573b45fb4a7e97444f2d4a807f021efc3c9f181aa86628698abd944ac5f3a7677adf58f79b7553c92d56064c38c090d18f7269958b03c14ba736ca27da949194babae548150e7ba6543cbc84f5194663d149203fecc4113f923bf5cfd6d7685f8da6f609b5fda8be62d4371b46dff0fd06e6b6bb583c7a6336a6a20a040fe018ce9a3a93cfe2226a2616979476bd7fff1cf5070464f6266ce6c77a5806f45145f00462b044c14a8f9814e3a65113ae2497a159307c6a9c31d50d3c31e139e54a3f74ab38e5ff88fb52df787bb7106826e39f7ea5d35b15e58ead14574fb7cd6bad84a02facb412f83a2ad6c78776e80dc4554e95c52acfb6a055cae0620ef7c17ae5b7f988fe25ae7d410e4709797fd7ae8a057033d513cb63d674bdbf79fdb01a6171975996f1ad64f2aa8a2835b558bbccd7ab048466bb274c57367c741738870dc96f8a089c2d47b483789b30f56299c07618d338323d71c569f3fc0d853a10ce1316ed1710dccee41bb553557d8974e595025b8a1923651769eb4b745f0818d5c0e97dbb9d1f44dc994a8790bd1481275eac9c49b64dbe908133b3543bdb3d5d884f3646a6619cc8d523f2a0f3c080321d205374262af0d55993fa569cfee2155d361fe8647de41d9a407c2fbe046240a0e69d603aa750980303ae50a5c0c5eef4513198a1d2045582c16ae3a440d3993dd494d7523739493b06e725a3cb58bd07420d67f79f56924539143c4ba5eff1a9347c9bcfaede6f779fda30d4adfc3e8fea5b2e86bd45be109e4b406845d0237e152963c5a65473943d61c5fdbe7806c764f9f20077a4b8f681433d70e4bd3d181cb3bb15d35613cb942283515ac1590e47419777685f9977cb74f74844a4ea9e37b530405ee66cbc551f9a92c8b28712f25dfe8e5ef1f6a08093e0e299060733850b9a975cd8e2c440d181584d3e5db92ef7c36fe9d272ad8c8b7b915c8cb1e7467791dbcabe6cc805d36149cb2a4de9849d8f4474701938b8999f40a16c8b2de016390c304ab375f8716c37fdb040b59efe3eeabce030d413e8bf6eb263ad789cf3d2893d36041f78793ee416c6c7cf263efcf3b5f42a4f4044a48ae72d5fd55e91ab1e83ed0ca85a44e12c6c5835a6657ec59035c1dac627ea5de71006a476516e20e35e54924dd356367a543f3b5f38a2336952569ba58195e0bec58345ffe61b70d8fd682564922df2fefcec495884932743845853f188425455b4582b033d7ea3b4fc910b7fad372dce715083f42dfad9ca0cf3de86835fcbd3cfa873892edc6eef621ea27fe11a184ad7f34aad439b14c4680ef4aa13b31a882688ed0d7f5c7ed68a5ea4c1ae5d96ef7d58f2ff97ed6ab18c075c09291c60d04c62b8330a9f2c981477230f2ea04b667f841fbc5544a4788ee9f2c0297ed0b588a5fba9545ee1c88394cd74253e194a32ebff9a48a51110fadfc35560f0c6a9c123f0e4bb4d8b5fae1dd88feb9130631ced13f22ba2cb06886d1f9bf95c727864ebf563d0a7b90745ad4dc2d223582222c8882af0e5fccfd44c5a0de11bcfa96361c5e4478382535b53e5e2b74c28f3b7eb135002b683e7f7730b935e7f3a8e3fb51f3b63c88f915d7e81a0b76030e6c7e6a630ab3ca42ef8c1a98883841b74597bd86b33ef0063cb1cf90a47d3d6f94bfa9c237a3eb4831a9ee2263d16c1c9c9033cebaf667f6662fe80f92b0472f95707556984526dd6009974b6610fcb6e16a1ff0392c7ca198a83dca439dba402d356f3fd69215eda6b77f48dac7060f51b5cd05c9f2a063c0c56f32fb4cde6f2453244bdffdf5db66305357a4e2be6000e9576ffc01a0237b70cd1d2e77c0cb7ee8ccf7a20419ba442b48b8713936995ded9cffb12ddb893a8d54b47ffe18ed04bc74e21584d34e4223f95756b7a1fcd68b7a8c293ecd1bc86d9b72f784ff28cb7254bd44f6dffc33bc17963e54c993d8c8defc1b9a51fa694a54b403f54bb7781122a2d9203fc1de03d13d2ab7fc71145c6d6529c8224f3fba2ade6e3575443880389e99f182ca69b808db34208e4832c1a0c3110e0aa20d771f93f59faba705c319c8113b0eadc688717872065930a92bc51634623577dbd90ca9fa4edcb1c7e3ab697014b6c15192256518407391f23c1334472a01cb6f6ef4ef293614495e9788f641065b358540c0aa63f8186cbcca2bcf9dc79b26cd62a60c328b0b794a3361b7c17c46d555201ce7fef8154613adb45ad345d8aabbac92a3421a617aba4f72692d109bfa9c15a6d54ea43c4eaa161002f86fefec571fb9aa78bc11b985647f786287fec3ee4bcc4a5f6f2d09ea889b27961363b6f8f5ed52ac6b85b96322f5527d30e4030faa88ef33ea45163bff30e0fce51141b3871c3d988ce89646f5e69ccfae153b2cf82d8f3b0bc6cdd525ad1fdb297c2e08b270de469688a52141b6dd52b249cb2fb97d2541b0d81013b7f7fb55997191a7b6997cee1042e9431dfb08585afcd3a6e502bcab5dc59634d8b1efaa47b2ce8dc806302082943574d4",
+ "6717083090dcfe36c6bf66e1a5ac632407398946ab75ff61d99db51c54ed6be8a86250bab2f4fd8fd3f4abcbf01bee31b14dc5410b03060196c6d06f394cea2bfab099e75a6411d536e208213904580da21bf9948e330c5a88c29bb9a695084ac28de71a1d17e9f931d412ca175c3b053b6c3d3df957daf298478a81126012b4764f52fd9100193663eeed66e59b33c110cb42d3326e530facb137721249dfc8c132c3eb127b2f559ab7d5aab9a26904e9ada93e4455fe671dd1bcabf0b17a8e797c889938faeaddb810bc37bfd2ce0d18e29acd43b85c1d142b3c3a4f234c17da0dcb6d6949df403c0ebe9b27d985ff4cf9ef2224b35b831bb52d435f281058c761f16a9fcd975ad8123c1b9b342d45e3dfd07c169c72befb32e0bf738c9b9ac82e171b636ea2546541b78a97dec3bfa87f7eeabb1837310a3d946be22e690f0ec40b2d0140ff98fe92a061b92000ddd8d84bd284fe1bb0ce20b642fd2cadc2d299cb0d7514873db00d365f87d97940c1806826616cabc74bb2ca581c5ece66a87d7d661c642780bea47e205d4ee6fa938d26742d1daa38f217404de533c3069711b5c59c7388757fee57234908f74a60915dfb093cb7432f0b1837798ba07e5778b63086a72515aab6cd1330a265a2975abb294019060315b127727bfd625dd364d4d8744eb53662aec4dbb8fef49e7cccaa04685164e9915cefb50e68a3529008f3658efebdda2c4f231d676e06247355b223ba9457f7c6f10835fd97a4ab941f5531800755e5c97d9a55da66e80de048481806abe33c50a0f8357e20017cc100f57996996d3bbb1955d1c4b8db037e5c9b0dd63c64eaba80284f4df167cf995787b0291d8cebea8e91f5d6b4504a05f5acf6154825a23f06ace04c11a3d73d3c57f8c8bbeef489c09de7e5b4cc69bfb928ae2ec54b6f3076657411e2de205ff860310545e596444262f08e2adc6125123a1f591156b5526693e970f0a7b77c20838ae713c28b8d97970b60efdc9652b8ec1a4aaeb85d2286b18e6b64a10538840704506951b8887035be41a1818d67d3a436326fc925d7f1bebdab01a4c11a8e7cf4fe7951ec0f30b66897c6b1f4c960801744a775eb111dc4f20d73e7fc18f179be8697750ea41e8c74a67af17af0531b919847f890ab334a9b4b402a6b66d69a1c232d39a64bbb07ceec09e1cfe94b7c35e334ca63912b705190ebc85fec628d637770e17b7dd581a169128f0c76b46659a06cfaffdb4bdb2388f3719e9dbee236358ec7048256a96d68d57458ea712764c878d1f640c23e4ad2ffb857b2dfc7a15cd45f30174f8a97b0539e3edceeb47c9bb0d06fb1ecd11ac7492a4f930cd0d072fb24b85033de74a6be098c0c846745c9babe70f61c8b6dd1ccc0d9775d05d144ad9d1c553b0df6b960022f26fcb8f46296aae4a6051ff1ae448f57dd6074076e774c7846a7c6d4cb09d32d6ce31416aad0193bf4866195f48e31a891d3415e97303be2db29a09ee444f2358264d411f923a377b00d845d8abb256fd4c57122b64c25e73272ec34ebff6267b46a3f3c824f98f1fe15eddc47136e8811b5acab0628deed01bfdaf7428613a025db13b710f7fe3b40de757654bb5bc9c006a8aa86ff9ea817c2f1cf3f666d937194636e036e1f5912ae3c9d0d32fa00057141a2a11c9ac36e6a992506184f8dbfa7247d318f9dcd67ebcf0f9654dcd229f40d47ee9a768539e11f9def3fe463b1de2ef4b5650d86313982d9d9ecaa9227cebd6650f7b6623eed029d52ff7eda6a0e949e34fe74fdd98b2d5863697ed606416efaf155336ba288998343682302f84ef42c1cc768e4d250d428f1bbbbc7d062065382553fe8189c3423c12ce942cb8ced375c1fa965274329a6f7c5ecfe5d07c64fe4064e039714fa75a0ad314229f3276444adda099ea0c3f49a51a1ac39e57dff78774c48b34864ef99cd52eeebf2c4dc7a3638a085d15f73a0617825776895c5530dce854adcebcb26a960314f8537aede4b17f270f37e050b529fefa70317f7e95db3fae57ffb65cf5c71e82c2144f621f8ba8979240ae67287388e6695f1d4376ad161c54369eaa2cbc797a1150ab313a8b3c79dde7639236365a3201d36073cd7e5053803bb30b1dfeee41bada861311b8ded2d90a10fb70420ebdb63e76f494911708780c924f08d244e0f247afab3a560ed6a75876304fefcbfd45bddc90ed5feeb923cae03cb9d24d083822966d4c6b0b8574ec7bfcffa7f9bfba22344b00c0f50cf85be342893b222ebc373755ad1ea8df7f11d339053f36a7366db870d235fb72c7d172009b349f431daf6c97fb616a9b3614bcccb7d662fdc63b482ec3444c9914c3a38da3c13235ac4082ec450ca568feb320b4882573fef23c63d500c616b15cc38bac0a5c187265e79b50491ba4f957ffe111b7638662adcf81615d6109aeae07a6210c3dec851fbac9edecc9bd67dfc276c1e06980e7a1794872303b19200c524ef77afba4d85b439512ffc927f2eeeae27d2549d5be40fe1cccf5880762306b5efaa980db48dae0204f3400640a18600b571b7e0e4f9ab995c109994d4df5b746a9e30367aea203d376e8463762ef4ef6a2939080b4f7ae61220980a4be635e00e022e7163af092a926938837d4bbc96e7aca7f4deb8835b7368ee90cf122bf94927a10b222df81bd395d2aec7f3f618cb1c3dae7c95b5fb91aaa63b69778fcc859a544f6af0bd189383f0cbc2a239cfabe30efc84d1f3dd7bf90afd6eda09f6181e9e573a2c2bfb18251141ef77fdb726a36297432e92f3e4b0742b992d3d927efb203a815248a0b2292e22137692c34ee2bebd3a6e0ef21421c3edc8e29c4d0a46b82f34e67cef6d1b9c11225d5ef4e74976c6aaf68f7d0d963377f94d1e61f2e015d72ccf9b138e9f6c562588520e5a6f76171a7b1a3fc9c9e28d3644010cc5b267f00ba67e126b1bee00fbe11aed1f56c0f5d18fc751aae86e27aaee79df66027b7c86b29b40ad5376776a4be022ea4ce594fec8bfab470cf17879682cb912ff8d34ce3a3b03be32a2580e30919fdf90d4b4c67893f0df7ddcd345844de184c9acd764b4799a70c3af09476c4c3cd840749dba28046e1df0e593800f406139f777b0323d4147e7f58ae270e92460d26f19f6042516885d4b2596258f3a1778bb617a2ee0d48dee84bcb47a3825c5d65b84b455ad71982ec18e6ce2529e1c61992e003983f8afe70b72ca006882e35c3b846f559b65c03e3b566f2aa8d6a957df6f593677f0548f3c3f00027eafec438ceed85a0a793419a0a0d9158440226c2ea63457f3e8570cd0042c45f98ab86964b916c30542b6e469f2f8c8d9f0ffa64d205968909cc1e700069293e8839c80bb548b8abe8cae29cceaf6eab80cdde23e839e7165ef8a329b4171bc462dd100209f38ea0ca5ab2c54242164ce7bc98c82142c3fabb2dbf1f1eafd01ee394d73fbbac0f8d0659ffc1202745865411a915580b71bb382ee9fab815e41b011fd34ed1e5b778ca710f6927952e8d381af72cd9074f3a462fb11ae1864dfbfaa47",
+ "6e782bb0baf5791d92c0065dea00d78b321814fabeb23a349f098886d50774df007da70abd07d13981f941a4baae686f871a6a226dd324e75f538bb5248795fe6ce16e958e77bb7eb33b3f87a0ba72afe1ddd6f9ece6c52104dc89560929f99b3aa0bcbf30bd554c61a476b0864971af5a0d0fcf24a12faff3f246592bfab2016e6f6ed4a51f0763a33922e10fa8e77300f0aa5d5d422e884680655ce322b2bd2ae0d8afbcc8476fe28838b8eef8ca7d91976466c1671b0c38d2a624e1bb94b6ad68fda3dfdf99b93e4c2165b1580b626a3abdc4d18722fbde1a4123226c3854ce38c28738170e1bd64339d8704904e9d4164078a99765b327c42b15f9e64c8462f373de7f361c571ee5856a5b147be9c1ac94d8639601afe7cdb12877062e74027229370ffe85993f252263abd1b404794d389e8e6dc434fd71f17e11c404e5fd4f10fafca8c73a6fe5cdbc92906bf494f0be93b5245aa8249b2302b877137a6eebc89668e4f81a4a37a63b7f924c2e127455962fc27bfffe3cfdc7a7d6cd1208dc445c1918468e68e77d669225d9116203c648a026036ff5e6e62da53b4042f37021395cb127ee7f4b8870146f092fc25dbeb5194b5b201c989a9cfe97d4ed8603d0d959a01244385069e5c128910616d3b2d0c9566fb63b31b04d9fbb14f76b96da8119e24a985e49cf3a1e42e86ecb56ab1f712d998e70a99d77b0838dd64a95330a2d93b8267db1796d6ec625c176860bccc199ac572497ec918fa4728fa75179edb69fbfaf2122f7ed37251a72147fc0959cf676db0fe4e54a03830516e41ed71b121bc242098bd2e6c89247c7827c25930ceb623357de1afdf848b630b198645826b8a3e9ac7c1f10dbc2b80556e21d6bdd7cce9105a0f73fe09d3d9b15c3fdc09f69e3482c99ead455afa4b65e18851256cce94376957d49a69138b71312cad70a0d16c97570fc08152b7803abe0091ecb241290d47c566e3a5c94220b18a792b3e3d1f78607bee744035a886e55514eeab9e5208e90e1945cf38b3cc2f669ab2c77e87c4c025c81050bee3607089d6b47cddc52a55758d14e3bbabbde776f32ccaa1dd833a0d5ec280a8fcbf0e90872a9cbc337d4a62437eb7cf0edd023bf8afccf53a2bede7b8b097ac665441f9a9987f486cb06c53dd28d1b058c61c045016b306f3f63f0959f94b6742f21c9947d051315e712d36abd32c070fa41cef87a49145d110ffe301769dae64a5437f40d013bc2062794a7ffac5c6ae2f09f968d7bb32b48c0a34e4a351b9897b267eba8d6d6b31d8da7f70e30499c3234ec496af83de6479e3bf8ddb6a553868a98fa1cd9335a9d74c522e4a44295b29ea11d41b8c0aa534a40c43030e223d19688933b865d01e4550d45c6b89bbcb01b7171a82dccd3c03f2c64557758573f6e62e697fea8f719764e0a6d0b057a6b588f56e46b7d3aeb24077bdc5f4799e1eedf139bfe6edeebf0de1d038538dbbd155bf834c089a833d6dbbcdb8a959f4db9023d66513033bab74aa7722d3763c286ba613e3f2557d23f9c1e88eed9d209453b28e6fedd28ac0aedc8e18a9afaafbef7b045980f8eea852425824cf792562ffcedd7e38e9398600083cc12bbfe2e63c8276275a6f2954e76b41e12f2e722743b93d9df7d9e40ec94310b2132025ba94cc67c7631a75e129ba2bc4a36b72fae3e9f007ed5141ddee9e0b7d95c2d2371e0b2a9affa561f28a0d20f4d0b936d3c3b1f5367f6e66bf5c04b1132119e13c57c350f1c0c13b901d8e0f6408fd083695bb9fdceffc030a6617ca4455eede6b09ecbb2ab83e2358a2ee1af8a2e66d46a33e460a1f371e3a719c715a012d2e0cad1ced3dee4fb8416693675dd9ea08cf3b3fc2727dfc999d8af4bd0881a8be0279e6a16883e645edafcecf7eea32036c8f7204cbe73fc1a1676e21fa19f852c36fc8f511560bf04a0b31f13b410e36055cee00161e5c4fd58c19a96796d7bdfbbda9fdea185062c3de1897057439167b75bd1e193f1eb8594bc50779b709d346f17a74e346ec0031545189603965ba9a7a916637ab0a7d62e0f89b8b915693f108e314ea1c2b94c243e9cce8d48355b67ce2bdfd682d3f25ae61b7e5fc234a2c95c4b707956cb6830128b33c51d8a6e64be214e1287d5ce2f2204a4e9f273cca790b644294709c972504b3cc89e73863e5db7fba0edc3a3eeb09ac5ca3c965e1b50213a057ad4c976828817d63cd151832c65e99e40f8189d4f53fb2f94736415ea41a10051b22cd8128403c646d63b4ff76b6f9b0d7e77b61ad8b88f076ba8b4a087be1ad65751c25874878220d6e907e82a18ba78f7525e3726a569386dc5763b1b72cdf2a0cd6d6eb87fdf7a64620b5c80b207afa6dd6db26d491bdf59d6b4459795a492c5379921c1d507af85ce056f6c8b8632a3d613389f193e54e9a68c6305a71a1bf409db6ddc74f2c3f91a9650aa258bc548b1430ea8f184983128d6b553cc975781e21dd84204d074523e17adee94e4971e9450c989c2f200a2b563ebf0457812226f3613a0547040c7622020e4f13c955c172f8c6257fc882dc4106ed4230bdbb6ce37314bd2c37388fbec3e471b60a5e18bd4f3177fe8b3acbe4d4bb5b93004794d32aa8fc9fd4d5ed58c995bff88c71cc5ddabcb7b93ec05449b843bb3c4f40bfebc1ebcabc2e9709a0239cae08f68fff3fa06d33e95475449ba0cc1435012ed10a9ae7d010aa66b59f2dbb0621939e30754ddaf47c8c50aa9e9e2834c120502b14765138e96a844359a1c712095ae62357de39c6327342c4a3137605b270a1b9f422ee4e7650dc3e5fc72c04158092b60b39a586ee508982be0a1543386ecf8ebcd32ac28e72a6eecdcc463ba1c32ae7d0645fd1b597766aa7dc89b4a1f587addd295bde9b807023550b2dfceab9293d2669ae28afb895ad6a4fd8c628f4fa8f62dce51a5aa03fbfcbc84abcdc1aff610fa3f984676a6e76eb3559bfc6a313228267bfda89ee7f6115f5e4884ecb4bfcda0834da1ec57d9ca4fcf00cebcdbbb706f9834719fb4e40504e0a194bc177acff634c0bde854c1968d8f89197383a9bbd707044a04fb7bb3c0bcdc6a4fcabb1fa9b80c6de7269c94e2766347d9015903fd2379e838b0377eb6a74e64a1f1cf5c9ab7c55fd84fd076cb2b10533238226ba9314efa7af340151f529659b8d11f0d054739ad242e841501300f6274e6a7e686253f59ceb6e0a6d2e1704675fe9849efd7db7372e080f9f3a11490e219cf4a526cc2fddc9ba13275bc389ae587a9d475ff8262d0cd529d6021de4a75222eebb2c65b73caba9ed0ebcab70635505bb6ae1f7a71530954260fa41e55f9fd21880c7868b70d68e911adb5ef8531c894396ce383ee2881da5653894a90bd65c51236123f90fe137a234d148bd39819f246cf4fbd66cc83618b04241dfc6ad0f254af8e9ed51e11284f9719e806bddb5ed895bbfae0055fd543925207830e2dae144887f382b4708482608722e948f7e2bf9d82669d74aedd8c8f52225041c244a888b1d6947ba9fd1d83e4ff29407f7e95d20353",
+ "9b301285a69dfa703e8ebf288c2a3ee37cf0ab7033b876223e2faba272f1396d7ba2a68456f153ac911ad89dddd5b3b6a8e64688556ad4bc1fc79d5548e37973ab47669ac72a31ffd3dd17056156fccf2299c5e88b7a22d43c26b3cfa04c43bc165538b7a13a13be69077202b9cd9735d38930d14607ae7de95dcb61b989c2e497430170a66264b0d11650c2063783d34591b53a93254644121371545e7ae1f20ac5d84d87b2956513215cd78cb29f41de92e01e18e10c09803a8b2628fb3956942354e05fc1384365cd3c23e7f22fc240268318e4788bb81f1d0b9522f4064f6041a5114256a42e32d080ad511033cba6f499c5c50b0adf019cd39d3646ed235ea20feb81e271e6d57ed92aee9c897b1a2ab08dea367aea01e0df9c19820700843dcf9bff1e6edf11e4b06091b5bf153ed4951af50fc387cfc33ce8724775c70478f5c798fc0e06add9dfb5d95df3f298fcd0c7ba871f135bc7efec261de7b20774c68ded1e343a37595ca4d10d77230a8b33873ae71a85c53d476d5968cb3498566daefe88d24ecb4e056edc92677957df5269e8f86a817c054b32241100253a85813184565637a9dc67062bdd2ca034f81057da6bcaa65adc5cfc4b35b8667801710b8acbad503de2c78c64ed24a5ec52567bf8ffddd7681ad0a0cd4ce1fbd94eb07a01f5f997662a0857c72490495be7b6c293c4195ae097d20d401d8075ba3e60acdaab68fc700399a7dda5a178c29b371d91ac30cbf6193e730174cad5bc726bb66edd5d959c54fc2a0d82a0e38de19b129dca03ce74ac06771c0704f65dc1771cfe9589bb884d07c8d5808c5140ef2b8e4171c6e9e5806db1d2eea2063cdb010e8d66a46a12f45467c9e0cb4c136e350b099d261387045793f1c9f04514839d7d934e9dd18c72b910acd9be7646f819f6fbbb937404dfb6a27b6beb7e5ff39c1b75aafff5af35894e97ca995fbc06bfae91afc7157b689cf2d3eeeac99e8c2627eb2e3774ec3d8b874153f2aa602630ef7f7a196db7817be37e1ac41089acae1ec6a624d85a35b28fa3cc8d8cf25674268c1451210fdccd2b1f7e232d5e2c7df9901c6ca3f0694c694c1d883fcff1bf6675424c7f4dc7d10f2d994f429a3bb8f7dcd17cfa817ec50c36ec0fd0c3248a6b8bbf8284da42a2dfd90953472dd6473ee95a6f73fceaf429751ea8d88b0255151af5c38805e8537cd7301be254c09c898debc92f48ac2a59af41d31855072931b957292a4a99d13201617f7d0203fa930b6e0a3b1994f8c1559b230b5be608407387de8a5086b961ef245fafee9f89f4e3221353d0ea4e44fd0d0bb9e8be6ca698825c189e2b29b75a45cc450af6dfcb3a1af4ccb895a4607ecf62ee84232fd50800a72b6861250fffce8ae487e24c3dd56e67d97f13edf0f39652115f9309deb00fce21c90a2ffec9955719190913892869b5c81ba2ed8e68c2e3dee4e25e3b4ea845bad6b98257132bdb2f94e9dc8a563c78c348e1e959e083a1842f85e347373331434925ad96565b968a83bec151104885ed8434e033e37e33ba8936f2af99fed34de98b4b6e3b17b3b733739d8e32e3581eea57940fbf630bb8a79f2994a3b633f0ceb3ed275fc7478a6bceb45542804da9fd14de1801dbb70b67258e4fc3822ced5de0daa97bfb0e59775bf3ba61fe36e08f3364c865b2e0223113804ac7e38a87991a5fdad1f01a682577286f59cc3269880bf8a39f9cf5c8d6549df4e7fbb32073d7bb42eb25ce5fee7fc2df6327d7d03d13ab4fe8dcb27920f3a20be9d18b0171b0b68b519005d872d318ea0a76b5e5676c563accad48f51111a079d1e53e30940093adc53fff51d1da5550447af2baa7bb231cc07950805289cc061d4efe7e1782afe13d1b66c991623ecf8a4aae7b22e9fde876fec2d0b921015140dc3fa9e48ad4dcc1cb5e97f628a1be9733935b4312e2d9463ad20e878601dedcbe14bac3ac970f107efc9f2c6a5c6798ba81ea1dd8a2f358a3db578dd76feb6cd7c4387bd22bf3b184cba5b69831b7dd63f799b7050e144e671b39751b404d02ce136aa543cb8414586b15ca2759fdd787a909ef49055d0440fb9ee2fc62f80b36d95bb1304a72967c0220149fb8dacdf8e31cbf4be753496ee5cfeeb33147c83c9826b8b7eafc8f2abc19d63247ee337558cee4f81c1d15c2a4ff3e19a1dae390bbcec8abb7dd9ff0dacdac920006f1d0e8db8c624bf2bc1180893baf03bff2c4fc2f925e0d97d23dbe9c6e58fb1dc9b07ea852da4c7f3936c1cb7c9b4a83cff55d856739b763e01e7681bc430c99cd82720990542666c083526f3b8408ba135d8cc1b6e5cf1b1cf0afc3ddd1a79675e819574031d1bf9867afe440d5c164d69ab52a88891ff742bc700a4d7cffd3f1cf12f3c48150941dd20a582141eeb57ca988fa85a2aa921ab5913b4f9c958e05bcc8618dd35f523ee2137230bb6824b7afefd51b708b866f1059caa7bfee9cb4764a13906d47a549a6b072010ee24fb8ee3f991a828ea4506ee6d9465c572f57103c5fb07d27c7fd20630ef2de16efc525b89fe236b9642c1f39e8d9b9b3e7ada848f5bc5bf364debabd59d077c0298cbbd23a6e8dc90fe5e6ecb58479a1551a6fc3054651fe6ce5f3dd7977aaf9549db67856ad959e35b14af8b71143094990a5ddc87998452465b72e71475742d4b47b8094a53a039883eb99f055748b74070ef8eab0747e65ba13f752e3cfcf9c90479c984e9fe93112d6d907d72afc4deabd1e0c9e448b41e95e255031c0c290a13f423f51760fe8e060173164c9e4fe22e21f978dd9809a7ef9b5b5ff4fc4024e2914a89620e81e7cef51b6a49bd2b1fc6997b07833f61a66c404ceb008024d3b14a6ed408f27949abd86948c1d960b0b1d2c67b9e8a85600196efb7b70f565e19d1d3672be04cf6370e7f63da77c51056eb9e1fe17e797f83836594e56d59377a03febe2c74eabf48496deaa8f1a775bcc9832f3ed8603d788a801fdc9ad0dafd84a184a6b06e37c9a6b5705c48fa3a26f8290281077150ba81c0cd7de004a65ab4fcc2d4a321d9cd7d769b8c08b390536f8d49038d5db78b1d83b440a1e2172328744927775bc5d619a6202c7aff9b5624e6a844620431869c39277ad228bf4769d23ba44a9e39c55b99e1e053fbee6bc80b6ca4ac22a580e8685db32813c75ed8111d96ed46a0c83a07574003bcb6d56e61b18111c86d13353785f0ad7cb9ed31648342b8e0571e4243d11419384cac6c4a70cdb5bc148f0495ac79f487f5b1d23af4c7229d85eb152600673c3e97ecafdaead3a61446009172ea6f81f164540ccefe1e8f8162560e24de2294588fe9ac1aad85fe4dac68a23499c3af6a8547a564db47aef61abb10154309e6569cc7c39482030603cdc0514e8253b94b6d2dea8f1d80d75d313cfce746ad2fc61fbef3ffc27addf1624522a62671e4087c1a3214d1ec29b66fd419e303d516af699bbdc64a7bf0d50357760dd1e760fd650085cad1350f32315fe05bee024b51cc79ab3dfd02963073896a6e18d66f30069870f10c6aa1",
+ "8963fa5b1bf907546621c24b34ad364e17a60456d8602e7a140cb089d7650510769b626fede41aeb981c152f879d5f5db01a953aa82eb883be1c6612f1303a3f5f1b4a3182644523f7b9a4b84483379303e971bc8770412f410ccd9d8f7f4fbb196c2eb17f35fcd345621e45949b27da9a2c9910963e739f9240028fed87c80a44689fe3e3e7c75a070a1d43c3d30b4dd7e4a5bc0cce71bc4bdd46c99f5019233a0bfc0dcd4e502f3975d2a2472cab880370f195406ba60a7da329fb9e75a6a6628fa8d425b53f4f8d30ad7eff2e4929465ad9ac858a8be7dafa34c6bc54b607f0d6e769a7fe4554558c2148ed132a819e4c1a3b0bd98a3adff093e7ea08b0213cea1ca68030348899443832887f0f3485c64bd25ba7b01fdb4656aa424fb77cfb5dc8aaff639a679fdc102078ec3efe23b5911eb133c93912812ef1c5ca23bb523c36c9a725596db049feeb8b148082cfce63655ab5693301b85a6eaa2f9f4cdcfd8e58afa068c2c5f9db3bd619df9aa3f89aa6439898003e511a5ab69246431a786edc1ff9163286052518839d36feff3c43ace69bfe44cb3589621f200b97d6438c69aaa5a3c8e01555409bca96d98b83454260d7279ed29c312715d24c08845386ebe26fdb9ec43a1584c470d18ebba09cf98579626af087c2da12faf571f535733e14330ea42a9dba75e52eec7ded9c237ef0b78b029c471174eb851adabaf693d54629eed0a510d94eaf91d09c76cfaf8d3b60be4bb7ab3b1e8f6677d913ed7f7e1e09d3b0f3da3aac7a46b2a4ca82614125495c4803b166d5d5f3b6773beb6c7084a3e231986c084b2082c2e0cde01fa45c57a9dacf0d5ff953257093f64c55a86f32ecebb883387b086929713af078a5a33d3543986ea6739cb6e8b26e0c5ad3b1277cdebefcb66be4b6dc40e3f5897bf123a4e9840a0a0fc52ad75173d9c4d4cd83d51e6b4f00b4bb37b35f7ddd5ab7a2f0443bfe9c7e1de38d4b2b95bb3a166d7ad04fa87416eaea14090422e8b364800bb121bccee65d67eb1a80f472452ea040d661d9467611796a2eda9d26f7599330af909ac9ef18ef0856dcc5efd0d9ed35c0caa74aa0f7e6f8d827b5e6bf81de6ba8f9751be4d4da2ec4e7a4dfa021c6fcbff6066cd3fbc0d03ed8d66e91e4e9a537462316dbde56d82e6c5e2c3c0c7e00bc91daeba8b0f2529fd076b1cf658a59bbb5459ee478997030ab53b6c072997d129e09727d78e58cb9fd896f9a9755e42dcffa603335ec786f8b79abdcd03fc48355c1536b0d9157cb773f9fe24a6509d06b3f8ea7978166a76c703dfd8534266f7871a9bdde67516e5fec17b2047813b7988a078023b2b1b4f023f91b4745985eefaf24a70a25f3402917ca2c3acb1bc47c84f1dfe8d1e91f6517ce223f6997c156e087129af1d591c0a4ddd057bfb0a12edbb20ae18e4886e19d19d6f0fb2e4ecca6cf2de06243190487df4b9e0e7ce529e6090b39b3cdaee9204d355c3a541e3cce5229d706a43d4c0ee7cc655044fc67653e3b3207eaa5fb8db35fdad77b2aa21c39def7afbc27343500fdd333d38a8f413e3d77c6cea6e24eac9b444bac8d56fe954c334e74df942c61c3f07a12057d65517103e2b503d1742a430100e90b1d27033cb43a377d7ac9a7fa1704a8a0dae9678d6d2baa37706356b938f87c29e799e2b9918ad545557cc700417a3030ddfa612c4c99213ecdcbe39e22ec2295f6c83e804c8d9b16f01120278ab35bfac76dbd564c5c50d77de754e064b5f68ad21a0ab2ae57d3fbbe437000d914a779e5ef8dfcebff5966d643c7753ce3dd24f38e13c20c7d54affa49a23b5cbbfffd3f3bd69a47381e28bef9af20d1f725f878fda377b1f04743531abd6179ef7bf81fbeb039c9bf9b4b9fe39d364606154d0746326757be890a6e444216c7e2dba6202bd480200a4ddfb13a40107ef88a981ed3252af66198e0271cee058be160751ee630f504f226fb751d234b6dc55396a83b5fbbe1363922638f9b26bb159db691351b48f818d0388408a592dd4966ca9c383b500b1969642da0ceb0a7ca5ce495b9493e397554ef8a989524be0c06b865e50d2fb29325951a6605ed66914b7d848c90cae79161d64620dfc1a5fe9c5561f8056de8f888758da998eda54e64c292db8f35dc824ca6b8bfd4d7edffae79b8b51975d0a708bc7272b2819ca104849e9c8ccf496675dae0f47ebc53b23a09a5b68e68ee04a63c75760cff1ca0167ca9260adb5a61556c84a661cd81177038d692c6c82286f4d9dc8d049d2aa26558a287366b4d0e56ad7286398ff38d91e42d1817e400b8a64a2debb87a07bed4ef9d29b3afa9b64382040639fe7387b788400ddaabfd07d47e25bc034ff797f2b99f39f81752bee9fb3d202f840b8221320b03e9bb79b73d51049ac3e8000ea9e98c23d33813eeace9243c2dfc59dba615c4b6d7f4776b03310191721d923170b51b692b70c3c0974483fa95eded0cd52bb939e5550138f35f3c5924b7eaa273c02d138eb46e3f717c38faf911281fbdba6591f8ae8001f0c386157d9f1c80d1b15114be67b79138ee4367959432a9ef456174a5e62079f5023f8a4968a41e7553b4aaa2f1a4d9a81a18723df1e042a43a7b16a10a7471aeb07e6bfe3c2aa819836b2b02d628b4bf03f97d05e86dd06fb828c62f5f1078526f631e9eb77f2f19be86ace92467880ce6a36c05d729bb58f1ac5dc761ad93b613d092a5f515a11fc6e42632d55b19702c9a2e12d3d70a5f871b1db190f932a79e8740b2cf51489c3b45b0b9d4f421d6ea7dd359bd13ef5820183b7feb3b31e376edd5e6fbeb53d56b00956b8b83845e8afe1c13066789f88c573a8d7d242d855bcc75411faa12f92175950edf06763ffd6d2dd8d3ba7cfd7eec7d62861aeeb98e3c0129130dae18957d8a12254b9ced895f609b5be91c232086c8489e4e0b9086e926adcec3b32c24120b79bff864a05a5f1381a6e824c46e9dfaff51bf2bc5b7e8f3ec2ee0fc2cd37e3e59dcc35e76d931085d3114f7b98a83008a025d79a25ab7ada26e9544ac152ce7b83653078134702d84292378a46b8d370f45388f5342ec8329b4087b838cd72b8088df5039ef0a47ec1dc3d6905323845e78dc4e77b35168b9adc1e0990a9ff0a28f131ea06507dc1499fdbe6b9d13c98abea5e5a5a4db49f3de1168ca2b6cf9b7687b26847e95da72b610db232e67273c9683d56684ac8cdfd4fd5488c37e7ee6a9b923eb5b8bacd95ebfd1e8db934f936bbf576eee2e8cb2f35fd87c303ca2f7846edf1c7a81de1d6bb5c890d89b6e434353e34bcd363ea4a3053df326fe58050c19dd5a30b3d358e0da19b65b0e7df7ca0f3a2133916c15ddb9193e37cc7b1656c4fa78c7b5fd109e40e0206f808683dbc91312fa0baf1262dafad6030cb1918bcb3fb0275ddb85be48f4cbd75d94f12043cfbca1a0d3508960da0537e2b44ba724d4117205dd1d46c9ab34f6534654927abd80d4c38e8026d3d0ce1780f2f8f60e8366f6f5742f447a517455c2f9bf53d73a1b5c1f81441879f1b686918bf857",
+ "3c86530a83dbeaf19f97b968e16918a651700e294668edc03481a3022fe13ea082339d60ed18d330285a2ce1f3fae2127425b8db77e1fe817cd0998c864b2dc10cba62605763b7943a663c407571101e77524e107de053590267d04fe61d7cf4eac2287ab38325779a2b410ec354cedf468c92fc475515159decf4dd20789ec437597a0fc03e7ec8a48b4fa50085075441d786d7cd911fcf602acf458458f8bdb3ec77d49ed0d2a014d9905312df5d21bb16fa27b7a134e63bae394a1f82d179a8e2e54cac810990a28114a665ffe99d63a08d481586670174a32cbae6fca9e7f92dedd49e83251475031b6db4304ca60ec3d1bb264f38c718fb1f90b441f3f27062d2a83d40a31aae80c5c0203b88639f3effe7b9bbfb32a9f1f581b64c89bb4f085161a53fc5c390b2db32146b3ff1e5cf1df06e8164dfd89b7d36a0e676ced9b54655e203159edc1c1d8c1718b79ddfe260d5b4a126e7485c5250c33e7b593ae5781d4bf247aa329f22f69a4562ec614df885363c2fee21981f33d46a86bcfcc7c298ee627f12cfec85a5b99f2f70d160914f79d8d0dfbd0ecff830dced954b4a7dfaa20dd12563d31bf1b042dd185209fe06abf54e17a451605c4749d9a6ca4c6923e8fe63208430359ff501c2fd3065a9bae6d03069c711002b94551a102d5f3d908daa805f9d3a81e346c69e855bad40d50145d5adc64e181b4062ff077bfda7bbf6cec91673a49dfac68686b27526e2af0d1fb5158ad3c39fd0d5192bd27af0d1a0012b266cd1aa4e3c23480938078f5b1f84df3ac80c52fd22ba5b6cc68e2b7dbeafbe054dc9fbff47447171ebf360ba5be21254402d7051be23df2a549fb1a2475a0a75dac760c1f06d244c22223bf98c930f90ecd979775b96796b8459d629a0dff12fadf93025373b8d7fd90aa0e0d1a2009074f459aea794c703e26fd3c957478a044d410305bf0bd3a485a5eea264256cce4d9155b13ffda8d2bd2b93e079ab9bef7ae7dfc401583789138d4cc4155d2a75d658a8d70073cfa4b1249d7bce0db832ea8ad0494969bfd933e74be535d9e059c40666799f80670a17480a8838e701605d7407acd09119bfc9b1e8672f867807c3ac315b5b848ae131583a6a8f2901c212d4208ba23b94865a6284b33ccd038e88dfb8b023f32ad6b6706a5806c995907e0431a4e01a37343e3bf989e1d079dddeede070164de00369a1389f522a3bbdda952aef29534e01b89bfc1a144365d9b373e413f9520e3640979084b26bd6bbf3277da1af7d436a7ae08dec8db1a4f59b344c0644fce87a8b82b8c98cc67f396a4279e8bcc843e47fbc59996b886fef2ec15ff7f4eb419f9976add0f7473cb592948b7812c4b6198f710eadee2fe4287edf190e6008f95feb12c28227a3f693739cb9519d9d97c0cd160c6aa746dcb589f842c566941dcb33993d0f01b6c78281bd5eb78658a214eb8c244f3c13a0815055b84a24a90cf401891c3ce3aae1bc111eb2b85e91880a03746aa6a70b25a87946db8669d5c6066a5dd8cdf8c9d111795dd99c1b2456310046395f67a19b6e24d92917623a6f14216c6fbcb1a19a8ceaf28accc077b080995c7bd74a8e762dbbc2742effecbd3ed5a06a4a9a6b5c2c4fa22fe4284da287d0403745815500460aa303dcf12d8006df89a272c9833a36555f733a7b62a5bc15d3ad1d4a363f8dde7fa237dfca24ffafa8d15f0faf9137f57e4dda3e0dfb8281f6dbcda5ffd779ab86c97b58e66eddb89f70a023d557eeb5bc901e5e105ba142d47a26ed501b5937a1ae597b9f4cdd0542bf95616c866f262458220c37e6280aa977f80ca363ca00fc29a9234c3d3fb79823052078a2bf563c75d1151fa95a98886b69828d49321af84283e1f33dd7a367322b475b2a0173c0166e2db6d2eceb9d3349ee61914a8b7ead69bd9f4db482e5ae8d9681c5348c1e6aece384c316ab104cb18dbeb014dcb90421e94d51058afbcc406b31fbd07a5af91f90e7102625fef5b18932e854284917013497a060eedc3bc699070c7a0fefaaa0347a65332f67344227853f9106fe5c19f4a0f73ee43f7a79eeb70d5d7313fa8294773273ce4742fd13a07ef4bd06fb93336944a3a13ac662e28f0de01f8a3de574be556601fd3975e50721f5a66cb956577d2799b2004b26e14bd421fc63294341f628ad400ab232079ada73e7746d2893c86375a9369edd419c44f9d6cb46f2a0c38641b2603a60bb05c2f9a293e9cc0bc573796318f75c43a5bf8badd83761c28da1a60e707323e6faff5875b3d9ec5ddb4b54e2020d70bc01368f7c674231352bfb0027e7d2e38147d827cad8895b343113a9b5dcff580501e01d1ef5f22dfa66afb54e4b5893a8ea5a08280bf669db9be480b550e7f7bf34109b81cf691b113d6e62a6c294e07abab35a9dede0dd8c6b53673aa4aa4bf92be60e7d4422540f08ebd9da131717c5dca2525db67156f0119d8e76384fc557a5e8323d27a8a4408ec87b05e7eba00a57832f5793e407a70c2763418d4db91ab80d1e976242db3a078d089b4887089a0d1030e46d9cba8ba7e043eeb3f55f623ec5469675fcc0ae700bcb3d35d1ad7e6b2127abbc97855783420c3eb707e149878a583d7bcddd655ebeb80a5119a62bcf34ff5b08f0ce46e95bd4fe95020e8f0a4973dc55433f420537ca304f1e005d6a111b87b4f13f0334d6c35640777c145682165f1024ad3d29e2a7166bf753d515536052089bfdc4ddf83c583a8590bde9193d55a9846c1558802ab52ab2a7761467117f01279b9dc2878cce01c2e078301991120c49a5e8644e0e3a25f0bc297b25f5897bd1147da4402c5f06df472c92bd67ef9fa295cdcb8e873caf1a499f9daa09185821195ac154eef853c6270d029b8b1468ac2073ee8bd41bbdd5a9ed1b57f0369d37cc3ee8becd5eb37a2d159e386e904a47717dd7ed0b897070553047632543f64e64bc62487cb5e777569455aec9b9ba6b06134ae9fffbc29291007fc6d6e914fa360c4e0c2f20d46538e60f4739b5c90245bfd78fa37e9412761e3136c15289c4ed602aff1fdc23606b80e6b42de730d73d84a79e1b8ea5a1375d3bcad8afadb3d5c4c462d6889b0ba0d36030a94bf61605d91a925d0acdd37c1d45786af5eeb9eb0d7d157f14f9c8aa0926ddc187c0db2fcb74abb0a4788d3ff4520e059ba6ec3e311d1e631a41679cf8ec4f2203c33ab34b0bf587c09c6dfe55f692f136950e7c59ebaae0c3b9b8191302a930077087ad1eb0682c310882e2134363988e119111dc52e34981c32b7302ad94d4a8ad41aa37d540e22db31eda07b8df5bab2c28a632244f3c1bea2434b66fe654b491e48b4e199e70fbb894fd207678a2def9f3161138df4b3c3d8d63c61838fe8aedc1f0360c14abc24bc539e79039fae4c8b39620a9bca66eb1bf9ade121d53f61172a007afd51528301c370cd357a692a104ac39e81ee6fe0a619a7e84bb7554b6299b23e205d60cb8da0dd9abe0fdefa75f1d085dce442154f2affcd1a423ce951c38240e1e3b47bdab53bc1423e2ebbc82",
+ "ed26b7914498c0f886d181441d761688dbf45148c9f8651faa1fda9cec992101e03014145c536c557d3b47c484833a32cade43c3a439daef26c9ce3458ef7d6acafe7e8eb850496132c8e45a331da788de4fc8b7f7535ad1a5e3430a7ace739fd84af02f02b245b43d977975a5d0b37b0b0e2283d89c8da6fecfea7f3aedeae528f60310fd7978f8a9acd3558af240a239145d59f60ed7fbbf629b1e2c68b9b64ee3e5c884f16d1d02c5bcf87297cbfb6b5037dcfb8923f66d9df7dd3109a27758127b1fd2224c5c4e1340720ac802495778189f28c495f52e737cfe18c73115a6a25528f5339c664638ea4134bc25b6df8f55d4c75f19ae60e0303793f85cbd327deb24c158da0c4ec709eee94c6e613c680cfd66d4c80348d01f45559e77f53a06caa93dd789f9d3c927101302a787731500e2bf245ebf141155636a3a1eb16815c87157e89e6a15f75ac187ca56bdc6030682565029d586db887f3492a2b2088715a55c81e300ece9770179440da6a3f36fc67931db14dc822ce3c262c54a4dd686a24d5cd4c738194310784981a287dca2758d0ab30d70ca5f8cd7cb3adfefac3f4660dcb17bc563a3b7673de359b3ca47e0bb20d89005d563b53b96aefca1f6d8664a883a9cadf1236990f392ca3a16959b045abb782d925edce41188535ce126b49bf737d462149aa79492b2c3390ef8ca3cb74f004b3ba522ee1b9065c182157e3886ccd7aed7358c7e84a0ea0a1f9cd6bf81661a478f2f5f4246dcf33beb847db551c7175a8eedcb936f5b0bc5c28f16cc4e26b5576092e34623fe6ab37dc5f97cbf90a9e1d892e9cbe725f3599c30284cb328046846f67173e1494c8a5d8dc2b02d93604e4ae4971d7c37cc5d82d208eb2a19ce7741820717951262568cf6464e46d246d1a62613c61d8d5f88c3e9ee53f65e67354bcb4f8a680e99d9eb8a2ca0c0e0b3c4f6bd5e93b3ede5351bad7f3ede5d8b065cb78ae4337ebd56630ebb068a03f8b73c93a32864431b0d074626404a1237d82e482d3d2de7cc3abb4759db39d7cfa7a88a15f3155520646779cf4957311ed5c4e3438360ec4417c68c04aa55314c7193709966021887ccc7a64c953f19b844dd3d22d0dceb11b00a3318bc487114ac25afaa1dfafaa579af33dc6e434180759e4dd592aa355e4346156be04388760eba487c1f8598721f049b823d6379391f10abe7eebb23b843cba86acb5358e46e62049514042e413dfad1ed0ae05e337310c56672a08e320ede73dc7780f9e97e59a4eacbb32e2cdb0488560198b045e65ab3aaf21e794bca059b734ce9d8f60e75316db7a66a39f33f9d5096b7f09f3d06c73d23e5c7f70ca26707fe1d095ea22ef0c2610807ea157b77910742f9e7cba6170097ee5a0923c0211fc140ac5b756ea26ff39bb0398471fde4a4dee5f9ad41d19289fb3b9acfddd9816a2769bb63ee9e92b74479efc4c741764705a9d59578ac24c5b3e604eab5fa8707119ba288323b7d3ef93121f86b38ad14066d47d9437e2626d17528c19e49ade9e8aba2006f7212b585c13c805631b37d90138c370a571ff2bb25c845d368c1344a195334c7af38da818af28e1a7db3ece579d974775587347873bc336d69625ec91dfd7b9bccaaddb08fd7cd3c0ef1014aaa8f538e8e841711d01bbd0ef743b144e75947f8b8c6b3c1fb8060bd4b2fe8e5b56124fced863bfbbf60bcaa7f4b03fb153a13be8412cecfaa5d265160b3b4173e7b7b76531c98747aeec01a2a33ed260e504e8444441647fb01627a44fb1a89aac025b01b1fbaf070ed6e2fe8e5e2122af313871c7c4ee5652ce1538007ad09394be5b28187283ae53258709bc3b7554dd8aecb913f072fe43464d9c935e68b7c4896ff1c18232ce8533f51a6fddd3e8bd8388e0d8c414e0938f29c7436710a400daac0987b3c21175cbf4c3ed0ecccf9b2868df99bea722e1de0a070821808e7135a6fbdcd5aff63778653bc01cfc2ec33ec7254fc5d8e933bc35108908fcc494839144f8545c678cfeaf81b1e205fe57e1e0ae47039fb015bdd11258e2af7a1b63ead7c16e4e3f90589897c59088d22931bfcde5c52c8058d50d38590bcabae0ab2d6d2839d2f5605e70598158238d0485c808d3c6eff6da5838f50415f65c176127bc0cd083dee265ac8dda7316bac328fc8121622d36c204137e18b7270bc7318b6f918961b123dd9bfcfa15fd88f0cc59197773816085abb85522a501e6b3c8a9b19707c4b85e604fc7c10c312a735da23616aa79c289976a253b660b6e5e0449e98bc126dd2b2f0597bb8b52b5ed659bd6f8756b57c564a42350262d4bc0f6beb129397ea7614d9d2efdb3c6bb36599a1ff35e01e8cc19fe25df73a977262d65ebdd7b942f905d68dfaaa4708181bcfb85a7f32f48be6458ae62266fe3662ce4e2efb70d902e5e523f31a2869aa79ad0203734348c40db56c62463cd031e270edb0bf9c1efe53e23dd8c94e44acf2edefa93f6b8912df31f963137061d75262e4524ef034862be3931fd8df1b1458032ba6b78b10089c3ac36bbdfae081a0f9e286dbe1208277f3ff97f058c51249795794daad16746113e80297c24b5f3941736e3df72806868d530ed5575c40de18285223533f20e0d42378c02c4da6f97a06c06362871cc81345ce7b75e0dc943adb18816d15ec700a76a7601caac2283fa77a5c758e57ca4042d509d86f48dd9e807d88cc95027ac6e4027c1cf8922287a1ee2a2a7176a38f5e0a886b4f3b97a49da20e12979dd59decea3bc2c1cee34680cf9d584d5a84153d9b6063932015f33c4e26226a11d6f33490a2098dc6b71d955e4e07acd331d75b8cbced50b9c6468944b491e37143fa338ee74d7edf204fcb5e2fd9ca2cd66c83c23efd075bfd3570352c1c01e24582663e992fabb16b0f53fc9a63376f898ca2f8de514b5c895b86918813c2a29b3b8d4bf94a4a5cbe44cfc1bdf5927a4acbbfd160ca6ac79547da3b583157d6b60f7bff0e1972053a43b50797f3c6190312262a97506f9c640f9358dca192ac38acd5118d596e80cab0e47b40eebc13fca96b38b49c66e9feb21ea4e5e215b28004814faf66ce516bdb1270050579685399d9757e15efdbad5376524b5a1271ea7066ff71da060a20f03fd442131a5ad057a70c8e76e14f5a8e773b4ff3a246e12688335eb8d9280e9db1d4deb4601714d09ff090149ae14e068ba6fd456c23c1c3a324039c411eefb2390dbacd4b428774c98fb7952d2776cde2dc510c7134f40cc6f32aa31968f8ef927f86c32efec6472a4fc0ec3b6e9104871b11382e12ce177aee28f19f79f11aacadd7776b6a9e6bca2a5baadc45854973b5e33fa63881ebe6b8ac245ef1c3c71c731b964f9881c8d96de5c094a09d7fcbc5992f6af2775bbe68b8daa65320c7cfeacc5086b5f8e97f535a820c77b5e4e29228ba08ad93a0b4996aa182ffbe7d81157e141395a5246d4533484f00ca8f56796133a39300deb8bda8d30931289faca69b71cafd137a1f3e55848e6acf4932e95543d190ba76cbc285155c99e7557771",
+ "f50e84140c9eaffe1fbc7493cdee2879e801ea8190ad0bac19f7cabdc6141d75a3da2c1476387851931854a181789cf5822923081455e8d3f0a0a1412207cd35e51ccb2c55fc755d7dafb197ad2522f5db5f79fa1a8973765b01437310ab461ab4bdb2a58709651bd02d739cff19864981c3d8e86c30d752f73c25495f686cef9dd1610dd6734ab5e7c809f9cc45550ed49abd1ec8c78a47c0859c4a677900803a59434a0b912881fba29029d3a6b4c79523d1c68a05bb77069374d74e99f74539572f1f2a0b17664aeb1b88126f0ba0307583a92ba631b418b5ae99caad2f7ebad85e73442a5dc7d41f347c6201e2b5e9b09e5fb67803e742bd992658cd98ad6dbf9db6c6591d9382b5b1f7139e94c3d36429786c35ef2bda0bf8b9ac966a6a2ca9722c10c2892b2c3561ba7edceb36116bb536872040f1dfbeaf9ec11a834c9c45210eaf2fe5222677f182c885f89da1792cc0f2403b2ed495ba78f1ad2e89f288878370564575e20e4459d5a351ea0b0a14dcd8ae95cf9e423b389a527bd1512d8cc3bdb6fcf769c3c33f73c8a142e888ccf3eb9023ebbfd1010c072bf6fcb5c43b67d15c64ae13890ce7e1cffd38d40e4c898d210479cd75ab57e024637cc9919fefcc2c59c39f3dc34487b63e8f80ac95d378431cbcafa902c7c7ae2220daaeca8b4e48d5dddb2a0b55a585c0814146afdf968160b9e3b2db422091efb37d048c40328e45f45fb8e990c718f52ba5eedd4b17a1962e79617d71d8a7dcfba8d977d0ce1f98450544bb1a3fc6ec344f80dce464e7265e9888d2fbb504f9042dafb0b33c284f2e8097be033bae18b709931931db60c861170b5a4c37e1e8f6ca4a0990384496b7c2a1a9429dd40d0b5ca981c486cb38a8d7992f36c5de597e0c1ff82e61b4c617ec9a09c4e41ff779529773871654a1c68dfc820798f60b84a1bca73cd134fdc4843c25a62bd9f9860b61a75ad92638179ebfba14b4eb063c6dee8d75d94a551d953de775cb2985d1d46729d8713bfb04fcfe7daabf4354d7b5f186b574e56d579d2087c7b90f0bd5989352770dd42dc6c6fd04dc47a3f868e3fa33b6a2a35f7982a049b26f08711000218963b1b7b8e740f5ae5ac16f4e9139aa72bdc34c9b190a2c9ff808a52495c41a4cdae346ed6d181ab5c4841d3c7c7dbb478f3eb5afbe13cff9a2f926ab9bc925d764001b0551a396d94d670a9ba14a6b60a0ecf6b7e756f51d74418a03ae752d6e387b9c76343bf25fe7f1f4d9f29c200f30c7e5c7f3b0b23a8664a03d61afd1a4a37be807b66f81d873e70faf5407bac374af59eefb98bcaebee33c2192dc8cd4d92fc41542cc42d5964ff0b85796f7b80c1e81b6508d132bb09893018862e6125bef9dda22829e3e083ebd3708bbc3f7dc54fdf105f86e73224aac39ca2fc598511022ec7f3a38a4e67ab7df3c58518ba7f57c2079933296e7c97404f7a570738b0f68bbba782fd998ed1ecba976c4f45880be6b094598c6e3c8087c90a5124605c0b2fdbb3735cc0f17980e04314b80996d079acc1719644a2c8c6994fe180bbcdcacdfba96be3132fb30b8368a022801c635ab3e45e3d74064b4d78cf2dc3876c1a4f8e473614de0b2ff9a1d751aa326900a598690da5846b5af26221db3e4252f69685c6ba1b61654bc5a0d7c22f46575b3d7e77222f5effa66457afa17eb4b5e1f83e73b4a5bfde12548252149716cbe9335a4810da1767e1cce16b00449b350b9db59b03906e9bb580a328272d0e9848b050dbdfbefd75c4b15e24654f641fbae01c4d6d72b4a1d30c0e449e49035473b8b1293a4551ab4f5bafbf52bc16911d394b3cc52c2ec4125f62644828e95f726453d2ca1a2078b53a89b63ba1fe7e5cff952499495c61b51f66ecc6ebe56d3976185e0897472d019a97615ddd0db5931b8adaecddbbfaa5eeeb25c1473c1016b89fe64bce4166ba0cfd023b326fc467ecc227960e20910c587c22f134d92c077345e7fe0243321ce35088c240b3af1cbf5909d356a58dd2c8373471a4205e44399e9f297fe3454e5eaefbbb26179a8b9d5990f89e796778ac3911a61d2453095afdaa034571a15bf5c80cdc08f62c3d3469c8825db185d6feb1503ee0c85253051758fa9bc4d038845e555d63acbb3cfe8b53276fe90f54c222a3c4827dea75b7492743cdd24c611e7844453bd5f95473901697dfc271ee8acb07cc1cca06f99226536958aceb844aab2459ba4a4c2f7c1a9261001ca58b547958b901673fe4e48ffa596992a7e4db53da03dd855eb36f6d5838ca77912964003242da39d597336f0c7724ab3fe2f426d2d4ddbe9421cc6d52e3c3d822afe51991def1aeb69912141399d190c88b4f9efd5932fd15c72a11b666a9cc1418810477247199ceeaabba5c10ddb8a8784b659751ce566c2ef3ba250d5c7e9d65341c2dd7b705691f183fba3cbd8d0b2965845c209f9b5ce73be2aa41aa08a441132cb1057425db74a0f23e69338f6ed677b2fa1ae15c6051ba4aaa63e3e233dfb5a44c1c82ee8f222454772f2cd8e19a722da659527784c4e8f0ee1aecf796d3270651284da9dcbc641c4bb1524bd6e267be5b258ce43ef3743238b1e0f2df3ea4487e47426fb0f824bbf33316e5a0a62c46bc4b6b01657a23fadab7e139ec0c4d179d703dc7c19e07399b7f8297997ff8702ab66d0ee2e0ec268b224eac835806b9066a083850a805f50eba4fd0df00042d39fd1d525e96f9e57c9292aaff770787337edc45414c62bfea16192fe2e40d6dd8aac51428c7726a52e5f3b9513c32df5c331cbeb0a6a763b787928c504093a6f94cc387e54f535fe805ef17c125cba9444687d645e0bd70d37718674161c9f5d6039057c12af6adf5ebe2f9aad8309ab2f116b21eff87e58f9f7e6fab499c558761f4277b3d705f1aa7896a9ad668bc69185deb68dc43053e8ca014fba796dec396e66c0d99bf49a997e89fd5ddd4021d68461a8d2560542ada9b0d6c45ae48aac1c09040bcaa070163f6b1b1d47ff0c5d1338e4f1796b11ac6bda3ba48035f94b7f3bea40cffc03b3abfdb34754833c1fe0ca1ca6f2889282180f8a97f1bbffee437418d929bd13143d57938226afd205b8dc056e725cf75d49becde8ad76d25cb2a5d71d8c34f083b0d43dbdf3412272b05bfbaa3936dced9414df21ebcb24db4f7dcd396b33c92b435489578743d353e314fa36bce67dc3066b68c706b07d5a900c43c7882a6559bb3a0025a997ec08ed7ef6d386c4bf6441309f14de518ac93861f85abf40a27f27e67e5378a4e2682f920afbe375ea0a74f9a13910607e2c78ab76b0a624e755731c8f4f4cad70e55b33ddfe0f17637cd26ab78131da4abfa344532948ae37ab294f5a0e79e31e6c372af683f5ddfa8f779e67e91ae7fe9ae86a291340705b7b31efe270e02244734239a70b607ec8cf472445a637c9e856bde5d6d7d3bb55c95239405514bae26de5fb8896c4f18df073126da4f48a33b2b7ce9792538c399073315bdf0219392431ea1151fef9bc50c4e33f1768200c692f231c42dcfb6dc80a56",
+ "342482509ea2a9b6b02c117dc2cc3fe4b27787071ef0ca1723aac7881136ff4c65d19fd37b6750c4d3f4adf555875c9fb0ee7a9647716124601389e9e1670aa1fe27773050f75c49938d8bf30514184c9197113b0b9898999de2bf4364dce3321a75050678d709f226ebcc3e11afdb02e6b3723a0b068c0f3720797a280085c51b16c7caf218c8af5ced217ccb79ff0623b8b5cd0fe592d217897ed87cb31dca18c434ffd2b7ce97313a6d3291d9010cac242c5c14a4b9cba55f4b9db94fd42b5c9ec1e98b4c605d0b5c55243f7e80c59b5213f2eeb3ddc8f947f9a3431f2cdcbde42d3644fe08f15fc11c77dea686e6f9ae131c7a8f1e617e28843e701b0e76fc7ccdb7640fce999f93564f5254439b60c53ec03b4acea16b4d09463b16cc3e27621bcf7a9252dfaa98b6cc897f9036e653c49613a2dade5e10c01c6b770be23391468dab82a14b87e188fe3575f88b1a94824633e978c73318ac6fcd506b5c75d1b70bfdf71bd3ae51172405dc4407f7307ecbef10bc76f150f11e7d192196d51183d642e8141e8f03ba7ec43e858a1067026f090f8d34672b0f8e158b6451d46a088c5b52c71ca693e5d58cd2a2f8550934bc4c865a3259f7675c316102245d29d0efdb491ef8ca40adf12a8abf911c11143d9fe11345b3e3f84f3fac9febeb845f84ad9502acf0e4b289a50d98846cf49cd43c5bb91da831c7f1e391eb3c652a285c933eb62500f24908e37a3301b9fd04bdab3ca2b729aee4303e64731ddad57ccfa47b89ef80f3e790628c2406e65fe49eb40527f29e37407672ba8162ec69e6038ce8ddfc4cf50145f0462c3c8d5fde9bf56d9e43f6242cfd2bd661057cca481d449e24623818f50ead30993d676b172de3906b6e3e03fc950baf1c64d5f7a75b6bfd8086dbf3dc7ce443fad97b50a07e97f0a9d0c48d4bb931b01c30ef27807512b594f74dd18bce2ac24939b711a6380d80b0860f9f31258213e6592aa658d1ddd6b6e15f071816a12b24619f868f8c2a461fa285e69b164f0539d16de24b079b741e707b93e7d0ca1ff9aba0adfb92e43c80bc7082a7a6687423ee37fb45e4bf0fc16e999f474b611e00bb10d673e7cdbb59d1bd45c64ea8166f4f86a28b6f5c89f4003d6921a1aa8d6ff9fecfd23bf081d6045140c0739760fc2da6f528a5290d98ef190748f99b051b5e8b0f7296ad2c6bc846e2142f508af39dcaa3937dd46c3d1e10270b1c3096451f84b49538a04083250f349bbb8ff61e6cc8c8209888afa9d11387ed1ea2234d1cd4696fa0eae725734a40a557e5eadfa369debc7f2f494843e27cf375a5e051f55547a792fece17cb3e2b9b33c703fabf8975f98614846008ae334e413cdc595d7b676af9b6deb47aff0c05c0c7a1888d6950a403bc604becf63ddbe0706b701eeca32d3bedc9894a7d1d3cfbcf779d5a642f63ac94b88264c8aa55d04afb135fafa8fdb8bc144a1ade505b5415b7cf4fd1e14182c49384bbed63bbe51f01b1a1fe6bc595fd6d62072bd2660b46434b7fbd76ebd2438eee226d82af5689ddd02b57cc923cebabd58a265ab2eccb7c092cce2212a54c83252747e4c28500194810f17dcd6ff2f6f1d1b8daba6e5edc89d81d4322d873c349817851f526638cdc86d4039905959947aec42dd3ba219e7fcc98b18cb1859f03a0be42d70d56160fcd141944b2c6f90db0a9f43d68f28032de402704a99804edc86488a19ec9943c325dd37b4d65a35e028837397fff91c3f7d49e7fe0dded37ae5e21e52f5ac99041916853d2158485a78e5a4e1c5735adaf10a42b54b3ebf425fe89e2231961579aee9c4ba4f9dc213bac614afd32b4ad781a1e7e2b86453ec3821ced054a54c0ca8b7f42cfb10b518b7869cb88855bf0ac055ef3a7207cdc42572d1596fc5e906c329593bfe9b15062f5df25b22ac9aeab4ab297fb7f5c518145d58216e338c85978143fe538be62d28b3fdbe9a7527192d42e5b006bbdc937b44e907ccd6a234be75b2f9fac405734b8beacd93905485aa17406e3383621dbed31b5e6b417a3e3f190a8c6b48d8e6a86d6f55fffcb47d9a72553483e9f0b0d739a96e02556ef4946cf86e6efb833b4d8bf1a59814ba68c0f4165d8a4d6cf2325331537c04b74d92d725d7fe6a5cce8c457644cb7f74cb4cd4eac6ec620e72b3a4bc45e3fa17a2685dc178d6373de356e69d4ce59a4a3d9a26cf1b97ead2d7173b371c44dbd863daa0608e22dabab69d4a7410e443e560b8ac70ef8cad5978639bc217d8d7c9e4c32a597dece0fe0af7840dc3f7705756e6ee98d6fb52ae22cde27420ade56efa6132bc8d313c5717f4a63ca87af7cf5cecd39bd800f439c0363771fc4ef5c29a910c7ff1b21240d894144d324713e676bef902f6e582d373071958d217463f3b0736f5446443343dd097f9f33221ff88accca224d5d26fe06fdca46916563da5d8a0bf16792f1401426e7d03a7bcc1fc264deef83ca59024c01411411893a4c4977c4f1133c2e44a3f7fdc203677117d0c13396761806eabde70c8f12c1f715394c21a27e397db7a6f6ba664af34bc1335901ffbff4de80207b52bf7f97fdc3e8098dec9b84f0f205f659fe936a76c2a4ab5e87a06e7a2dd99a6386e82c03e048f9656651641ae820682f554c5a4fb9b2b79327f270affb45886003aa877a74fe30cddc7f8e1bdfebf90cb19d2b32f67b84ddc35f2f3fd3860084e4776ec168542d09d1541a2b1165d9defa0a03f64ff457834c1394bcd589e6702b98f9e9add8b7bd35d4c28c20b8389cdbc5100b48d9e4d1a711b31cbd9f31818c348ccb6ab63b16bc010aa6d75471b5b958cfdd5f607db1e2cd08a0827a82ef9f82d959cf1ae2adb28b522c6491d0ccd6f1e164cff5af8918c32652790004a6555eff8f028019c18d26155c0365a5f5afcea07bc08cdc9ee7c62062e905fc7f65340d5ca8c8ed4537797f3a17607f2862ed570a865b30c20a80d058ed01dae8940046766f5b14be9b8dfbb7b3eef6be5db0e468afe12260d4a996f1e741aae9828ffb9090517f77f7c3218652845b0e6fbef83ff1a9ee1d63f66b4952a208a11c8c39b2421319a8db59e0455721424808203bba778aacb31f9d68ecefff32243da29fb0af8ccb15908847794fe92501e1d6d09cba3a1cd52183a74bed0fc494fe112bda6d4df2685c30325ebefed80c643087eaabf55f8ec81650a7c089a3d989275f0178b1a5f6202674143fbb3f781623724a2c0a4e2aad9fa79e628f00817dc77d454b5c6bb55d9459c36ddffc1a29b0b5f8549f6bfbbcefa604a56772692aecb73335eb431784189e1fcf494b9fe51009d1a5dd58bf374cf7c7fb9e8c8ecdf51ef78995b9e8170bdefbd5aa60d3df26682b59859278fe8e3cbddc03f0ac35fef51cfd34cc5297d5cb70ebf67510622cd9740861653252a427098784cfb2bd654abb212c64be899999f1a1ea65c686168cdf96b8d7e2125440a04dd4b04d3a57f22ee263c1ef8100afe574d4e9a5e4944a22c0a1c27ef44ecc6de9e85c262e6012c087c2bb91232f6ef29e08e30ba3",
+ "8b2ab1da1c41033e98ad44624111b744f34f9a345ed6e564e917ccf6789ec24bd91289c999b05f2cc6bb4174d2b6c4ec67d8c8547bfb3011445af361d1ad1843d4880a77ebf53a3bbe3c49e544907685c19fbd826ae5d87773979faa4f24ccb252c43b0b83b8cb529b7eb596c63c734d16d319a5c350fcba36a966df52f020016cb802d762fa1e03c54ad10c2d625256ad3f4a38d215419d7cc0a75ee961c4730f0cbd2da3d3f31606dc004fef8179f4ca01e86c41ca4a4c61c10458268ce758d4784a3528835afaa4eec7bef35b1aca14d275af7f37b822af1fd1555a08e074878a5f86a1fe07630ab74528c6753086ee476cabb0f6f4e79b7d72ef7da4343949433ac073a9835d98abe85c48c5069752c3b1e10b149b1b8c71216da01b7308bda77db2803a8d804ea09c3d87d19f577d6f122e5a458096d0c79d2263267aac44e380b9ea7019c759fd662fc5b3196558e329322407871fd1ef89df63f49a8b3f456c9541baa2d4101cf8a7b9fac658e996cfe4f4c793fa18bc0ad55d08a8c126d29961b47fc28bd8e548fb2a023f4795874e0f696032ed2567cff133e5ea49e2d727af634cb0a48234ed9a061060a3a01b080f373ffc7c9af1ffca8bccf4cb67549fe0662e917a7f7c70f21373a276467112173afec534041c408ece7dd5e69cf239fddac86a5936b24e5814452a1c27866785663b6d0b0dc41a4abd8fa9a6c91813c57491c91e3ce14128723cc7c438b615ca8dd6fcc9c68f687693d5585221cdaa72f32e60948b0d9ea814a5aa6ce64955acdc03282700fff7c4f7a12a6a9b272b21859ed3afec1e4433a6ea235d0fe9b1f121cf1a04beb2609010848ea8b267cd25d22707474778c048cf87f1d210def4795f1681f02c5be27ed63bb5bce22c4fe7690e45124efee35b5a847be6d7c7c5c10730abfe7f7cdcb0fd757ec1a36daa5007253d14033861466610543677973d3339f49c49ba92690b226b7beca5ac875e14a898792ece38c2dcecd3f57f6b09bddc84fb10a359c95c9224847cef54bd018f50f0acf5c97299fc940e8aa19d4c5332ab2d28de057d12126539a441243817396546372c4dc448187d9d9ebfe77cbb669f1bed69390bb824c661bffd8b64f7e22885fdd326c40a7bd58fd38804336d78ad3bd277179259bfd71900771e783c799d3b1a7063bf931697f22a78bc4c41cb254d8c3fa0b2fad34864c3d024e8d6ac290e4bc7a2c26ad781c2d6133802edd18bd019a824351211b188576e0151536017d0f8f34f6af4b0dd3a0f5f4e1dfa8afb0ba7e9e00922fb5e8f2fe47a1ae0cdf0c6b8f54abcadf81a989f49d696637ab240f52c5fbceec67dc90ba3f45295e858e46c75d8889b4c8e1d76b81194a38841edf12fd34f8f1395b2707b4659a1bd7968615e64493dac2814487e6dfe3650ddc941c60054c056dad409cb0b0dbf7851ca0cdfdc2feed797bfe488c41deffc3a21a8a45082d20f47a06fd59e7cbb8dea435f6f3c289e038d6fc5acd43fb21087b255fe236d00689202272b9461e05e061df2c9c84ae3876f3cc5d3a7721e39303fa756f5b56847a543da00f43269d23043edda5c17a32f5b1c0068753efee43d6d6584f3d9a079c459981775706892e46273a9f07e42433e26de6cf0bd8ac4e64ed776699f499dca507454b8fea9a4482fa2d00fd2d1bbdba91ff3ae4e423e64f02798871b5f1ee156c7662f9009b7a1b2b9e6469e1efc9960b9f127e8792d62113e6fac3cf503571d8bc80347e29c309d1aacfd2213ed5892f06189c4a257c75af7d6c2fc7b2d5240d845a2b9e7b6e2950d249b4ce4297094263fe074ae5ea70389f8b7e68325442abb82e3bb37bc2b24c39034ffc93aa9275944d11389f5917da340f976009f942bd2b672d2a13979c28ea573e5d3b25097a2a75cc6de533b3eac183f674dc3ca46ccea5ea468776531b2f78d0e307d2445c97e30d1cba00f96ada7e3755e9de6a935f3e45c3c5c3220ce2b1f5c066ad5d49e186a011f631767366129614c8807471dc6eeadf2b541502a04a3721b652c1b7639050892099e8267523007da7f3257590548eab6244129034cd74bd462e3b778bc2626b3ef0ebe144b4df3fe2824a39ad7b7c582c8788016396353c2a6eb5242683420616e863b71817d8c1eb2a6b72cf9439655638813ffdedc78824aca2ef7fcde5e48a3d848eb38bcb8040a12520776de0dfd8521f2eb7d3db3105024fcf534c7d0ea77b2425c17d0dbb9481c57a01b8aefcc4f21bec3243d1c304effa7c59131621222276b4d27571206d2d73fcf95cf9f274654e6d9f3e9b87dd9a767f3cc8b7ca74d7e3dfb9fe4741f9aba27fb79b54be7195b35260f04aa072f1249d56ca2df00a514c867a4468979adadaeb7267bf2b85b2f7ad5cef1d067008b73a1895d17b7075fb4e08955a19092b299799d772fe9af5488e9460dcd0bd0af2699b05caf941d41e78254de525775619cf71b2084e7a1b3ab656f555ae5c9b232d416f4168b5fcb9429d8206b40a0ed7f5474d3ee3729a109e1290e5caee9a534db60cf05e498228ee2a476b522c8720e69ccbfbc27299a8cc2e4ca4a0d8a3ea556e0e749dd00cb6740a76ba0fcc57cdeae1f168c068a9771153379d17b0fd45726d30baf36970c96f23d02d617af00a572efb7e1df3b8d71aa0e9893b0e91bec6897d5ccee179a7118e0386a5f4f8b96320005e8a3617bf5aebee849dd96bc8255cb20ac5d3064abadead6ea0673931ed098a3b8a38f7573fcfd83fdd583a184b54813d364da1501eecdb00cd2da5b8a1ed4f2deba90efac6f881092dac10b37b37e88aaf52bbe9d09aee08d4264ca0faf01e235c4268d88ba5f232896ebc205029667fbc68bc8477b78777ed484d40ac62f4cbaa540bce3d8341dfcbd7a7bc4fd0932f18f5ff6f96ab3bdc2b774b5dfd2ca8a40aaeab5b639a515b694e20056ecf156212774a187b8e0a9fec6a7856c41e095d8b5e091bf82cc5cab26e7bc0d2c70c5439e1981b5f77c79108fd780e4096bb895c3316361e929ace20609fc90f84b0c1fb610e96de5a02447629f3c405799498cfd71889e274b83284c14ff1a67dd38e55502fcfa7d564facd55ca2fc4fd0eb25c39391b9ca0d1a152bbe84ca9566d61a4c9686682b74d56849eea321cb1f85bbbeb0ab4a96316d5ab799a8f1fbc8d719bf48c6a479ba0932b325ce0f44b1e43439ed1d88d0af6ed83c70fcd1f178692c08a8be3070095b6005eb76a443a001ccf0023948e3e1b5bb7e327b87ea9ab448ff8f43bec5c9b5139d85501cadf372def001df864d1be3095c21570046937069701b28b891ffab2b45332fc3fe28125fd28b2bda0351e6d52794d902e67c2e1357c125c9520c63419b0a7103b0da1e83eaa2bf60167b62232a1c374fd9fe313746b7921054981cfffca4a7ed1eeaf46d5d54e43bd084ed2e368d9b37ddeec472078cdc5df17c31d6f789f3e2c8d429aa807730424b03e757658346672a4020852bb025c11b9a0536a8ba41b7f86fc633a5bf3421a406adba15f8fd9f75e939b6fb31b83066b4c0c3",
+ "b8b3f7417a9808d0d8e5fbb018dfe40e3841cb54dee670e77d743648b74810063327561f250a1c76b65b2a04f08a7f991340e7b9e321f57095732ab507f3770f65f9d3f667747bc8da88d1782dddfb5d1e7f73578b1b7101c082eccf30779caee65865e2119e7db7581597cb9427b6454fe460b9168378cc1463488c75232e1c11d1a91417d52a05f6694620cd81d575d4f1e175f135334c5b47e49c4d139e2f9d681bf060ae425dff670b9729240d819b95175995f738e549f7805bd7130699173a2e64d159afd064ff5eaed96fcf8f7802e2d9572a3a220430b3a96dc417e4cb82843dd3f91b7a45d9a2e4b522b0334832579c31e3eee6e9a2c4999a68a3996e2641c3f465a4398a9a3216d55ed962720cf6139890d36ddd392b9225b78cb0a959c9d839c37f983545c56480ee85894ee6be50e9cdd7b7295b0759b9b55a5586f8b64913ec5e13f40917d8fe98bb9e85bf5c8afb4060a378a123c0f42a37ce0d150a843c6817acbf4ccdaf91e599f9f81adf9621f828207cd5a58586b74c5bdebe758a9307fc6bda30944b76d04aa02fe3b8e93e7910c3cf43c86fbd3d02ba89b5f18e5ce29213f2f948f510520ebe39baa527a203221f4b988ac27f25743f54a43c56da2c7d2a8dc8e0ccf6ff10b967e818ea2ffae312840fd8cc6a007fcbe39717d0d8bc9028d1923dcf59b512ce2e8ad82878491de82e35b876aaeb1f0e1cbe7592b303b307a2e5fba857cabed298f199c28d3208ed8fd25d0cdb9ef4d22392677b3ae744124e55abfdbb8be3394a014cd548b1bc570b3493bb3c6cd0f00468ab60c85d015ad1c104b3798130f32fdc852510a9c6be937d099455ab44caeecb31ba9c38c9df5e5f1c05bbf6657f6ed9be266612f45af529db49ed2686f03f8a3eccfec35258c2e25abe62f1a3d9e4a135fd4f01323154eebead542b847cc02a773f65097e933558d00f37eabcd792bedad41159cbbec4a558dab3eed21887346332735fa29d83f97b656a4c4332abcfa04648bcba0208cb249415dc1e60b83478785fd58ee3365dc0b970b7260c0b41ebaca6c1fc5de90102410595c115195e491dac1e0a0701308ccfcb4834528ae30dc900b6c45126dd68ccc852e8b12313bb8417ae89e525bd1bd3033b0b0c8fe0e1748dc27f9041f9db1f9f53ba7d291f2f64a10d80e467a2cce8684267218109d0c8f2aa769a6b05424a03ded47811a2312bdf9be1ada681b293c89ad236f6e65015dd80e8e3a9013e3d466223f97ce7227fbfc3af9a23f691fd8e464affe40f17462c8622a37410403924109e5faafce24ef1f92afa6cc410f5e4cfb6c67972a033987bd7ccc3423215be5e1613ec453baa372a7e20477d1dbe1dbf5c6058f5ef6c8d582aef7ea8190d80299b0542269b26411692c1332965314ebaf7a2ff9e233a80881080ed0a9bcd3767e7b82ebd67b8c306335a71a9f69a79fe244c98bfc149f31f8a8a6a07decb95c4dd42a1aff023ea00674729f98c4df1926cd49d28b967d119f5e57282ace282b976883fa0753ab139ff03bc3b2ac5a27cd795e821eebf4401b14acf8cba63a72671679032e5216684dab24a9ebc3e9005859c1c4eba84d71d05a3948e37150224d5964ffc0aa21f6d93e8aa3ebb6867f490431d444c33da747e891ff633a04cfe7985dc5abea18f9798165f3c87aa72c57072c856c7f4ae66e49de19d2e2e2b481e2bc65bb5269848986c2ffe8cc1e12688fab7175af06e9de6684b4879637e94d63ae76228877ce59b55a38c0e6acd7943b59d6facf5744e32488d78ce7445015c0f80f2df6046d8f1294531194ed89d441ccb9ea75dcf003d5e0913cf929e8aeed6b245bfd5d9f78fc02b75119769c4fb532c4c60d2e9b5a06a1d9c2e31350df6599181ad2950dfd8f0c2b6ed5bbc0622001bd5a986958c1c4a66d9377329eadd85e4783f175f93fbf94431864370a200d7b587fa746ff805735c67a1e2cf919d4b6f5edeed45d29b0bdd08e57a97e51e5eafe8224cc0a26d6d54d01f178617dac116cf06bc722420358283b01ac90cf07faf48c739b66008f0d4a50438265960d4d2571d96c02be9925efd9c776af051c0b510bedd2664dbb7070fd432a93ee9e2454d843583d04f1f7d300146e038351c0e14b312042ea1655be9806b0951605d923a1d0ff46844f5815a408fc652c0f8981039ea55a90ed35aac7cae4643d5d051e102a2c52f899de9603ce0ac242c9ca018b042a72798c69b50416ac868ec7968afde647b3c92f1f6e7b65a08223743e4970af2b2f941c6740b8bc8f225c5e55da7b77a938e2eb109ad62a9b3b4ef812fc6adb427236ee5261e8dba122e6bbc42cf50b2f59c17039cef59b9d47be7ca2bf8ed3fb551224c930379cfc62fb584b96cca8d35a5494218726bda409235a75d06c674939a797b0572697d662c6be57abfc0bcdb7f1f10fe42f6e34d5ca708e5db833cd985aa142fc8892856c50d7db7771da4e35d54598645ca4eee495bd5605ae8def605e664bc736eee2cb1475709d39fade4772ba39c38713b11a13c41130c673f54ec947ba165d79bcaf499f4cd8bad903ebe775bb56375f820e656b14773fef8542ca8c536cfef3814fd3bfb696dcce0762b37109f5e487f71051790c1d7e380de7e31165b19e659d5fef3ff2524f383834d49ad56d9d6afccbc10562a139c19629e0ef5ae7d64a944d1ad91a14d060158fe7d4817b5c6eca97b54ffb1b348717ffd038d60bc2637b9c221943edc6226114f8c901dfc61cab245b0da1db7e786312fbd3dc5c4769b4f5af913f710a371323784af5f565aabb6cd588467181d89212d1c15018bebb6a9f83e9ff200a3fc437f1946ff29f5cdb1b0b64250d27f089d751d42dca82d03ebbb5b5894b0422c99e9c2ee1afe7e31711c296d87b8680e65265146dcd76268a789052dd76417380135bca9c914bd942f8ef67660d317f58725265c6c6f0a59a38e91a3b37081f3ffa334d7dc821cc8212482e05d6d637a45899537fd297cf462830a0c37032383783f9a3f66c707e9739281d2838452a25e34bfe6b89612f704fd95c45ba720bdc9baf8de5dc096e1af6d579db8e4e9910b1b7fd12bab57fb8453f4ffaffc6ce4fd87295499b09232236463701ce0edbf12341f956f8384ef38f7e2daf5d0b9cb162597483ccbb42a0549b4d9f3f7a8db4f36b0d53c28b64012af1625c5446ff6c20f5deb28c5f8f39b2086eb9e2d9e8a870e6fb8a94d915e3937b5d0d355b8b20feff141fe375ff59298403ee08694a028a1a1f2cc5d218a48777076545031073a2d5a07c6fd06640ca4345f7a84dd9ec132ddd2d0fea0390cf5e43a03b6e2cfa271ec39bd0afcb417998a73b59d4fcf591356f7bfb82697a82da607f8f032894df8b50428fb34a1f8252a31feaab832403c2e18c44dda4f1f30df5eff930965be746815dba9a0e08c54806349ece52a8836c136ad78ed8504bdd803131aabb534bb613cb4a000fbdd250ebdc77b899bcc13d7c0a6c9443225b8ae77744124acaf82f6247f87423751aebbc68ccfb251fa8460f53b87f4",
+ "9e71a2c17401707af80a8ef4b8ec639188c02dfe4dc9574c1bc95d7e2a7dde4dd51b820c0f182a8607dea29469c8f422f6e23831ff424c1dfd63972a56509e052be8eb567ae4bc36ba7862a23b47d44f446d58b2176bbc85ff0d24f24ee34ec1857d8ebf6358b4c38ba1602def645ce7fe64c6f526d1ae792904485f2e7136fc0c9e2c77d9c3a6e8d3ca25c351d363fa40d8dc7049a178457cf9d6c62e21a439950c04fd6dc918282fd225e3e79e0c4537027881996ccdcf1038b411c1a40e5a69328529d1036c0cab92e187600c8cdeb40976901a80205cfd8c74aa51bfec363a87a0bb4ebae2bb9fad2cf064dc3b9811d95b94ab34175586f3a28323eeea7b24c9db492ea5ec5377cd2c2d1f1777d1cb2dea299f03ee99599e53ecd7f57669d0e28bfa32c0920bfec15e49cec818255dc7bf864e78f947091445f4cd69be8ee3ef42dca21932b2cbdbf14ee0cc001c8b349e07c7fe6b298a3ea01e46f1d4051fb1b2122c2da9b72f329cc7e316b5ab8e509b713a1626c560a0680a9389ca3b99221f91b14e6eaf470be8b9a39e3ff32e8dbe22761597480c2361562a01c2ecae64d0c1f10097a406cedd5b35e1b5b90d8a93d9c73a083c9bc19264b0a9fd906cf78894bca3323db886bacfda5cce13205f5481e6b8cf9cc2ca9255a98f26a90cae211f39dda4e691559dff66e527676557998a8d7874317cc636e1db411f09e430c4a97292450b2a303d3a0af43dce490e7a5390ea43c0b6297350c2dd0125f71ab7a1f42a4fb2247340ee7700bec14cfa5ef2b9341254737d5937162695f7ae831ac30fb61bb94ce1a83fbedca40aa956c59559e19204a34435481233ba916c462e6bb23bcfde64d7022b4bc3d03685dcc7bafb066533a6729730995cff1e7196b6e548fcada5452672e99d37865216c12eb39b660728b5620a49a5e76b23bab566de1140bb87479e1d439e1ce542b81821cdc5a122ac2716a441661891e1cde9e9618b7fd5509041df5aa5ed95a9e08ff208ea10f187d399499760e1f765eeedb142953d58cb44eea0f3a856d54c2b07628a25987a6cf6b25f60a463011703c542763e2781afea6b46f7bfcc1a2c7bb4b559680de326f343028eaaef1f632e57b559e9c2d171686134f51fe48d2fa645523f831cb298873d434128f1c0dc15b0cdffaf41adfa837f05db87d531406f8a7dc9ceae4a9ed6bfe5de60e2b08766f83a835641a48f69a343f9f81e4f2154758a373824c4a761714ba1afcc2ef4ff2218513e5dccbbde7405260e232eede2d4a9929ffbf99c26fad7c93cfa57d92413a9ac2df43e406446964e375fd2ff7370c8e4ccaaa03163b4369ae35252daf03492cfcab4199ec0c60ed6ab7db27e3706a6856e049b87ae62ad308e4d1ae8fc9a20f6b3a9d36775fdac0bff81bb0aba2069aa517b68234e054aeeafe491a23c5d0897265d39e18d2572bcb6512261e28ddda50a4253756059a8d4877e6cca9d1c595418be927fe29a0f7bdef618d66d9d91149359e948674ffc26fea7bfd92be22aea831deab7929b0e8f45eba781d86685d7ae41dfe69dade4eff2fded8bb2a315e56af165b69de5d4dc9e35b538f33ab6abf83c1323c25570e80e47f764290288b2b16acc4c44bb900413ec93cfb20b83df8d773b3b1f2be1d7d72d4d5ff3bc79e0264e29a22c6110962f9427a6f001222c6d0dc249a4653d7c0e1f769d5158b21c5f4879fcff177c910733e88a5c58bfe7c805da590f268bc8052dd718b9bedb628fb6244daf538360a13dc6318dfad4b913834e73db788cadb0ba995b812e463d952cf5968945e1bccec496713f812d4c75f4271b6b905b5973c45c5870085e69c318bfed90ea247d527821479421b307cfb8a20ac8196a0430f2fbbcf14a44af6fad1f9358328d0d0b31cc72208d26d672ad51fe78f1f3e548dccc906f1b3322039d1a6c712284ca4a77e2c24b4a3e5a84e02626affa05f57942ef8608678bb56fbc30dbef30ccfa36c1b72a5af70e425734c282d2f549d0a64eca22996e4bbe42b11aa335984d75e4106e18d4fc9ff82a73c77ebc57fbd6f2bdab7baaa9cddd37e725af705b73ee0dbf04dce305b747b763110b2392b41457d8dd19681a5bb9dd6e37c54f3de1301b0e7208a852a8a1c1c6bdc5517b80f6b1c321c4607e0b4de8637e16fe2e709192423da46d24710426788889f0e7a7d82ab449e3d083c5b999b9afbc1fea1ecfa08638fd3d96f5a3010c9fa1029ba9b7cf193617f3617b394b5ec333967ff0d9c7a19d50444db01ba6ca4161330b335ffd2be6edd98f7798044d0d16c04e1daea5b042c5ab8f0e00423190fd6558b4ef9d9a6afd5053a430228ccd8b2c682b847f4f898a8c982364c0223d0d047ee5e8f485dde21da8a51b95018a238f2a2bc5063f3081e755877affb88fe31bdce119dafcfab796ff51403aa991d588ca51d98b4b9126ac4d48b4b65443fc1d04415b6454809994782326a4237e7bb74cfdd9eccc809acbd380ae734b66f630f8269611d24d706c052244df0599be6ade7f8f254c21be4f11fd92d4334c691a61ef2af33acb8d0afadae9a5066320438cad3a3dc27685266171777cb275ab3f92ff7093ca944d0db6d3a246ee035583d2dd57836bbc624d58a1078f568b1bbd9610a7968c872667ef2b3ac096ed947079bbfa2919ef3ecfc98220fd54ce4a8471b9198628e5731758bb03c0a7fc7ae8a4563e33b215baa0a404c31de18d01fb17d7a82126e0e4a812abfed57a01d8c7c6355c77893731f3e6ff80cf6c28a4c7de88d2f96a12cc536a49979932cebd98454e13bb3ee8bab3bf390f78d24340dcefc1285df7850611d1e3ee4147f34d90996c4e7b472c2dd81e396cd23ae39f67022cb1d620629f0a9dd0095482272988c045613c67f0bcf7c4bdf5396dbce045108bf8d387f84f4e4108d886978f010653660317afd74d60be281d259a284ab7c4e7b0317de074863ee975bcedae09258b0a766e1b79eb90d9effbf49f151d22facc80bcfeae7fc5bcef0da22fe5f57257404b9f71f3af4a40c28ff2aac65f0879b3bd79a10cef89229630ce2e2fac325b571092c3d161afc868fb3194286f6455ddcb319974f370325c392a2b30b0b426650882c6db4dcef156ad182fb0022fca44321bd4f96fc5a78e75b4c5f133cc9f4360385cc879e658be90e6ff7e3bdfd45eee81abb93dde1283947ef162df07db7dd2d30dcf05c1157868a5227fc118a2ff3d5a3f482e067dc2a5b7b89796f8f76e9d2293bf6ec9f7c1cc57f77f12f466b710881a5ff013340165fdedfb5ad29247fe310c003ae1baa273ee2a11e6b5b24abdf4ce9b03ed20295ef54b7d78efe291dc0b91399c3f2f46a6df72e9905664935cc2c28f41a598d99cb1e5e38b81b2d3ce6c22e289ecbcfce1480e6c91db66da7103ee56d0b99b8c2a7523c34b07f6a4307888e90d8f1413e53243e16c1d19a8d1419b77fb6155cc11bab2b60be573f093754cdd12316eb065e4f92211dca50cecdb7e38fa937030c04db3daf9284e6565b2089d1131e79ec151f77d48adffb5",
+ "e0efa32eace1c6a7fc6540368ce68acc2b17b2f1cf35700cb4561786a0290dbb4157a30576a7c7a85607bb4e4caee2387b9ba7af63013a43ba925f3c121a3db62732ea9b4644f8b1354bcdf587af854ccbcb34ccbdc5e454c6a8b971028498b42cb2485a5e9440cbcceb624b030cb3289248e172b5afbdd132454afe5018cdab848da43b5511d0292d9fb6c707f8d3746a08d9e20b739b4dd5b2259ca00b3454e637701bc3b3c8115fd5db53db21eede0658fcad8949e9625deda6c9e9931264c374a521f5e82926fb3b39f6710393c886a2e4e36b6c5a927d42cd8a2e8d62ed419b4f42756d6eb4077828c65650ef7f9a2e42ca009184553d9e8be7627c16e4f0eb001a82d75566097362063eb51e27ccb5d8b3adedf05f21cfc9673d9845ccf254cd847097cb99e24b9fb2ba305bd004a06c744d991c256d2baf08dc53fe60f8577d4a61be5aefdbb3814b577f3ea6838f5934b357d998b0e5b7d6e8ff6dcd5b44d9b6533afeeda80b31620cde2027c9043ff8a892dc7a1971bc9b007f43c73073719942c7b46123f167717dee8470ce3c7b03167e7f767e5001621a3bf07c99cd7d1ca18fe47a2c0cc2720e0c45e4ef0c5f092e04c9db7d765d821771bec4f0cca95aa156d1cc5329e363907d982fe5eed398bc44deff550d0fa9fd325514a4a2d0575838416e98a45e52aae3e9b8facc90f742c2d5262b536c93bd8697cdc71f85cd95fdcc20d08b2afd027a0a06c72f49b1fe8940e7cc78f06b4923133378105d1df412503d6eca7ba62c5282aa544c3be3d2d54ff7bccbbb3d480145b2a3a53e38216fa405f7a4e0ef572187c61b1086c1122b2d37e6a82307226ff6159142728581c49299339afa1fab898fa43af84a3bbe99a7371759a922a75ff222596962863b530649a4ae46bc0fdd5d4dc01f78e97d16698522921881fefac18485cf7c9751e7b43ec14f7ce89644bdd8148d4cf3b3638b37f1a4c8e1baec20a5d942497d10122ee57d0da00a88a02ac9badaaf629a789b3305f0cc788c73cd6e7a3e9b29e33720310d9a396b1b8372fe3591a77c90c939e6a8fbdad886e0d1e00c5e79d2909f488816d860c256c4b1cf8b240e5910d705726321fe24af79f4470f179e70c1fd449076641c99f8d0d74ee868d108a769525178db6dd7f848b33ce35bf091bf5db916edba80c05d88fc9febacb3917bf2e3bc8a4963347fea3c6c8288cf0816852f617fd8f11054ffd37fb8d52c88c0479bb7830e81550c4444a59a4b59a78408ce7ac6f70c9a3a2c95aa55feb6e6d8c39e9a59c55000b9098282d9e842b54037f9ce4233ac9d169214a198f334ad09ec0838ed499f77f4b7d35b1fead0d8c3cde160c94523f22877b4944644b081d0278e23cb3d11b1501708d5fb24e3c4c6d80b3688210a7be8d137036f3d82737a049c1b7b86ff8a94c7921571f4b0d27aa5a4f9b2c3be24002ef28c66e3b0ce16b7d753a2a058797bd677402fefbfa6506459f6a904acc0ffe954c6880999f52aaee1ba603c65d9248810bf9f2c79e2ac6fe328e85ab9d5ec3a8f068159b3e5c5f476aaa905ba8499a1480f5317ce93bc566d7ecbaeeca41657655502bc488d000402e48962377cdae58f8c4e18d83c9d3d1b4ccfcbd5566824c032afbd15ba279ab3f34a0884015a257286eee4b18de048774c21b7cbe7ff3161ff11436549fcd066996db19549378236efb610f0ad40038cf7127e9d1461121e212c4a8078ea5976b177656db209542d5fe013bfb15a641b86c9cbfbd36e3f7c27a333f37c43ae4a4116dc4a49a0412493cec6d8d6c28d7f84acde97a7aa67b3086a5c349a3a5d150ab5747f11d1819eb8b3014dfb41048b8bbb644355b4e518115d1c41199b8f4450c0b3e306086bb26d40e62b720c81b639b1325c7c74a68df0a7aa221185d407b1a160bedec8503729a2e2436d177d3ab80c961e71273a2ab3c33507580b9a18e5a3e1824c0261faf66533a7b025d0b030b87cc6678bb259694197c66450d0198feca21eddbcc2cd3a82523bc6555b264588a77691ef8c65091732bf8421e4cce8b0d45fed634ed055f08485d8faf925af15069ed5e2db8fd8bfaa6f74f6eda6dd22ec37503ae23c733557da48b362e82a6a5a2bb1e54131c13c3d1a1aa92e5c135aeb97f69173f86f281809c1732b922a2f24663f278ac5c35228edd0be4a4cfe34533aef972aff69ba8649458b3aaccdf683c3baafa3788b85765ed068f6f9d01058b0c49e52805820bae81cb1751ab6d2500a97d41ce018a1dd4e94ed9507b21050335dcbc4bd67bfc26853dabd092967cb45df1c857b541046e65c1056ea35797e0ca15ab39fad9c5df6a30f1c1c558433ac27a348cd5373cb52aecb5d37b836db265a98ea67eadf0cc2d2bc482fa29676110b3920d1e57061ef60994bf46ed7357bdb33ea1681b0a8313eb337de3c422b003f9ad7cef89a128b5e8bdff714b156f713830f27887bbc7867ce45d0b14e072c94c8d203a94a027793e2d6416f0f06dcec302d95ae1e708d07e3ec4b571ddfd3a51dfd48f5811378e6c5d132bd14730618db2b84e2d0ffef1dba67be8844089a3112e72d3fb89b355c2bf67c7c92f432e7048486735ef0c72571956734719167e4af41d9cca06b212ef6813043e9a6d6ecfe736a06c5eb9dc05bc7f2ced6e3e55d597863a2f1be50c0a86f0c1b627b4a0d12872dd800baf93f85bbac0694dec6e89a9d5855a12fd08ced6a1f9f8b166ce7c865e2335bf68b033651f959fb653dc1f0d058c6aea7f925d802e5d02b2a50fd9bc7ca6a8fb5a9f3f12eeb69383c62ea5236cd3031387ea9aeffaa6db460bd29a10a11acb07b3929f5fc56abb186e287e1602eca8d1dded353ba1880d62a58cf9fc3c242767620618713c5bc71441c252428770d27d0a1f75b6d6832586e0f95622ca29711a06faf78bb4f9add4140f607744435eb53ad375d99a0d4b0595edd6c7653723be25fc6bb053949c8addda333fc8162ad1e72022bbce5ee5c59652f716159bc500f587c8d51afa1a1261595e924767a7ad49c9aadc289dc7433f6fb35c993f472675dd4c72dcc9391944acc3ad1a1ba7e857c8f03e74c40c74f777318d18d81aaf02ac0ea5435608bb7d9a164a4e4d1d540ed44b33e6c55460604c7afaaf603d6847c0dd03bc9eabec528fef216a7654071ec9f8d235621a011ea2cd0889c607db51202e4309cbb0518eca85516f9972910b27fbef3398be5ec6a30ebe14ad1ccf1db85b4b841a1634ea25a0466deb743f65b7913068de098cfbfcb365120835a47f62775981bdf95bef12291d9a781b8bbed9bb36983c40980f0dc2e20d2e8a99f8cc00cdd5297edfcedee7feeefa06198e42e06013c04c9735866f0a72710ca70357f57e8cacf3b2ec329f6e1d60bfdab70083da9bcd805dca2a35deb27b02971db3b9edd2d9efd9db9461b5869937e760aaf986f5028a11e3e42258e7f6959d52dc2f805de5ea9de243a5d35dbd07e55de25d2f24e4f9fd9bb12a6ff26a34aa6e9a105b34457e5db26f187725b8d64c2ff4e2213c81a90ab07",
+ "8e95470b877d32f371b92c7b61835561e0ecd2706a28e5eeb7dad1cfbebf734b34bb5c3cceb7b1854bcc79afdd79f02de34e276dd66dd8ff81967687694881b6a0404b2dcad268df34da4d4d63f6c8324dfe5e933e0fe161e1491b454088e8d6a9e6d6f3bf5c1d61cea397228a44cfbd0bae5728d481d1946a8fc9de9dd78cd8fde431d7cbf086c0f1a422c5562c758775e816930cfe15b54038c58b1ea19aee38c31e720223cb00565cc9d75335e32e4adf4b413ece815cbe2a74666e985fb74c1a5e6324dddcb2d926a78aa36cc6e5b90fd2ef28f4a46c3983b79fa4610248ca968fde6ba722ca3e3ff3dbabaa7cfc9e5c585a6eb6537e5202eca944942a24303254d2024e3392c5aff89ab5dc2f0a4d110c8c924be424001659f1259f08022c077a78caf37c432fef41af5bd24e2e3114280bd0e72359a9c1a6d2e2ee2a90e8c2d25d1d5f62ccd3d8aaf23240e6dd52466c1916d5f783e982ff72364457b5419d167430da11fd270a746f26d783b930dfd8ecf72d003c8923336f720a98ceb0e095c6dffdad10346e054af201e08fb5d9f2688558c18fb578cd53c530bddb22c13607c7077e820974bae38c7b664349e3e87440766ce7aaf4f5424812e3d51704628b608da2216ff16f6b519443828869f738ea12615fe6e1d0d5e49e7f65788c4cdd2c320cc8a1d3feddc70799080912267ee4be5d879a8d932a5949aba78a6480dbcd7d235a6d907ef7f476c3c1f76d2d5e69997ecf1523f1da2d1e71fbe5c49f402c5919504b996345e6e19ec060031c066ca241bd50345786058be81f96545e9fa06b0573584d16ee40380e748d6dc15ba1c370a1b430c0d70bddc22234ca79b3ac5bf4fd4e47747fdaa1f520497e8d274a970829321f2bb0c600651a3821a43242f70061a39356338b9fc78ea4e8c2f6dc1561fd5b2fba6118c0d43ccee764da271e616ba352f117d798cc714bf5ba0dc446771b5d34f6c2b347c378192012e64dcc38d4bdb27489d0c642f3a60dc965db15073055f625b70258c172ea6daf389be6d13e2e64245719499a0da9d559cb638cf8f9a4dc8a54a409bf7193b105336d728e435428500a29ad8e6ebeb779d06f99a3ca6a2b9550500fadec846c74f5baf1c5e63e3895d666364769b0fc8099a286a104306894e23c700ac2c174964a60d4425998ddacbb1bf109962ccc8e0e8f8c9db95691065045cd8220061bfd35eb5ff46a63d917c53453a2649a4707692e1382e70a8db87f9bc5644ebd87e99ad4de8b293724375267f87163e56fbf568ea6bd326e93f8b9f561a3245581e9ca6027b34b9485e721ed79b60ccb4b98df87d709825f77081b7eb049544eb8e3b20d5c81f71537599e26709e44686da3ba75e74e22d060f0cbfbf6a0b7b6e4e975b59a6b26fd543a30604e6f165eb83b34d2b66e65021e68a5960c1578dd8616ca3cf202e5c1b549ed8798d849ecbf812308c1b67b9ea7ff6101723c51144ae09122ed62f2fd9e1a7ffb6adda2832b855901200e4a645e13b52d350012a9057f44c94e2d4a01e9a35e4cdec0028749f654007f9529c062dd2811a67c69805df90971ce690b207bed28c4f9f95b44d73ca3845c16a4064afa127fef8fb4af76e10a8e65ed4dce2a7c76829808c846803837933c09ab2748b3227f9854391a30e977f390141695be953ebf74e0cedc8d64188fa10a3e850b8b6e176f68b59cd540145da211c57e9a144b740cf441de62e73011f8188dc1a1b2a7c293f7eef963c751db499797ab126a82181328c9c3245974a6d95efb760a5a3093e4caaf4fb11d1013b768e1f46389765d34fdb75108dcc431cc32833e1e3bcc630093821a685787649f7777cd4d6d7564b47491c55a3c8d3c12be87da346946a0dd6375ced0e7b3229bfe471dd37d22ff8f2021d5139cefe50669c91f1aaaf14f0d9adce1d73d24f586b2419d3e1e96b60a83b2684c9bac48078b2c8ea79bdabcbf8855fd5931dddbaab417be72a2932d03f407ce8ca2c98b1136ac74b77a645483ca8792a9dd51006517eccb79013e9317d173dbfad8b68e9979a84e2b0729cbdfb9b8b5bce265d7607599dc2ec7a221c9a80127f477e476709bdd5ddc9edf0ad15510a399e8023159dec0c65f735f4d36c01483dbd047fd6a417668311153d60acdcbeecfb0ec9afa9035dbbe638ad3b49f77529363d24101079fa70321fc7cd2730cf45a27d29fb013e04b32d1c9f31561e6e81cca35b95e8bb4135e2f8c319f78b2a4c035b1e349339cb113d0c3d423f7632c2758cba54c34c973c14836e2ce55d8b9927ce30beaeff802b1407c9f64431bdb5a786c280a26ac3ff174e548e666fccb342636024bc711b49488e41f616ff6b9a0c6beea41f60e17394f9d9d1f8e50fbb70d9e3b1cb63f77fa0b65bf9eaff2b8b6f22d702347d918e7dd72f2286e0949ffff87eabb6e387a6998f66f81c8367fc09427ec2bc08036d7597f3d807c198d1cbb9332c5a07495163925ad2d3e532213d458c8b8ddeab15f4f3c446688e498ee1bf6a695c40bd44829489483686107c055531a32d5123bdf233bad25aa2819f459ead64f6d5bdcb1ec80687da1ea3a8aaec196c7f558a7d6fa28a84a0685009718003d1a0e67b063b5f234140749296a39ebb8c8e8e9a3f6cde5d90a2d37e2cc79b7f9f506d058b0829d1e43543c277056ce79d0a80415817c0e9a7d99bdb3b50b332d4506577da192638f75595b6688994d9d55de9643ad90809dfdf4d80b02b13990890ec06d0231f1797f7271fe9aac86751bc6992407895baf902a0bdf2ac769aee93da2976bdf9a3c08bd58b310157ece85106da97741d2c89e2f030495ed63d6c442257ade1d1e2d0148fc79aca9f5bc32386a7202e9f5b7e0705bc63bd0ce5d67300e3b15440805db75e0da92f1b20d63f012be15d0b7dd5111d16be8164fd2f70973965a877bb192f422e50ef3c4475702bca8f4ec8b6639ea303a884dddb8347ab5e02d684b248e2cd6226919bdf91c004bc6fe133437f699721702b3394d8f7ee42b78e9074574cc6584f38359bbb51be2f820990ab7e147abbae88dee39bc1ef63bb302498193672875014b65e6d46e6c17342e35ef43978eaa534f06c2833ff014727567f80a330c8a2b3f8693ef98a637bf279f3bdb235c18487d0f755a4ec1733014e2e123d03eb27c4d1ce61250885e05549c27ac3ab7ddd628c5fea15262f0729955a21eca0b963b51b56701b3c5a3026e1adb06ea53c0d359872f07a696cce2fdc59d23ed467905ca873e792e3d4f2ba56babae7c80609dbcae43bf5cee3ea910a410dd7ebb860890800a55f5a10b9968699a2927afaf19cd37b15911a2093569cdd60b20159bc550fda20115b56db8fa652d0035dad3ce7141db4e20f6507dcc71f5a48fe2aef0200e4aeb2b1c9bd02a9b74e7f883fd2236fd4e22b2f271f438e1e2b7c18364519df8da42decf364318ae9105b30c0065b5c67962f89b125109046f0f28b0ec51469f01c364fe1142aa54a40a60dc7a701bc6a9de4bb6dd28a8db933c545de03b4e577de051d32537e1",
+ "65926eeb1c7e379a09084b6664189a3037fe9afeaa54e75b71290baa7b9f5e97b6028f998d2a2876ecc25d3ef0578b2fb264db71d5aa3f8fa1d2f1661ce60df1e7561959273fd52a7754222991705c7400e0fcad4895f20dbb0da23dd002a8e06074db540d15aeee186d2f9a648b122f81789ee97317ae1e3488ccfd1ef32c81183974ada42ce7bb8282ef223323241dee9ccf10fdca90ad6d8a2aae67668c2a3f023e439baedfba30e1fba301a375f1e46577b7e03558ea9652938499b17bde43c1404323425b5da357eebaacd5b0d8d23c3aa9974a2574403c537189b8346c1da12dd77414651c7c1b9e88eed84c2dab49487d42aac69d89ca47c3f5e077ae888636ae3568fc954b5a2f60c850cc36d321b454b00dda087cb994001cf9a2941e4580892fafe7c275e99e9c655cd58b4f635e20d2038a8a188e7a59e3e041563df84de1d22d78227b24a0d2cc2135ebdb14cd853b14e39801632aac5a949a1d2f0fd3e19910d65f8ad40d98c4e43276fe21d17dc9731618a0a40797b65b47040ba0ab9a4ce31810377614c0057813ff45e44d90562ceb1c056a0dbe39e54ee3d643f283549dda420591587d833df8fe75097d85627a7c6bb139623233c29a5d7d4b92e13154bf80d403a3954e9089414ece76c77a1632a7153a0af7f95c00ba3ed4741deaa0018bd7c94ed23e184ed31bc1820e8fae14a64e68b2eac2576005e7d21ca29b333356e64cfadc04ddaedfd7083adac49dfccf21c684f58a4fe213085811a8b08699b864ea41441452e692650be042e3f647d397c0edd28f31616eff09807d4e5effe53dd09bc794a6508dab96b334b46efc553486bc64be4b62c899d8328c1f6e70290d723dfc4421e0e84edfa11db17dbbdacfb15f3bf90c7102ccdf51e513ac49e1ec2ed6fc2d9fc6c889ead8390a1b5cbb7ccad000faf32defe9801c07396d743190102eb809df9a2495d29232b86cbcb1ae6e796a1773cc8e8167a4d0b6dbf56fafcb2530d1473c1f573040f1b599e6d61dd8b1ff9e77667ffe3c2a66b570b2ded450bf9a867e016023dd9bd4ac61b86a84e4b7542f7e988d7c5ea6720f02ec7d7668a29eb531b51f0e748787379ed939bd9337b81271b6a0c9b309eefc7929e59e164c255bb1f051d4e6da3fb92a1253135246e7c25a70c6d34f2d34fb5bcf7950cf170d79bfa1fbab73733dd51829d2cfab8e9c5f9b37f6c2bc712ab665b9161e1daee19434588b117d9a63e9e65d8ce9fd170a334f44986f16cbc51f22d8220dfccdafdf8851d6e77cb7a5895c532bec9522f65d4d412d2dffdf37c85ef5b6f3cb86ac0216ac5d93d01fba22e9ca96903306fc12ae1da18841e3a81e43e7900b87edd51c3ef5325c1c55bcc9beb240deba894157c09ff7e36c6f25d056dae93318ea6b6336c3f4da61a08b1372ecc1961ca9873e2d6b403372f90f13180b4a0f2af2e148a96bd757afddfae8ea26fb5fc73a6d8a39d3ae38f6ed1490f56401f44fe2a414053aa339a7f5fa020eae50b383d9c9622ef04abfbffa29e2cf15986b047f003203110be089f4e7f595302a3bc6dde00ada9070c84978bb84b2194257efbca739c200832fe110981059b6da68178610c6bba2bf6674e775ed3d6b8383fdea2e34c1cb25fff4151896f15e31d9326bb35e259038157812604428f38570ff1d1162ba45771beec1d702c7d84dd99664a0c77c93f1b74640c0165df20cd03c89600df822faa76f44f5de377e02637511ccfc82f6f20905df1af02a1262e9da01a985cd37260b9219307532b11d87985e7f26b266b84e0641e71f89d01f6a8c3cc55b951e067caf41fca74f59e97c1330ee1ed9adc5ac49e2a043fdca0b92425af81f1e8e17085b8901c0041483ac2c8dc6bcc1da679e88bee8e9258eb951a7f8ab0508e7aba0c541a3300fe7b775f1b4a852900f84349f46fb549596ec5ee86e2d0e45d47dbf4833234168f83f40757b8e5a35f25f86c0dc8b2cda2f05a56e603a0b822b23bea8476a09e3212eba1a188dee588085156e0c80b5a4f8d02439cbf820ea06c69ed1cd779238cea50af9e3c5870d8ee678fe775be960706ea62fe77347280c6f6f3cacf3cf1d9e45df8b87024ebc2506911c351d052014121754dfb576d29a6e7ce21247a5072196affb467486129b5c730a5d9425f237bf9d671646effc3cdc6bd114b08e000baca75a7c256a815c55e3a7c96dc32c9ce525e89cd4aad7042c4a49c3afefb92de44a7fd228049b27bf257a395b4efce53208c2015e1ecf859beb8216847fc7c46ac88a010938c9fca4438553ff3125a0f13a291f3443eb8cca238322515eb498cee6a233510acfd645c6ffc51b56803e56ab9a0a4699e217a41cc57f1113d328b14e84c42a68ff4ee2a8d3c4dcadd727d7b1868e2ff949b84e6f255f410cc3ddad0c4a08fad0e524336927ffefec6091c37186ccc666068940b8794cffb78e299900b042aced0fb848f1a027f7651c1fcacb6d12c6dfbbf32e20325a76e0838605ec11027707230942627cec91f5abb22dc78113e79d3e2e0704d57cfb6373e9bd54d1d48cefc749eb533689d52a58d32a5255ed19873117191d4d034c695f02eec0f35f7112677df06ca2984f748fadbd94c7ceda999bf548808a46204cb408f84ced58cfd631185878461be0809de9fb243305c078702af310164bfa698dd13f48a441a4657b999d42a50c3911e44782113700b1b75ff726efe82350ed0f40e8ff336c071b8c1447617d03e397175274403e479b48ef943a3f2e4628f41ca5561035f410c33f83d3ee3e7faa3c4f7a798592046325eadd805880b710c7d863c6250ec89372113c69a3cbd5dc92aebe1892c175471db11b5da89b59691184a6a407cb07b4af43f4d142893e8d7cb0da65d67af15ecafe56a9728cf3936b64a3142a7c806497f3ef18c868a2ff34598693b84c72050de903c78bfc4a0bc05608d501c4ce80b5a0ec9f1cd7ce11a7e109e29ded2779ad0b4dcf26aaa32971b647cec03de90608d25273e811e5fb5d6cb490931fe53e0862af6d5a534cb80c219edad2fe9c03b0b715dd0f06cbdf5102a24bafc453849a238238a3e111dc49c6aeadf0c00d631f222e985330b221c5310fbca9a03e5b0fd026ab7430347acec09da9c3cc62be713b4fd442649f9c503e5e172b6a13d908426e922b096db2d14518fde3f6bc0417e95344a99034532f3d504304a7cf241428d6a9b62233e3b8bde85cbd241b1b7d5366017facba9568c00cb0b8d1a2e85ff6d9f6194bb954cd2f703c1fd869522793b32fbeeccab60b6a94a21bc3d52d2b7dcdf6224029105b90f90459850e083820d48fb9ab540eaca41c0041c54c5aef4374b17166cda93f7f31819b8b9e11cd0173a83f213799616e1723f149719f40d80434f05a0827c76f2003175686dc5ee294a8cb8ccbadc632ea100f12d535cf6900727e860191e75d36e80361e3d62ed7d82c279c30c00242738493fbea3348ee849be387c213bfc42a42b0d9fe67529d91050e08de624d41ccf07e98e4fc8d9496a3c8fca78919da63a40cf804",
+ "91fb5b858551a581683733c59bb4d4c30d78163064690f90301e74a911c60242eada3e86cc1fdf232be21dbc05354f384da753e5a5fdc0658380b2826b1904d4f11985e7d46fef2e2f9c2a3429a7089164a432fa168c04f3c1bc3a28017e717fd34e8ef30b60e12b6872d7591303029eee143d959cd9dfb9be3f3aeac2b45953d64e9481e1d0d568fde8548af678a081617b74cf50f3f0897838cede4fc4f9e934a117d4d52aa94475da57a52fe8c74dbdd4d875421a46a54faaca8ef6a259d98cfcebba532a7264a1f9980d804d019e3e83f68f5c5abcdfc3603cabe56d839a376d8e706700e98300751bd65100a88e1556da1a857eb0bb2852e6fce350e9e77ae1d02fb7b9182f11c4ad2ed2338c1acd6e8c884c304022a9e39ed3ef2598fef3d5e8816534fa368371ff61093cd65bce96a1bcf306ea7e0647955cf155a08c4698f52e34ce5b1b69849b05500ac69b4147d28707899e6d13509d15815e1764cb777d538e2a5b27a568b66cb5814be00d97c7962ab04b884a35301be90cf6c833f37195c19677e99ba21445edfcb3fddf42ffb5c6a6aa1ede6727ccd7daca3ebdcd2b83ebb451a85cc988d0d2f3cc3e30ac98929abd5e3f36584d89c22e4ad760aa8d0eaf134b01f439851a85e8eea2a669a0caa3bf9d1333e4d79b9351536f845988510e278310fc19f13e3287ec930c4b95f7cfa99d62848707ba186ee16decb8b4dbac4b9a265a693b01e25e3a01e5b9fa012346ad40c00d12c1356f9bddcc46a5563d992f14394611e514fbb5083a06c5a3a29b9e0b9a2d56336c731d973803b2af9a454e2580018260a6f3132e28dc255ab3408b0b2585a4c93a403bc796c5414293e051c940a93c9be66d5ccfb28a8e52a321620a85f2ec213f6f5c51574f6ae2735696fb5290003b460508afd1f6079d91a67b4d3bd05865e28e5a974999ff13d1b99e8e8c79beeee2bb6f2e630a7e82179a5633978cdfdc50d16a3cb184f9110b5202602b49a0ef615c8c7b902c7a399d6d0238df5d6469c168f4caa3158a1f3904706f988d1b045da6f7766ef1503f84c650fa60e64a428aa8ea45bd9ff1feca9d19341db3ed1f9fa8b43a54d39f1f94d0b9e216612f3fbcf882f01bac7e5b071371905fb4b53ff7e0903e72d1ead482ae723eb385653138c4c4a602084456b15c74e626da01ba01e9fa316df69941535e91b0b73c0fb9ed7e5f7410c2b23c51959ad2bcccfd5243325c6173e1e38fcf4c70342d6459fde99daddadcc39f341b46fcf4a47ceebf4c6c9a4147c22ad41359c63966bfa36cb21d892a2713af0b2722f8c583e76881de97761a9da76932807c1b2ed4f42f8b0fa159791a69ea309a9ade8a25d7ee11444436eac8c6fe2a9e1a1847251cff90ddbb54f6c86d40d04c69e85b34f1bcd8c4ae6bee2880637fd42878e573e4ed0354fa943fe60ddfeead168872c6f7e332baa013cad049226ac9303fc76d12140012711d2c71333aec9532738780e178d371022049b90c088ab986ce5fac941759bd5230e0b5ed7997f47fd6d01ba12ab184237d72969332acc87e96786396770f5504bc182131aca30c5f6fd1d76f11b97177420a7958fc6b23836202fca881a499d451bf79edba3179f4f375e487556f8384e48e4b7bbf78fd1e796c688d74e8c02ecf9d51d049d7ce49e656a23c15d106b64e71d8054ad7467f72fad611571369ba639ef8a879df34fee29d983c6c571b44cd8cad0d622b8baa8f14859b25c83020980e5286c58c92f79fe2fbe028667f9301f9b3f95f821bc1fb78ec2504cfacfb67c11e9772845c6249f4bf42ad311d8fd1fd8a6a235bd14088344c9ae4101f8aa3e5a80b5814951600313a7534efa7ca77a6899b7d0b4edc0ef1d736b8fb98b44cac107e66514bd5411cad85c33951354dddf7a35369168ad8c1aafa9e6e91af9ad0c91c13d71d32f68a8b6f0859ee86991bc6882d0f12e7144a76303044756660dd4b84ae127100024acfeffa656c09866eaf56a2d6cbf5658ebd7feefa9b0c8a84068f20431755f88596f7d0870fc60b3f23bfb5d4db3229918c88cb08f60413de35f50b7c140eed19a5ab6e8ff5bf9ab20032e68fa3223fec12bc784611e2bc4b8850402e7ca690098e79f6303b03c34475f548b75d471c574a689a80e16a5f5428f3a0ac82abe704e407a5d0471913b9c27d1cb5c996c5db587d7987eec4179b91bd487b004f0204edba6662cad65f2f7e4478d4e1f5f0c508c9d82c0364b07bb5057eb8cedd355b1e7c34dacd64754172c9b6740c2bf45cf302dfa86b4df0ebf9e968da88fa7407891570ff2243f34f775dbd1c2e6a4b5f365ee0c1d23d1471e0323e30d1b820e862c844b3b61502cc4c90c5a4e3a6870f871eb974b08af6cb0e2276048e4701da3d755b751a30b9e8c9d9ae5bc171beaed2e7fcffbb544329683697dd5095f1acb8bccdfeb6dabfb71b6b1a5b8f4eb9c485fd3165ef3c678bb1338a24c18152839e6758c23c9d07655bfff5e02f2041a3be4ffead285474f98ca47e2caa969d6935b68e0779598c69381bd514dfe631ea0906ad34e513571f1d24cd2b6fc2403b7803e3232e63fb86811d3412448ea0330187472c831bd62457d056177269357eddee8d42e1f81b80cc42904043de5d9612bb7ce14f8e2495b6d92380c74dad06ad60516857f89abaa5fbeebe42435fd1c33988469d87c4c9a4d0b5df93404ab13455c0941f28d354e0f99f2ef0bb4bbe7562a1243baf5b35d4c0f844ec175401e8168a1915104a05d39464c4cee3eda9cea7104c5456e07b2ba59e8152b674da77ad26cb05d91d25ff0d6c83d86d639dac258bee907ff91373d1bdecbfa5f0c66ea4e4cff73c81d34ee923529bad5a6994e9f35cc8f07e77c89cff4f2c2453c5361ff75a02dc6118d1eeb0cc74734858f7efc3090ec0c0af66f6ea448e51e65715ad0165d2f8929979f6be00ea3d91d202b49f443e79ebc1d4d2a4815b973428d2b68b8d342b8d1303207a678c2630f2fb661566d3149008bb367578ccfd549acacc6d1c4c42f0838243c8a2458e2ea7a97068738d2eb7331296ae50802cf90278defd9356526720da82195265935b381c41de5d26ad144b9312e9dca479b56472f4114cea0184fac8255044fd6e88c5046577566282bf64947ec4dd18143b955b6c6301b59dbcdf5df0d66808ff1a649cffb04c9731c51d7ff241ae359dd7f9d5713030383337d4b19dfafc40bfc4a7118dbaf0b26e5f70c4766f1d336ea55053f3168ec5feb9639ed1bcdac60dd6ad660a32c74c4ae6cfdb21bf4243b58fab2f30f5d5a13d5517c0e557cdb63018d7d66dd246b605fe254e34e6f326a697297962bed53fd00ba1e520a330f9cdd4f1236d3eb90c8e22caebcd424774bc4844898cd9afaea2427488d7e6065329720ac7449f7178846ab9dc105c05972f5cce9ca7c322f7114f612ffebcd70f3d0f526c17f0e531eb1db83389175ab077b76690a3d0e472ec9bc28c50e882cdf148b74e1d9497b1ac763ce474bd1c1caf509bcc86f65432befa5f85c6b7b77f5d60d1c8912",
+ "0811493fd2d4c69fe550f6af9183934592c48ca4e9d26d3e03e1c6c23db378f7e76045eff03202c1cbc2dda7abb0b30ee541315552b9770ef2f53b3e6ff78a802220144f59ad30ab81959fe1ee57f3e3166ce25cfe01c5a443820c58e151564d1a2340c01c741dec973fd17f7841f85ab8a43a3e64336278c1c714c618974f9de03750bf7c13781576a15f1213eefe2ec953fcc88e4eb6987fac85e8372ea916a4b9144b49328eb636d81ecd0b306bd1f44368e34cce127c2f7d2757ef00397c09b0a16872ea080836699694d7c50423c74938ded03a049ddc208931621d70d287677b5989ced41ad30ac95a411e5d63c9822cebfc7ae288df314a99a935b9da8de84f5e8f0596d8a62780be8d93c249e8739c786295571a0e6330c7868b25f399f66a601505d49b3ef94a032983a9e25b8504626509d9a6b878038b69dba503711868b03330f7d0e8b7e79d5fe1674884a8ecb78e1ce7c77a2e5f9dbc687df6f2b16b757f104f95f861e025a829733c82ec6d554b6c73b3dedb2e86987fff82cc348442e9320364a7a6766f09c1df4d892033083238854718b8215468ace133a576d0a251c931e1a4820bdb5d982755ffe1be530846fe4b9ad41c3f75e9e6538c1cf938f31a2c122d4dd5bb755a835797f0f1abc779744cbf7b8742572d7ec317bd12f4a05deb85985fcad7ec47efe9de5a5c14dde5feb41d88ce5f72c0b67f35e35c90938bc981a2be5347e51deb1fd1b50e89063713becf3e774a38fc9ef36f491ed9dc8be78489c457e344b263ddaab232aeac296a501b13808a77b40120b2eddfd4a10a9d3189092e2f30067923d81fa3286a3c3dd2ff3ee93581e79461defa4f8b87b871ff76e129abee22a0cdd8f466215398c80e893da7ee158b011581013933d75a2778a642bc10cffe74fab6716fb3c35a6eee99a7d288a2b510330ebf54f18c0fde748d3679e0c43afd734336b237ea8cfb37ec39b4e3cc45eaf0eee2ee7fc086cf27f63834d394c99b920afb6996e3cc4aa6513d1689c782a73c094d30acbdb18d23f7f9210448f68004e20231c1ea74a253d79db6be15200ea0312649868e9dfae05bcc4ec311abecf93faffe2d41b09211950fc5585666cae7d6a8710add16a05ed2ad71e2c241c4bcde53d3d60413a0f76dac261682c902a0b067f9b38f6c146b3307f5491adf90b7428f5a29b47b3a06303efaadb0e62686273198e7e4ffa58ccb93845a033f4bbe3dd2cbb409271f064f55e3ca7b930281bcfe080e21bd64e1caae0f82431fded8cbcedd34a9c6aae78b91f9c031dbc23fa0c8224b1ef9801e4e79d09ded4776fb113cbbb4ef75f9184ebfff6421629ccb081e2d7867fc1f76e96c807fdb0ec1fb19eb2de42413c7f840d79773eb02e538f8fea7d26d6eae903d01f9c3c5ae1d25380af41447abb75707fc1dfb209422c7db6b881c32068e2e527d8cfcca6c1cc885de04c33367230e990b6cca86e31efda51a44f9c64eb8463179e69b3f6708abcf9804146c9f4af5f4396e4e7e36a59e854e2a80d36564ef344bd90ad25ec18aa47abef453f3b70985226a2ba427b3759c2550093ee7066433a4ffb2ab392897fdfcaeb221ccf1eff725ac64a618c8b0e8fff1108b4c8836546a1bc00f2dab9e201bb40367f8f839f3d926e9c2804b788f0c0afa2a09572d83d52169d09eb5503e34c6194d9357730a178389160d1caca8f055e7dcfe654944679241ff463b9225c327d984fc27179f568e3a220bf36231aecd7fca6a1a010384b17aef329dcfa1f37450cf8e507f4d4b157ba38a0dff60a81c9d7aa13b6833967d664e0dc74b361abbec25bf1d88c6dc91247136f48724afcefe47c2fa28d6a31c2a2da48fec92a83ed68f82a51d657395d9f311708c8a42e77eae2bd2aca82f23a537280d1e69ebea24656310be28608743a2bbf37c7885684b0c75b4c2d22544e075755383ff3adfeede179447ecc7acaa050393a9abf8f075732b67e131e4d5471f5c291875bb0b21e6361ee9691fc2433bf6796fab44f813ca2f65efd35714307305509948e9d1215f279f3345d22e4d9033c585b6c0a9c34ea9de81c022682bcc205badd2dba517b8048a22b8a493afc5c7aa7511bd3b5eb42ee0d6bc6bab3954a8da48f545a2a8819a7de44e368a4385186ab5cb4b73f26646adc352a540e7562b8092cc33f6c9af4b17f0834e53fc1e006bd07a57e6206798991565aefd9fb395e0b7de6db85e0522deba116fe5c56b8984bfac2acedee54841cbd89a29df734d9fb9174be51aafe395e0f914c8b58bff7d8865d7232b04f2b79bf2eafe2b27c14cba3d9e25c77d78bd9d05ff8d0496fbb6e853a365f8d7c8ad1637606a14121f7ecf81f6992c2b1b03ac7c179f05ba48e3854afc9085929c67d8613ccaad0a2db9af099a1887769e68078b0de2cdeb952f2371e23793d866d674859ae554bde699daf44cf9ec5fde5c2533cad276ed118c9e35f621805b5db69aad4a6d5fa131e836ddef0a1077830cf80211daae3e2b8d93d58bc14a83526f0d515f193322e4b1b67f3ff1d6306da1a82b88dd4eaee667ac4c28b97f6ec124c7b2f7fb83d82db5b11f15db4cfdb29cc992dd681c7da34cee24bc3a43abe57913432789dc0934face4b0ad43eb7d081e88938c2c64e28975459abd66eb3bf509a1b596ca9ee53411613e18321e128d841b75263ce76b119913b54f08a07e64744e1a2656dd34768bf4e5bd02d570c94a4a9e7c1f86d63480fdf6067895f5b80f21be1240e7f89a87c2ca75cecde4ba2b1ba7b56643674133da23c8632ed0582d174b8ef39af07c7facbae4e4b0c7fe02258fb6a91e1be349c5a42edb648d8f645616c077097cb86e01ba34705d91a464bde9c2cb5438016b8859d67bdd4227214722995aad0c1aec889974682b7cdf558901bbde1eb44fee45a382d264baac2127af750f1d571c4fea7860375faa71e83d699b5a3974b606c7eb2d19dfb910ccc736bcc91d7cfd0fa679d4e0808d1bcc30a30c3c4d5e53d1b6b926db858acc67f04895b9aa98b42d6056d9bc3a4f979a71b85d7f3062bf209bb48eeaf2dfcda55f377a52883a53f738f7dd96d34e201d673c819755a463b8a347993c5305443ce15b1d341bb5c7170922c15f2d1f64c2b5dc447151ebd78a775b2047e1e9ec5fe22de0b81041436348bac308a9bd5d04abede66585c00f554f0c0db87b322bdeb6cd4a686aeecd37251a625610d7150c4fe05d25f58e81ab3ba734f084082a862549c4da15dabb5edc5e7f27ce4a591e329f479975728c9c915724b4098ee57e11a22e8f59f1b7fae4599e5d1e9174b2137bd8542ff3713867075229db95cb47bde1b93c98c1e4929c8f1df959a197091d204956289e2d9e2333cc6556076973f1debcc833d73f9e4be3b6efff0b809895ce4c1287f4597386bf7682884fb0ae90ad08a53a6eb68ef563fe555eaf2612f15e460ce954db49bc5db919d72c4242e9662a5897d8a95497819162c5772376657117bff33118f9174e7ce4d979db7c51847e2b4b5bd7006bbeb7f499301add1215383",
+ "8292d3bee77a89a656f295a4f751df8b59435b04317d3181062721b12fe320786e806e3e0492737baa982440a57d4d8b98f8303679112cef5b1c2944e8396f72db745963a07c80d0ae42de6c80aab9b6b16de526739578b21592de4617c5a5943010cf8d4ef6300da8453ceab62bd64ca8b2404b5fb47155a8726313040b1e94883703da676b09937f95bf6eb860f9116329f8dfb0937fbc514bf73bf0649be5919d276811bde5ecf3d7080221eacfe9d65a530dbf12224bf1f69856b658d2d4884902be851894d8a3697842035c76bc98c35b0773573e29debe0f1c0c5bf8ead48027cb65dcbd269f39060512ec2496c5a9344379f6d877ef319eed954c7b23e964681f01cc6825cc4aba67e7aa6158670c6116a5473d66d7e091397620630647f191064cfbe75462d694b4ca5afb21a6c4752a2d90465fc81609febdcd31af2273883df74105a73b399ce6483e15a617db3f1453167a7e3aaf97129a18dfa244c6f4dd0e7eebff0ca8f407ea915626dc85f96af5f8d5fcf65f2bab129d3b3f122f3f438dfa3de63ec49aa35ac9298850fda2550ca121a965431f18a679962698566ffb632caea2d50a41d12f1f4a109a2a0ca3e4af7286ca1ed3e26ea129380db849d184fc8e901d0e63b1927f56f668d8f274179987b32da7cf646ba52b8a575b653ef10a33d6572a4fbb136ca989603c2549a4e1bda0214fae67020ad4f60855ace59cc84638fccb946ae4502dba193186670b79455872ad97cfd05a8a3aafe75578bf792714678e895e4d092f5290591242307df09c9772ce7a5f9b976ea8f1f9f10d8a679379900f16f5f61999246f6b5b5af475a483a9f4ad8b0ece7ca9d3a270b06411e2d033c54c2c845bfa3ed009673839fa0a8e72c1ba3da969a3da6d65120956d6887dccceb7b6e74e06a05840ffb6fa97c2de7960cc90fdb00223a5b464911f18cd17938c32d5705f73ac5ab752a184826785edb646e5f93458b9cbb7fe0bb1d7a99bf3cfbb5ce66ea85f737c33deb209c053018d26ab67fe11207f171465ed6d412b8023063ba87143b79076a0fd890971ab7c6c5686fc8cd91c3395c3df6925c2a22fe61358b915d8a351dfb4af5d8fe2d3dffb4ac754a8fbf4bf29ad90db42565d266015094f4cd37e5050dc9e2a2fbfcac80edb3a7f97fb25afe5422482add8774db3e9d1fb2cb53f27d342b7217fb968b795af9290292c46cd57a709828375e1884ef280e9cafba0c5dabf887602749e88d1fe955d9988d327128a0c5e24ee05b9f5090eff1980f7f75fa52de0baf1774bfe35271db1f1a12d7bc351cd3e984c02a281c004f855b81eaa5ee0b0b10fd955daaafc702adf9bba338d8a8cf46a6266831c02e728f1a42122b702e20664f15d60d1b6ac3d464b8629cd1bcd4646894e698a7d99bf4291ce56cc3a4d15620bc5cf6a4f92988f6fdcf92d3dd5b8b6d4b8b4d75836636cec2000cc4f66504444388b604fd21e16322522a6d76cfe7801ea69cec75ba8df3bf675ff5af40a97fd1762473f3952bc60fe25505c6c483e657f13f1ca27b52a99457312ca58ec3a14fcef405e09fa477f56cbe824dce5d2633b78e3253eb831ffc43ed7f777c57d90101e228c4344b9a36709ec21f6d75f8f7cb6f465f723b7a47bc56b0a5f85297f565e494c1aee70d79111177fba85f230d4937e72b77ff5de2269c419c94c93eef94b7e2701b4571f8efee7658094afa9fd5ff6fc507029655432eb0cf9fd3c5e34bd7faf4785509ab4c39bc58577c4359e851e710ce1d439b9087043f31d039db0b2f75ee595f301d353ceeb2024afc7091c8ccc907018d675fb7a203147df375042006a0c6eb34d0b954002f7aeb23b8f355d76dd4ef668f6e91e9b769c04c029a06352e24bec38e9a963edc65a47390cf6b4b5cf9115aa3da34419db6546d5eae7d558b10518269a73beac86d4229cecfe9a0d367886a6d1dd87e7a1bb418ab97f16fe751b1d1fdfa365aecea39dc1bb7d81e32f4b7aef1552fc78374f52efd32bcacfb0d23b3d76293aecd07fd4bba166503954c08f6e38f7c380830ea467ca737e5e483123921de7b6eb17c775dca515966760cc837e0a4ac78100a634b97a441b29f138c6369215b2df30eb64598989a3ee59ea0577813b4b27e177ada58b8502e4ffe7c26ae6ca8dd8c99c5df6c90872fb84d36ecd12b8adf6292afd82652e0457c0f0c293272eb48c14821a010bcc936b20b958becde906e85203c3b5a8bc1dbfc6c8918f3eee354ac2eef45814b743587224af4eccb639fab09db4822d1b4df06619c2141ba600e191526418f3232638520f7d449ed3da42c307fcd076c71c7b6ff23f04015d30dc36c208e5eab16fc732a72c48f806d2e426230e0eba4b48abcb623fe15c18931429ffebd2e1f4c17469518cf78b7a8443b103afcbbf183b081957a47d44f1346196847c7476f4c1c3c16cba18efff853440912627b45dc877a25b5dc03e99444b77ebeedb60614eb73108443738bc6b0e42cd7cfca3aee5863a3779d84d9468b0a08b88c628a22cb4b7de486c67a82a738c784e3487960470b0e8e3e01cfea10c02b75766ecbbbd04cd792ff971480299c734bfe7275decaffb2031fabc24a16c1ae2d0ff3389acdd70e4bdf96e83e1c5802ddd34c79dc3996a45309df785f2d1afd6880cc818dd54b57605e35a3ecc550bda5f8e3f54ed03aefea3f78931706d9d61a0e65608bcfe0618ed42c0e5fb96494404dc102229b759d7d7cb1f2e4c721884ce7b1aab2c1e43340edf0d561a3612b530fc7341817e669f871d6de53954252d0878766a58274f25cba9a02fcf470f2fe36b1b0c791b07c89f56b2215e6ffddf93bb31bded02f87ab6d84a6631fadb8a56882fe588e25dd5373d73fd68dc69f6f2cffd4b26f11a6ea4b8c562cc2ec15ea810f613255307f49bf1f20cfee8fff2fdca353a98b00f2159139aed88404182d7362504ccb09450acc4137805a03b8b30d6678a2d24b6edca7b64448556655fb0501b875ad5d1a78aec008ef4d08af3d4df70781902e10bdccb6a0e95bde6c02eeccf1d56546bd2836c1d2f403692bf6643373a34c11b09c46d7a0fb55cdd6f1b9b20f3689eaeba4e838b4171b9d927ea60e9e9e2f73bdd871dd7c11b8d3042c1dca511ff5106c032fd81890af73ef88536ae4a88f28f831613a687fc85927fa446d64106af731aa9c65d2a8208780edce2acf2fb9e2a84940cacb80b195a7554a709227705779b6c27a8df822c1ddfa26c5ac7d3ba2a9dc38f999f61ad6e2a3ba1535fb7c2529e824cc38fe35301d98c063232a6ca97768b35c75ff5ecc7abf438c337c663aa7c020b59ef45451a37b0e16a553bb6b17c8081fce0be0c888a2ae072fea9be9b628c57eb2a03887768dd28438120c08d6092aeec15db550e490ce25c824b1e59d58b61c6de63159a9dac446599088ac24f1291403fa839c8d48068d7e3094e477371b8266b37e9b58ed362cad70948d73da02c49eeb9328c76dd34cf7cb67ee3a0e9e6139d49743ca7aacfceac134097b84b08b0e760105a43ca115653",
+ "aa288c0113173bee6d0b35ff040816569b75feaa26be1312b7c6ddb6f8ba65755d32d5383c9e6f9a6608e8cbb2d43c1e8c81e390610d4dcbd2eda88c5f16615c0dcd87dc246bd8415eafe4c5bfa9bf31ffa66f3cce1b0fe9ced3c82ee57ffc434b16ad411d61881d7c65f084f6d9936a2299540c24f78af8244ce13b61aa002de50cb89a2b230bf70dba8d56c981bdbb85456b7775c61faba870a7021248866ff407496eaf3bf3d8e952847b176dca43d4feb968d36c80277cb443ddeace89f66948d8c215eff3dc9b8474173d75c45af69cf76c63a083216f945c439bab1a1afb33fe478123f52d726b8a71dca25064c093e2f52539b7bd41ba501b9a42504f1dafcd74c06d05fe26c51e42835e6ffa67fff2dd503e3db9cf0ddcd77eb170b7d3d06ec9a40bf1f5e44367a4ad3fea8b37fd8341e1cf89b0e9d87970d1158cef4ecc4bd396434830f21c10b3a74acfcd9ecf189ae6cbee3c9f08a45b389e0491e6d4148c8011f8850c785b1a3a9b90777345b5d9188c423f397c8f7684a503e5ee38fdb90a50a689edff2f33d4c96b3281fac710157a8cecd5a3b3f413b614e6f6df59d9534a159dbe2d30b13e317c4c90f3b02193ac75bf6d781f8a055eb903e7aa693c90601501f49b8191968b444e7f2cbf37fab0823a01467e297b4f9834829ec3ac6dfcd00716be49b1aa4adf8176d3e9345d3ca23d58d6a2f4b9592cca60d7bdaf327deb6688ddc77bce849034ce7b74eb741a23c91af71eff19796279384588d2dc22d7f11a68c4535068fdfcaf721fdb93445d61ee9d3233f866aa78481d8dd240977b71f09e614336227c61e7802dc19feed8573967e38118dfee353d6a71666d28e39572eb5504873bacacdf083dee32515a89efd9944b7ff888d17e6c46d855b80d7dc4b602b302773e6b2304c6f499e32ad4512da678b4c5bd9588876c16bdfa8b65f57f9787a2b002003fc34228e539aaaf1247803ebe9147d1e30f11cf5ea2301820d29ffd1972d5257bf98bb2a92259a41e7a0469983568f038681d8d20aded6f0967f41bc46cede2957998de419fb5f912e77244d5eb82d809e860a5fbc13b61a95204a77d2ce853cba283ad534996658607873b1396854e6a0f16be9b77b7e2f8a2be825ca4d98b6d51af9ce609448b8a808fddae87b6665d07096d12ea33f815d44307c38f120eace9decd0d436dc28fcd63223a8b9aa5cd9ff952fa90c624c0e78b4a180ad36b21e04702b9acc2b653768e052a7e741ffe32d7ab406603b40518a3affe80e64fac43e15f48f9fbaa92c288f65be638ff974af73c36668baad12045b3fe8111eaa5ce31fe0fd198cd759bece82aa50cb9234dafcc31baf9cc32a1db553f3119cbcc46303f43d4ce851fc0ecd7c7efa9747d60976a4c3ba9747e5dea049edd069878a586b74fc214d53c8e6ffcadb20bffe52c51b89a248266e69d8e9910d36ba3c28e028f3c53af23e4ce709a5adf875316bba44270d0e916e44e8657cfbe3728ec9bad89233ac99a2ff6533e408100fa638aa3615aec8c204e6e9fddd2fbe532ea66d184df311cd66c345799a0f9628ee1ab2ba125333cde6ebd0f2c4811ab370c0626e3b4cddae16a60a95e9abf6f1df06d802e169037ce32d89bfa479b1b009d90c65a53b55d6971fe538ea18376fcf9954235e19101f3c4140fff1a73b66cef195c39071a32fe5568eca7098ab80f297ac57dd2664c9483830911f3dd4eb42beab77f6fa7e5439896f2de35f9c6aa3aa2152e8c55797307f51d0f632ed4497bcbbdb9b2e5476cee22e3c0747781943c902113f5a5869c98c88a5595bfda5c583bf8da48b684317687f1d350514b8447f31f881d0717693a8b6f9dee96a9f2ba2ba1c8301a940085dc0d93925563f16f6cf7b084988aa259e0ac61900ba634f65c9e326a5f7e35e402a31e8506f755527a9b3de5ee77f69a05e24eb6462032ffb1ccbb19e8be75c9321a88c8590a3edba72037f829e4cb1ddad999e9b70418c93b1a08c4e9aeba9536251425caeb1a39fdd2283c1a79cd022cc5cfff1d1973cb4cd408b9e07c7435e666431cdb72226642037a9c276a140c167b410451a829c6598f8e0eb4130e0c3c2f438bcb490ebf10d3872496ef08c088b310a2359b7832c36e401e85fadc6c998365125f9ec7afef1eecda21bf83a0161404e768c94b9a74afe110725be302277ef7543743a71286bff256b7c04962e035d8f0a4730906a6799f5c74b99ba2a8e4d67a21c9ce0dd99afa68ca65c70f06cd6f292ab337735dd01d563d4a6524990f0927387ec39ba6b4b119003fa35fa396e1b8b0cc96466a431d8fb6c0a0b2c9c4f5a835ca3d7774f0b5eae39dccecc27558f4784de02e3271de7a2f363ce71a8193b96d6a2aab982907b038a80975accc83be978feb97f6cce75bcb3f202f05713f0d4c910f4bd0c4d528090e1fb99ab156cf876882c8d72120f7585c19de10a3e6ae5a88a30f2a858ff01e9247c3ed299f593ff1bb611ec4aaeba3222fe8eac0f3119ca6db966ba6ccdd99566f15a96c857c5964470cd2efae669d4122dc1d0095202c6a90012081dc017ec391948144e1835da3664ce9c4a2cab26ddb8711de9db0c990b5e1c2597fda12edd4fe9e093c4662d029e60e3eeff7327c444cbe86a24f8be042f774b21c386de9f9f3259c2390663cece0378cd1136edecfeea19ece9684e4f3b91bfdb5ea87f39d50c2849e7d8016983fd74e1446c14e06846d5142b8973557bcf0308a244110e3daf73063fcdf68893c52c31a8ddd7624e2b854ad32f6ffa5a0b68bdc3f12ba3258b9f6514ff6f2cf73141cf3cce30f9dcd68e780f774f1317f78fd614fd4b23946ca6ca76d4eb07d381cd7744124a963d67c0cfea9af06c95adf24718435a69d54d05eb69600de71bb74461fd21bba61636ecf5d8b1666ec15189570f4b8b8da41c3fa8db418719664dbf1256e620d64bd17a5417cca7a4f77c87a5139dc33e5712d79be9020dfa50a17dbfd85f5d3498f08561f921b99a08e4ecd0be3170ab186bcdd0a78f93ddc5ab31af670631c73565992eae51b58fb861740790ddf957f4d77d876a4b4d25d167c944e7e26196061346bb53e690c06ab99e0b925ffc63b4d5960ac7d634e462534a7579fdf34465d29fb488a933495ef226b004166910667ef8c8bde95f762cd7054e3aa409a745ec372663357678a11464b7681ac22c30d3f8dce5f3aecb18b770bc080cade498646c4db213c78f4d621a999b51f574c558886f25ed112cff3ce7b338e93f830e0263fe2e57653fe3c601698aa38695cfc05b7b63e014b2defdca3a15d579110212b0c5592e0a6372aab8f77fa6c2d018b048090832f670290ffb8adc54aeeb8f62e7c13e13ab8c960d26c0a0e8e73452a52214540df7a2f997d328d5b246d0973719bb67d80ba837282fc5fe3461370c0b8b9e8455ec1ba3f89c55ef9d56a92bc1060a29c3a951e092d7505b91c2c6f0c42181ce67375a6de23eda0c6283b783ee1b5cb8d7f3179146d8e1ae56c8469e293fd12e3defd8fb8e49ee73889c66fcfd88",
+ "237c1802ebe4a56e0a4ad9841ced62fc270542648d80c0960d4f7b1821e960bbe08911d883afb0095b19331f5be45369d1003862cc8eb6722a9173ed9e25bfafbd8d9cb3036d189f14fa7a22a4d66f0b7c5ab7d2032a54f161d3e745b255f06fa22e2dafcdfa6e17bb92ffe030d1072004df70f7947a679ae33ced07c0162beac57a85ebfedd9f128ef597448bab83b96e960e71bda1f3f0c578c53d46f378a85676da3e7bbfe568bd2617a18bfae501104e61b7d706376523434ef4d69b6274c4ef100ca9becd707657e10799cdaa02399f2b54120a6b00ebec4d1be3973f35e54e61cfbbc781ed7fb03932ea86bfbf82e359e3a832d7bf7b19af2095ad2581a513a86d63a5e9619cb4ca2dfc2fde216d50a6b56e45ee5390679dd4c32c580f45fe9bfc390f29fb688ea54b3ab7908148dd9785911d9e2a666c6241bf000df856c0873de9edb8b8bfbb4b190a93e18889e4d6c69a6c125bee2a207e5a34bc0cb6986b0a5efed7560b0470ac453bfe2dd53fd40eec6caab36d5259f6e3107b46ec55ba5cd3669a04c052e48a569eb658cc787771bf056754bbc8ac92d2bee21fc74f35cc821a5dc2c541699b4987d3abdf3e7a5b4c7fc39c0e7c5830c06ecd2347533868e3bb9980440a6dd8ae4d3729d000b02e102c8a450ca37d94f2c9d218f5efd9fd8b48dddcc27edf31548265c1c30b55f45415de980776bbb69f8be8bd0b3ae86e7da33193305362be1c2b22846e3025851df9b7ed9a7649ccd10a8e9a0f5320e2aea740650fe388e3f89e7fa8858915dabda0d229ed8be5f87a62b7ca892bc717640a38367d2e9520c1c29d557a750f2b96ad191e9c837b339690ad1e5ad66939f9429f36331dd1e245b2b6f88ab4e4d012ea3fdadcd6429d24150431bd4aa39c1bce0455cc750d9d9d1df53be69262a34eedea56d17b780bf09a26a8fe0e4fe71f5fe81711384c7a86fca9abba9dbc31b523f181cec1717f9a2f534bf47c2b89fb6a1f2ae1461aa08758e14df78a0f0a1aa8706124e83e57e33717cbd6e6d0125079932d8e79e5ca853dc2b7d3810793a2f62b148564cd5ba1cb4b25b2ea2cd46e6b3eb2049a938fc0bca1a5856f2f8eea7493389081d0fd01d469713ca99e5cecf67fb75f19b8494b2250f314cf2a30e1afbc942e0ad205ef68addc21ee0a5f09ed025eaa935e1d6a3f41864188d47596a0947f168c4c2ea6436aa0b9dbb4bb935f37aefd5726a389e16915c390970dc7bb696b03d81b56ec462d308821e0bb45ea158813d23e582d0d1edc4983ca5b262e6ebfbfc85ca269e028d4a9a481c385534e0ebc349c5836a56fcc53988e083dd7d1fd4c11a9b2c2efe173210fdc5c0fd14d0f4604e5a956561aa7e7f1a75ff011575250482b11fecfad0de8c4dee665860953992638b5ffe830d6f9f27e1084ff5f60890d6244319734715f4787b2cac902e68fba0e65a260be578100605bc6ace779e0ad1cc3e67c51dde32c6c8cb450fd24f8a7b931f92b79e06e7066c8607091c46e6795e949d717fcff8876cff4d0ad6c9acb6a7f8c788c775dae9c6877eb10a98d229b70357704d861f6397970687af4215ed996b5e0544ffc881288615d189ebbdc4d4c8a891557a9511e614d9f7c5112b99085a5e203da447e3931c05f537226b69f028139c6b58879ba35832453cc665931818c9d91967e7dfc16ae0f681507f53cf265d52cb100d8cb6442298df7860e69c274a4289255b893f13b6d86701f3dcd7e375b915997ae23bdbb61a92b25cfef7623d0ce0e008fbd65f17a9eca8600c386a500b166b9818bdced474c02ca81d574300f38effc36fa9ee17df9fd5de3a99dd9bc332401979a469ae007bc89d625ea32c617ed4ecebed90c65e2d446500cf06765e2b9239c97022b9813c02d41b8794db516b371256bb9bfdf27ca2be04d9ff72fb09923dfb1a0140b4af094926cd81667dc0a86a6f534b167ea6a9b7cfb64fd98e20578b2dfbbcecc4721c3b1a0dda1c571eed0e66cd02b7012678d1d03575274300cfed7523de2bc77b43b91bba47adfdb63e30212d4b46462ca03fa0b1455000e10024f3c7c7d63e413f9e1616b2f4b3f313b6287c33f57d34bc7f87902c39a530c0fbc96d2054c3be4c8bc1fa1a18a3b315ced0a3496a93e8c2dc042045f40bb652f5b991910f14109a41fa9ba0d8061bcece32536797d8a189595c22d5668ee3b8c6fb5b6d08fd255b44492ad6b5c8b8e99b6b0442cc986fa1b0f466c42f8bf1307f5dd41f1b93d8d3643c34cee449d168705fe3b5050d41026c00ae896b8a10808c5799afe92eb3489aedc425d4e6dcb9f0367ce40462df61c02c049826e4e5729d5c63cd479b1839a5d757063cea370d301c6484195be3fe8f73bb0b5215c17df60fd79e14ceb94d92e8c5be13aa2af5411a0a7c39bff8642e16dcae326d7b3f28cc386b80150151e413e5ed3089572824f53a6dcc6fe42393fae3c135cf92f1dd41a262866213b86d4e2214841fb49b2b6b70bbd892d78e069f068013e5d556fcbf775fc5adbde2373e2592383418fe08a9e921bfa815c2164331d47a994e878323eab1be81992f00fcce56f683c7406be12707252a4f00c1259c961121ebefdfc3b5b35be9710c7f8f48754bb4758e18c44ba4503392fb3a9644c4b571d5b5ddfd7578dc5f71fe7b9e5594661455a7bf7018c25ec7ef59c6744dd95ad94956665b8f8e24802128a99b4ec533242e40585bb4287288afca9195ba5d40c1c8b403c8d4e3cac87fbee92bdc73f5a0d5bc0e827ac982ebe3129d336dddb4acbfae2425668a9530b56cb5278d03635c034803797b9cf06edaefee6ce9a4679b22772a1ec55f999369d725386bf24ea704e85a282cbb4bfac27e113d70b97cf758dc20c2494bcbd2ab2c61a142c258f2c7f85d2f785b2f7543e20fdf0ffb969953954352ade00322c7a1467ab1e32ecfb90620583e80146ec8d3b5515041e73d6174ab5533e699f460510a727239e83a6d3b7950fd548999f81f3e8cd5114ac76069471a7068b3dc3df39146fa489b45a556c21d4a63818cfe89bb9e98d7750dca97eb9c4c28005c0850b352bd3aa79950ddf3c1503cc83c995d9ded821d9875a84c6d9464c9231275368f1bb570065d68663844e46975a4da9f16af494c31bf16a7ff6852b1b035c30046d7438932273da18570d321ad883ba5f9e4c50945f94fdbaca65c8cdd9245c860d980ee0219e50b245db049a8d699f0b3fa214d4e0c86bf86811e93f3144d792012e566f8ac955ebc2d77679a2d74db2971699b18601536c1145c91b641c5b6c3b3e924c5ae78a0ed24fe0284845463c8aaed04bfd9126a163a7d8e2dde75162fcf1f1a41f43f343f4fc3a4e7b490d4f7f1541fe121a1590dc0f97cf9005537da4cf304d44a96517b7bff79200046dc62083c909d5a8912778a55dd561dc251ba4e84ad11792e9021cbaac1af0952a6a82fab10d146ae2cffa93b825c4e12429f8d1fb7f215e2ff274b65d900293b9e9d1c50b8077d4f133915a25e3ba8d7e957430bd8930b197d08b05cea7386556486b57",
+ "fe541f6e1e8a4dad8700d3d518a798713e8cbbcc616e6d67d3a3f9f75f5d5d06099faaff339b3be5e4893ca1217ea015e8d6b09a1e30af6f3765128928a55c153c7002a3cc519646d4ee3e4a9a4f2ca53803640e8412cc618200e77b5b93d6a96eec24d43cd6e70dfda4b8279cab7d654e936fa95a75e61cd4459bb80eeb6a2b82b6691bcd369c8e421f7c427edefaf744a6d4ff971433e892ef55181a27f478fc238baca147fde57a0e6322accf06162cb647cbaaffa4673aee3b098d1b3d652543a4d9029b6fb1178583f723f1ac40d724dceb1e182854d10a957250367cbb2fe865bb0638e8fb737b780c265fd47250d9ebd8685c7eb2572d5a79ef19a8fb61ca3502f7770d1709c174fb50862a1af3d2a1e25af36e5b0cd44739caa8c87be2b9830b094121cfc7103009c498377af0d9183b5f963b21890cabc56544facabe07f30520358c32db37bf9da3bc840d337d573fdee34534e140bb99ad9ce0692c516eb8300650380cb01f00f2d3970dc2251b4f0c49572bbbd277e247f376cead6283c326bf9211da7711ff9696eb37eba1a7d693ea744ad40391edefcab7ec7388db440bf01204d5ede87cee5d357ce66971a319ea92e9e1f35dfd681f2f0ec90f693be02a7040b34ad6234f7b909c55df9cba9fd6d3ffdac470ed363b5c469b045c1b38ba73c9bbbc2fa53de6d6de1ad749e005caeb5a42b501d380ab5defeba188d77ae6ef70caf8a90dfc330cf9fea509f867c08242b45f7bcd04d91a779cb5652ff29fb8e4dcc636facb3e3194b229cebbd073ed466ea2701619d2a99cfc64a1292b32b600d837a843b1b8d131b0c777c2b99bfe86dc7608ec0f1d2c1c102a68446ccb0acda94b90e148f66c1262670d6b46f7816f6dd53dbe533409469831d8b1a41451ead1ec624c6f5eafda8fa233b85af3e14ede9d84cbcef2181865f2f69b83465912d4b00ddb43a8a49257f2f9dd531778f17ac27c8410320aaf3f24d274e81340bbcbfca713a9ac0755e68114eb789087a4e2f108542f63ea5aab6cecfc2a9af738c7fc37e64e3d0c61e73a22ed2ace3cc63911eeec6d1b8b7a84378e0354c792c946efcb31144954f2969a4e8f0c0d77e2c05967bc3521b1ea851faf690a5266bb7f62cee5a7d3bb280f9a81813738f404b1d3b4981faa5c31645e070391bc960f6131007d73480f7434a64428ea33cdd266e4b92baa6202efa2276d0b4d10e33c1ac0425e11e2eb814af4c0311d5754db5f09963c73b39bcd03994cfb8504b35287042fd8e4925973be106a63a6da518fba81da099e804233d3897b8ad88d9ebc9b5fc2722ad45817e2abad30a4cdf7fd19317ca7fdbcfc8402d8878a8a5cc307ff03b7b43abb09e5e8fcab5bdc5043eb11d8d3587c953ed65506038891f8f3b52305d7f7366da9fd60abd99ed4e4c41057c62995b652e4d8d2700ab7ba94ad9b6d19f9159d268cf5159cb97ab10d88754e4b05f8cb1a5ec930b219a057fefd43648cc6c9b02281f8f98cf2a2ec9da625e77fc2d891a7cec9049a7d780c73afa0d9ff52ad6b41b301211dd6e05cdbe8166e8f22ed31e0740de36556d012860e3715f78fde6d1f1dbbf88c4c2503f90716bf437b39abf04ed1c2ec425be6c7b711152814dbdf89658940e25a68b2177cb26a79fe72590e66fa67819c1e5d6af9362a0a27666b6ee7bf12b8d367012ddf4257ec7b599d17cd6a174cc46538f57fc4701ff968c6fdbcad7f5702382e113f5f8365dd75c3c5c3a97f5d76167b849958d394ab9ec58be0bdb6b9107b95d77e91d2226fc8ccbfbb8d43c5d765f22e9722bcecec80380125ffe856bbefec9ef203ab49087088cb77833d0663e1566638f3ed50bfde3737d85d5fc8f3f23e6eebeced5f7b433b275e637715bd59bb503eaa4e545a4d60feeec5bb4661b3b46c5525dd7bcd8a4fdcb2231289a273ed993faa60065c7cb3c86716c96de3a35c64679cb6c03bf4bbc304410a40a8402db3d5a472bfe8e5106a6fedb9cbf887f7ff5ce0b5fbe6e092043c8d9f84926c8cc23b594abf04e84a127a5934d9c1c8ae968ec1e4131396552b6ba52b93befe24a38b3d3b8cb3dd568bc58d580db4ff761177e7e2b53566f537a578fa08e9c14c6b06fa1453895cefd9761b986ebdb26fe056fef6f0b689ce7ec4e0fef6757537aa00f0ddce50ced7afb3c32cf7e9ef58c87dc3ee0287b96e163033932d34382ee2f0fb67704cb1f6c82887e93307b44294a8de26c3f8eeb6244fe27b4ce187342e05883e4dc0caccf28dcf86492b6a1b798de2b6f39f5225b21d3ad75589e9c21b32b77c05bec1f0c97ff9edc83b33b8d61f8bf24cfd089266fe0f0d60991dc68fb3a2494678de2c71981da1c92aab94c2acaa8c6c0f409f0c59fb22c416ac239cf04d1b7d82a235766f55d6a784aec11215078f8af585ed32e3749ac8fc2f3526313fdb19cf404af436234bdf9ffdb562a50986ef6e52679649be3ce27f38e115baf93bb37df7176e4fce9ef8ac7fc788fd8f0e7375c70387020e66c98fa731d37e78298dafe9f3c2b72db6417c7894b80295a414ff5ee2afa1c5930aa5c2f1ba3d70dc374907e60e1efb0201b3c124b8050016416c5f11133b1244fd53fea6890a769f9dd5f632081897badb96318f4e7504515cf5dba2a80d78ee0eb0a52294459445d8905a421ba8146e485bd74e33148aa7f9c040ac322ca16ef624f5170115260a48bb6c26b8d853fafd3762f4094f2792d3b4a322aedf2490eb63a09ab1e337d822c009108ea5cd79374220dfa68c01017e5c447ed4eb1953c7f2e094c217bb66245649b01acf292b944b64f35538d1466fd370cce6068c951a980412b7bfb1791bad92c0b58fcc0ab1ddaae111be7354fbd5e13b655714de961cf3301fc7c638a2de99e2cc6a60c7c32a538d20017c1808e1b69ce4e56fddb583fa75cec80b96e28d2d20d10a116a075850045fd52d126c0302f69693397a0e676ef675bcdf1c9c2690b5bfabefecb23952d32339d6555dd8b5ac079de156cfb25c09b08ab4d79925a0cb121676d1453f5d58670b24bf59662503a3d0c50e53dfef50b67a024d7eb654fa5f9547b2083be2dda8c244c28f22f6cac155b82b7fd0e995264a88ae5eae3d2a6df89154c5678a16f0e9901e0d664bbdd2bb1978f0101592d27119c8fbee29fae799eb15e04ddb5c73968d06f1d8adc5856f38082cfc1da5540499801907ce2733f39758dbaa1f7746c4c81d297c73dd42b41c539e14b7d502da85dc4f5b1e05ef24b5d9a1c4b5935e8d47482f0e8394e35602c89911f3c8a76693070508e184c62dae9f1edd7b9b71bef9eb735786fbbb168f9db84592c057b817229df41e1a6fe2e5db9961eea39249b1cc535609fcaacbd76b5560d3c6811cfb0c9e00e12737dcb2398fb556f8cd7c089b890f2b0e62e9e451d5c01c8e4974006e3db6ca34c032d7efb023f2e3b24a67960d2ff14d64633accabcbcdcf4ecdef434b21237ec033c76cc91ca0ee99b8c93b92deb36f5df6e243d4fcd6e3592866d906ac31bb4fce9a993f2d5386d17744a9f781",
+ "80a7b693bc4c76a5d71f0980fa894c018b3a57b1fe50ddfdb432a7b24fc02e443befdc6f9482ccf5fc2636790360ea7af130bb04bfc70133193a80e2e3f4f1f9fb24ddbd2a1ec0d8dd2e7eb5711c4ac6ace8b8f56edcdb7ba27b8aefea7bdbc99e857c01fdceccef147549c70a8bccffdcfe6cb1c4ab7d2428a2c96f52aea9c8684964777409234f648d45bf8a609b88e86556cf8ec700aedf3c74e2ee0d252de6e01c3fee43f8872db0cacfe768ee7b328567ce742681d47a89efb13937ffe3cfb9f2555538a62fd0383338116aaf1aec6aa44652d98caf887aab21b8d2ead5d2bced7e24247d7e3d8bcee12c742ecf4b543673894a5f9b3e0d4d51fbb0fd6923e58c8a2000b1ed7d765e2119ed638bea3cccbb1dbfe1d21dc96477c9253655cca4e060b2997e3e245e63ca7a3b643efee1d162a02df2b0daa200dfc17cc39dae6d0f9d9e4b1bb0828d605f26ca81d0ea36bfa4b038b7596c41b857fe281200a83d98999f6b258731b592b764648b4f249d0aef12bfbffb783cff86c86e1241aaee5a04f721628ac0324b1df78e516a72fbbab31e85899d9aacfa38e8d21d83748fc4083848da32a1310a7528a7ff0537b1e1180e3156d9829b0123bd454a2b856c70abde97ee79c1a51a8e0cd80e5d3165e386c242484e8a837ca655a72b1e41bce1b0dcc1a720105ac5172015470bed6ac005eac0aa88bbef1abaf5902f1d93c9c9f18543af1acf4161f558613259361b8ad139571bb41821671cf8009a05b2b7d09671d5ab67ced0cd00edcc8861e73f38eacd122fbea28511f6671355c581c0fdb14b599788f74b5eb58b2b86cf56746054de412591dcad53ded0a2aff32d7b1414562cabbb4026f87cdf4fbdb9840c255ec7581246bcb48f00f7481c7016ff12f729c0817905acb97a13d7f85e950688f044eae3ee7a77615ca8b9cd9c811389fc701e5d0925643d81e1d699ed54d384f1fe44e922ca6d99969eb22bc9f615a7ef42e4c7cae06a1fb67bbc2088424e82ff3c5c70bd8bef35abee56b2480786461ad2a16ea55da5457a3da279cf435a0b8f9cfaa089db7e7fbba51996ee7cab6db1dac988ad3dc0a4962911643e957e84dc1286d8b81c25200f5a884f00d80f8d1f2152f3361881290d2ecf4d0438ce710ef0a7dfd60c7fc969c4801ae532d8742cd4629df4217d31c79a99c24b8abf2ee6461394257a0e898f343acbef51d4f43f41c1b52479cf32eb76e672d3bcda08e330eaa494c3567ebfd0c7a3409aff515cbfc87301793ec43a8a0f9792f4fdbaaff51f9c8d3ce44bf7db4bf8dff7d29c8824f072ba400f3c4eb46f2096d27632c778e212b9e287fa1f48bc643fa4cb96d1df89c91c1976c96941db18fbc94146cf9160abae16627d36bf956180f853792bc4b664a04581f46c95e62c95e26d4bb75df1ae566d40f7ab887f26fd14d3977fe53947bcfadad65238f32d9d45e126ebfc8ecbf50f06d4afd29143798d393ff43bc6f55813edfe585f8d1c27e26f4aba62d62fff2c434b58d28db839e0232d0f61e15d0f80a8c73b008cdf39afd4be4f425488e3432b632af693d21edf2a922cd5fcb3f6589068aa25452a67f4b845a0b722174beadfb86fd9462bc887420f3da24225cff519c9e5a955f991dcaa3c5033f3ba04e2173c12e4dd84a2743e3e233c1e3c0388d873391ff979db5c6cdae64ebe13e83d41edab5ea9e37d590b31daaac35d7ae830a6214fab358dbb98c612e6f8a086904285c7e99cf0c66bdac947bfb07eeb59c566b2c13958c93ac573d391e3c5a2ca595a0496ba2494e56838aecb77f0c18e76b6cfddff7c376e263ea835387012821cba59fc65856a2483451f3fc973dde2dc3cb0806121c15031c37d1f141dbb1b8af84b4b1704d49d3d37314de07584082b9a073c461136d0691a2349c6f3e4a9e1b21ef774d870f44457556e25c27aa5a25c86d2afdb6fcacf9be6f0b5215bf5a5086859ed015a4d433c3f97686ce3485257f6ee25302133e1e891cebd5237bf00544269d1fa9e93e084f6df6de57fade40d4461788c32e482cf0ff4ccdf12b86737f4cc37a329232a97a49e192f8a1e34a35538d026ff4b713ba967b6a347637246c7d2a3ea03951e575b4e4dfdcc67b7c4fdc2a7b1ebc09ea887e3e471f9be61bcf7a9cb91690d76ae3d38be1b03c0c2bed40c3b4aa2e9357c3cba4c6fcb0075d239a8fd5a2ed4c5b9f63156a5acc9f1ef69aeb8713ab15d257b4f106e7d90fee220ca4c56d2a29b68745bec412a0d864c0918d04ffbb69b38a3fdbde65bcbaebd49d499c62d40a2362fe298761ef70741ed43d3ccd1836134b4b039a3a3d5e40d2eaf0a0de4911ee4bef88f595d1b96f7287f80b80e273b9bb2dde3e05a9ab1d30439ba04bcf60a96e0115590a8486881ee2772b560ab75c4466320037b91f07062ab385317ad8f39d65074deeb21d0dd58c4edd0a73210b6e72b7da420f1595a2d768712231fd026eed96683c13f7e9dde9984155e37e35e6ec5ca48e7a7fcd7af00da24c1e7c1adabe5d566e3040f7133d6ad63b1b54ccee95bc4bdf7e7969e219e2708e4839e108e170779b6231f3a5670cee50557889fbb381c5da3a7867264fb38a0d63d4e7820663fe4b817a77eb9eb9c4d84b2d38ee8f394e4ff65986a80d8e085654353473a21a8a91bf72ec28b0688986492af71b3f2eddef27d959742841037cc035ae215e1793f92e52d349622de4bbe431ba02bc155ec450a7a69ccc1ea326271625cd6bef626f3a6f8c0ba66e46fad909c0dfaf32a983372eb75cf0fd61c3cda15e46484bbb783bc508c3581be55251fda5f0f3e579ec9d1f3b5c1418f67697fbdf0bc3240841045f2ace6e6b2bc4a9ce86389441eba9c6feb0258793f590a481525170667b2c89dfa3dcb8b39030741728644c3599e1ea2536b4243893b67108929dc74ca86182ba7256a8ecd7afe4ba69bd59d98ea5e445289d5fad18e8412391277890df82e42a7a3745baa3cad341c48e15663a3a936bb037ad5885e155b40e143690d7b56e4239bad53126cf7fe0be404570e59be807f13e44cb86d3cd82f5f19b7b1d5dc5b7025089b56dcb943ba738c2e71b297a72054e72be89e7ba0ffb2e59f659015ff1a36a98a3db40be06a0fb6264779b8728a79a9f187abd540245337d522b0464f8e62a2b040b4ef2270590e9e96b69cb8e8336d14a94e1bf07a8f8ff914c168d49b5e0d62d0501555d59995c7ae4d0145d1c64af054887c6197b1521b5efe6fc157dc64787e1fc42d5acadab981beadff6b8f91688681ea30de8fffd9326159966c2d2f01b0a5b712b5b97e5d26967cf2972e2003b646e8da0acdc9af2b2faf64413b91b979ad2baebe6310df9cd8ace652ef2d851a869d78c022ef5698a2ec225d853976bffc1a4b29bc215ceda3bcdecc17df85805f99fbb901cb583bd2009931de1f4a624692903d4b0d06012354f80a8f4326910043d5bb9ea117131f6a11432495250249de09c160b6bb21ea7d396a581d161ce0faebea07c823af2fb9afcd111d3083a159f12c0b4eb6715ae3155a11",
+ "238d6def33fdfabbb038a6fe13410b41861e37d865648b2da705fe358d2561e5e3c95f66288f4159b646c3b5306598b24210af7f9070e9fd179e12f4cb00fdb4c54f86ad7efd41c5c5a5949d801f453eb479ea0fab58c3a11f786f06dd2cfd423ea77ed1f521cea9aebf655df4f16075d290729e92925f8cae612f11fe7cac7bce027ae7704b8ad8033895b1884c83dab0926b45262da2707f737c02b946696db1e85edef3dc002d0356bac465d17eb457d35ba1a53517460e78a3e62de9cecd253054b2e7d21030da5548ca066af50f3b945685b6ad5679c9148f05f0f06b2520242914a060bbf044dfc50df9cedf8ab899042d78a3c55e1f593a2743d2a64c303d414d5765112bc70e4a1f3feb10c9ac485700a88a9e6b46f1bb0ae5075229ff44543623c5ca1ee481cddd195a96c45586128aaaf1aa76392c45bbc5a277471026004646a37f8cfd2a83c006c9f04d44b47df96334bd4bc505a9527f7d253947b1c637849ea457d079261ded7b5ec429755fce24fb501af1938491ae70fc87d20c3a1a5ef8d25aa4aae575e2097eb957d65a59f7e9de56ce326e20fb1ea40ad73be22df7f99e4315e3a47a83122d85627b699840e8bfcaf645b8438111a840ce5a28ae43db03224d499d743c3bb5dada4a1b749857ebf9d452477ee16349a3d087502745573a7e2f3fee1f1677a55bb8538d938983209db58ddf975cc09f647b8e95bca729f66546f89329b38143ad34529ca9e2b86844422ef5af12031d65e615433d959935e42ec5cc2bf5a315a5da59dec6a88d6984e31bb3750dcf39044d0b3a287e5c3db1fda3629991b2c638525cb65dd33531adfeabf02b364cad6ea273658b3299410b3cbd285bb1d4d96bc46d052ba8eee22a26264bc7421c750cdc2a831d2b40c93228b286e9e5bc7f9649a9de3cdd7f974c9798f39c01e6c9f91db0d148d848a0fce23a6e1684907bb9dc4689e55fac08ba3757555cde7e9940e29f28cdae33c67ec78bf36cac7474dc7d356b70a9a0e5e890a68c4648b52c89e48396eea2ad42eb4404ece92bbeebfd40e4f415b4c377b13fe33499b889a7c8b87732e87c239cbe1841ed639535c743d624788711a092d6e44dc97cb2e9fc5310ba2f0ebdfc29c116cece20c908eb924527edef29c632a2aeb273a11258dc4d02cb2e25a4616ec7a3f7a91feee0eb32703decfcd2dc50cb41417f8d87f7792286054ac7a613fbddd01b36c9d186ac3cae641b84b419a6b8288c814b15e0699ba1c4fa1a2d832a5f47ff86a4416959c32c7cb6da447dfae19d6792e44d822212fe076fd0cf1d23082bb99decb1f4b4c4d14a74c537482051b2d1297a68ff3eb1731a12f3012acd11f8d3fdc03a1518093cbe7cf26eb37d7b7a7765f7609abb28d487127ed88971373b64b96b2b26ee9af1163255d68663fe4a2f2fe02a12ee2af449da16b31c8bebc0c5c15c6c455bcf9da45be1c561ad0019d9d2b54321c4597f664131e755f6973c5f5039cbc88c353f2bc08d348e310057b189e94dd8296f6d37b6e952d119390229b5e3765aea137e6b2ded34c87a7f55285c5e63e3f6553d529ec67d82e8b62cfd4cb7707716050088a45fb66a9ee1accd99bcf6950af56e368877721326275e3d9eff4ffed4bc3ccb4233b5d58115fbebbe8eafb8a86ea1bb1e6690baf9cbdf7419aba72df3f0b72306f2827931332e7dbff2213b66190aebb9a3fd8e682b9b887435bae070e43c2f353c986871fc7debd84ee044834950992597051cfa640115130cc4ba79da4ce47dc1121ebb9713d46a259bfd4ff4e578b076a9c93e01729a6fe1c4552f9ed02d40e5f40471622635aa6375955ae4c1311b1c89f6935be2823a2209f8507b1d590c6665e419eb5410047b9a1c5be71f3281c365fd8dec9403a12b268414058fafcbd5fe56a0a2dfd107e5fede548eb5afbaf21d256b3e6eff061e0e0558769ac28e606d77c8e60180590d4f74b9df2be758f7b1861234b7c6d1412da50dbb651dfc0bea810ef2b6aaa161b48bd9f9090d291bc8b976c0b4d612b885849c7b3791cbe2e83cc9f4c04c37741135236ac687feb419085a91f188c9cbfa43e51972b971be4f399eb60f0930271a2f863bd8c0c1081c30dd04e413794137088e74a387629651e92431b12e745d592ea24b2dbd5acfb9abb690a6adf8a038c0f9002aab2e4c2a42533149b8d8d89db65f9b22a01b66d010639ff8d164fb7399fd51a3f661b47875dddb19747e9d1c6ac1e05aa506c8d2ec344d006bf76ecfe7614c09e65cf09b5d9547e2817ddcf0fbd9163254f85783d57ad3b50f48ace2b2a9a66e201b259c39381d9b81a976aff5f6edc61bbb214dcd2b0e169b7a05808fc731b33b41d8515fc8e25d03db9c54d4e915e79d1c9aad910f14a0ccc8d4d7b4b9de86d23da559002704f869d2f1745bd2f807a39e1be4cbd1a7498afe9b567a9995cf5fa87bcd0c498c63a461f59b8bf13b6a036662707ca149b707157d45cbe3ce7a93d4aa0c8f45483b74ad2ee07f67e7b14f3b84c6f12dfcde8aa340e568d09d341229f59b9a276e1f74a2fff153fcd70fad609d86c96d2cae77a8401438297f682e52b491e566beefb80a1f562487eb27faf7eeabfab7e5480ead4c99f3a9827fb3d67bd13f5131469528d0d4e2cdaa681ee6387d01368decddfc6babbb77fd9f7dbf753c65fa9f83ba57718b7882badb431b994d2a17085c19ff2010a3dcb8bcd2b377aac35cdc0fdaa503181f145194eefe4696f5f330514a943d0589250082cc2a8a732b710b36e199b52444f3b0b4ea04df4835344cff495c0630471a0ebddd32204881a92b340286ad5d73c07081d4260f09a70f06aa9ce437ee0d0fde89e40e2a4175f3186a10173e00f5b1d69ce4f49d983a77f1f4466c25999331365e4dcdf62e927bdb658b828af686c27248e0c810e7a373e5c81063455bbf0713e0123bba11276d381bfcfaadc991e01cef0a0e8c02981910e50edd9f9db409e82cf34e19048e1a248ae5d42a42908e6f4ea6f8db5bb073d3c57d31de2b04327d49fad9ec769536d8020b3d84248b140aa370e51eb4c318cb3a77b34fa33a654b0e310dc0ffe9e3b7d4a5ba310e94bec5688f11d434c0b52e57b03591da3eacc2cacd1ca4556beac6bd1e9343233aa9730b82f2f93f6c83daa03216db0f56523a41cd75ce24efcddf284487b7280f720c40cd28bb8337f718c522c12b469fb1df0c8d4c05efecbe8b50d24803d9f95ee618e2e0e27c4cae87e95dbc58f6ced4e9456061d29e71902ce10103bee6223c13af6afa4ccc75ae0b6f0ce3fdc5748df7237ac863bfdcfbcf24e01edc682115514f437a414be5986935ef6c754f9fc524d227384091b522e3d23ef2feced7c236e372b7df417d20cfc3878d9f3cc7c02d3fddb9955d536a9fe0a9191177de3ea69b442a653609b121565049d5c5d24e5632ab5f56f23d89c1dc2af0b8ca85809cdc8ab3ec46e3dabb7ec80b1ad8f1fcd7ffa6c48d2e2a2dedb0c11271975a4ccd17ba7e8bc9140251ec4a27e13c9e09d8ae2062385f5ac45bfeb7f4",
+ "c4d4adecfcaf1f8bbe15fc6a23c55c888b703b5f689da37bfef12094595d0e75a8bf4f6c5a61fbeab3317797fd92ca7a524ca9cdcfc3dcf9a037ba82e1bf7aa319c5ff9916796abf2a15dd5a4bc7e4eedd71e38ac95aefc6e2002464b93b043d0a10201a7d4b17c04ec6321914e0e235c95f695987bf3a16d277da8c100df9647c0e5aba69bdc714b98e7b6f0915a952a2eb619d377441d276b77242c1fc0b2379b643249e2db60cfd66c67e1d77b1b8c31d4a0f66bdd844000edcff7f4655c1196f2e300de338de88b4300e4a33c30a05dc0233cb8b515254f07844a7f3d906981ea1f194abb2fc28e30790186bf923a0f31768fc0890399b774faff6d3852d1a6ee28ebae21ac1467a44b554077304988c69221d9366e33ea5694562ca188ce9c2abec1d0e0dee1904b56df33b79e680ab329937f7f316634a13cd22ce003b6393c578a809f566514bc16835d6778036721390e56315bc67a1297037cedbabf4114f21b978a93c7744528c2f2ed33b4ac129a443373877de58a2c519d00e63132f7a1a16798d5e09e6ff0ee5870a416e0a707281c3f1b894fbd872d52272b3ba5055fce8a459c80a01906b9f9792cf290555f2538738699593757c15456433e105c8590efc5b5dbe1030e927e57e3c4e49065eeb16a9227ec9fb3910246a861f116b7bef7645b18487f2e4a38d1c7d5860247556211a2429b3ce246168289efd4e88c9096419af713c7fac91d190156a7d0e7ac27c9b9644beace6db4947fbb477fa775669b18c94342e5c558a32d2a7d026303249ffd30ccebaf40267a7514f9e33bf3b8c20bab4545157ae0341c611a3ceaa6044daa30f4642f0e6d69499d26abbefb485149eefa5fdcdd7a1e8a42b94219870870f17b5952108ad7f3f800c924503742a7ccc9fdbfe6a719d2a23071706dd5d00720fdef8c481e1b9ef5472a96c924cebaa12dff511137bb8c95bd828ac67815e6e2cd51f55b876f7512e8ddb47c497f519b26d986155be22c1091a1de7a97a2eea6111da7f22842f2e4bb25334f0d397076b8f27667a4befdd727498f24ea1765044dc3f5c08941af26603252955b49f4a68d3610e8086c71de3afc83c7e88d88707a096d6d8839446f5a866732d26dd64dabfcb78cda266f5990e09e9f5ad9e89a8108e6747be74338e3c0f743174944381bb17e076f6f5a0a4e79cee519ee52a32b1bd46a424c6b7e198f1d2a25e1610e07e27d1762f9a9a84acb68a5f9a47ca8229622fafb44314ca107762b35df8d35aab47d2b724e7e60ed82c6e6bb25fdb2acaae298ab467b85ac35e7db98b314c63d5f1ce4ea67ba49f17b67f9306c98881d69d005ed7e149cdb35b76704e9fc5b4c84dee66ef8449d1fed6d9bd390170bb36d6cdcab0de3447294ab5aaf90d63c92f028c7471f7ebaeb0c2c3dc30911a11dc092f68116fb4d76d64bcbbff12fb5db6ec181c098acf18f484c2961afda12ad3f104f305340805e0eaa31e50dff5e53974d81724b291c24e5ea79504b2fa1003267c8f5d5d9ecd7afe44db472e4b10f4667edff21502230ef69a00622ce8a47004ce84b156a01c2d1b3f6e198e7495f95054a7afbc6aac9b56a12ca3688f97f79a62719c46fb844ee0e155b7ec62674e0cb837ea8ed75e93030958f44d474f22d3c94d78da747997a397aacadc7f639a41907bf3889027fb20c687cd068e5784cb9581625ee53f8400fde9c852529def52b9a1cc2e4926bcbd267f97cd2aff2b7bd27c8297bb1a234ffc4d20a5f64979e7757a51137e3e2b7be22e2879c23aaf956d89d773f8192cda07c50d42907aeace111011b1760857f91e809be217205ffc5c0c2cd6e0a92b7320a1b0584ac443e9415a075e5c69c6bdcff361c9e5e3da5219c56a872d7214e1747845cb4c83369df57aaaead36ad04b6aaa63f09a1321fdcd5f09fdd831d64907e9a6f539fd8f2ee0e27acc6dbb1b4302c64376ff1cafb8cac7b567170dc75addf807f97a92793e6342e106595f7ef3fa9b32c1116aa7f46d66e54671dfa96d188f7d2ca029e7a3f0a4bc052a8714187f427b56d70a3b3a04fa5db3b204658469baf180bcdc73072f7c50b9100971782d029655e38ca567fe698c713acfdb4cd78c7adc99c04b49b8ca6873bdff927e05faadde747b475c1264db698db36ac0d698039539a883fa1bf14680bbd1a5aaa72cc79db41e103e18fe7269ada68e2b608157c6738e82ba3611ab63e47df51ed9006e724b0fd2a9ff14f4e78215fe49c5032e334966ecec21156ad2783d50a5facda3f5b41578fc9588a5a3ef4977a5faa820bb76ec3c7a19c781e248e4bdaa7124fec6929664a95a7f2ad7ce0ba7a784adcb3644a94ce98aa8091cfed3eaf0a32c177f901a76d205b27900936ba6996fc009f2606ffeaa591c942d195346acd38947ba5af9ac4de011bec5ecdda67c69532d13871ef98bc186b951b1982f311dbfe350a626424b91d11bbc11df4789f63b30dddfe0cc99aae127611f90b175be52727dab1dc371344e81c5f0ce9197cf4f47e9dad402b78967ff3cbbb6c6ea15eff078c68cb4812b5b5ec2721a7d66b0131131f43e94cdeeb74fc2486e458e8c9e6111d0db95e2b19239ef93bc0ecd469d605b3835b234705738fab5298744ebf3657797a051c3946dd4a5f626f5d7a4f8c157a7988238bbda67812772f86b5f5aeb4c58547bce4b4973e6bdc1f886072706f8d650cd7e1d76523abc2e6af2a457af956968c8baf68efb8dfc87bde3b5c8887c13868ce7e67a86664ceff1d9deaa3c15ca5494b96a5cdc8ce264d4814865e84188ac8953168952a593b17276d16e068993896c5283d19831dbee9f10ef7f61c0ebde4b61a7b74f32ad3c5325a7973d39ecb0a3951debe5c4e85c8f1b3d7c15a58ee6e7dea562481b8ea57005c6b47e1f720e565f5f5b43fbf9a232e5feb3b00a09306c449ac5a4daee73c91837656ce0fb72618d697e457027b043aa747583a4b4cdc09d53ed65761a0b2a144c09dfcacb6307b2440d65ee6cc3c554773ac5b3f73eecb860f69b8b91518e4aff4d89d1a7a88c3aae06d29ea077ec30388eb0c88ab5cffe247e01790cfd1813e4600e6751d04561b425461e8d057fb17c2d0fc4ddee79f9b54ab23daafaa36e58bb743de351f54454a15ce6056b0443e9613986a4f02f2f564b6b0ccbc2c0f1e479b50d9c999dafa16e4d449b6b25d851830344efe10f9274c18e6038404ada246b0d015320c19988bd46cb55c36318c44b7f38adc75f16d3f3715c746c2ed631c72df2e363248fcbc3113b1d7a06b21e8e212e986282df944c74ec4e8d3bb348a2aab4ee398327f0ca266df741c4e6444f23a9f5834a4e3a9c4432416665b856d4255679cd9e4a0c88276c8b4c83919c3cc3f307e91d5eb5fa209585cd68a27730d2bacccbd40e50efe3f186c5e8ca2f1aa6ddbe5ebc5358137fcd79f2bf1d29d5a85dbe9177418c5b5742ef2d6f2d263f47ed3ebb0d0de15d3bf433a49d1b72e93d34ec1e17905a3c4cd31f93fb937765d1e0de58bc2370439d82007a63e48dcbbea868dc5c23d2",
+};
+#endif
diff --git a/apps/medlda_release/run.py b/apps/medlda_release/run.py
new file mode 100755
index 0000000..6a5dee8
--- /dev/null
+++ b/apps/medlda_release/run.py
@@ -0,0 +1,192 @@
+#!/usr/bin/env python
+import io
+import os
+import sys
+import fcntl
+import regex as re
+import argparse
+from os.path import basename, dirname, exists, join
+from subprocess32 import Popen, PIPE, STDOUT
+from signal import SIGINT, SIGTERM, SIGKILL
+from time import clock, sleep
+from datetime import datetime
+import numpy as np
+from sklearn.metrics import classification_report, confusion_matrix
+np.set_printoptions(linewidth=200, threshold=2000)
+from socket import gethostname
+hostname = gethostname() + '\n'
+
+STALL_TIMEOUT = 600
+
+def get_args(argv):
+ '''
+ read command line arguments and process them
+ '''
+ #mandatory arguments
+ helper = argparse.ArgumentParser(description='wrapper to run medlda through mpirun')
+ helper.add_argument('-f', '--features', dest='features', type=str, required=True,
+ help='directory for feature files assuming lsvm_train and lsvm_test')
+ helper.add_argument('--dumpdir', dest='dumpdir', type=str, required=False, default=None,
+ help='directory for dumping output')
+ helper.add_argument('--loaddir', dest='loaddir', type=str, required=False, default=None,
+ help='directory for reading stored model for hot-start')
+ helper.add_argument('-a', '--alpha', dest='alpha', type=str, default='.32', required=False,
+ help='alpha prior for topics')
+ helper.add_argument('-b', '--beta', dest='beta', type=str, default='.02', required=False,
+ help='beta prior for features (words)')
+ helper.add_argument('-c', '--cost', dest='cost', type=str, default='3.2', required=False,
+ help='cost for classifier loss')
+ helper.add_argument('-e', '--ell', dest='ell', type=str, default='64', required=False,
+ help='ell parameter on classifier loss')
+ helper.add_argument('-p', '--eps', dest='eps', type=str, default='0.1', required=False,
+ help='ell parameter on classifier loss')
+ helper.add_argument('-n', '--num_burnin', dest='num_burnin', type=int, required=False,
+ help='number of burnin iterations for training')
+ helper.add_argument('-s', '--num_sample', dest='num_sample', type=int, required=False,
+ help='number of sample iterations for training')
+ helper.add_argument('-k', '--num_topic', dest='num_topic', type=int, default=24, required=False,
+ help='number of topics')
+ helper.add_argument('-t', '--num_target', dest='num_target', type=int, default=0, required=False,
+ help='number of regression targets')
+ helper.add_argument('-l', '--num_label', dest='num_label', type=int, required=True,
+ help='number of labels')
+ helper.add_argument('-v', '--read_vocab', dest='read_vocab', type=str, default='', required=False,
+ help='path to hashed vocab items to get all workers to read the same vocabulary')
+ helper.add_argument('-x', '--num_xtra', dest='num_xtra', type=int, default=0, required=False,
+ help='number of "observable" "topic" "values"')
+ helper.add_argument('--task_sizes', dest='label_task_sizes', type=str, default='', required=False,
+ help='label task sizes if more than 1: comma separated list')
+ helper.add_argument('--save_interval', dest='save_interval', type=int, default=None, required=False,
+ help='how often to save intermediate results from training')
+ helper.add_argument('-m', '--machfile', dest='machfile', type=str, default='multimach.vm',
+ required=False)
+ helper.add_argument('--TEST_JUMPS', dest='TEST_JUMPS', default=False, action="store_true", required=False)
+ try:
+ args = helper.parse_args(argv)
+ if args.save_interval is None: args.save_interval = args.num_sample + 1
+ if args.dumpdir is None: args.dumpdir = join(args.features, 'dump')
+ if args.loaddir is None: args.loaddir = join(basename(args.dumpdir), 'load')
+ except Exception, e:
+ print "Exception: " + str(e)
+ helper.print_help()
+ sys.exit(1)
+ print("The arguments are", args)
+ return args
+
+
+args = get_args(sys.argv[1:])
+nodes = len(open(args.machfile).read().strip().splitlines())
+numservers = nodes // 2
+numworkerthreads = 16
+numworkers = nodes - numservers - 1
+
+exitline = re.compile(r'^Rank \((\d+)\) Ready for exit program from main function in ldall.cpp')
+abortline = re.compile(r'^\*\*\* Aborted')
+
+def mpirun(cmd, testfile, retries=4, retry_delay=0):
+ if exists(testfile): return True
+ if not exists(testfile + '_work'):
+ open(testfile + '_work', 'wb').write(hostname)
+ sleep(1)
+ if open(testfile + '_work', 'rb').read() != hostname:
+ return False
+ while retries > 0:
+ retries -= 1
+ workers_finished = set()
+ try:
+ print nm, cmd
+ if 'LD_LIBRARY_PATH' in os.environ:
+ env = dict(os.environ)
+ del env['LD_LIBRARY_PATH']
+ else:
+ env = os.environ
+ proc = Popen(cmd, bufsize=1, stdin=None, stdout=PIPE, stderr=STDOUT, env=env)
+ fd = proc.stdout.fileno()
+ fl = fcntl.fcntl(fd, fcntl.F_GETFL) | os.O_NONBLOCK
+ fcntl.fcntl(fd, fcntl.F_SETFL, fl)
+ pout = io.open(fd)
+ fc = lc = clock()
+ while proc.returncode is None:
+ for line in pout:
+ lc = clock()
+ sys.stderr.write(line)
+ m = abortline.match(line)
+ if m is not None:
+ sys.stderr.write('FOUND ' + m.group(0) + '\n')
+ sleep(5)
+ proc.terminate()
+ break
+ m = exitline.match(line)
+ if m is not None:
+ workers_finished.add(int(m.group(1)))
+ sys.stderr.write('FOUND %d %s: '% (len(workers_finished), sorted(workers_finished)) + m.group(0) + '\n')
+ if len(workers_finished) == numworkers:
+ proc.send_signal(SIGINT)
+ sys.stderr.write('signal sent\n')
+ sleep(1)
+ proc.poll()
+ if lc - fc < 2 * STALL_TIMEOUT:
+ if clock() - lc > STALL_TIMEOUT:
+ sys.stderr.write('*** process stalled for %s seconds ***\n' % STALL_TIMEOUT)
+ proc.send_signal(SIGINT)
+ sys.stderr.write('signal sent\n')
+ sleep(1)
+ else:
+ sleep(1e-5)
+ except:
+ if proc.returncode is None:
+ proc.terminate()
+ pass
+ if len(workers_finished) == numworkers:
+ sys.stderr.write('return True!\n')
+ os.unlink(testfile+'_work')
+ return True
+ sys.stderr.write('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n')
+ sys.stderr.write('!!!!!!!!!!!! R E T R Y !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n')
+ sys.stderr.write('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n')
+ sleep(retry_delay)
+ os.unlink(testfile+'_work')
+ return False
+
+nm = 'medldaR_%s_%s_a%s_b%s_c%s_l%s_ml%d_t%se%s_%s_%s' % (args.label_task_sizes, args.num_topic, args.alpha, args.beta, args.cost,
+ args.ell, args.num_label, args.num_target, args.eps, args.num_burnin, args.num_sample)
+
+traindata = '%s/split.%d/lsvm_train' % (args.features, numworkers)
+testdata = '%s/split.%d/lsvm_test' % (args.features, numworkers)
+dumpdata = '%s/%s/' % (args.dumpdir, nm)
+loaddata = '%s/%s/' % (args.loaddir, nm)
+
+prog = './bin/medlda'
+cmd = ["mpirun", "-machinefile", args.machfile, "--display-map", "--map-by", "node", "-np", str(nodes), prog,
+ "-machfile", args.machfile, "-schedulers", str(numservers), "-num_thread", str(numworkerthreads), "-read_vocab", args.read_vocab,
+ "-num_burnin", str(args.num_burnin), "-num_sample", str(args.num_sample), "-save_interval", str(args.save_interval),
+ "-num_topic", str(args.num_topic), "-num_label", str(args.num_label), "-num_xtra", str(args.num_xtra), "-label_task_sizes", args.label_task_sizes,
+ "-num_target", str(args.num_target), "-alpha", args.alpha, "-beta", args.beta, "-cost", args.cost, "-ell", args.ell, "-dump_prefix", dumpdata, "-eps", args.eps]
+if args.TEST_JUMPS: cmd.extend(["-TEST_DSFMT_JUMP_STATE", "1"])
+train_cmd = cmd + ["-train_prefix", traindata]
+test_cmd = cmd + ["-test_prefix", testdata]
+
+if not exists(dumpdata + '_model'):
+ if not exists(traindata + '.0'):
+ os.system('python ./split.py %s %d' % (join(dirname(dirname(traindata)), basename(traindata)), numworkers))
+ if not exists(traindata + '.0'):
+ sys.stderr.write('could not create training data splits at %s\n' % traindata)
+ sys.exit(-1)
+
+ if not exists(dirname(dumpdata)): os.makedirs(dirname(dumpdata))
+
+ res = mpirun(train_cmd, dumpdata + '_model')
+ sys.stderr.write('res is %s for train %s\n' % (res, nm))
+ if not res:
+ sys.exit(-1)
+
+if not exists(dumpdata + '_test_pred.0'):
+ if not exists(testdata + '.0'):
+ os.system('python ./split.py %s %d' % (join(dirname(dirname(testdata)), basename(testdata)), numworkers))
+ if not exists(testdata + '.0'):
+ sys.stderr.write('could not create testing data splits at %s\n' % traindata)
+ sys.exit(-1)
+ res = mpirun(test_cmd, dumpdata + '_test_pred.0')
+ sys.stderr.write('res is %s for test %s\n' % (res, nm))
+ if not res:
+ sys.exit(-1)
diff --git a/apps/medlda_release/single/run.py b/apps/medlda_release/single/run.py
new file mode 100755
index 0000000..ce38d3b
--- /dev/null
+++ b/apps/medlda_release/single/run.py
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+exec ../run.py -msinglemach.vm $@
diff --git a/apps/medlda_release/single/singlemach.vm b/apps/medlda_release/single/singlemach.vm
new file mode 100644
index 0000000..b984d66
--- /dev/null
+++ b/apps/medlda_release/single/singlemach.vm
@@ -0,0 +1,5 @@
+127.0.0.1
+127.0.0.1
+127.0.0.1
+127.0.0.1
+127.0.0.1
diff --git a/apps/medlda_release/single/split.py b/apps/medlda_release/single/split.py
new file mode 100755
index 0000000..9c55121
--- /dev/null
+++ b/apps/medlda_release/single/split.py
@@ -0,0 +1,56 @@
+from os.path import basename, dirname, exists, join
+import os
+import sys
+import random
+
+if len(sys.argv) != 3:
+ print 'python %s fname num_of_split' % sys.argv[0]
+ exit()
+
+fname = sys.argv[1]
+num = int(sys.argv[2])
+
+def chunk(xs, n):
+ ys = list(xs)
+ print 'Random shuffling'
+ random.shuffle(ys)
+ chunk_length = len(ys) // n
+ needs_extra = len(ys) % n
+ start = 0
+ for i in xrange(n):
+ if i < needs_extra:
+ end = start + chunk_length + 1
+ else:
+ end = start + chunk_length
+ yield ys[start:end]
+ start = end
+
+lines = open(fname, 'r').readlines()
+print 'Total num of lines:', len(lines)
+if exists(fname + '_ids'):
+ idlines = open(fname + '_ids').readlines()
+ print 'Total num of id lines:', len(idlines)
+ if len(idlines) != len(lines):
+ raise RuntimeError('input / ids mismatch')
+else:
+ idlines = None
+if not exists(join(dirname(fname), 'split.%d'%num)):
+ os.makedirs(join(dirname(fname), 'split.%d'%num))
+count = 0
+for i in chunk(range(len(lines)), num):
+ name = join(dirname(fname), 'split.%d'%num, basename(fname) + '.' + str(count))
+ idname = join(dirname(fname), 'split.%d'%num, basename(fname) + '_ids.' + str(count))
+ if exists(name):
+ raise RuntimeError("destination file exists")
+ print 'Writing %d lines into %s' % (len(i), name)
+ if idlines is None:
+ with open(name, 'w') as fp:
+ for l in i:
+ fp.write(lines[l])
+ else:
+ with open(name, 'w') as fp,\
+ open(idname, 'w') as idfp:
+ for l in i:
+ fp.write(lines[l])
+ idfp.write(idlines[l])
+ count += 1
diff --git a/apps/medlda_release/tester.cpp b/apps/medlda_release/tester.cpp
index 1848974..31ff129 100644
--- a/apps/medlda_release/tester.cpp
+++ b/apps/medlda_release/tester.cpp
@@ -147,6 +147,7 @@ void Tester::InferOneSample(int doc_id, int tid) {
// Construct counts
EArray doc_topic_count(num_topic_);
+ doc_topic_count.setZero();
for (auto topic : doc.assignment_) ++doc_topic_count(topic);
// Perform Gibbs sampling to obtain an estimate of theta
diff --git a/apps/medlda_release/trainer.cpp b/apps/medlda_release/trainer.cpp
index 510f5b0..eeb0b96 100644
--- a/apps/medlda_release/trainer.cpp
+++ b/apps/medlda_release/trainer.cpp
@@ -241,6 +241,7 @@ void Trainer::TrainOneSample(Sample& doc, int tid) {
// Construct doc topic count on the fly to save memory
// Use double to accomodate dot product
EArray doc_topic_count(FLAGS_num_topic);
+ doc_topic_count.setZero();
for (auto topic : doc.assignment_) ++doc_topic_count(topic);
// Draw auxilliary variable (all L x 1)