├── .gitignore ├── README.md ├── chap04 ├── chap04.ipynb ├── exercise │ └── exercise.ipynb ├── fig4-2.py ├── fig4-3.py ├── input │ └── data-salary.txt ├── lm.py ├── mail.py ├── model4_5.py └── run-model4-5.py ├── chap05 ├── 5-1.ipynb ├── 5-2.ipynb ├── 5-3.ipynb ├── 5-4.ipynb ├── exercise │ ├── 6.ipynb │ └── 7.ipynb └── input │ ├── data-attendance-1.txt │ ├── data-attendance-2.txt │ ├── data-attendance-3.txt │ ├── data3a.csv │ └── data4a.csv ├── chap07 ├── 7-2.ipynb ├── 7-3-2.ipynb ├── 7-3.ipynb ├── 7-5.ipynb ├── 7-7.ipynb ├── 7-8.ipynb ├── 7-9.ipynb └── input │ ├── data-50m.txt │ ├── data-aircon.txt │ ├── data-conc.txt │ ├── data-outlier.txt │ ├── data-protein.txt │ └── data-rental.txt └── chap08 ├── 8-1.ipynb ├── 8-2.ipynb ├── 8-3.ipynb └── input ├── d1.csv ├── data-attendance-4-1.txt ├── data-attendance-4-2.txt ├── data-conc-2.txt ├── data-salary-2.txt ├── data-salary-3.txt └── data7a.csv /.gitignore: -------------------------------------------------------------------------------- 1 | .ipynb_checkpoints 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 『StanとRでベイズ統計モデリング』のPython/Pyro実装 2 | 3 | ## 概要 4 | このレポジトリは,松浦先生の「StanとRでベイズ統計モデリング」の[コード](https://github.com/MatsuuraKentaro/RStanBook)をpython/pyroで再現しています. 5 | 6 | したがって,基本的には松浦先生のルールに則り,実装しています. 7 | 8 | 各章の番号.ipynb 9 | 10 | * jupyter notebook(`X-Y.ipynb`) 11 | 12 | ### 各章のディレクトリの構成 13 | 14 | * `input`:元々のレポジトリと同様にデータを格納 15 | * `exercise`:練習問題に対するjupyter notebook 16 | 17 | ## Stanとpyroの記述の違い 18 | 19 | Stanでは, 20 | ```stan 21 | model { 22 | for (n in 1:N) { 23 | Y[n] ~ normal(mu, 1); 24 | } 25 | mu ~ normal(0, 100); 26 | } 27 | ``` 28 | とするらしい.(松浦先生準拠) 29 | 30 | pyroでは, 31 | ```python 32 | def model(data): 33 | mu0 = torch.tensor(0.0) 34 | sigma0 = torch.tensor(100.0) 35 | 36 | mu = pyro.sample("latent_mean", dist.Normal(mu0, sigma0)) 37 | 38 | with pyro.plate("data", data.size(0)): 39 | pyro.sample("obs", dist.Normal(mu, 1), obs=data) 40 | ``` 41 | となるっぽい? 42 | 43 | ## 進捗状況 44 | 45 | - 4章 46 | - [x] MCMC 47 | - [ ] VI 48 | - [ ] リファクタリング 49 | - 5章 50 | - [x] MCMC 51 | - [ ] VI 52 | - [ ] リファクタリング 53 | - 7章 54 | - [x] MCMC 55 | - [ ] VI 56 | - [ ] リファクタリング 57 | - 8章 58 | - [x] MCMC(ただし,確率変数が多すぎて実行不可能) 59 | - [ ] VI 60 | - [ ] リファクタリング 61 | - 10章 62 | - [ ] MCMC 63 | - [ ] VI 64 | - [ ] リファクタリング 65 | - 11章 66 | - [ ] MCMC 67 | - [ ] VI 68 | - [ ] リファクタリング 69 | - 12章 70 | - [ ] MCMC 71 | - [ ] VI 72 | - [ ] リファクタリング 73 | 74 | 75 | 76 | ## ソースコードの実行環境 77 | | ソフトやパッケージ名 | バージョン | 78 | |:-----------|:------------| 79 | | python|3.7.1|| 80 | |pyro|dev/0.3.0+0c49858a| 81 | |pytorch|1.1.0a0+8683b75| 82 | |numpy | 1.15.4| 83 | |scipy |1.2.0 | 84 | |pandas|0.23.4 | 85 | |matplotlib |3.0.2 | 86 | |seaborn |0.9.0 | 87 | |statsmodels |0.9.0| 88 | 89 | -------------------------------------------------------------------------------- /chap04/fig4-2.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | import pandas as pd 3 | 4 | 5 | d = pd.read_csv("input/data-salary.txt") 6 | d.plot(kind="scatter", x="X", y="Y") 7 | plt.show() 8 | -------------------------------------------------------------------------------- /chap04/fig4-3.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | import pandas as pd 3 | import statsmodels.api as sm 4 | 5 | 6 | d = pd.read_csv("input/data-salary.txt") 7 | x = sm.add_constant(d.X) 8 | res_lm = sm.OLS(d.Y, x).fit() 9 | 10 | new_x = sm.add_constant(range(23, 61)) 11 | summary95 = res_lm.get_prediction(new_x).summary_frame(alpha=0.05) 12 | summary50 = res_lm.get_prediction(new_x).summary_frame(alpha=0.5) 13 | 14 | 15 | d.plot(kind="scatter", x="X", y="Y") 16 | plt.plot(range(23, 61), summary95["mean"]) 17 | plt.fill_between(range(23, 61), summary95["mean_ci_lower"],summary95["mean_ci_upper"], color='blue', alpha=0.1) 18 | plt.fill_between(range(23, 61), summary50["mean_ci_lower"],summary50["mean_ci_upper"],color='blue', alpha=0.3) 19 | 20 | d.plot(kind="scatter", x="X", y="Y") 21 | plt.plot(range(23, 61), summary95["mean"]) 22 | plt.fill_between(range(23, 61), summary95["obs_ci_lower"],summary95["obs_ci_upper"], color='blue', alpha=0.1) 23 | plt.fill_between(range(23, 61), summary50["obs_ci_lower"],summary50["obs_ci_upper"],color='blue', alpha=0.3) 24 | 25 | plt.show() 26 | -------------------------------------------------------------------------------- /chap04/input/data-salary.txt: -------------------------------------------------------------------------------- 1 | X,Y 2 | 24,472 3 | 24,403 4 | 26,454 5 | 32,575 6 | 33,546 7 | 35,781 8 | 38,750 9 | 40,601 10 | 40,814 11 | 43,792 12 | 43,745 13 | 44,837 14 | 48,868 15 | 52,988 16 | 56,1092 17 | 56,1007 18 | 57,1233 19 | 58,1202 20 | 59,1123 21 | 59,1314 22 | -------------------------------------------------------------------------------- /chap04/lm.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | import pandas as pd 3 | import statsmodels.api as sm 4 | 5 | d = pd.read_csv("input/data-salary.txt") 6 | x = sm.add_constant(d.X) 7 | res_lm = sm.OLS(d.Y, x).fit() 8 | 9 | new_x = sm.add_constant(range(23, 61)) 10 | summary = res_lm.get_prediction(new_x).summary_frame(alpha=0.05) -------------------------------------------------------------------------------- /chap04/mail.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | import seaborn as sns 3 | import pandas as pd 4 | 5 | import torch 6 | import pyro 7 | from pyro import distributions as dist 8 | from pyro.infer.mcmc import MCMC, NUTS 9 | from pyro.infer.abstract_infer import EmpiricalMarginal 10 | import torch.distributions as tdist 11 | 12 | 13 | 14 | def model(data): 15 | alpha = 1 / torch.mean(data) 16 | lambda1 = pyro.sample("lambda1", dist.Exponential(alpha)) 17 | lambda2 = pyro.sample("lambda2", dist.Exponential(alpha)) 18 | tau = pyro.sample("tau", dist.Uniform(0, 1)) 19 | idx = torch.arange(len(data)).float() 20 | lambda_ = torch.where(idx.lt(tau*len(data)), lambda1, lambda2) 21 | 22 | with pyro.plate("data", len(data)): 23 | pyro.sample("obs", dist.Poisson(lambda_), obs=data) 24 | 25 | 26 | data = pd.read_csv("https://raw.githubusercontent.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/master/Chapter1_Introduction/data/txtdata.csv", header=None) 27 | 28 | torch_data = torch.tensor(data.astype("float32")[0].values) 29 | 30 | nuts_kernel = NUTS(model, adapt_step_size=True, jit_compile=True, ignore_jit_warnings=True) 31 | hmc_posterior = MCMC(nuts_kernel, num_samples=1000, warmup_steps=100).run(torch_data) 32 | 33 | data_mcmc = EmpiricalMarginal(hmc_posterior, ["lambda1", "lambda2", "tau"])._get_samples_and_weights()[0] 34 | 35 | plt.figure() 36 | sns.distplot(data_mcmc[:, 0]) 37 | sns.distplot(data_mcmc[:, 1]) 38 | plt.figure(figsize=(12.5, 5)) 39 | sns.distplot(data_mcmc[:, 2]*len(data)) 40 | plt.figure(figsize=(12.5, 5)) 41 | w = 1.0 / data_mcmc[:, 2].size(0) * torch.ones_like(data_mcmc[:, 2]) 42 | plt.hist(data_mcmc[:, 2], bins=len(data), alpha=1, weights=w, rwidth=2.) 43 | 44 | plt.show() 45 | -------------------------------------------------------------------------------- /chap04/model4_5.py: -------------------------------------------------------------------------------- 1 | import torch.nn as nn 2 | import pyro 3 | import pyro.distributions as dist 4 | 5 | 6 | def model(x, y): 7 | a = pyro.sample("a", dist.Normal(0, 100)) 8 | b = pyro.sample("b", dist.Normal(0, 100)) 9 | 10 | sigma = pyro.sample("sigma", dist.Uniform(0., 100)) 11 | 12 | with pyro.plate("data", x.size(0)): 13 | pyro.sample("obs", dist.Normal(a + b * x, sigma), obs=y) 14 | -------------------------------------------------------------------------------- /chap04/run-model4-5.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import pandas as pd 3 | 4 | import pyro 5 | from pyro.infer.mcmc import MCMC, NUTS 6 | from pyro.infer.abstract_infer import EmpiricalMarginal 7 | from model4_5 import model 8 | 9 | pyro.set_rng_seed(1234) 10 | # Enable validation checks 11 | pyro.enable_validation(True) 12 | 13 | d = pd.read_csv('input/data-salary.txt').astype('float32') 14 | 15 | d = torch.tensor(d.values) 16 | x_data, y_data = d[:, 0], d[:, -1] 17 | 18 | nuts_kernel = NUTS(model, adapt_step_size=True, jit_compile=True, ignore_jit_warnings=True) 19 | hmc_posterior = MCMC(nuts_kernel, num_samples=1000, num_chains=4, warmup_steps=200).run(x_data, y_data) 20 | 21 | posterior_a = EmpiricalMarginal(hmc_posterior, 'a') 22 | posterior_b = EmpiricalMarginal(hmc_posterior, 'b') 23 | posterior_sigma = EmpiricalMarginal(hmc_posterior, 'sigma') 24 | -------------------------------------------------------------------------------- /chap05/input/data-attendance-1.txt: -------------------------------------------------------------------------------- 1 | A,Score,Y 2 | 0,69,0.286 3 | 1,145,0.196 4 | 0,125,0.261 5 | 1,86,0.109 6 | 1,158,0.23 7 | 0,133,0.35 8 | 0,111,0.33 9 | 1,147,0.194 10 | 0,146,0.413 11 | 0,145,0.36 12 | 1,141,0.225 13 | 0,137,0.423 14 | 1,118,0.186 15 | 0,111,0.287 16 | 0,109,0.371 17 | 1,99,0.183 18 | 0,114,0.345 19 | 0,82,0.264 20 | 0,185,0.413 21 | 1,156,0.316 22 | 1,86,0.062 23 | 1,108,0.272 24 | 1,106,0.229 25 | 1,143,0.195 26 | 1,117,0.097 27 | 1,128,0.137 28 | 0,119,0.337 29 | 0,119,0.307 30 | 0,161,0.383 31 | 0,113,0.253 32 | 1,165,0.249 33 | 1,74,0.027 34 | 1,138,0.099 35 | 1,124,0.149 36 | 0,126,0.391 37 | 0,131,0.311 38 | 1,105,0.171 39 | 0,110,0.207 40 | 0,89,0.26 41 | 0,88,0.293 42 | 0,129,0.36 43 | 0,133,0.356 44 | 0,122,0.289 45 | 0,148,0.328 46 | 0,182,0.383 47 | 0,105,0.302 48 | 0,51,0.133 49 | 0,150,0.353 50 | 0,99,0.268 51 | 1,99,0.234 52 | -------------------------------------------------------------------------------- /chap05/input/data-attendance-2.txt: -------------------------------------------------------------------------------- 1 | PersonID,A,Score,M,Y 2 | 1,0,69,43,38 3 | 2,1,145,56,40 4 | 3,0,125,32,24 5 | 4,1,86,45,33 6 | 5,1,158,33,23 7 | 6,0,133,61,60 8 | 7,0,111,49,35 9 | 8,1,147,76,47 10 | 9,0,146,78,63 11 | 10,0,145,64,57 12 | 11,1,141,34,18 13 | 12,0,137,44,30 14 | 13,1,118,53,33 15 | 14,0,111,40,28 16 | 15,0,109,56,46 17 | 16,1,99,59,37 18 | 17,0,114,38,27 19 | 18,0,82,45,28 20 | 19,0,185,45,43 21 | 20,1,156,77,50 22 | 21,1,86,70,31 23 | 22,1,108,77,49 24 | 23,1,106,63,38 25 | 24,1,143,68,45 26 | 25,1,117,50,37 27 | 26,1,128,51,34 28 | 27,0,119,29,21 29 | 28,0,119,37,26 30 | 29,0,161,18,17 31 | 30,0,113,49,40 32 | 31,1,165,75,58 33 | 32,1,74,12,11 34 | 33,1,138,23,18 35 | 34,1,124,37,28 36 | 35,0,126,59,39 37 | 36,0,131,55,51 38 | 37,1,105,88,55 39 | 38,0,110,47,30 40 | 39,0,89,22,18 41 | 40,0,88,41,26 42 | 41,0,129,57,46 43 | 42,0,133,32,26 44 | 43,0,122,53,36 45 | 44,0,148,31,24 46 | 45,0,182,23,22 47 | 46,0,105,51,34 48 | 47,0,51,22,10 49 | 48,0,150,38,29 50 | 49,0,99,23,20 51 | 50,1,99,67,43 52 | -------------------------------------------------------------------------------- /chap05/input/data-attendance-3.txt: -------------------------------------------------------------------------------- 1 | PersonID,A,Score,Weather,Y 2 | 1,0,69,B,1 3 | 1,0,69,A,1 4 | 1,0,69,C,1 5 | 1,0,69,A,1 6 | 1,0,69,B,1 7 | 1,0,69,B,1 8 | 1,0,69,C,0 9 | 1,0,69,B,1 10 | 1,0,69,A,1 11 | 1,0,69,A,1 12 | 1,0,69,A,1 13 | 1,0,69,C,1 14 | 1,0,69,A,1 15 | 1,0,69,A,1 16 | 1,0,69,A,1 17 | 1,0,69,A,1 18 | 1,0,69,A,0 19 | 1,0,69,B,1 20 | 1,0,69,A,1 21 | 1,0,69,A,1 22 | 1,0,69,B,1 23 | 1,0,69,B,1 24 | 1,0,69,C,0 25 | 1,0,69,C,1 26 | 1,0,69,A,1 27 | 1,0,69,A,1 28 | 1,0,69,B,1 29 | 1,0,69,A,1 30 | 1,0,69,B,1 31 | 1,0,69,A,1 32 | 1,0,69,B,1 33 | 1,0,69,A,1 34 | 1,0,69,B,1 35 | 1,0,69,A,0 36 | 1,0,69,C,0 37 | 1,0,69,A,1 38 | 1,0,69,A,1 39 | 1,0,69,A,1 40 | 1,0,69,B,1 41 | 1,0,69,A,1 42 | 1,0,69,A,1 43 | 1,0,69,B,1 44 | 1,0,69,B,1 45 | 2,1,145,A,1 46 | 2,1,145,A,1 47 | 2,1,145,A,1 48 | 2,1,145,C,1 49 | 2,1,145,A,0 50 | 2,1,145,B,1 51 | 2,1,145,B,1 52 | 2,1,145,B,1 53 | 2,1,145,B,0 54 | 2,1,145,A,1 55 | 2,1,145,A,1 56 | 2,1,145,A,1 57 | 2,1,145,A,1 58 | 2,1,145,A,1 59 | 2,1,145,C,1 60 | 2,1,145,A,0 61 | 2,1,145,C,1 62 | 2,1,145,A,1 63 | 2,1,145,A,0 64 | 2,1,145,A,0 65 | 2,1,145,A,1 66 | 2,1,145,B,0 67 | 2,1,145,A,1 68 | 2,1,145,B,1 69 | 2,1,145,C,1 70 | 2,1,145,B,0 71 | 2,1,145,C,1 72 | 2,1,145,C,1 73 | 2,1,145,A,1 74 | 2,1,145,B,1 75 | 2,1,145,A,1 76 | 2,1,145,B,1 77 | 2,1,145,C,0 78 | 2,1,145,A,1 79 | 2,1,145,A,1 80 | 2,1,145,C,0 81 | 2,1,145,B,1 82 | 2,1,145,B,1 83 | 2,1,145,C,1 84 | 2,1,145,B,1 85 | 2,1,145,A,1 86 | 2,1,145,A,0 87 | 2,1,145,A,1 88 | 2,1,145,A,1 89 | 2,1,145,B,1 90 | 2,1,145,A,0 91 | 2,1,145,A,0 92 | 2,1,145,B,1 93 | 2,1,145,A,0 94 | 2,1,145,A,1 95 | 2,1,145,B,1 96 | 2,1,145,B,0 97 | 2,1,145,B,1 98 | 2,1,145,A,1 99 | 2,1,145,A,0 100 | 2,1,145,C,0 101 | 3,0,125,A,1 102 | 3,0,125,A,1 103 | 3,0,125,C,1 104 | 3,0,125,B,1 105 | 3,0,125,B,1 106 | 3,0,125,A,1 107 | 3,0,125,A,1 108 | 3,0,125,A,1 109 | 3,0,125,C,1 110 | 3,0,125,A,0 111 | 3,0,125,A,1 112 | 3,0,125,A,1 113 | 3,0,125,B,0 114 | 3,0,125,B,1 115 | 3,0,125,C,0 116 | 3,0,125,B,0 117 | 3,0,125,A,1 118 | 3,0,125,C,0 119 | 3,0,125,A,0 120 | 3,0,125,C,1 121 | 3,0,125,B,1 122 | 3,0,125,B,0 123 | 3,0,125,A,1 124 | 3,0,125,A,1 125 | 3,0,125,A,1 126 | 3,0,125,B,1 127 | 3,0,125,A,1 128 | 3,0,125,B,1 129 | 3,0,125,B,1 130 | 3,0,125,A,1 131 | 3,0,125,A,0 132 | 3,0,125,C,1 133 | 4,1,86,A,0 134 | 4,1,86,A,1 135 | 4,1,86,A,0 136 | 4,1,86,B,1 137 | 4,1,86,B,0 138 | 4,1,86,C,1 139 | 4,1,86,A,1 140 | 4,1,86,A,1 141 | 4,1,86,C,1 142 | 4,1,86,A,1 143 | 4,1,86,A,0 144 | 4,1,86,A,1 145 | 4,1,86,A,1 146 | 4,1,86,A,0 147 | 4,1,86,B,1 148 | 4,1,86,A,1 149 | 4,1,86,A,1 150 | 4,1,86,C,0 151 | 4,1,86,B,1 152 | 4,1,86,B,1 153 | 4,1,86,B,1 154 | 4,1,86,C,1 155 | 4,1,86,B,0 156 | 4,1,86,C,1 157 | 4,1,86,A,1 158 | 4,1,86,A,1 159 | 4,1,86,C,0 160 | 4,1,86,A,1 161 | 4,1,86,B,1 162 | 4,1,86,A,1 163 | 4,1,86,C,0 164 | 4,1,86,B,1 165 | 4,1,86,A,1 166 | 4,1,86,A,1 167 | 4,1,86,B,1 168 | 4,1,86,A,1 169 | 4,1,86,A,0 170 | 4,1,86,C,1 171 | 4,1,86,A,1 172 | 4,1,86,C,1 173 | 4,1,86,B,1 174 | 4,1,86,A,1 175 | 4,1,86,A,1 176 | 4,1,86,A,0 177 | 4,1,86,A,0 178 | 5,1,158,C,1 179 | 5,1,158,B,0 180 | 5,1,158,B,0 181 | 5,1,158,C,1 182 | 5,1,158,B,0 183 | 5,1,158,A,1 184 | 5,1,158,A,1 185 | 5,1,158,B,1 186 | 5,1,158,A,1 187 | 5,1,158,A,1 188 | 5,1,158,B,1 189 | 5,1,158,B,1 190 | 5,1,158,B,0 191 | 5,1,158,A,0 192 | 5,1,158,B,1 193 | 5,1,158,A,1 194 | 5,1,158,B,1 195 | 5,1,158,B,0 196 | 5,1,158,A,1 197 | 5,1,158,A,1 198 | 5,1,158,B,0 199 | 5,1,158,A,0 200 | 5,1,158,A,1 201 | 5,1,158,A,0 202 | 5,1,158,A,1 203 | 5,1,158,A,1 204 | 5,1,158,B,0 205 | 5,1,158,A,1 206 | 5,1,158,C,1 207 | 5,1,158,C,1 208 | 5,1,158,A,1 209 | 5,1,158,B,1 210 | 5,1,158,A,1 211 | 6,0,133,A,1 212 | 6,0,133,A,1 213 | 6,0,133,A,1 214 | 6,0,133,C,1 215 | 6,0,133,A,1 216 | 6,0,133,B,1 217 | 6,0,133,B,1 218 | 6,0,133,C,1 219 | 6,0,133,B,1 220 | 6,0,133,B,1 221 | 6,0,133,C,1 222 | 6,0,133,A,1 223 | 6,0,133,A,1 224 | 6,0,133,A,1 225 | 6,0,133,C,1 226 | 6,0,133,A,1 227 | 6,0,133,A,1 228 | 6,0,133,A,1 229 | 6,0,133,A,1 230 | 6,0,133,A,1 231 | 6,0,133,B,1 232 | 6,0,133,A,1 233 | 6,0,133,A,0 234 | 6,0,133,A,1 235 | 6,0,133,B,1 236 | 6,0,133,A,1 237 | 6,0,133,C,1 238 | 6,0,133,B,1 239 | 6,0,133,A,1 240 | 6,0,133,B,1 241 | 6,0,133,B,1 242 | 6,0,133,A,1 243 | 6,0,133,A,1 244 | 6,0,133,B,1 245 | 6,0,133,C,1 246 | 6,0,133,B,1 247 | 6,0,133,C,1 248 | 6,0,133,A,1 249 | 6,0,133,A,1 250 | 6,0,133,B,1 251 | 6,0,133,C,1 252 | 6,0,133,A,1 253 | 6,0,133,A,1 254 | 6,0,133,A,1 255 | 6,0,133,A,1 256 | 6,0,133,A,1 257 | 6,0,133,A,1 258 | 6,0,133,C,1 259 | 6,0,133,C,1 260 | 6,0,133,B,1 261 | 6,0,133,B,1 262 | 6,0,133,A,1 263 | 6,0,133,A,1 264 | 6,0,133,A,1 265 | 6,0,133,B,1 266 | 6,0,133,B,1 267 | 6,0,133,A,1 268 | 6,0,133,B,1 269 | 6,0,133,A,1 270 | 6,0,133,C,1 271 | 6,0,133,C,1 272 | 7,0,111,A,1 273 | 7,0,111,B,1 274 | 7,0,111,B,0 275 | 7,0,111,C,1 276 | 7,0,111,A,1 277 | 7,0,111,A,1 278 | 7,0,111,C,0 279 | 7,0,111,A,1 280 | 7,0,111,B,0 281 | 7,0,111,A,1 282 | 7,0,111,A,1 283 | 7,0,111,B,1 284 | 7,0,111,A,1 285 | 7,0,111,B,0 286 | 7,0,111,A,1 287 | 7,0,111,A,0 288 | 7,0,111,B,1 289 | 7,0,111,C,1 290 | 7,0,111,B,0 291 | 7,0,111,A,1 292 | 7,0,111,B,0 293 | 7,0,111,B,1 294 | 7,0,111,C,1 295 | 7,0,111,B,1 296 | 7,0,111,C,1 297 | 7,0,111,A,1 298 | 7,0,111,A,1 299 | 7,0,111,C,0 300 | 7,0,111,A,1 301 | 7,0,111,B,1 302 | 7,0,111,A,1 303 | 7,0,111,B,1 304 | 7,0,111,C,1 305 | 7,0,111,B,0 306 | 7,0,111,A,0 307 | 7,0,111,A,0 308 | 7,0,111,A,0 309 | 7,0,111,A,1 310 | 7,0,111,A,1 311 | 7,0,111,B,1 312 | 7,0,111,A,1 313 | 7,0,111,B,0 314 | 7,0,111,A,1 315 | 7,0,111,C,1 316 | 7,0,111,B,1 317 | 7,0,111,C,1 318 | 7,0,111,A,1 319 | 7,0,111,A,0 320 | 7,0,111,A,1 321 | 8,1,147,B,1 322 | 8,1,147,A,0 323 | 8,1,147,A,1 324 | 8,1,147,C,0 325 | 8,1,147,A,1 326 | 8,1,147,A,0 327 | 8,1,147,B,1 328 | 8,1,147,B,1 329 | 8,1,147,B,0 330 | 8,1,147,C,0 331 | 8,1,147,B,0 332 | 8,1,147,C,1 333 | 8,1,147,A,1 334 | 8,1,147,A,1 335 | 8,1,147,A,1 336 | 8,1,147,A,0 337 | 8,1,147,C,1 338 | 8,1,147,A,0 339 | 8,1,147,A,0 340 | 8,1,147,A,0 341 | 8,1,147,A,1 342 | 8,1,147,C,1 343 | 8,1,147,A,1 344 | 8,1,147,A,1 345 | 8,1,147,A,1 346 | 8,1,147,A,1 347 | 8,1,147,B,1 348 | 8,1,147,A,0 349 | 8,1,147,A,1 350 | 8,1,147,A,0 351 | 8,1,147,A,1 352 | 8,1,147,B,0 353 | 8,1,147,A,1 354 | 8,1,147,B,1 355 | 8,1,147,C,0 356 | 8,1,147,B,0 357 | 8,1,147,B,1 358 | 8,1,147,B,1 359 | 8,1,147,B,1 360 | 8,1,147,C,0 361 | 8,1,147,A,1 362 | 8,1,147,B,1 363 | 8,1,147,A,1 364 | 8,1,147,C,1 365 | 8,1,147,A,1 366 | 8,1,147,A,1 367 | 8,1,147,C,1 368 | 8,1,147,B,1 369 | 8,1,147,A,0 370 | 8,1,147,A,1 371 | 8,1,147,B,0 372 | 8,1,147,A,1 373 | 8,1,147,A,0 374 | 8,1,147,C,1 375 | 8,1,147,B,1 376 | 8,1,147,A,1 377 | 8,1,147,A,1 378 | 8,1,147,A,1 379 | 8,1,147,B,0 380 | 8,1,147,A,1 381 | 8,1,147,A,0 382 | 8,1,147,A,0 383 | 8,1,147,C,0 384 | 8,1,147,A,0 385 | 8,1,147,C,0 386 | 8,1,147,B,1 387 | 8,1,147,A,1 388 | 8,1,147,B,1 389 | 8,1,147,B,1 390 | 8,1,147,A,1 391 | 8,1,147,B,0 392 | 8,1,147,A,1 393 | 8,1,147,A,1 394 | 8,1,147,A,0 395 | 8,1,147,C,0 396 | 8,1,147,A,0 397 | 9,0,146,B,1 398 | 9,0,146,A,1 399 | 9,0,146,A,1 400 | 9,0,146,C,1 401 | 9,0,146,A,1 402 | 9,0,146,A,1 403 | 9,0,146,A,0 404 | 9,0,146,B,1 405 | 9,0,146,B,0 406 | 9,0,146,B,1 407 | 9,0,146,B,1 408 | 9,0,146,C,1 409 | 9,0,146,B,1 410 | 9,0,146,C,1 411 | 9,0,146,A,1 412 | 9,0,146,A,1 413 | 9,0,146,A,1 414 | 9,0,146,A,1 415 | 9,0,146,A,0 416 | 9,0,146,A,1 417 | 9,0,146,B,1 418 | 9,0,146,C,1 419 | 9,0,146,A,1 420 | 9,0,146,A,0 421 | 9,0,146,A,0 422 | 9,0,146,A,1 423 | 9,0,146,A,1 424 | 9,0,146,B,0 425 | 9,0,146,A,1 426 | 9,0,146,A,1 427 | 9,0,146,B,1 428 | 9,0,146,B,0 429 | 9,0,146,A,1 430 | 9,0,146,A,1 431 | 9,0,146,B,1 432 | 9,0,146,B,0 433 | 9,0,146,B,1 434 | 9,0,146,B,0 435 | 9,0,146,A,1 436 | 9,0,146,C,1 437 | 9,0,146,B,1 438 | 9,0,146,A,1 439 | 9,0,146,B,1 440 | 9,0,146,A,1 441 | 9,0,146,B,1 442 | 9,0,146,A,1 443 | 9,0,146,B,1 444 | 9,0,146,B,1 445 | 9,0,146,A,1 446 | 9,0,146,A,1 447 | 9,0,146,A,1 448 | 9,0,146,B,1 449 | 9,0,146,A,1 450 | 9,0,146,A,0 451 | 9,0,146,A,1 452 | 9,0,146,A,1 453 | 9,0,146,A,1 454 | 9,0,146,A,1 455 | 9,0,146,A,0 456 | 9,0,146,A,0 457 | 9,0,146,A,1 458 | 9,0,146,B,1 459 | 9,0,146,A,1 460 | 9,0,146,C,0 461 | 9,0,146,A,1 462 | 9,0,146,C,1 463 | 9,0,146,B,1 464 | 9,0,146,A,1 465 | 9,0,146,A,1 466 | 9,0,146,C,1 467 | 9,0,146,B,1 468 | 9,0,146,A,1 469 | 9,0,146,B,1 470 | 9,0,146,A,1 471 | 9,0,146,A,1 472 | 9,0,146,A,0 473 | 9,0,146,C,1 474 | 9,0,146,A,0 475 | 10,0,145,B,1 476 | 10,0,145,A,1 477 | 10,0,145,A,0 478 | 10,0,145,A,1 479 | 10,0,145,B,1 480 | 10,0,145,B,1 481 | 10,0,145,C,1 482 | 10,0,145,C,0 483 | 10,0,145,C,0 484 | 10,0,145,A,1 485 | 10,0,145,A,1 486 | 10,0,145,A,1 487 | 10,0,145,A,1 488 | 10,0,145,C,1 489 | 10,0,145,A,1 490 | 10,0,145,A,1 491 | 10,0,145,A,1 492 | 10,0,145,B,1 493 | 10,0,145,A,1 494 | 10,0,145,A,1 495 | 10,0,145,A,1 496 | 10,0,145,A,0 497 | 10,0,145,B,1 498 | 10,0,145,A,1 499 | 10,0,145,B,1 500 | 10,0,145,A,1 501 | 10,0,145,A,1 502 | 10,0,145,A,1 503 | 10,0,145,C,1 504 | 10,0,145,B,0 505 | 10,0,145,B,1 506 | 10,0,145,B,1 507 | 10,0,145,B,1 508 | 10,0,145,A,1 509 | 10,0,145,A,1 510 | 10,0,145,C,1 511 | 10,0,145,C,0 512 | 10,0,145,A,1 513 | 10,0,145,C,1 514 | 10,0,145,C,1 515 | 10,0,145,A,1 516 | 10,0,145,A,1 517 | 10,0,145,A,1 518 | 10,0,145,A,1 519 | 10,0,145,B,1 520 | 10,0,145,B,1 521 | 10,0,145,C,1 522 | 10,0,145,A,1 523 | 10,0,145,A,1 524 | 10,0,145,A,1 525 | 10,0,145,A,1 526 | 10,0,145,C,0 527 | 10,0,145,C,1 528 | 10,0,145,B,1 529 | 10,0,145,B,1 530 | 10,0,145,A,1 531 | 10,0,145,A,1 532 | 10,0,145,B,1 533 | 10,0,145,B,1 534 | 10,0,145,A,1 535 | 10,0,145,A,1 536 | 10,0,145,A,1 537 | 10,0,145,C,1 538 | 10,0,145,C,1 539 | 11,1,141,A,1 540 | 11,1,141,A,1 541 | 11,1,141,A,0 542 | 11,1,141,B,1 543 | 11,1,141,B,0 544 | 11,1,141,A,1 545 | 11,1,141,A,1 546 | 11,1,141,C,0 547 | 11,1,141,A,0 548 | 11,1,141,A,1 549 | 11,1,141,A,0 550 | 11,1,141,A,0 551 | 11,1,141,A,1 552 | 11,1,141,B,0 553 | 11,1,141,C,0 554 | 11,1,141,B,0 555 | 11,1,141,B,1 556 | 11,1,141,C,1 557 | 11,1,141,C,1 558 | 11,1,141,A,1 559 | 11,1,141,A,0 560 | 11,1,141,C,1 561 | 11,1,141,B,0 562 | 11,1,141,C,1 563 | 11,1,141,B,0 564 | 11,1,141,A,1 565 | 11,1,141,B,1 566 | 11,1,141,A,1 567 | 11,1,141,C,0 568 | 11,1,141,A,0 569 | 11,1,141,B,1 570 | 11,1,141,A,1 571 | 11,1,141,A,0 572 | 11,1,141,A,0 573 | 12,0,137,A,1 574 | 12,0,137,A,1 575 | 12,0,137,B,1 576 | 12,0,137,B,1 577 | 12,0,137,C,0 578 | 12,0,137,B,0 579 | 12,0,137,A,0 580 | 12,0,137,A,1 581 | 12,0,137,B,0 582 | 12,0,137,C,1 583 | 12,0,137,A,1 584 | 12,0,137,A,1 585 | 12,0,137,B,0 586 | 12,0,137,A,1 587 | 12,0,137,B,0 588 | 12,0,137,A,0 589 | 12,0,137,B,1 590 | 12,0,137,A,1 591 | 12,0,137,A,0 592 | 12,0,137,B,0 593 | 12,0,137,A,1 594 | 12,0,137,A,0 595 | 12,0,137,C,1 596 | 12,0,137,C,0 597 | 12,0,137,B,1 598 | 12,0,137,B,0 599 | 12,0,137,A,0 600 | 12,0,137,C,0 601 | 12,0,137,A,1 602 | 12,0,137,A,1 603 | 12,0,137,A,1 604 | 12,0,137,B,1 605 | 12,0,137,C,1 606 | 12,0,137,B,1 607 | 12,0,137,B,1 608 | 12,0,137,A,1 609 | 12,0,137,A,1 610 | 12,0,137,B,1 611 | 12,0,137,C,1 612 | 12,0,137,B,1 613 | 12,0,137,A,1 614 | 12,0,137,A,1 615 | 12,0,137,C,1 616 | 12,0,137,C,1 617 | 13,1,118,B,1 618 | 13,1,118,A,1 619 | 13,1,118,A,1 620 | 13,1,118,B,0 621 | 13,1,118,B,1 622 | 13,1,118,C,1 623 | 13,1,118,B,1 624 | 13,1,118,C,0 625 | 13,1,118,A,1 626 | 13,1,118,A,1 627 | 13,1,118,A,1 628 | 13,1,118,A,1 629 | 13,1,118,C,0 630 | 13,1,118,A,1 631 | 13,1,118,C,1 632 | 13,1,118,A,0 633 | 13,1,118,A,1 634 | 13,1,118,A,0 635 | 13,1,118,A,1 636 | 13,1,118,A,0 637 | 13,1,118,A,0 638 | 13,1,118,B,0 639 | 13,1,118,B,1 640 | 13,1,118,A,0 641 | 13,1,118,A,1 642 | 13,1,118,A,0 643 | 13,1,118,B,1 644 | 13,1,118,C,0 645 | 13,1,118,A,0 646 | 13,1,118,A,1 647 | 13,1,118,C,1 648 | 13,1,118,A,1 649 | 13,1,118,C,1 650 | 13,1,118,A,0 651 | 13,1,118,B,1 652 | 13,1,118,A,0 653 | 13,1,118,C,0 654 | 13,1,118,B,0 655 | 13,1,118,C,1 656 | 13,1,118,A,1 657 | 13,1,118,A,1 658 | 13,1,118,B,1 659 | 13,1,118,C,0 660 | 13,1,118,B,0 661 | 13,1,118,B,1 662 | 13,1,118,A,0 663 | 13,1,118,A,1 664 | 13,1,118,B,1 665 | 13,1,118,B,1 666 | 13,1,118,B,1 667 | 13,1,118,A,1 668 | 13,1,118,C,1 669 | 13,1,118,C,0 670 | 14,0,111,B,0 671 | 14,0,111,A,0 672 | 14,0,111,B,0 673 | 14,0,111,C,1 674 | 14,0,111,C,0 675 | 14,0,111,C,1 676 | 14,0,111,A,1 677 | 14,0,111,A,1 678 | 14,0,111,A,1 679 | 14,0,111,A,0 680 | 14,0,111,A,0 681 | 14,0,111,A,1 682 | 14,0,111,B,1 683 | 14,0,111,A,1 684 | 14,0,111,B,1 685 | 14,0,111,A,1 686 | 14,0,111,A,0 687 | 14,0,111,A,1 688 | 14,0,111,B,0 689 | 14,0,111,B,1 690 | 14,0,111,B,1 691 | 14,0,111,A,0 692 | 14,0,111,A,1 693 | 14,0,111,C,1 694 | 14,0,111,C,1 695 | 14,0,111,A,1 696 | 14,0,111,A,1 697 | 14,0,111,A,1 698 | 14,0,111,A,0 699 | 14,0,111,B,0 700 | 14,0,111,C,1 701 | 14,0,111,A,1 702 | 14,0,111,A,1 703 | 14,0,111,C,1 704 | 14,0,111,C,1 705 | 14,0,111,B,1 706 | 14,0,111,A,1 707 | 14,0,111,B,1 708 | 14,0,111,A,1 709 | 14,0,111,C,0 710 | 15,0,109,A,0 711 | 15,0,109,A,1 712 | 15,0,109,A,1 713 | 15,0,109,A,1 714 | 15,0,109,B,1 715 | 15,0,109,B,1 716 | 15,0,109,C,1 717 | 15,0,109,B,1 718 | 15,0,109,B,1 719 | 15,0,109,A,1 720 | 15,0,109,A,1 721 | 15,0,109,A,1 722 | 15,0,109,B,1 723 | 15,0,109,C,1 724 | 15,0,109,A,1 725 | 15,0,109,A,1 726 | 15,0,109,B,1 727 | 15,0,109,A,1 728 | 15,0,109,B,0 729 | 15,0,109,A,0 730 | 15,0,109,B,0 731 | 15,0,109,A,1 732 | 15,0,109,A,1 733 | 15,0,109,A,1 734 | 15,0,109,B,1 735 | 15,0,109,A,1 736 | 15,0,109,C,1 737 | 15,0,109,B,1 738 | 15,0,109,A,1 739 | 15,0,109,A,0 740 | 15,0,109,B,1 741 | 15,0,109,C,1 742 | 15,0,109,C,1 743 | 15,0,109,B,0 744 | 15,0,109,B,1 745 | 15,0,109,A,1 746 | 15,0,109,C,1 747 | 15,0,109,A,1 748 | 15,0,109,A,1 749 | 15,0,109,A,1 750 | 15,0,109,A,1 751 | 15,0,109,A,1 752 | 15,0,109,B,0 753 | 15,0,109,C,0 754 | 15,0,109,B,1 755 | 15,0,109,B,1 756 | 15,0,109,A,1 757 | 15,0,109,A,1 758 | 15,0,109,A,1 759 | 15,0,109,B,1 760 | 15,0,109,C,0 761 | 15,0,109,B,0 762 | 15,0,109,A,1 763 | 15,0,109,A,1 764 | 15,0,109,C,1 765 | 15,0,109,C,1 766 | 16,1,99,B,1 767 | 16,1,99,A,1 768 | 16,1,99,A,1 769 | 16,1,99,A,1 770 | 16,1,99,A,0 771 | 16,1,99,B,1 772 | 16,1,99,B,0 773 | 16,1,99,B,0 774 | 16,1,99,B,1 775 | 16,1,99,C,1 776 | 16,1,99,A,1 777 | 16,1,99,A,1 778 | 16,1,99,A,1 779 | 16,1,99,C,0 780 | 16,1,99,A,0 781 | 16,1,99,A,1 782 | 16,1,99,A,0 783 | 16,1,99,B,0 784 | 16,1,99,A,1 785 | 16,1,99,A,1 786 | 16,1,99,A,0 787 | 16,1,99,B,1 788 | 16,1,99,A,0 789 | 16,1,99,B,0 790 | 16,1,99,B,1 791 | 16,1,99,A,0 792 | 16,1,99,A,1 793 | 16,1,99,B,0 794 | 16,1,99,B,0 795 | 16,1,99,B,0 796 | 16,1,99,A,0 797 | 16,1,99,C,1 798 | 16,1,99,C,1 799 | 16,1,99,A,0 800 | 16,1,99,B,1 801 | 16,1,99,A,1 802 | 16,1,99,B,1 803 | 16,1,99,A,0 804 | 16,1,99,A,1 805 | 16,1,99,B,1 806 | 16,1,99,B,0 807 | 16,1,99,A,1 808 | 16,1,99,C,1 809 | 16,1,99,A,0 810 | 16,1,99,A,1 811 | 16,1,99,A,1 812 | 16,1,99,A,1 813 | 16,1,99,A,1 814 | 16,1,99,A,1 815 | 16,1,99,B,1 816 | 16,1,99,B,1 817 | 16,1,99,C,0 818 | 16,1,99,A,1 819 | 16,1,99,A,1 820 | 16,1,99,B,1 821 | 16,1,99,C,1 822 | 16,1,99,A,1 823 | 16,1,99,A,0 824 | 16,1,99,A,0 825 | 17,0,114,A,1 826 | 17,0,114,A,1 827 | 17,0,114,A,1 828 | 17,0,114,B,1 829 | 17,0,114,B,0 830 | 17,0,114,B,1 831 | 17,0,114,A,1 832 | 17,0,114,A,1 833 | 17,0,114,A,1 834 | 17,0,114,B,0 835 | 17,0,114,C,1 836 | 17,0,114,A,1 837 | 17,0,114,B,0 838 | 17,0,114,A,0 839 | 17,0,114,B,1 840 | 17,0,114,A,1 841 | 17,0,114,B,0 842 | 17,0,114,A,0 843 | 17,0,114,C,0 844 | 17,0,114,B,1 845 | 17,0,114,A,1 846 | 17,0,114,B,1 847 | 17,0,114,B,0 848 | 17,0,114,A,1 849 | 17,0,114,A,1 850 | 17,0,114,A,1 851 | 17,0,114,A,1 852 | 17,0,114,A,1 853 | 17,0,114,A,0 854 | 17,0,114,B,0 855 | 17,0,114,B,1 856 | 17,0,114,A,1 857 | 17,0,114,A,1 858 | 17,0,114,C,1 859 | 17,0,114,B,1 860 | 17,0,114,A,1 861 | 17,0,114,A,0 862 | 17,0,114,C,1 863 | 18,0,82,B,1 864 | 18,0,82,A,1 865 | 18,0,82,A,1 866 | 18,0,82,A,0 867 | 18,0,82,A,1 868 | 18,0,82,A,0 869 | 18,0,82,B,1 870 | 18,0,82,B,1 871 | 18,0,82,B,1 872 | 18,0,82,C,0 873 | 18,0,82,A,1 874 | 18,0,82,A,1 875 | 18,0,82,A,1 876 | 18,0,82,A,0 877 | 18,0,82,A,0 878 | 18,0,82,A,0 879 | 18,0,82,C,1 880 | 18,0,82,A,1 881 | 18,0,82,A,0 882 | 18,0,82,A,0 883 | 18,0,82,B,0 884 | 18,0,82,A,1 885 | 18,0,82,A,1 886 | 18,0,82,B,0 887 | 18,0,82,B,0 888 | 18,0,82,C,0 889 | 18,0,82,A,1 890 | 18,0,82,B,1 891 | 18,0,82,A,1 892 | 18,0,82,B,1 893 | 18,0,82,A,1 894 | 18,0,82,A,0 895 | 18,0,82,A,1 896 | 18,0,82,A,1 897 | 18,0,82,A,1 898 | 18,0,82,C,1 899 | 18,0,82,A,1 900 | 18,0,82,B,0 901 | 18,0,82,A,1 902 | 18,0,82,A,1 903 | 18,0,82,B,1 904 | 18,0,82,A,0 905 | 18,0,82,A,0 906 | 18,0,82,C,0 907 | 18,0,82,A,1 908 | 19,0,185,A,0 909 | 19,0,185,C,1 910 | 19,0,185,B,1 911 | 19,0,185,B,1 912 | 19,0,185,C,1 913 | 19,0,185,A,1 914 | 19,0,185,B,1 915 | 19,0,185,A,1 916 | 19,0,185,A,1 917 | 19,0,185,B,1 918 | 19,0,185,A,1 919 | 19,0,185,B,1 920 | 19,0,185,A,1 921 | 19,0,185,A,1 922 | 19,0,185,B,1 923 | 19,0,185,B,1 924 | 19,0,185,C,0 925 | 19,0,185,B,1 926 | 19,0,185,A,1 927 | 19,0,185,B,1 928 | 19,0,185,B,1 929 | 19,0,185,A,1 930 | 19,0,185,B,1 931 | 19,0,185,C,1 932 | 19,0,185,A,1 933 | 19,0,185,C,1 934 | 19,0,185,B,1 935 | 19,0,185,A,1 936 | 19,0,185,A,1 937 | 19,0,185,B,1 938 | 19,0,185,B,1 939 | 19,0,185,A,1 940 | 19,0,185,A,1 941 | 19,0,185,A,1 942 | 19,0,185,A,1 943 | 19,0,185,A,1 944 | 19,0,185,B,1 945 | 19,0,185,A,1 946 | 19,0,185,A,1 947 | 19,0,185,C,1 948 | 19,0,185,C,1 949 | 19,0,185,A,1 950 | 19,0,185,B,1 951 | 19,0,185,A,1 952 | 19,0,185,A,1 953 | 20,1,156,A,0 954 | 20,1,156,A,0 955 | 20,1,156,A,1 956 | 20,1,156,A,1 957 | 20,1,156,A,1 958 | 20,1,156,B,0 959 | 20,1,156,B,1 960 | 20,1,156,C,0 961 | 20,1,156,B,1 962 | 20,1,156,B,1 963 | 20,1,156,C,0 964 | 20,1,156,A,1 965 | 20,1,156,A,1 966 | 20,1,156,A,1 967 | 20,1,156,A,1 968 | 20,1,156,A,1 969 | 20,1,156,C,0 970 | 20,1,156,A,1 971 | 20,1,156,C,0 972 | 20,1,156,A,1 973 | 20,1,156,A,1 974 | 20,1,156,A,0 975 | 20,1,156,A,0 976 | 20,1,156,B,0 977 | 20,1,156,A,1 978 | 20,1,156,A,1 979 | 20,1,156,B,1 980 | 20,1,156,A,1 981 | 20,1,156,A,0 982 | 20,1,156,A,1 983 | 20,1,156,A,1 984 | 20,1,156,C,0 985 | 20,1,156,B,0 986 | 20,1,156,C,1 987 | 20,1,156,B,1 988 | 20,1,156,C,1 989 | 20,1,156,B,1 990 | 20,1,156,B,1 991 | 20,1,156,A,0 992 | 20,1,156,A,1 993 | 20,1,156,B,0 994 | 20,1,156,C,0 995 | 20,1,156,C,0 996 | 20,1,156,A,1 997 | 20,1,156,A,1 998 | 20,1,156,C,0 999 | 20,1,156,C,1 1000 | 20,1,156,A,1 1001 | 20,1,156,B,1 1002 | 20,1,156,A,1 1003 | 20,1,156,C,0 1004 | 20,1,156,B,0 1005 | 20,1,156,B,1 1006 | 20,1,156,C,0 1007 | 20,1,156,A,1 1008 | 20,1,156,A,1 1009 | 20,1,156,A,1 1010 | 20,1,156,A,0 1011 | 20,1,156,A,1 1012 | 20,1,156,B,0 1013 | 20,1,156,A,1 1014 | 20,1,156,A,1 1015 | 20,1,156,C,1 1016 | 20,1,156,C,0 1017 | 20,1,156,B,0 1018 | 20,1,156,B,1 1019 | 20,1,156,A,0 1020 | 20,1,156,A,1 1021 | 20,1,156,A,1 1022 | 20,1,156,B,1 1023 | 20,1,156,B,1 1024 | 20,1,156,B,1 1025 | 20,1,156,A,1 1026 | 20,1,156,A,1 1027 | 20,1,156,A,0 1028 | 20,1,156,C,1 1029 | 20,1,156,C,1 1030 | 21,1,86,B,1 1031 | 21,1,86,A,1 1032 | 21,1,86,A,0 1033 | 21,1,86,A,0 1034 | 21,1,86,B,1 1035 | 21,1,86,B,0 1036 | 21,1,86,B,0 1037 | 21,1,86,C,0 1038 | 21,1,86,C,1 1039 | 21,1,86,A,1 1040 | 21,1,86,A,1 1041 | 21,1,86,C,0 1042 | 21,1,86,A,0 1043 | 21,1,86,A,0 1044 | 21,1,86,A,0 1045 | 21,1,86,A,0 1046 | 21,1,86,B,0 1047 | 21,1,86,A,1 1048 | 21,1,86,A,0 1049 | 21,1,86,B,0 1050 | 21,1,86,A,0 1051 | 21,1,86,A,1 1052 | 21,1,86,A,0 1053 | 21,1,86,B,1 1054 | 21,1,86,A,1 1055 | 21,1,86,A,0 1056 | 21,1,86,B,1 1057 | 21,1,86,B,0 1058 | 21,1,86,A,0 1059 | 21,1,86,C,0 1060 | 21,1,86,B,1 1061 | 21,1,86,B,0 1062 | 21,1,86,B,0 1063 | 21,1,86,A,1 1064 | 21,1,86,B,1 1065 | 21,1,86,B,1 1066 | 21,1,86,C,0 1067 | 21,1,86,B,1 1068 | 21,1,86,A,0 1069 | 21,1,86,C,0 1070 | 21,1,86,A,0 1071 | 21,1,86,A,1 1072 | 21,1,86,C,1 1073 | 21,1,86,A,0 1074 | 21,1,86,A,0 1075 | 21,1,86,B,1 1076 | 21,1,86,A,1 1077 | 21,1,86,B,0 1078 | 21,1,86,A,0 1079 | 21,1,86,C,0 1080 | 21,1,86,B,1 1081 | 21,1,86,A,0 1082 | 21,1,86,A,0 1083 | 21,1,86,A,0 1084 | 21,1,86,A,1 1085 | 21,1,86,A,1 1086 | 21,1,86,B,1 1087 | 21,1,86,A,1 1088 | 21,1,86,B,1 1089 | 21,1,86,A,0 1090 | 21,1,86,C,0 1091 | 21,1,86,A,0 1092 | 21,1,86,C,1 1093 | 21,1,86,B,1 1094 | 21,1,86,C,0 1095 | 21,1,86,A,1 1096 | 21,1,86,A,1 1097 | 21,1,86,A,0 1098 | 21,1,86,A,1 1099 | 21,1,86,A,0 1100 | 22,1,108,A,1 1101 | 22,1,108,A,1 1102 | 22,1,108,A,0 1103 | 22,1,108,A,1 1104 | 22,1,108,A,0 1105 | 22,1,108,B,1 1106 | 22,1,108,C,0 1107 | 22,1,108,B,1 1108 | 22,1,108,B,0 1109 | 22,1,108,B,0 1110 | 22,1,108,B,1 1111 | 22,1,108,C,1 1112 | 22,1,108,A,1 1113 | 22,1,108,A,1 1114 | 22,1,108,A,1 1115 | 22,1,108,C,1 1116 | 22,1,108,A,0 1117 | 22,1,108,A,0 1118 | 22,1,108,B,0 1119 | 22,1,108,A,1 1120 | 22,1,108,A,1 1121 | 22,1,108,A,1 1122 | 22,1,108,B,1 1123 | 22,1,108,A,0 1124 | 22,1,108,B,0 1125 | 22,1,108,A,1 1126 | 22,1,108,A,1 1127 | 22,1,108,B,1 1128 | 22,1,108,A,1 1129 | 22,1,108,A,1 1130 | 22,1,108,A,1 1131 | 22,1,108,B,0 1132 | 22,1,108,B,1 1133 | 22,1,108,A,0 1134 | 22,1,108,C,1 1135 | 22,1,108,B,1 1136 | 22,1,108,C,0 1137 | 22,1,108,B,1 1138 | 22,1,108,B,0 1139 | 22,1,108,A,1 1140 | 22,1,108,A,1 1141 | 22,1,108,B,1 1142 | 22,1,108,C,0 1143 | 22,1,108,A,1 1144 | 22,1,108,C,1 1145 | 22,1,108,A,0 1146 | 22,1,108,B,1 1147 | 22,1,108,A,1 1148 | 22,1,108,B,0 1149 | 22,1,108,C,1 1150 | 22,1,108,B,1 1151 | 22,1,108,A,0 1152 | 22,1,108,C,1 1153 | 22,1,108,A,1 1154 | 22,1,108,A,1 1155 | 22,1,108,A,0 1156 | 22,1,108,A,1 1157 | 22,1,108,A,1 1158 | 22,1,108,A,1 1159 | 22,1,108,B,0 1160 | 22,1,108,A,1 1161 | 22,1,108,B,0 1162 | 22,1,108,C,0 1163 | 22,1,108,C,0 1164 | 22,1,108,A,0 1165 | 22,1,108,C,1 1166 | 22,1,108,B,1 1167 | 22,1,108,A,0 1168 | 22,1,108,A,1 1169 | 22,1,108,B,0 1170 | 22,1,108,B,1 1171 | 22,1,108,C,0 1172 | 22,1,108,A,1 1173 | 22,1,108,A,1 1174 | 22,1,108,A,0 1175 | 22,1,108,A,1 1176 | 22,1,108,C,1 1177 | 23,1,106,B,1 1178 | 23,1,106,A,1 1179 | 23,1,106,A,1 1180 | 23,1,106,C,0 1181 | 23,1,106,B,1 1182 | 23,1,106,C,0 1183 | 23,1,106,B,1 1184 | 23,1,106,C,0 1185 | 23,1,106,B,0 1186 | 23,1,106,A,0 1187 | 23,1,106,A,0 1188 | 23,1,106,B,1 1189 | 23,1,106,A,1 1190 | 23,1,106,A,1 1191 | 23,1,106,A,1 1192 | 23,1,106,B,1 1193 | 23,1,106,A,0 1194 | 23,1,106,A,0 1195 | 23,1,106,B,0 1196 | 23,1,106,A,1 1197 | 23,1,106,B,0 1198 | 23,1,106,A,0 1199 | 23,1,106,B,0 1200 | 23,1,106,B,0 1201 | 23,1,106,A,1 1202 | 23,1,106,A,0 1203 | 23,1,106,B,1 1204 | 23,1,106,A,1 1205 | 23,1,106,C,1 1206 | 23,1,106,B,1 1207 | 23,1,106,B,0 1208 | 23,1,106,A,0 1209 | 23,1,106,B,0 1210 | 23,1,106,A,1 1211 | 23,1,106,A,1 1212 | 23,1,106,A,1 1213 | 23,1,106,C,1 1214 | 23,1,106,C,1 1215 | 23,1,106,A,1 1216 | 23,1,106,C,0 1217 | 23,1,106,B,0 1218 | 23,1,106,C,1 1219 | 23,1,106,A,1 1220 | 23,1,106,B,1 1221 | 23,1,106,A,1 1222 | 23,1,106,B,1 1223 | 23,1,106,B,1 1224 | 23,1,106,A,0 1225 | 23,1,106,C,0 1226 | 23,1,106,A,1 1227 | 23,1,106,A,0 1228 | 23,1,106,B,0 1229 | 23,1,106,A,1 1230 | 23,1,106,A,1 1231 | 23,1,106,C,1 1232 | 23,1,106,B,1 1233 | 23,1,106,A,1 1234 | 23,1,106,B,1 1235 | 23,1,106,C,0 1236 | 23,1,106,B,1 1237 | 23,1,106,A,1 1238 | 23,1,106,A,1 1239 | 23,1,106,C,0 1240 | 24,1,143,A,1 1241 | 24,1,143,A,1 1242 | 24,1,143,A,1 1243 | 24,1,143,C,1 1244 | 24,1,143,A,0 1245 | 24,1,143,A,0 1246 | 24,1,143,A,0 1247 | 24,1,143,B,1 1248 | 24,1,143,B,0 1249 | 24,1,143,B,1 1250 | 24,1,143,B,1 1251 | 24,1,143,B,0 1252 | 24,1,143,A,1 1253 | 24,1,143,A,1 1254 | 24,1,143,A,1 1255 | 24,1,143,A,1 1256 | 24,1,143,A,0 1257 | 24,1,143,A,0 1258 | 24,1,143,B,0 1259 | 24,1,143,C,1 1260 | 24,1,143,A,1 1261 | 24,1,143,A,1 1262 | 24,1,143,A,1 1263 | 24,1,143,B,1 1264 | 24,1,143,B,0 1265 | 24,1,143,A,1 1266 | 24,1,143,B,0 1267 | 24,1,143,A,1 1268 | 24,1,143,B,1 1269 | 24,1,143,C,0 1270 | 24,1,143,B,1 1271 | 24,1,143,B,0 1272 | 24,1,143,A,0 1273 | 24,1,143,B,1 1274 | 24,1,143,C,0 1275 | 24,1,143,A,1 1276 | 24,1,143,B,1 1277 | 24,1,143,A,1 1278 | 24,1,143,B,1 1279 | 24,1,143,C,1 1280 | 24,1,143,A,1 1281 | 24,1,143,C,0 1282 | 24,1,143,B,1 1283 | 24,1,143,B,1 1284 | 24,1,143,B,1 1285 | 24,1,143,A,0 1286 | 24,1,143,A,1 1287 | 24,1,143,A,1 1288 | 24,1,143,A,1 1289 | 24,1,143,A,1 1290 | 24,1,143,A,0 1291 | 24,1,143,B,0 1292 | 24,1,143,A,0 1293 | 24,1,143,A,1 1294 | 24,1,143,C,0 1295 | 24,1,143,A,1 1296 | 24,1,143,B,1 1297 | 24,1,143,A,1 1298 | 24,1,143,A,1 1299 | 24,1,143,C,1 1300 | 24,1,143,B,1 1301 | 24,1,143,B,1 1302 | 24,1,143,A,1 1303 | 24,1,143,A,1 1304 | 24,1,143,A,0 1305 | 24,1,143,A,0 1306 | 24,1,143,C,1 1307 | 24,1,143,A,0 1308 | 25,1,117,A,1 1309 | 25,1,117,A,1 1310 | 25,1,117,A,1 1311 | 25,1,117,B,0 1312 | 25,1,117,B,1 1313 | 25,1,117,B,0 1314 | 25,1,117,B,1 1315 | 25,1,117,A,1 1316 | 25,1,117,A,1 1317 | 25,1,117,A,1 1318 | 25,1,117,A,1 1319 | 25,1,117,A,1 1320 | 25,1,117,C,1 1321 | 25,1,117,B,0 1322 | 25,1,117,C,0 1323 | 25,1,117,A,1 1324 | 25,1,117,A,1 1325 | 25,1,117,B,0 1326 | 25,1,117,A,1 1327 | 25,1,117,B,1 1328 | 25,1,117,A,1 1329 | 25,1,117,B,0 1330 | 25,1,117,A,0 1331 | 25,1,117,C,1 1332 | 25,1,117,C,1 1333 | 25,1,117,B,1 1334 | 25,1,117,A,0 1335 | 25,1,117,B,1 1336 | 25,1,117,A,1 1337 | 25,1,117,B,1 1338 | 25,1,117,B,0 1339 | 25,1,117,C,1 1340 | 25,1,117,A,1 1341 | 25,1,117,A,1 1342 | 25,1,117,A,1 1343 | 25,1,117,A,1 1344 | 25,1,117,A,0 1345 | 25,1,117,A,0 1346 | 25,1,117,A,1 1347 | 25,1,117,B,1 1348 | 25,1,117,B,1 1349 | 25,1,117,B,1 1350 | 25,1,117,A,0 1351 | 25,1,117,A,1 1352 | 25,1,117,B,1 1353 | 25,1,117,C,0 1354 | 25,1,117,B,1 1355 | 25,1,117,A,1 1356 | 25,1,117,A,1 1357 | 25,1,117,C,1 1358 | 26,1,128,A,1 1359 | 26,1,128,A,1 1360 | 26,1,128,A,1 1361 | 26,1,128,A,1 1362 | 26,1,128,A,0 1363 | 26,1,128,B,0 1364 | 26,1,128,C,1 1365 | 26,1,128,B,1 1366 | 26,1,128,B,0 1367 | 26,1,128,C,1 1368 | 26,1,128,A,1 1369 | 26,1,128,A,0 1370 | 26,1,128,A,1 1371 | 26,1,128,A,1 1372 | 26,1,128,A,1 1373 | 26,1,128,A,1 1374 | 26,1,128,B,1 1375 | 26,1,128,A,1 1376 | 26,1,128,A,1 1377 | 26,1,128,A,1 1378 | 26,1,128,A,1 1379 | 26,1,128,B,0 1380 | 26,1,128,C,1 1381 | 26,1,128,B,1 1382 | 26,1,128,B,0 1383 | 26,1,128,B,0 1384 | 26,1,128,A,1 1385 | 26,1,128,A,1 1386 | 26,1,128,B,1 1387 | 26,1,128,C,0 1388 | 26,1,128,C,1 1389 | 26,1,128,A,1 1390 | 26,1,128,A,1 1391 | 26,1,128,B,0 1392 | 26,1,128,C,1 1393 | 26,1,128,A,1 1394 | 26,1,128,A,1 1395 | 26,1,128,A,0 1396 | 26,1,128,A,1 1397 | 26,1,128,C,1 1398 | 26,1,128,C,0 1399 | 26,1,128,A,1 1400 | 26,1,128,C,0 1401 | 26,1,128,B,0 1402 | 26,1,128,A,0 1403 | 26,1,128,A,1 1404 | 26,1,128,B,0 1405 | 26,1,128,A,1 1406 | 26,1,128,A,0 1407 | 26,1,128,A,1 1408 | 26,1,128,C,0 1409 | 27,0,119,C,1 1410 | 27,0,119,A,0 1411 | 27,0,119,A,1 1412 | 27,0,119,B,0 1413 | 27,0,119,B,1 1414 | 27,0,119,C,1 1415 | 27,0,119,A,0 1416 | 27,0,119,A,1 1417 | 27,0,119,A,1 1418 | 27,0,119,A,1 1419 | 27,0,119,A,1 1420 | 27,0,119,B,1 1421 | 27,0,119,B,0 1422 | 27,0,119,B,1 1423 | 27,0,119,A,1 1424 | 27,0,119,B,1 1425 | 27,0,119,B,1 1426 | 27,0,119,A,1 1427 | 27,0,119,A,0 1428 | 27,0,119,A,1 1429 | 27,0,119,A,1 1430 | 27,0,119,A,1 1431 | 27,0,119,C,0 1432 | 27,0,119,A,0 1433 | 27,0,119,C,1 1434 | 27,0,119,A,1 1435 | 27,0,119,B,1 1436 | 27,0,119,A,1 1437 | 27,0,119,A,0 1438 | 28,0,119,A,0 1439 | 28,0,119,B,1 1440 | 28,0,119,C,1 1441 | 28,0,119,A,0 1442 | 28,0,119,B,1 1443 | 28,0,119,A,1 1444 | 28,0,119,B,1 1445 | 28,0,119,A,1 1446 | 28,0,119,B,1 1447 | 28,0,119,A,1 1448 | 28,0,119,A,1 1449 | 28,0,119,B,1 1450 | 28,0,119,C,1 1451 | 28,0,119,B,0 1452 | 28,0,119,A,1 1453 | 28,0,119,B,0 1454 | 28,0,119,B,1 1455 | 28,0,119,B,1 1456 | 28,0,119,C,0 1457 | 28,0,119,A,1 1458 | 28,0,119,C,0 1459 | 28,0,119,A,1 1460 | 28,0,119,A,1 1461 | 28,0,119,B,1 1462 | 28,0,119,B,1 1463 | 28,0,119,A,0 1464 | 28,0,119,A,0 1465 | 28,0,119,A,1 1466 | 28,0,119,A,1 1467 | 28,0,119,A,1 1468 | 28,0,119,B,1 1469 | 28,0,119,A,1 1470 | 28,0,119,C,0 1471 | 28,0,119,C,0 1472 | 28,0,119,A,1 1473 | 28,0,119,A,0 1474 | 28,0,119,A,1 1475 | 29,0,161,A,1 1476 | 29,0,161,B,1 1477 | 29,0,161,C,1 1478 | 29,0,161,A,1 1479 | 29,0,161,A,1 1480 | 29,0,161,B,1 1481 | 29,0,161,A,1 1482 | 29,0,161,A,1 1483 | 29,0,161,A,1 1484 | 29,0,161,C,1 1485 | 29,0,161,C,1 1486 | 29,0,161,B,0 1487 | 29,0,161,C,1 1488 | 29,0,161,C,1 1489 | 29,0,161,B,1 1490 | 29,0,161,A,1 1491 | 29,0,161,B,1 1492 | 29,0,161,C,1 1493 | 30,0,113,B,1 1494 | 30,0,113,A,0 1495 | 30,0,113,A,1 1496 | 30,0,113,B,1 1497 | 30,0,113,B,0 1498 | 30,0,113,C,1 1499 | 30,0,113,A,1 1500 | 30,0,113,A,1 1501 | 30,0,113,A,1 1502 | 30,0,113,A,1 1503 | 30,0,113,B,0 1504 | 30,0,113,C,1 1505 | 30,0,113,A,1 1506 | 30,0,113,A,0 1507 | 30,0,113,B,1 1508 | 30,0,113,A,1 1509 | 30,0,113,A,1 1510 | 30,0,113,B,0 1511 | 30,0,113,A,0 1512 | 30,0,113,B,1 1513 | 30,0,113,B,1 1514 | 30,0,113,A,1 1515 | 30,0,113,C,0 1516 | 30,0,113,B,0 1517 | 30,0,113,B,1 1518 | 30,0,113,A,1 1519 | 30,0,113,B,1 1520 | 30,0,113,A,1 1521 | 30,0,113,C,1 1522 | 30,0,113,A,1 1523 | 30,0,113,C,1 1524 | 30,0,113,A,1 1525 | 30,0,113,B,0 1526 | 30,0,113,A,1 1527 | 30,0,113,B,1 1528 | 30,0,113,A,1 1529 | 30,0,113,A,1 1530 | 30,0,113,A,1 1531 | 30,0,113,A,1 1532 | 30,0,113,B,1 1533 | 30,0,113,A,1 1534 | 30,0,113,B,1 1535 | 30,0,113,A,1 1536 | 30,0,113,C,1 1537 | 30,0,113,B,1 1538 | 30,0,113,A,1 1539 | 30,0,113,A,1 1540 | 30,0,113,A,1 1541 | 30,0,113,C,1 1542 | 31,1,165,A,1 1543 | 31,1,165,A,0 1544 | 31,1,165,A,1 1545 | 31,1,165,C,1 1546 | 31,1,165,B,1 1547 | 31,1,165,B,1 1548 | 31,1,165,C,1 1549 | 31,1,165,B,1 1550 | 31,1,165,B,0 1551 | 31,1,165,C,1 1552 | 31,1,165,A,1 1553 | 31,1,165,A,1 1554 | 31,1,165,A,1 1555 | 31,1,165,B,0 1556 | 31,1,165,C,1 1557 | 31,1,165,A,0 1558 | 31,1,165,A,1 1559 | 31,1,165,A,0 1560 | 31,1,165,A,1 1561 | 31,1,165,B,1 1562 | 31,1,165,A,1 1563 | 31,1,165,B,0 1564 | 31,1,165,A,1 1565 | 31,1,165,B,1 1566 | 31,1,165,A,1 1567 | 31,1,165,A,0 1568 | 31,1,165,B,0 1569 | 31,1,165,A,0 1570 | 31,1,165,B,1 1571 | 31,1,165,A,1 1572 | 31,1,165,C,0 1573 | 31,1,165,B,1 1574 | 31,1,165,A,1 1575 | 31,1,165,B,0 1576 | 31,1,165,B,1 1577 | 31,1,165,A,0 1578 | 31,1,165,B,1 1579 | 31,1,165,A,1 1580 | 31,1,165,C,1 1581 | 31,1,165,C,1 1582 | 31,1,165,A,1 1583 | 31,1,165,C,1 1584 | 31,1,165,B,1 1585 | 31,1,165,C,1 1586 | 31,1,165,A,1 1587 | 31,1,165,A,0 1588 | 31,1,165,B,0 1589 | 31,1,165,B,1 1590 | 31,1,165,B,1 1591 | 31,1,165,A,1 1592 | 31,1,165,C,1 1593 | 31,1,165,A,0 1594 | 31,1,165,A,1 1595 | 31,1,165,A,1 1596 | 31,1,165,A,1 1597 | 31,1,165,A,1 1598 | 31,1,165,B,1 1599 | 31,1,165,A,1 1600 | 31,1,165,A,1 1601 | 31,1,165,C,1 1602 | 31,1,165,C,1 1603 | 31,1,165,B,1 1604 | 31,1,165,B,1 1605 | 31,1,165,A,1 1606 | 31,1,165,A,1 1607 | 31,1,165,B,1 1608 | 31,1,165,C,0 1609 | 31,1,165,B,1 1610 | 31,1,165,A,1 1611 | 31,1,165,B,1 1612 | 31,1,165,A,1 1613 | 31,1,165,A,1 1614 | 31,1,165,A,1 1615 | 31,1,165,C,1 1616 | 31,1,165,C,0 1617 | 32,1,74,A,0 1618 | 32,1,74,A,1 1619 | 32,1,74,B,1 1620 | 32,1,74,A,1 1621 | 32,1,74,A,1 1622 | 32,1,74,C,1 1623 | 32,1,74,B,1 1624 | 32,1,74,A,1 1625 | 32,1,74,B,1 1626 | 32,1,74,A,1 1627 | 32,1,74,A,1 1628 | 32,1,74,A,1 1629 | 33,1,138,B,0 1630 | 33,1,138,B,0 1631 | 33,1,138,C,1 1632 | 33,1,138,A,1 1633 | 33,1,138,A,1 1634 | 33,1,138,C,1 1635 | 33,1,138,A,0 1636 | 33,1,138,A,1 1637 | 33,1,138,A,0 1638 | 33,1,138,A,1 1639 | 33,1,138,B,1 1640 | 33,1,138,A,1 1641 | 33,1,138,B,0 1642 | 33,1,138,C,1 1643 | 33,1,138,A,1 1644 | 33,1,138,A,1 1645 | 33,1,138,A,1 1646 | 33,1,138,B,1 1647 | 33,1,138,A,1 1648 | 33,1,138,C,1 1649 | 33,1,138,A,1 1650 | 33,1,138,B,1 1651 | 33,1,138,B,1 1652 | 34,1,124,B,1 1653 | 34,1,124,B,0 1654 | 34,1,124,C,1 1655 | 34,1,124,A,1 1656 | 34,1,124,A,1 1657 | 34,1,124,C,1 1658 | 34,1,124,B,0 1659 | 34,1,124,A,1 1660 | 34,1,124,A,1 1661 | 34,1,124,B,0 1662 | 34,1,124,A,1 1663 | 34,1,124,A,1 1664 | 34,1,124,B,0 1665 | 34,1,124,B,0 1666 | 34,1,124,A,0 1667 | 34,1,124,B,1 1668 | 34,1,124,C,1 1669 | 34,1,124,B,1 1670 | 34,1,124,A,1 1671 | 34,1,124,A,1 1672 | 34,1,124,B,1 1673 | 34,1,124,A,1 1674 | 34,1,124,B,1 1675 | 34,1,124,C,1 1676 | 34,1,124,A,0 1677 | 34,1,124,A,1 1678 | 34,1,124,A,1 1679 | 34,1,124,A,1 1680 | 34,1,124,A,1 1681 | 34,1,124,B,1 1682 | 34,1,124,A,1 1683 | 34,1,124,B,0 1684 | 34,1,124,C,1 1685 | 34,1,124,B,1 1686 | 34,1,124,C,1 1687 | 34,1,124,A,1 1688 | 34,1,124,A,0 1689 | 35,0,126,B,0 1690 | 35,0,126,A,1 1691 | 35,0,126,A,0 1692 | 35,0,126,A,0 1693 | 35,0,126,B,1 1694 | 35,0,126,B,1 1695 | 35,0,126,B,0 1696 | 35,0,126,B,0 1697 | 35,0,126,C,1 1698 | 35,0,126,A,1 1699 | 35,0,126,A,1 1700 | 35,0,126,A,1 1701 | 35,0,126,A,1 1702 | 35,0,126,C,1 1703 | 35,0,126,A,1 1704 | 35,0,126,A,0 1705 | 35,0,126,A,1 1706 | 35,0,126,B,0 1707 | 35,0,126,C,1 1708 | 35,0,126,A,1 1709 | 35,0,126,A,1 1710 | 35,0,126,A,1 1711 | 35,0,126,A,1 1712 | 35,0,126,B,1 1713 | 35,0,126,A,0 1714 | 35,0,126,B,0 1715 | 35,0,126,B,0 1716 | 35,0,126,A,0 1717 | 35,0,126,B,0 1718 | 35,0,126,B,1 1719 | 35,0,126,B,0 1720 | 35,0,126,A,1 1721 | 35,0,126,C,1 1722 | 35,0,126,A,1 1723 | 35,0,126,A,1 1724 | 35,0,126,A,1 1725 | 35,0,126,B,1 1726 | 35,0,126,B,0 1727 | 35,0,126,A,1 1728 | 35,0,126,C,0 1729 | 35,0,126,A,1 1730 | 35,0,126,A,1 1731 | 35,0,126,A,1 1732 | 35,0,126,A,1 1733 | 35,0,126,A,1 1734 | 35,0,126,B,1 1735 | 35,0,126,B,0 1736 | 35,0,126,C,0 1737 | 35,0,126,A,1 1738 | 35,0,126,B,0 1739 | 35,0,126,A,1 1740 | 35,0,126,B,1 1741 | 35,0,126,C,0 1742 | 35,0,126,B,1 1743 | 35,0,126,A,1 1744 | 35,0,126,A,0 1745 | 35,0,126,A,1 1746 | 35,0,126,C,1 1747 | 35,0,126,A,1 1748 | 36,0,131,A,1 1749 | 36,0,131,A,1 1750 | 36,0,131,C,1 1751 | 36,0,131,A,1 1752 | 36,0,131,B,1 1753 | 36,0,131,B,1 1754 | 36,0,131,B,1 1755 | 36,0,131,B,1 1756 | 36,0,131,C,1 1757 | 36,0,131,A,1 1758 | 36,0,131,A,1 1759 | 36,0,131,A,1 1760 | 36,0,131,A,1 1761 | 36,0,131,A,1 1762 | 36,0,131,C,1 1763 | 36,0,131,C,1 1764 | 36,0,131,A,1 1765 | 36,0,131,A,0 1766 | 36,0,131,A,1 1767 | 36,0,131,A,1 1768 | 36,0,131,A,1 1769 | 36,0,131,A,1 1770 | 36,0,131,B,0 1771 | 36,0,131,C,1 1772 | 36,0,131,B,1 1773 | 36,0,131,C,1 1774 | 36,0,131,A,1 1775 | 36,0,131,B,1 1776 | 36,0,131,B,1 1777 | 36,0,131,A,1 1778 | 36,0,131,B,1 1779 | 36,0,131,A,1 1780 | 36,0,131,B,1 1781 | 36,0,131,A,1 1782 | 36,0,131,B,1 1783 | 36,0,131,A,1 1784 | 36,0,131,C,1 1785 | 36,0,131,A,0 1786 | 36,0,131,A,1 1787 | 36,0,131,A,1 1788 | 36,0,131,A,1 1789 | 36,0,131,A,1 1790 | 36,0,131,B,1 1791 | 36,0,131,A,1 1792 | 36,0,131,A,1 1793 | 36,0,131,C,1 1794 | 36,0,131,B,1 1795 | 36,0,131,A,0 1796 | 36,0,131,A,1 1797 | 36,0,131,B,1 1798 | 36,0,131,B,1 1799 | 36,0,131,A,1 1800 | 36,0,131,B,1 1801 | 36,0,131,A,1 1802 | 36,0,131,C,1 1803 | 37,1,105,B,0 1804 | 37,1,105,A,1 1805 | 37,1,105,A,1 1806 | 37,1,105,A,1 1807 | 37,1,105,A,0 1808 | 37,1,105,A,1 1809 | 37,1,105,A,1 1810 | 37,1,105,B,1 1811 | 37,1,105,C,0 1812 | 37,1,105,B,1 1813 | 37,1,105,B,1 1814 | 37,1,105,B,1 1815 | 37,1,105,C,0 1816 | 37,1,105,C,0 1817 | 37,1,105,A,1 1818 | 37,1,105,A,1 1819 | 37,1,105,A,1 1820 | 37,1,105,A,1 1821 | 37,1,105,A,0 1822 | 37,1,105,B,0 1823 | 37,1,105,A,1 1824 | 37,1,105,A,1 1825 | 37,1,105,B,0 1826 | 37,1,105,A,1 1827 | 37,1,105,A,1 1828 | 37,1,105,A,0 1829 | 37,1,105,B,0 1830 | 37,1,105,A,0 1831 | 37,1,105,B,0 1832 | 37,1,105,A,0 1833 | 37,1,105,A,1 1834 | 37,1,105,B,0 1835 | 37,1,105,B,0 1836 | 37,1,105,A,0 1837 | 37,1,105,A,1 1838 | 37,1,105,A,1 1839 | 37,1,105,A,0 1840 | 37,1,105,C,0 1841 | 37,1,105,B,0 1842 | 37,1,105,B,0 1843 | 37,1,105,B,0 1844 | 37,1,105,A,1 1845 | 37,1,105,B,1 1846 | 37,1,105,C,1 1847 | 37,1,105,B,1 1848 | 37,1,105,B,0 1849 | 37,1,105,A,0 1850 | 37,1,105,B,1 1851 | 37,1,105,A,1 1852 | 37,1,105,A,1 1853 | 37,1,105,B,1 1854 | 37,1,105,C,0 1855 | 37,1,105,C,1 1856 | 37,1,105,A,1 1857 | 37,1,105,C,1 1858 | 37,1,105,C,1 1859 | 37,1,105,A,1 1860 | 37,1,105,A,1 1861 | 37,1,105,A,1 1862 | 37,1,105,B,1 1863 | 37,1,105,A,1 1864 | 37,1,105,B,0 1865 | 37,1,105,B,1 1866 | 37,1,105,A,1 1867 | 37,1,105,C,0 1868 | 37,1,105,A,1 1869 | 37,1,105,A,1 1870 | 37,1,105,A,0 1871 | 37,1,105,A,0 1872 | 37,1,105,A,1 1873 | 37,1,105,A,1 1874 | 37,1,105,B,0 1875 | 37,1,105,A,1 1876 | 37,1,105,C,1 1877 | 37,1,105,C,0 1878 | 37,1,105,A,0 1879 | 37,1,105,C,1 1880 | 37,1,105,B,1 1881 | 37,1,105,A,1 1882 | 37,1,105,A,1 1883 | 37,1,105,B,1 1884 | 37,1,105,C,0 1885 | 37,1,105,A,1 1886 | 37,1,105,A,1 1887 | 37,1,105,A,1 1888 | 37,1,105,A,1 1889 | 37,1,105,A,0 1890 | 37,1,105,C,1 1891 | 38,0,110,A,1 1892 | 38,0,110,A,0 1893 | 38,0,110,A,1 1894 | 38,0,110,A,1 1895 | 38,0,110,B,0 1896 | 38,0,110,B,0 1897 | 38,0,110,B,1 1898 | 38,0,110,C,1 1899 | 38,0,110,A,1 1900 | 38,0,110,A,0 1901 | 38,0,110,A,1 1902 | 38,0,110,B,0 1903 | 38,0,110,A,1 1904 | 38,0,110,B,0 1905 | 38,0,110,A,1 1906 | 38,0,110,A,0 1907 | 38,0,110,B,1 1908 | 38,0,110,A,1 1909 | 38,0,110,B,0 1910 | 38,0,110,B,1 1911 | 38,0,110,A,0 1912 | 38,0,110,C,1 1913 | 38,0,110,B,0 1914 | 38,0,110,B,1 1915 | 38,0,110,B,1 1916 | 38,0,110,A,1 1917 | 38,0,110,B,1 1918 | 38,0,110,A,1 1919 | 38,0,110,A,1 1920 | 38,0,110,B,1 1921 | 38,0,110,A,1 1922 | 38,0,110,A,1 1923 | 38,0,110,A,0 1924 | 38,0,110,A,1 1925 | 38,0,110,A,1 1926 | 38,0,110,A,1 1927 | 38,0,110,A,1 1928 | 38,0,110,B,0 1929 | 38,0,110,C,0 1930 | 38,0,110,A,0 1931 | 38,0,110,C,1 1932 | 38,0,110,A,1 1933 | 38,0,110,C,0 1934 | 38,0,110,A,1 1935 | 38,0,110,A,1 1936 | 38,0,110,A,0 1937 | 38,0,110,A,0 1938 | 39,0,89,B,1 1939 | 39,0,89,C,1 1940 | 39,0,89,C,1 1941 | 39,0,89,A,0 1942 | 39,0,89,A,1 1943 | 39,0,89,A,1 1944 | 39,0,89,A,1 1945 | 39,0,89,A,1 1946 | 39,0,89,B,0 1947 | 39,0,89,A,0 1948 | 39,0,89,B,1 1949 | 39,0,89,B,1 1950 | 39,0,89,B,1 1951 | 39,0,89,A,1 1952 | 39,0,89,A,0 1953 | 39,0,89,A,1 1954 | 39,0,89,A,1 1955 | 39,0,89,A,1 1956 | 39,0,89,A,1 1957 | 39,0,89,A,1 1958 | 39,0,89,C,1 1959 | 39,0,89,A,1 1960 | 40,0,88,B,1 1961 | 40,0,88,A,1 1962 | 40,0,88,C,0 1963 | 40,0,88,A,1 1964 | 40,0,88,A,1 1965 | 40,0,88,B,0 1966 | 40,0,88,C,1 1967 | 40,0,88,B,1 1968 | 40,0,88,A,0 1969 | 40,0,88,A,1 1970 | 40,0,88,A,0 1971 | 40,0,88,A,1 1972 | 40,0,88,A,0 1973 | 40,0,88,A,1 1974 | 40,0,88,B,1 1975 | 40,0,88,A,1 1976 | 40,0,88,A,0 1977 | 40,0,88,B,1 1978 | 40,0,88,A,1 1979 | 40,0,88,B,1 1980 | 40,0,88,C,1 1981 | 40,0,88,B,1 1982 | 40,0,88,B,1 1983 | 40,0,88,B,0 1984 | 40,0,88,A,1 1985 | 40,0,88,A,1 1986 | 40,0,88,C,1 1987 | 40,0,88,A,0 1988 | 40,0,88,C,1 1989 | 40,0,88,B,1 1990 | 40,0,88,A,0 1991 | 40,0,88,A,0 1992 | 40,0,88,B,0 1993 | 40,0,88,A,1 1994 | 40,0,88,A,1 1995 | 40,0,88,C,0 1996 | 40,0,88,A,0 1997 | 40,0,88,B,1 1998 | 40,0,88,A,0 1999 | 40,0,88,A,0 2000 | 40,0,88,A,1 2001 | 41,0,129,B,1 2002 | 41,0,129,A,1 2003 | 41,0,129,C,1 2004 | 41,0,129,B,1 2005 | 41,0,129,B,0 2006 | 41,0,129,C,0 2007 | 41,0,129,B,1 2008 | 41,0,129,A,1 2009 | 41,0,129,A,1 2010 | 41,0,129,C,1 2011 | 41,0,129,A,1 2012 | 41,0,129,A,1 2013 | 41,0,129,B,1 2014 | 41,0,129,A,1 2015 | 41,0,129,A,1 2016 | 41,0,129,A,1 2017 | 41,0,129,B,1 2018 | 41,0,129,A,1 2019 | 41,0,129,A,1 2020 | 41,0,129,B,1 2021 | 41,0,129,A,0 2022 | 41,0,129,B,0 2023 | 41,0,129,B,1 2024 | 41,0,129,A,1 2025 | 41,0,129,B,1 2026 | 41,0,129,C,0 2027 | 41,0,129,B,1 2028 | 41,0,129,B,0 2029 | 41,0,129,A,1 2030 | 41,0,129,B,1 2031 | 41,0,129,C,1 2032 | 41,0,129,A,1 2033 | 41,0,129,A,0 2034 | 41,0,129,C,1 2035 | 41,0,129,A,1 2036 | 41,0,129,A,1 2037 | 41,0,129,C,1 2038 | 41,0,129,B,1 2039 | 41,0,129,A,1 2040 | 41,0,129,B,1 2041 | 41,0,129,B,1 2042 | 41,0,129,A,1 2043 | 41,0,129,C,1 2044 | 41,0,129,B,0 2045 | 41,0,129,A,0 2046 | 41,0,129,A,0 2047 | 41,0,129,A,1 2048 | 41,0,129,A,1 2049 | 41,0,129,B,1 2050 | 41,0,129,B,0 2051 | 41,0,129,A,1 2052 | 41,0,129,A,1 2053 | 41,0,129,B,1 2054 | 41,0,129,C,1 2055 | 41,0,129,B,1 2056 | 41,0,129,A,1 2057 | 41,0,129,A,1 2058 | 42,0,133,A,1 2059 | 42,0,133,B,1 2060 | 42,0,133,C,1 2061 | 42,0,133,B,0 2062 | 42,0,133,B,1 2063 | 42,0,133,A,1 2064 | 42,0,133,B,1 2065 | 42,0,133,A,1 2066 | 42,0,133,B,1 2067 | 42,0,133,A,1 2068 | 42,0,133,B,1 2069 | 42,0,133,A,1 2070 | 42,0,133,A,1 2071 | 42,0,133,B,1 2072 | 42,0,133,A,0 2073 | 42,0,133,A,1 2074 | 42,0,133,C,1 2075 | 42,0,133,C,1 2076 | 42,0,133,B,1 2077 | 42,0,133,B,1 2078 | 42,0,133,A,1 2079 | 42,0,133,C,1 2080 | 42,0,133,A,1 2081 | 42,0,133,A,1 2082 | 42,0,133,B,0 2083 | 42,0,133,C,1 2084 | 42,0,133,B,1 2085 | 42,0,133,A,0 2086 | 42,0,133,B,1 2087 | 42,0,133,C,0 2088 | 42,0,133,A,1 2089 | 42,0,133,C,0 2090 | 43,0,122,B,1 2091 | 43,0,122,A,1 2092 | 43,0,122,A,1 2093 | 43,0,122,A,1 2094 | 43,0,122,B,0 2095 | 43,0,122,C,1 2096 | 43,0,122,B,1 2097 | 43,0,122,B,1 2098 | 43,0,122,C,1 2099 | 43,0,122,A,0 2100 | 43,0,122,A,0 2101 | 43,0,122,A,1 2102 | 43,0,122,B,1 2103 | 43,0,122,A,1 2104 | 43,0,122,A,1 2105 | 43,0,122,A,1 2106 | 43,0,122,B,1 2107 | 43,0,122,A,1 2108 | 43,0,122,B,1 2109 | 43,0,122,A,0 2110 | 43,0,122,B,1 2111 | 43,0,122,B,1 2112 | 43,0,122,A,1 2113 | 43,0,122,A,0 2114 | 43,0,122,A,0 2115 | 43,0,122,B,0 2116 | 43,0,122,B,0 2117 | 43,0,122,B,1 2118 | 43,0,122,A,0 2119 | 43,0,122,A,1 2120 | 43,0,122,A,1 2121 | 43,0,122,C,1 2122 | 43,0,122,C,1 2123 | 43,0,122,A,1 2124 | 43,0,122,B,1 2125 | 43,0,122,A,1 2126 | 43,0,122,B,1 2127 | 43,0,122,A,0 2128 | 43,0,122,C,1 2129 | 43,0,122,A,0 2130 | 43,0,122,A,0 2131 | 43,0,122,B,0 2132 | 43,0,122,C,0 2133 | 43,0,122,C,0 2134 | 43,0,122,A,1 2135 | 43,0,122,B,1 2136 | 43,0,122,A,0 2137 | 43,0,122,B,1 2138 | 43,0,122,C,1 2139 | 43,0,122,A,1 2140 | 43,0,122,A,0 2141 | 43,0,122,A,1 2142 | 43,0,122,C,1 2143 | 44,0,148,B,0 2144 | 44,0,148,A,1 2145 | 44,0,148,C,1 2146 | 44,0,148,C,1 2147 | 44,0,148,B,1 2148 | 44,0,148,A,1 2149 | 44,0,148,A,0 2150 | 44,0,148,A,1 2151 | 44,0,148,A,1 2152 | 44,0,148,B,1 2153 | 44,0,148,A,1 2154 | 44,0,148,A,1 2155 | 44,0,148,B,1 2156 | 44,0,148,A,1 2157 | 44,0,148,B,1 2158 | 44,0,148,C,1 2159 | 44,0,148,B,1 2160 | 44,0,148,B,0 2161 | 44,0,148,A,1 2162 | 44,0,148,A,0 2163 | 44,0,148,C,1 2164 | 44,0,148,A,1 2165 | 44,0,148,C,0 2166 | 44,0,148,B,1 2167 | 44,0,148,A,1 2168 | 44,0,148,A,1 2169 | 44,0,148,B,0 2170 | 44,0,148,A,1 2171 | 44,0,148,A,1 2172 | 44,0,148,B,1 2173 | 44,0,148,A,0 2174 | 45,0,182,A,0 2175 | 45,0,182,A,1 2176 | 45,0,182,B,1 2177 | 45,0,182,C,1 2178 | 45,0,182,A,1 2179 | 45,0,182,A,1 2180 | 45,0,182,A,1 2181 | 45,0,182,A,1 2182 | 45,0,182,C,1 2183 | 45,0,182,B,1 2184 | 45,0,182,B,1 2185 | 45,0,182,B,1 2186 | 45,0,182,A,1 2187 | 45,0,182,B,1 2188 | 45,0,182,A,1 2189 | 45,0,182,A,1 2190 | 45,0,182,A,1 2191 | 45,0,182,A,1 2192 | 45,0,182,A,1 2193 | 45,0,182,A,1 2194 | 45,0,182,C,1 2195 | 45,0,182,A,1 2196 | 45,0,182,A,1 2197 | 46,0,105,A,1 2198 | 46,0,105,A,1 2199 | 46,0,105,A,0 2200 | 46,0,105,A,0 2201 | 46,0,105,B,0 2202 | 46,0,105,C,1 2203 | 46,0,105,B,0 2204 | 46,0,105,C,1 2205 | 46,0,105,A,1 2206 | 46,0,105,A,0 2207 | 46,0,105,A,0 2208 | 46,0,105,A,1 2209 | 46,0,105,A,1 2210 | 46,0,105,B,0 2211 | 46,0,105,A,1 2212 | 46,0,105,A,0 2213 | 46,0,105,B,1 2214 | 46,0,105,A,1 2215 | 46,0,105,A,1 2216 | 46,0,105,A,1 2217 | 46,0,105,C,0 2218 | 46,0,105,B,0 2219 | 46,0,105,B,1 2220 | 46,0,105,B,1 2221 | 46,0,105,B,1 2222 | 46,0,105,A,1 2223 | 46,0,105,C,0 2224 | 46,0,105,C,0 2225 | 46,0,105,A,1 2226 | 46,0,105,C,1 2227 | 46,0,105,C,0 2228 | 46,0,105,A,1 2229 | 46,0,105,A,1 2230 | 46,0,105,B,1 2231 | 46,0,105,B,1 2232 | 46,0,105,C,0 2233 | 46,0,105,A,1 2234 | 46,0,105,A,1 2235 | 46,0,105,A,1 2236 | 46,0,105,C,1 2237 | 46,0,105,C,0 2238 | 46,0,105,A,1 2239 | 46,0,105,C,1 2240 | 46,0,105,B,1 2241 | 46,0,105,A,0 2242 | 46,0,105,B,1 2243 | 46,0,105,A,1 2244 | 46,0,105,A,1 2245 | 46,0,105,A,1 2246 | 46,0,105,A,0 2247 | 46,0,105,C,1 2248 | 47,0,51,C,0 2249 | 47,0,51,B,0 2250 | 47,0,51,B,1 2251 | 47,0,51,B,1 2252 | 47,0,51,A,1 2253 | 47,0,51,B,1 2254 | 47,0,51,A,1 2255 | 47,0,51,B,0 2256 | 47,0,51,B,1 2257 | 47,0,51,B,0 2258 | 47,0,51,A,0 2259 | 47,0,51,A,1 2260 | 47,0,51,B,0 2261 | 47,0,51,B,0 2262 | 47,0,51,A,0 2263 | 47,0,51,A,0 2264 | 47,0,51,A,0 2265 | 47,0,51,B,1 2266 | 47,0,51,A,1 2267 | 47,0,51,C,0 2268 | 47,0,51,B,1 2269 | 47,0,51,A,0 2270 | 48,0,150,A,1 2271 | 48,0,150,B,1 2272 | 48,0,150,B,1 2273 | 48,0,150,A,1 2274 | 48,0,150,A,1 2275 | 48,0,150,C,1 2276 | 48,0,150,A,0 2277 | 48,0,150,B,0 2278 | 48,0,150,A,1 2279 | 48,0,150,A,1 2280 | 48,0,150,B,1 2281 | 48,0,150,B,1 2282 | 48,0,150,A,1 2283 | 48,0,150,B,1 2284 | 48,0,150,C,1 2285 | 48,0,150,B,0 2286 | 48,0,150,A,1 2287 | 48,0,150,B,1 2288 | 48,0,150,C,1 2289 | 48,0,150,C,1 2290 | 48,0,150,A,0 2291 | 48,0,150,A,1 2292 | 48,0,150,C,0 2293 | 48,0,150,B,1 2294 | 48,0,150,B,0 2295 | 48,0,150,C,0 2296 | 48,0,150,B,1 2297 | 48,0,150,A,1 2298 | 48,0,150,A,0 2299 | 48,0,150,A,0 2300 | 48,0,150,A,1 2301 | 48,0,150,B,1 2302 | 48,0,150,B,1 2303 | 48,0,150,A,1 2304 | 48,0,150,B,1 2305 | 48,0,150,C,1 2306 | 48,0,150,A,1 2307 | 48,0,150,A,1 2308 | 49,0,99,B,0 2309 | 49,0,99,C,1 2310 | 49,0,99,A,1 2311 | 49,0,99,A,1 2312 | 49,0,99,C,1 2313 | 49,0,99,A,1 2314 | 49,0,99,A,1 2315 | 49,0,99,A,1 2316 | 49,0,99,B,1 2317 | 49,0,99,C,0 2318 | 49,0,99,B,1 2319 | 49,0,99,A,1 2320 | 49,0,99,A,1 2321 | 49,0,99,B,0 2322 | 49,0,99,A,1 2323 | 49,0,99,C,1 2324 | 49,0,99,A,1 2325 | 49,0,99,A,1 2326 | 49,0,99,B,1 2327 | 49,0,99,A,1 2328 | 49,0,99,C,1 2329 | 49,0,99,B,1 2330 | 49,0,99,A,1 2331 | 50,1,99,B,0 2332 | 50,1,99,A,0 2333 | 50,1,99,A,1 2334 | 50,1,99,A,1 2335 | 50,1,99,A,0 2336 | 50,1,99,B,1 2337 | 50,1,99,B,1 2338 | 50,1,99,C,0 2339 | 50,1,99,B,0 2340 | 50,1,99,B,1 2341 | 50,1,99,C,0 2342 | 50,1,99,A,1 2343 | 50,1,99,A,1 2344 | 50,1,99,A,1 2345 | 50,1,99,A,0 2346 | 50,1,99,B,1 2347 | 50,1,99,C,1 2348 | 50,1,99,A,1 2349 | 50,1,99,A,0 2350 | 50,1,99,A,1 2351 | 50,1,99,A,0 2352 | 50,1,99,B,1 2353 | 50,1,99,A,1 2354 | 50,1,99,B,0 2355 | 50,1,99,A,0 2356 | 50,1,99,B,0 2357 | 50,1,99,B,0 2358 | 50,1,99,A,1 2359 | 50,1,99,A,0 2360 | 50,1,99,A,1 2361 | 50,1,99,A,1 2362 | 50,1,99,B,0 2363 | 50,1,99,B,0 2364 | 50,1,99,A,1 2365 | 50,1,99,C,1 2366 | 50,1,99,A,0 2367 | 50,1,99,B,1 2368 | 50,1,99,A,0 2369 | 50,1,99,A,1 2370 | 50,1,99,B,1 2371 | 50,1,99,C,0 2372 | 50,1,99,C,1 2373 | 50,1,99,A,1 2374 | 50,1,99,B,1 2375 | 50,1,99,A,1 2376 | 50,1,99,B,1 2377 | 50,1,99,A,1 2378 | 50,1,99,C,0 2379 | 50,1,99,A,1 2380 | 50,1,99,A,1 2381 | 50,1,99,A,1 2382 | 50,1,99,A,1 2383 | 50,1,99,A,1 2384 | 50,1,99,B,1 2385 | 50,1,99,C,1 2386 | 50,1,99,B,0 2387 | 50,1,99,B,1 2388 | 50,1,99,A,0 2389 | 50,1,99,A,1 2390 | 50,1,99,A,1 2391 | 50,1,99,B,1 2392 | 50,1,99,C,0 2393 | 50,1,99,B,1 2394 | 50,1,99,A,1 2395 | 50,1,99,A,1 2396 | 50,1,99,C,1 2397 | 50,1,99,C,0 2398 | -------------------------------------------------------------------------------- /chap05/input/data3a.csv: -------------------------------------------------------------------------------- 1 | y,x,f 2 | 6,8.31,C 3 | 6,9.44,C 4 | 6,9.5,C 5 | 12,9.07,C 6 | 10,10.16,C 7 | 4,8.32,C 8 | 9,10.61,C 9 | 9,10.06,C 10 | 9,9.93,C 11 | 11,10.43,C 12 | 6,10.36,C 13 | 10,10.15,C 14 | 6,10.92,C 15 | 10,8.85,C 16 | 11,9.42,C 17 | 8,11.11,C 18 | 3,8.02,C 19 | 8,11.93,C 20 | 5,8.55,C 21 | 5,7.19,C 22 | 4,9.83,C 23 | 11,10.79,C 24 | 5,8.89,C 25 | 10,10.09,C 26 | 6,11.63,C 27 | 6,10.21,C 28 | 7,9.45,C 29 | 9,10.44,C 30 | 3,9.44,C 31 | 10,10.48,C 32 | 2,9.43,C 33 | 9,10.32,C 34 | 10,10.33,C 35 | 5,8.5,C 36 | 11,9.41,C 37 | 10,8.96,C 38 | 4,9.67,C 39 | 8,10.26,C 40 | 9,10.36,C 41 | 12,11.8,C 42 | 8,10.94,C 43 | 9,10.25,C 44 | 8,8.74,C 45 | 6,10.46,C 46 | 6,9.37,C 47 | 10,9.74,C 48 | 10,8.95,C 49 | 9,8.74,C 50 | 12,11.32,C 51 | 6,9.25,C 52 | 14,10.14,T 53 | 6,9.05,T 54 | 7,9.89,T 55 | 9,8.76,T 56 | 6,12.04,T 57 | 7,9.91,T 58 | 9,9.84,T 59 | 13,11.87,T 60 | 9,10.16,T 61 | 13,9.34,T 62 | 7,10.17,T 63 | 8,10.99,T 64 | 10,9.19,T 65 | 7,10.67,T 66 | 12,10.96,T 67 | 6,10.55,T 68 | 15,9.69,T 69 | 3,10.91,T 70 | 4,9.6,T 71 | 6,12.37,T 72 | 10,10.54,T 73 | 8,11.3,T 74 | 8,12.4,T 75 | 7,10.18,T 76 | 5,9.53,T 77 | 6,10.24,T 78 | 8,11.76,T 79 | 9,9.52,T 80 | 9,10.4,T 81 | 6,9.96,T 82 | 7,10.3,T 83 | 10,11.54,T 84 | 6,9.42,T 85 | 11,11.28,T 86 | 11,9.73,T 87 | 11,10.78,T 88 | 5,10.21,T 89 | 6,10.51,T 90 | 4,10.73,T 91 | 5,8.85,T 92 | 6,11.2,T 93 | 5,9.86,T 94 | 8,11.54,T 95 | 5,10.03,T 96 | 9,11.88,T 97 | 8,9.15,T 98 | 6,8.52,T 99 | 8,10.24,T 100 | 7,10.86,T 101 | 9,9.97,T 102 | -------------------------------------------------------------------------------- /chap05/input/data4a.csv: -------------------------------------------------------------------------------- 1 | N,y,x,f 2 | 8,1,9.76,C 3 | 8,6,10.48,C 4 | 8,5,10.83,C 5 | 8,6,10.94,C 6 | 8,1,9.37,C 7 | 8,1,8.81,C 8 | 8,3,9.49,C 9 | 8,6,11.02,C 10 | 8,0,7.97,C 11 | 8,8,11.55,C 12 | 8,0,9.46,C 13 | 8,2,9.47,C 14 | 8,0,8.71,C 15 | 8,5,10.42,C 16 | 8,3,10.06,C 17 | 8,6,11,C 18 | 8,3,9.95,C 19 | 8,4,9.52,C 20 | 8,5,10.26,C 21 | 8,8,11.33,C 22 | 8,5,9.77,C 23 | 8,8,10.59,C 24 | 8,1,9.35,C 25 | 8,4,10,C 26 | 8,1,9.53,C 27 | 8,8,12.06,C 28 | 8,4,9.68,C 29 | 8,7,11.32,C 30 | 8,5,10.48,C 31 | 8,5,10.37,C 32 | 8,8,11.33,C 33 | 8,1,9.42,C 34 | 8,7,10.68,C 35 | 8,1,7.91,C 36 | 8,3,9.39,C 37 | 8,8,11.65,C 38 | 8,6,10.66,C 39 | 8,7,11.23,C 40 | 8,7,10.57,C 41 | 8,4,10.42,C 42 | 8,7,11.73,C 43 | 8,8,12.02,C 44 | 8,8,11.55,C 45 | 8,0,8.58,C 46 | 8,6,11.08,C 47 | 8,5,10.49,C 48 | 8,8,11.12,C 49 | 8,3,8.99,C 50 | 8,8,10.08,C 51 | 8,8,10.8,C 52 | 8,0,7.83,T 53 | 8,5,8.88,T 54 | 8,5,9.74,T 55 | 8,8,9.98,T 56 | 8,3,8.46,T 57 | 8,2,7.96,T 58 | 8,7,9.78,T 59 | 8,8,11.93,T 60 | 8,3,9.04,T 61 | 8,5,10.14,T 62 | 8,8,11.01,T 63 | 8,3,8.88,T 64 | 8,6,9.68,T 65 | 8,7,9.8,T 66 | 8,8,10.76,T 67 | 8,6,9.81,T 68 | 8,5,8.37,T 69 | 8,5,9.38,T 70 | 8,0,7.68,T 71 | 8,8,10.23,T 72 | 8,8,9.83,T 73 | 8,0,7.66,T 74 | 8,6,9.33,T 75 | 8,1,8.2,T 76 | 8,8,9.54,T 77 | 8,8,10.55,T 78 | 8,6,9.88,T 79 | 8,6,9.34,T 80 | 8,6,10.38,T 81 | 8,6,9.63,T 82 | 8,8,12.44,T 83 | 8,8,10.17,T 84 | 8,7,9.29,T 85 | 8,8,11.17,T 86 | 8,6,9.13,T 87 | 8,2,8.79,T 88 | 8,0,8.19,T 89 | 8,7,10.25,T 90 | 8,8,11.3,T 91 | 8,8,10.84,T 92 | 8,8,10.97,T 93 | 8,3,8.6,T 94 | 8,7,9.91,T 95 | 8,8,11.38,T 96 | 8,8,10.39,T 97 | 8,7,10.45,T 98 | 8,0,8.94,T 99 | 8,5,8.94,T 100 | 8,8,10.14,T 101 | 8,1,8.5,T 102 | -------------------------------------------------------------------------------- /chap07/7-3-2.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "%matplotlib inline\n", 10 | "import matplotlib.pyplot as plt\n", 11 | "import seaborn as sns\n", 12 | "import pandas as pd\n", 13 | "import numpy as np\n", 14 | "import statsmodels.api as sm\n", 15 | "from scipy import stats\n", 16 | "\n", 17 | "import torch\n", 18 | "import pyro\n", 19 | "from pyro import distributions as dist\n", 20 | "from pyro.infer.mcmc import NUTS, MCMC\n", 21 | "from pyro.infer.abstract_infer import EmpiricalMarginal, TracePredictive" 22 | ] 23 | }, 24 | { 25 | "cell_type": "code", 26 | "execution_count": 2, 27 | "metadata": {}, 28 | "outputs": [], 29 | "source": [ 30 | "data = pd.read_csv(\"input/data-conc.txt\")" 31 | ] 32 | }, 33 | { 34 | "cell_type": "code", 35 | "execution_count": 3, 36 | "metadata": {}, 37 | "outputs": [ 38 | { 39 | "data": { 40 | "text/html": [ 41 | "
\n", 42 | "\n", 55 | "\n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | "
TimeY
012.4
125.0
247.5
3811.9
41212.5
52412.7
\n", 96 | "
" 97 | ], 98 | "text/plain": [ 99 | " Time Y\n", 100 | "0 1 2.4\n", 101 | "1 2 5.0\n", 102 | "2 4 7.5\n", 103 | "3 8 11.9\n", 104 | "4 12 12.5\n", 105 | "5 24 12.7" 106 | ] 107 | }, 108 | "execution_count": 3, 109 | "metadata": {}, 110 | "output_type": "execute_result" 111 | } 112 | ], 113 | "source": [ 114 | "data" 115 | ] 116 | }, 117 | { 118 | "cell_type": "code", 119 | "execution_count": 7, 120 | "metadata": {}, 121 | "outputs": [ 122 | { 123 | "data": { 124 | "text/plain": [ 125 | "[]" 126 | ] 127 | }, 128 | "execution_count": 7, 129 | "metadata": {}, 130 | "output_type": "execute_result" 131 | }, 132 | { 133 | "data": { 134 | "image/png": "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\n", 135 | "text/plain": [ 136 | "
" 137 | ] 138 | }, 139 | "metadata": { 140 | "needs_background": "light" 141 | }, 142 | "output_type": "display_data" 143 | } 144 | ], 145 | "source": [ 146 | "data.plot(kind='scatter', x=\"Time\", y=\"Y\")\n", 147 | "plt.plot(data.Time, data.Y)" 148 | ] 149 | }, 150 | { 151 | "cell_type": "code", 152 | "execution_count": 9, 153 | "metadata": {}, 154 | "outputs": [], 155 | "source": [ 156 | "time = torch.tensor(data.Time).float()\n", 157 | "y = torch.tensor(data.Y)" 158 | ] 159 | }, 160 | { 161 | "cell_type": "markdown", 162 | "metadata": {}, 163 | "source": [ 164 | "## モデル式\n", 165 | "$$\\mu_t = a \\{ 1 - \\exp (-b Time_t)\\}$$\n", 166 | "$$Y_t \\sim Normal(\\mu_t, \\sigma_Y)$$" 167 | ] 168 | }, 169 | { 170 | "cell_type": "code", 171 | "execution_count": 8, 172 | "metadata": {}, 173 | "outputs": [], 174 | "source": [ 175 | "def model(time, y):\n", 176 | " a = pyro.sample(\"a\", dist.Uniform(0, 100))\n", 177 | " b = pyro.sample(\"b\", dist.Uniform(0, 5))\n", 178 | " sigma = pyro.sample(\"sigma\", dist.Uniform(0, 100))\n", 179 | " \n", 180 | " mu = a * (1 - torch.exp(- b * time))\n", 181 | " with pyro.plate(\"data\", len(time)):\n", 182 | " pyro.sample(\"obs\", dist.Normal(mu, sigma), obs=y)" 183 | ] 184 | }, 185 | { 186 | "cell_type": "code", 187 | "execution_count": 10, 188 | "metadata": {}, 189 | "outputs": [ 190 | { 191 | "data": { 192 | "application/vnd.jupyter.widget-view+json": { 193 | "model_id": "4978035c72da4d19ad991a3a87bbdab8", 194 | "version_major": 2, 195 | "version_minor": 0 196 | }, 197 | "text/plain": [ 198 | "HBox(children=(IntProgress(value=0, description='Warmup [1]', max=2000, style=ProgressStyle(description_width=…" 199 | ] 200 | }, 201 | "metadata": {}, 202 | "output_type": "display_data" 203 | }, 204 | { 205 | "data": { 206 | "application/vnd.jupyter.widget-view+json": { 207 | "model_id": "e4da491ecdd74eb09079d508c3e41c80", 208 | "version_major": 2, 209 | "version_minor": 0 210 | }, 211 | "text/plain": [ 212 | "HBox(children=(IntProgress(value=0, description='Warmup [2]', max=2000, style=ProgressStyle(description_width=…" 213 | ] 214 | }, 215 | "metadata": {}, 216 | "output_type": "display_data" 217 | }, 218 | { 219 | "data": { 220 | "application/vnd.jupyter.widget-view+json": { 221 | "model_id": "2e9f9166f0344701bf547a6512939134", 222 | "version_major": 2, 223 | "version_minor": 0 224 | }, 225 | "text/plain": [ 226 | "HBox(children=(IntProgress(value=0, description='Warmup [3]', max=2000, style=ProgressStyle(description_width=…" 227 | ] 228 | }, 229 | "metadata": {}, 230 | "output_type": "display_data" 231 | }, 232 | { 233 | "data": { 234 | "application/vnd.jupyter.widget-view+json": { 235 | "model_id": "d66005da0dde4240b5128745fde6e117", 236 | "version_major": 2, 237 | "version_minor": 0 238 | }, 239 | "text/plain": [ 240 | "HBox(children=(IntProgress(value=0, description='Warmup [4]', max=2000, style=ProgressStyle(description_width=…" 241 | ] 242 | }, 243 | "metadata": {}, 244 | "output_type": "display_data" 245 | } 246 | ], 247 | "source": [ 248 | "kernel = NUTS(model, adapt_step_size=True, jit_compile=True, ignore_jit_warnings=True)\n", 249 | "posterior = MCMC(kernel, num_chains=4, num_samples=1000, warmup_steps=1000).run(time, y)" 250 | ] 251 | }, 252 | { 253 | "cell_type": "code", 254 | "execution_count": 12, 255 | "metadata": {}, 256 | "outputs": [], 257 | "source": [ 258 | "sites = [\"a\", \"b\", \"sigma\"]\n", 259 | "marginal = pd.DataFrame(EmpiricalMarginal(posterior, sites)._get_samples_and_weights()[0].reshape(-1, len(sites)).numpy(), columns=sites)" 260 | ] 261 | }, 262 | { 263 | "cell_type": "code", 264 | "execution_count": 17, 265 | "metadata": {}, 266 | "outputs": [ 267 | { 268 | "data": { 269 | "text/html": [ 270 | "
\n", 271 | "\n", 284 | "\n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | " \n", 321 | "
0.0250.250.50.750.975
a11.67436412.74187813.11975913.47324614.566420
b0.1771170.2202260.2387230.2592840.358479
sigma0.3524610.5259440.6919440.9573232.340452
\n", 322 | "
" 323 | ], 324 | "text/plain": [ 325 | " 0.025 0.250 0.500 0.750 0.975\n", 326 | "a 11.674364 12.741878 13.119759 13.473246 14.566420\n", 327 | "b 0.177117 0.220226 0.238723 0.259284 0.358479\n", 328 | "sigma 0.352461 0.525944 0.691944 0.957323 2.340452" 329 | ] 330 | }, 331 | "execution_count": 17, 332 | "metadata": {}, 333 | "output_type": "execute_result" 334 | } 335 | ], 336 | "source": [ 337 | "marginal.quantile([0.025, 0.25, 0.5, 0.75, 0.975]).T" 338 | ] 339 | }, 340 | { 341 | "cell_type": "code", 342 | "execution_count": 19, 343 | "metadata": {}, 344 | "outputs": [], 345 | "source": [ 346 | "def pred_model(time):\n", 347 | " a = pyro.sample(\"a\", dist.Uniform(0, 100))\n", 348 | " b = pyro.sample(\"b\", dist.Uniform(0, 5))\n", 349 | " sigma = pyro.sample(\"sigma\", dist.Uniform(0, 100))\n", 350 | " \n", 351 | " mu = a * (1 - torch.exp(- b * time))\n", 352 | " pyro.sample(\"y\", dist.Normal(mu, sigma))\n", 353 | "predictive = TracePredictive(pred_model, posterior, num_samples=1000).run(torch.arange(0, 25).float())\n", 354 | "pred_samples = pd.DataFrame(EmpiricalMarginal(predictive, \"y\")._get_samples_and_weights()[0].numpy())" 355 | ] 356 | }, 357 | { 358 | "cell_type": "code", 359 | "execution_count": 21, 360 | "metadata": {}, 361 | "outputs": [ 362 | { 363 | "data": { 364 | "text/plain": [ 365 | "" 366 | ] 367 | }, 368 | "execution_count": 21, 369 | "metadata": {}, 370 | "output_type": "execute_result" 371 | }, 372 | { 373 | "data": { 374 | "image/png": "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\n", 375 | "text/plain": [ 376 | "
" 377 | ] 378 | }, 379 | "metadata": { 380 | "needs_background": "light" 381 | }, 382 | "output_type": "display_data" 383 | } 384 | ], 385 | "source": [ 386 | "data.plot(kind='scatter', x=\"Time\", y=\"Y\")\n", 387 | "plt.plot(np.arange(0, 25), pred_samples.mean(0).values)\n", 388 | "plt.fill_between(np.arange(0, 25), pred_samples.quantile(0.1).values, pred_samples.quantile(0.9).values, color='blue', alpha=0.1)\n", 389 | "plt.fill_between(np.arange(0, 25), pred_samples.quantile(0.25).values, pred_samples.quantile(0.75).values, color='blue', alpha=0.2)" 390 | ] 391 | }, 392 | { 393 | "cell_type": "code", 394 | "execution_count": null, 395 | "metadata": {}, 396 | "outputs": [], 397 | "source": [] 398 | } 399 | ], 400 | "metadata": { 401 | "kernelspec": { 402 | "display_name": "Python 3", 403 | "language": "python", 404 | "name": "python3" 405 | }, 406 | "language_info": { 407 | "codemirror_mode": { 408 | "name": "ipython", 409 | "version": 3 410 | }, 411 | "file_extension": ".py", 412 | "mimetype": "text/x-python", 413 | "name": "python", 414 | "nbconvert_exporter": "python", 415 | "pygments_lexer": "ipython3", 416 | "version": "3.7.1" 417 | } 418 | }, 419 | "nbformat": 4, 420 | "nbformat_minor": 2 421 | } 422 | -------------------------------------------------------------------------------- /chap07/7-5.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "%matplotlib inline\n", 10 | "import matplotlib.pyplot as plt\n", 11 | "import seaborn as sns\n", 12 | "import pandas as pd\n", 13 | "import numpy as np\n", 14 | "import statsmodels.api as sm\n", 15 | "from scipy import stats\n", 16 | "\n", 17 | "import torch\n", 18 | "import pyro\n", 19 | "from pyro import distributions as dist\n", 20 | "from pyro.infer.mcmc import NUTS, MCMC\n", 21 | "from pyro.infer.abstract_infer import EmpiricalMarginal, TracePredictive" 22 | ] 23 | }, 24 | { 25 | "cell_type": "code", 26 | "execution_count": 2, 27 | "metadata": {}, 28 | "outputs": [], 29 | "source": [ 30 | "data = pd.read_csv(\"input/data-50m.txt\")" 31 | ] 32 | }, 33 | { 34 | "cell_type": "code", 35 | "execution_count": 3, 36 | "metadata": {}, 37 | "outputs": [ 38 | { 39 | "data": { 40 | "text/html": [ 41 | "
\n", 42 | "\n", 55 | "\n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | "
YWeightAge
02.4616.67
13.0221.47
22.9124.07
33.0513.07
42.6021.97
\n", 97 | "
" 98 | ], 99 | "text/plain": [ 100 | " Y Weight Age\n", 101 | "0 2.46 16.6 7\n", 102 | "1 3.02 21.4 7\n", 103 | "2 2.91 24.0 7\n", 104 | "3 3.05 13.0 7\n", 105 | "4 2.60 21.9 7" 106 | ] 107 | }, 108 | "execution_count": 3, 109 | "metadata": {}, 110 | "output_type": "execute_result" 111 | } 112 | ], 113 | "source": [ 114 | "data.head()" 115 | ] 116 | }, 117 | { 118 | "cell_type": "code", 119 | "execution_count": 4, 120 | "metadata": {}, 121 | "outputs": [ 122 | { 123 | "data": { 124 | "text/plain": [ 125 | "" 126 | ] 127 | }, 128 | "execution_count": 4, 129 | "metadata": {}, 130 | "output_type": "execute_result" 131 | }, 132 | { 133 | "data": { 134 | "image/png": "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\n", 135 | "text/plain": [ 136 | "
" 137 | ] 138 | }, 139 | "metadata": { 140 | "needs_background": "light" 141 | }, 142 | "output_type": "display_data" 143 | } 144 | ], 145 | "source": [ 146 | "sns.scatterplot(x=\"Weight\", y=\"Y\", data=data, hue=\"Age\")" 147 | ] 148 | }, 149 | { 150 | "cell_type": "code", 151 | "execution_count": 5, 152 | "metadata": {}, 153 | "outputs": [], 154 | "source": [ 155 | "y = torch.tensor(data.Y)\n", 156 | "weight = torch.tensor(data.Weight)\n", 157 | "age = torch.tensor(data.Age).float()" 158 | ] 159 | }, 160 | { 161 | "cell_type": "markdown", 162 | "metadata": {}, 163 | "source": [ 164 | "## モデル式\n", 165 | "\n", 166 | "$$\\mu_{weight}[n] = c_1 + c_2 Age[n]$$\n", 167 | "$$Weight[n] \\sim Normal(\\mu_{weight}[n], \\sigma_W)$$\n", 168 | "$$\\mu_Y[n] = b_1 + b2 Age[n] + b_3 Weight[n]$$\n", 169 | "$$Y[n] \\sim Normal(\\mu_Y[n], \\sigma_Y)$$" 170 | ] 171 | }, 172 | { 173 | "cell_type": "code", 174 | "execution_count": 6, 175 | "metadata": {}, 176 | "outputs": [], 177 | "source": [ 178 | "def model(weight, age, y):\n", 179 | " c1 = pyro.sample(\"c1\", dist.Normal(0, 10))\n", 180 | " c2 = pyro.sample(\"c2\", dist.Normal(0, 10))\n", 181 | " sigma_w = pyro.sample(\"sigma_w\", dist.Uniform(0, 100))\n", 182 | " \n", 183 | " b1 = pyro.sample(\"b1\", dist.Normal(0, 10))\n", 184 | " b2 = pyro.sample(\"b2\", dist.Normal(0, 10))\n", 185 | " b3 = pyro.sample(\"b3\", dist.Normal(0, 10))\n", 186 | " sigma_y = pyro.sample(\"sigma_y\", dist.Uniform(0, 100))\n", 187 | " \n", 188 | " mu_w = c1 + c2 * age\n", 189 | " weight = pyro.sample(\"weight\", dist.Normal(mu_w, sigma_w))\n", 190 | " mu_y = b1 + b2 * age + b3 * weight\n", 191 | " with pyro.plate(\"data\", len(weight)):\n", 192 | " pyro.sample(\"obs\", dist.Normal(mu_y, sigma_y), obs=y)" 193 | ] 194 | }, 195 | { 196 | "cell_type": "code", 197 | "execution_count": null, 198 | "metadata": {}, 199 | "outputs": [], 200 | "source": [ 201 | "kernel = NUTS(model, adapt_step_size=False, step_size=0.05, jit_compile=True, ignore_jit_warnings=True)\n", 202 | "posterior = MCMC(kernel, num_chains=4, num_samples=1000, warmup_steps=1000).run(weight, age, y) # 終わらない" 203 | ] 204 | }, 205 | { 206 | "cell_type": "code", 207 | "execution_count": null, 208 | "metadata": {}, 209 | "outputs": [], 210 | "source": [ 211 | "sites = [\"c1\", \"c2\", \"sigma_w\", \"b1\", \"b2\", \"b3\", \"sigma_y\"]\n", 212 | "marginal = pd.DataFrame(EmpiricalMarginal(posterior, sites)._get_samples_and_weights()[0].reshape(-1, len(sites)).numpy(), columns=sites)" 213 | ] 214 | }, 215 | { 216 | "cell_type": "code", 217 | "execution_count": null, 218 | "metadata": {}, 219 | "outputs": [], 220 | "source": [ 221 | "marginal.quantile([0.025, 0.25, 0.5, 0.75, 0.975]).T" 222 | ] 223 | }, 224 | { 225 | "cell_type": "code", 226 | "execution_count": null, 227 | "metadata": {}, 228 | "outputs": [], 229 | "source": [ 230 | "marginal.c2.plot()" 231 | ] 232 | }, 233 | { 234 | "cell_type": "code", 235 | "execution_count": null, 236 | "metadata": {}, 237 | "outputs": [], 238 | "source": [] 239 | } 240 | ], 241 | "metadata": { 242 | "kernelspec": { 243 | "display_name": "Python 3", 244 | "language": "python", 245 | "name": "python3" 246 | }, 247 | "language_info": { 248 | "codemirror_mode": { 249 | "name": "ipython", 250 | "version": 3 251 | }, 252 | "file_extension": ".py", 253 | "mimetype": "text/x-python", 254 | "name": "python", 255 | "nbconvert_exporter": "python", 256 | "pygments_lexer": "ipython3", 257 | "version": "3.7.1" 258 | } 259 | }, 260 | "nbformat": 4, 261 | "nbformat_minor": 2 262 | } 263 | -------------------------------------------------------------------------------- /chap07/7-7.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "%matplotlib inline\n", 10 | "import matplotlib.pyplot as plt\n", 11 | "import seaborn as sns\n", 12 | "import pandas as pd\n", 13 | "import numpy as np\n", 14 | "import statsmodels.api as sm\n", 15 | "from scipy import stats\n", 16 | "\n", 17 | "import torch\n", 18 | "import pyro\n", 19 | "from pyro import distributions as dist\n", 20 | "from pyro.infer.mcmc import NUTS, MCMC\n", 21 | "from pyro.infer.abstract_infer import EmpiricalMarginal, TracePredictive" 22 | ] 23 | }, 24 | { 25 | "cell_type": "code", 26 | "execution_count": 2, 27 | "metadata": {}, 28 | "outputs": [], 29 | "source": [ 30 | "data = pd.read_csv(\"../chap04/input/data-salary.txt\")" 31 | ] 32 | }, 33 | { 34 | "cell_type": "code", 35 | "execution_count": 3, 36 | "metadata": {}, 37 | "outputs": [ 38 | { 39 | "data": { 40 | "text/html": [ 41 | "
\n", 42 | "\n", 55 | "\n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | "
XY
024472
124403
226454
332575
433546
\n", 91 | "
" 92 | ], 93 | "text/plain": [ 94 | " X Y\n", 95 | "0 24 472\n", 96 | "1 24 403\n", 97 | "2 26 454\n", 98 | "3 32 575\n", 99 | "4 33 546" 100 | ] 101 | }, 102 | "execution_count": 3, 103 | "metadata": {}, 104 | "output_type": "execute_result" 105 | } 106 | ], 107 | "source": [ 108 | "data.head()" 109 | ] 110 | }, 111 | { 112 | "cell_type": "code", 113 | "execution_count": 4, 114 | "metadata": {}, 115 | "outputs": [ 116 | { 117 | "data": { 118 | "text/plain": [ 119 | "" 120 | ] 121 | }, 122 | "execution_count": 4, 123 | "metadata": {}, 124 | "output_type": "execute_result" 125 | }, 126 | { 127 | "data": { 128 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEKCAYAAAAFJbKyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAFetJREFUeJzt3X+QHGd95/H3d+P1akEcyLtrnS3ZcSlKJfyIUOwFO7eEu0ocB0IiEmRyofDlUtiYyyXkcK4k4QpFXR1/UFqukhAgVTZ2QVzYhU0UIwcqIYmFj5jYsleOLFIBkvOdwVIceS3kYB3Ses1874/pPY/W+0Otneme2Xm/qrbU88wzmm+1VvOZ7ufpfiIzkSTpTA3UXYAkqbcYHJKkUgwOSVIpBockqRSDQ5JUisEhSSrF4JAklWJwSJJKMTgkSaWcU3cBnTA6OpqXXHJJ3WVIUk85cODA05k5tly/VRkcl1xyCVNTU3WXIUk9JSK+dSb9PFUlSSrF4JAklWJwSJJKMTgkSaUYHJKkUgwOSVoljp2Y4dEnnuHYiZmOvs+qnI4rSf1m78Ej7NpziMGBAWYbDSa3b2Hb1g0deS+POCSpxx07McOuPYc4Ndvg2ZnnOTXbYOeeQx078jA4JKnHHT5+ksGB0z/OBwcGOHz8ZEfez+CQpB63cd0ws43GaW2zjQYb1w135P0MDknqcSNrh5jcvoU1gwO8bOgc1gwOMLl9CyNrhzryfg6OS9IqsG3rBiY2j3L4+Ek2rhvuWGiAwSFJq8bI2qGOBsYcT1VJkkoxOCRJpRgckqRSDA5JUikGhySpFINDklSKwSFJKsXgkCSVYnBIkkoxOCRJpRgcklSzqlbuaxfvVSVJNapy5b528YhDkmpS9cp97WJwSFJNql65r10MDkmqSdUr97WLwSFJNal65b526fjgeES8BvjDzHxj8fgm4ArgOeDvgesyczYiRoA/AsaAp4H/mJlPR8QA8PvA5UADeG9mTnW6bkmqQpUr97VLR484IuLDwJfmvc9tmfnazHwd8H+BdxbtHwE+lZmXA7cAk0X7NUAU7b8M3NrJmiWpaiNrh3jtRa9YMjS6acpuR4MjM28EJua1fbXl4T8AI8X2G4HPF9t7i8cAVwJ3Fa99AjgaEZs7VbMkdZu9B48wsXsf19yyn4nd+7jn4JFa66ltjCMifoDm0cZfFE1Dmfl9gMxsAINF+wXAUy0vPQpcWFWdklSnbpyyW+fg+CTwl5n5teJxzns+Fnndgu0RcX1ETEXE1PT0dLtqlKRadeOU3VqCIyI+CJwH/E5L83PFUcjc0chs0f4kcH5Lv/VF22ky8+bMHM/M8bGxsc4ULkkV68Ypu5UHR0R8iObpp3dlZutRxv3AtmL7F4C5sZB9wNXFazfSPE31v6qpVpLq1Y1TduP0z+42/+UR7wfeDGwB9gMfBu4FWqfTPpaZ74yIMeDTwChwnOZ03KPF0cdHgdfRPJ11Q2Y+sNT7jo+P59SUM3YlrR7HTsx0fMpuRBzIzPFl+3UyOOpicEhSeWcaHF45LkkqxeCQJJVicEiSSjE4JEmlGBySpFIMDklSKQaHJKkUg0OSVIrBIUkqxeCQpFWiqsWeOr50rCSp8/YePMKuPYcYHBhgttFgcvsWtm3d0JH38ohDknpc1Ys9GRyS1OOqXuzJ4JCkHlf1Yk8GhyT1uKoXe3JwXJI6rIpFmLZt3cDE5tGOvw8YHJLUUVXOdhpZO1TJkrKeqpKkDql6tlNVDA5J6pCqZztVxeCQpA6perZTVQwOSeqQqmc7VcXBcUnqoCpnO1XF4JCkDqtqtlNVPFUlSSrF4JAklWJwSJJKMTgkSaUYHJKkUgwOSVIpBockqRSDQ5JUisEhSSrF4JAklWJwSJJKMTgkqcOOnZjh0See6fkFnOZ0PDgi4jUR8ZWWx5si4ssRsT8i7oiI4aJ9OCJuL9rvi4hNLa/5nYh4qPj5uU7XLEntsvfgESZ27+OaW/YzsXsf9xw8UndJK9bR4IiIDwNfmvc+nwR2ZOblwMPAjqJ9B/BI0f7bRT8i4o3A5cXPzwC7I2JtJ+uWpHZw6dizkJk3AhNzjyPiXGBjZk4VTXcCVxXbVwJ3Fa97BLgwIoaK9s9l078ADwBXdLJuSWoHl45tjzHgOy2PjwIXFtsXAE+1PPc0sH6B9tbX/H8RcX1ETEXE1PT0dFuLltR7umFcwaVjOyPO4rkF2zPz5swcz8zxsbGxlVcmqWd1y7iCS8e2xzRwXsvj9cCTxfaTwPnAE8XjUZpHGnPtra/5n50tU1Kvah1XOEXz2/7OPYeY2Dxaywf2alw6ttIjjsx8DviniLisaHo7cG+xvQ+4GiAiLgWOZuapon17NL2c5pjJ/irrltQ7unFcYWTtEK+96BWrIjSgw0ccEfF+4M3AqyPiz4H3A9cBtxbTcB8H3lV0nyzaHwRmgHcDZOZ9EfGTNMMigBsz87udrFtS71qt4wrdJDKz7hrabnx8PKemppbvKGlVuufgEXbuOcTgwACzjQaT27ewbeuGusvqehFxIDPHl+tX9RiHJHXcahxX6CYGh6RVaWTtkIHRIXVPx5Uk9RiDQ5JUisEhSSrF4JAklWJwSJJKMTgkSaUYHJKkUgwOSVIpBockqRSDQ5JUisEhSSrF4JAklWJwSJJKMTgkSaUYHJKkUgwOSVIpBockqRSDQ5JUisEhqW2OnZjh0See4diJmbpLUQe55riktth78Ai79hxicGCA2UaDye1b2LZ1Q91lqQM84pC0YsdOzLBrzyFOzTZ4duZ5Ts022LnnkEceq9SiwRERI1UWIql3HT5+ksGB0z9OBgcGOHz8ZE0VqZOWOuL4SkT814jwdJakJW1cN8xso3Fa22yjwcZ1wzVVpE5aKjjGgZcAD0XEWyuqR1IPGlk7xOT2LawZHOBlQ+ewZnCAye1bGFk7VHdp6oDIzKU7RKwHPgZcCPzvufbM/NXOlnb2xsfHc2pqqu4ypL5z7MQMh4+fZOO6YUOjB0XEgcwcX67fkqehImIQ+A/AVuAPgK+1pzxJ7dJNH9Yja4dqr0Gdt2hwRMQ7gA8Ce4HxzPxuZVVJOiNOgVUdljrieCvwpsz8VlXFSDpzrVNgT9EcmN655xATm0f91q+OWnRwPDN/xdCQupdTYFUXLwCUepRTYFUXg0M6S3Xfl8kpsKqLF/dJZ6FbBqW3bd3AxObRrplVpf5QyxFHRPxWREwVP5+JiKGIuCwiHoiI/RHxsYgYKPqORMQXivYvRsRoHTVLc7rtvkwja4d47UWvMDRUmcqDIyJ+BHgHcHlxockzwK8BnwL+fWZeDjSAa4qXfAT4VNF+CzBZdc1SKwel1e/qGuN4CXBusf0vwHpgOjO/XbTdCVxVbL8R+Hyxvbd4LNXGQWn1u8qDIzO/CdwBPBgRvwtsAO4FnmrpdpTmLU4AhjLz+8VrG8BgheVKL1L1oHTdg/DSfJUPjkfExcCrgEuBf8PCp56iZXv+zbSCBUTE9cD1ABdffPHKC5WWUNWgdLcMwkut6jhV9cvAw5n5/cz8a5pjGB8Azm/psx54sth+LiJ+AKD4c3ahvzQzb87M8cwcHxsb61z16phe+2bd6UHpbhuEl+bUERyPAW9qWefjdcBfAOdHxEVF29tpnr4CuB/YVmz/AvDVqgpVdfYePMLE7n1cc8t+Jnbv456DR+ouqXYOwqtb1THGcTfNu+xORcR+4BXAx4FrgbuKtjXAbcVLdgDXFe3/qXisVcRv1gtzEF7dqpYLADPzRuDGec0PAT+xQN9p4C1V1KV6zH2znrtRH7zwzbqfr02YG4TfOW+Mo5/3ibqDV46rdn6zXpxXhqsbea8q1c57Li3NK8PVbTziUFfwm7XUOwwOdY2qlh3tpqVWpV5kcKiv9OIFdQaduo3Bob7Ri0ut9mLQafVzcFx9o9cuqPP6FnUrg0N9o9em/fZa0Kl/GBzqG7027bfXgk79wzEO9ZVemvbrlePqVgaH+k5V037boZeCTv3D4JC6XC8FnfqDYxySpFIMDklSKQaHJKkUg0OSVIrBIUkqxeCQJJVicEiSSjE4JEmlGBySpFIMDklSKQaHJKkUg0OSVIrBIUkqxeCQJJVicEiSSjE4JEmlGBySpFIMDklSKQaHJKkUg0OSVIrBIUkqxeCQJJVicEiSSqklOCJiOCI+ERGPRMQ3I2JdRGyKiC9HxP6IuCMihlv63l603xcRm+qoWZrv2IkZHn3iGY6dmKm7FKlS59T0vn8APJqZvzHXEBF/DOzIzKmIuAHYAfz34s9HMvOdEXEp8Engp+soWpqz9+ARdu05xODAALONBpPbt7Bt64a6y5IqUfkRR0SsB34sMz/e0nYusDEzp4qmO4Griu0rgbsAMvMR4MKIGKqwZOk0x07MsGvPIU7NNnh25nlOzTbYueeQRx7qG3Wcqno10IiIz0fEQxFxE3AB8J2WPkeBC4vtC4CnWp57Glg//y+NiOsjYioipqanpztUugSHj59kcOD0/zqDAwMcPn6ypoqkatURHOcD3wSuzszX0wyFD8zrE0u8fsHnMvPmzBzPzPGxsbH2VCotYOO6YWYbjdPaZhsNNq4brqkiqVp1BMdTwExmPl88/hywATivpc964Mli+0maYTNnlNOPQKRKjawdYnL7FtYMDvCyoXNYMzjA5PYtjKz1DKr6Qx2D4w8CH42IscycpjmW8SAwHBGXZeYB4O3AvUX/fcDVwO8Vg+NHM/NUDXX3rWMnZjh8/CQb1w374VjYtnUDE5tH3S/qS5UHR2Z+LyLeB3whIhrAN4BfB24Hbi2m4T4OvKt4yWTR/iAwA7y76pr7mbOHFjeydsjAUF+KzKy7hrYbHx/Pqamp5TtqScdOzDCxex+nZl84n79mcICv7vopPzClVSgiDmTm+HL9vHJci3L2kKSFGBxalLOHJC3E4NCinD0kaSF13XJEPeJMZw8580rqHwaHlrXc7CFnXkn9xVNVWhHv2yT1H4NDK+LMK6n/GBxaEWdeSf3H4NCKOPNK6j8OjmvFvG+T1F8MDrWF922S+oenqiRJpRgckqRSDA5JUikGhySpFINDklSKwSFJKsXgkCSVYnBIkkoxOFocOzHDo088451dJWkJXjlecE0JSTozHnHgmhKSVIbBgWtKSFIZBgftX1PCsRJJq5ljHLywpsTOeWMcZ3O3V8dKJK12BkehHWtKtI6VnKJ5BLNzzyEmNo96y3FJq4bB0WKla0rMjZXMhQa8MFZicEhaLRzjaCPX35bUDwyONnL9bUn9wFNVbeb625JWO4OjA1x/W9Jq5qkqSVIpBockqRSDQ5JUSq3BERE7IuL+YntTRHw5IvZHxB0RMVy0D0fE7UX7fRGxqVP1eKsQSVpebcERERPAW1qaPgnsyMzLgYeBHUX7DuCRov23i35tt/fgESZ27+OaW/YzsXsf9xw80om3kaSeV0twRMQo8CHgvcXjc4GNmTlVdLkTuKrYvhK4CyAzHwEujIi2TlnytuqSdOYqD46ICOAW4Abg2aJ5DPhOS7ejwIXF9gXAUy3PPQ2sb2dN3lZdks5cHUccO4EvZuajS/SJss9FxPURMRURU9PT06UK8lYhknTm6giOHwaujYgHgbuBLcDHgPNa+qwHniy2nwTOb3lulNOPQADIzJszczwzx8fGxkoV5K1CJOnMVX7leGZeN7cdEZcAn8nMtxUzqi7LzAPA24F7i277gKuB34uIS4GjmXmq3XV5qxBJOjPddMuR64Bbi2m4jwPvKtoni/YHgRng3Z0qwFuFSNLyag2OzHwceEOx/Rjw7xbo8z3gHZUWJklalFeOS5JKMTgkSaUYHJKkUgwOSVIpkZl119B2ETENfKuDbzFK8wr2XtFL9fZSrdBb9Vpr5/RSvUvV+oOZueyFcKsyODotIqYyc7zuOs5UL9XbS7VCb9VrrZ3TS/W2o1ZPVUmSSjE4JEmlGBxn5+a6Cyipl+rtpVqht+q11s7ppXpXXKtjHJKkUjzikCSV0k03OexKEbEO2AO8nGbQ/lFm/n5E3Fe0zS0T+CeZOVlPlS+IiD8FNgAN4OvAtcBG4FbgJcBjwLWZ2RWrVC1S783A64HvFt0eyMwb6qnwxSJiB/DWzHxDRGyiS/ctvKjWT9Ol+zUiHgf+uaXpE8DfAx+n+f/uIeC/ZGbjxa+u3iL1Xkt3fiYMA/8D+AngpcAVwDpW8nubmf4s8QP8K+A1xfYg8LfAJuA+YHPd9S1Q76Ut27cBb6N5i/rxou0G4IN117lMvZ8Grqy7tkXqnSj+7e8vHnfzvp1fazfv18eBc+a1HQIuLrY/Cvxq3XUuU2+3fiZ8EvjNeW0r+r31VNUyMvO7mfl3xfYszQsL19Vb1eKyuS47EfESmgtiPcbi67nXboF6v15vRYuLiFHgQ8B7i8fn0qX7dn6tvaY4kpvOzG8XTV2zb3tJRKwHfiwzP97StuLfW4OjhIjYALwK+Duap1Y+GxEPR8RHImKw3upeEBHvAZ6guQjW0yy+nntXaK03M78OJPC7xVLAN0XEy+utECIigFtofjt7tmgeowv37SK1Qhfu1xbfB+6PiP0R8X7gAk5f6bMr9m2L+fVCd34mvBpoRMTnI+KhiLiJ5r5d0e+twXGGImINcAfN86wzwJuyefXlG2gue/uf66yvVWbeBPxrYJwXr3Gy1HrutWitNyLeBLwnM7fQPB//z8B/q7G8OTuBL2bmo0v06ZZ9u1it3bhf57wyM68Afhr4t8CV857vln0757R6I+KtdOdnwvnAN4GrM/P1NMP4A/P6lN63BscZiIgh4I+B2zLzzwAy87nizxngT4BX1lfhixWn1b4MbGbx9dy7Rku9P96ybxvAXXTHvv1h4NpiJcq7gS3Ax+jOffuiWiPis126X4HT/j+dAL4AzNL80JvTLfsWWLDeV3bpZ8JTwExmPl88/hzNySgr+r01OJZRzEi4G/hsZt5atA0V65/PnRb4ReCB+qpsiogLImJLsX0O8Bbgq8A/RcRlRbfW9dxrtUi9D0fEFS3dfoku2LeZeV1mXlF8y/wl4FBmvo0u3LeL1Por3bhfoTkeExGbi+1B4OeBvwHOj4iLim5dsW9h0Xr/ths/E4AHgYmImLtx4VVF24p+b52Ou7yraE5fOy8ifrNo+1PgquIc8SzNsYTbaqqv1SDwhxHxUprnYO/MzL+KiP/Dwuu5122xeu+OiB8CTtIcT/qNOotcxnV0575dyK4u3a/DwGeKQdsGcHtm3hcR1wJ3RcQAzdmM3fB/DBaoF/gK8Ofd9pmQmd+LiPcBX4iIBvAN4Ndp1nzWv7deOS5JKsVTVZKkUgwOSVIpBockqRSDQ5JUisEhSSrF4JA6LCJ+LSL2tDwejIhHIuJH66xLOlsGh9RhmflpYF1EvLlo2gnsycxv1FeVdPa8AFCqxnuAuyPi2zSvNP7JmuuRzprBIVUgM/8xIu6keYXxVS33DpJ6jqeqpOoM0LxFxXDdhUgrYXBIFYiIVwE/C/wU8IniPkdSTzI4pA4rbtJ3E/DezPwa8CVgV71VSWfPmxxKHRYRvwVsysz3FY9fSvNurz+fmf9Qa3HSWTA4JEmleKpKklSKwSFJKsXgkCSVYnBIkkoxOCRJpRgckqRSDA5JUikGhySplP8H4F/s9cd/jmYAAAAASUVORK5CYII=\n", 129 | "text/plain": [ 130 | "
" 131 | ] 132 | }, 133 | "metadata": { 134 | "needs_background": "light" 135 | }, 136 | "output_type": "display_data" 137 | } 138 | ], 139 | "source": [ 140 | "data.plot(kind='scatter',x=\"X\",y=\"Y\")" 141 | ] 142 | }, 143 | { 144 | "cell_type": "code", 145 | "execution_count": 14, 146 | "metadata": {}, 147 | "outputs": [], 148 | "source": [ 149 | "x = torch.tensor(data.X).float()\n", 150 | "y = torch.tensor(data.Y).float()" 151 | ] 152 | }, 153 | { 154 | "cell_type": "markdown", 155 | "metadata": {}, 156 | "source": [ 157 | "## モデル式\n", 158 | "\n", 159 | "$$X[n] \\sim Normal(x_{true}[n], 2.5)$$\n", 160 | "$$Y[n] \\sim Normal(a+bx_{true}, \\sigma_Y)$$" 161 | ] 162 | }, 163 | { 164 | "cell_type": "code", 165 | "execution_count": 15, 166 | "metadata": {}, 167 | "outputs": [], 168 | "source": [ 169 | "def model(X, Y):\n", 170 | " a = pyro.sample(\"a\", dist.Normal(0, 100))\n", 171 | " b = pyro.sample(\"b\", dist.Normal(0, 100))\n", 172 | " sigma_y = pyro.sample(\"sigma_y\", dist.Uniform(0, 100))\n", 173 | " \n", 174 | " with pyro.plate(\"data\", len(X)):\n", 175 | " x_true = pyro.sample(\"x_true\", dist.Normal(0, 100))\n", 176 | " pyro.sample(\"obs_x\", dist.Normal(x_true, 2.5), obs=X)\n", 177 | " pyro.sample(\"obs_y\", dist.Normal(a+b*x_true, sigma_y), obs=Y)" 178 | ] 179 | }, 180 | { 181 | "cell_type": "code", 182 | "execution_count": 16, 183 | "metadata": {}, 184 | "outputs": [ 185 | { 186 | "data": { 187 | "application/vnd.jupyter.widget-view+json": { 188 | "model_id": "659f3e948607400c97250d9c9e21cb34", 189 | "version_major": 2, 190 | "version_minor": 0 191 | }, 192 | "text/plain": [ 193 | "HBox(children=(IntProgress(value=0, description='Warmup [1]', max=2000, style=ProgressStyle(description_width=…" 194 | ] 195 | }, 196 | "metadata": {}, 197 | "output_type": "display_data" 198 | }, 199 | { 200 | "data": { 201 | "application/vnd.jupyter.widget-view+json": { 202 | "model_id": "ae0254d3e101438ab2f49120265e7915", 203 | "version_major": 2, 204 | "version_minor": 0 205 | }, 206 | "text/plain": [ 207 | "HBox(children=(IntProgress(value=0, description='Warmup [2]', max=2000, style=ProgressStyle(description_width=…" 208 | ] 209 | }, 210 | "metadata": {}, 211 | "output_type": "display_data" 212 | }, 213 | { 214 | "data": { 215 | "application/vnd.jupyter.widget-view+json": { 216 | "model_id": "bc16ca838de54cafa34d6a6e0751ede9", 217 | "version_major": 2, 218 | "version_minor": 0 219 | }, 220 | "text/plain": [ 221 | "HBox(children=(IntProgress(value=0, description='Warmup [3]', max=2000, style=ProgressStyle(description_width=…" 222 | ] 223 | }, 224 | "metadata": {}, 225 | "output_type": "display_data" 226 | }, 227 | { 228 | "data": { 229 | "application/vnd.jupyter.widget-view+json": { 230 | "model_id": "4abd912d544d438aa646beb744d2b456", 231 | "version_major": 2, 232 | "version_minor": 0 233 | }, 234 | "text/plain": [ 235 | "HBox(children=(IntProgress(value=0, description='Warmup [4]', max=2000, style=ProgressStyle(description_width=…" 236 | ] 237 | }, 238 | "metadata": {}, 239 | "output_type": "display_data" 240 | } 241 | ], 242 | "source": [ 243 | "kernel = NUTS(model, adapt_step_size=True, jit_compile=True, ignore_jit_warnings=True)\n", 244 | "posterior = MCMC(kernel, num_chains=4, num_samples=1000, warmup_steps=1000).run(x, y)" 245 | ] 246 | }, 247 | { 248 | "cell_type": "code", 249 | "execution_count": 23, 250 | "metadata": {}, 251 | "outputs": [], 252 | "source": [ 253 | "sites = [\"a\", \"b\", \"sigma_y\"]\n", 254 | "marginals = pd.DataFrame(EmpiricalMarginal(posterior, sites)._get_samples_and_weights()[0].reshape(-1, len(sites)).numpy(), columns=sites)\n", 255 | "marginal_x = pd.DataFrame(EmpiricalMarginal(posterior, \"x_true\")._get_samples_and_weights()[0].reshape(-1, len(x)).numpy())" 256 | ] 257 | }, 258 | { 259 | "cell_type": "code", 260 | "execution_count": 29, 261 | "metadata": {}, 262 | "outputs": [ 263 | { 264 | "data": { 265 | "text/plain": [ 266 | "" 267 | ] 268 | }, 269 | "execution_count": 29, 270 | "metadata": {}, 271 | "output_type": "execute_result" 272 | }, 273 | { 274 | "data": { 275 | "image/png": "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\n", 276 | "text/plain": [ 277 | "
" 278 | ] 279 | }, 280 | "metadata": { 281 | "needs_background": "light" 282 | }, 283 | "output_type": "display_data" 284 | } 285 | ], 286 | "source": [ 287 | "marginal_x[1].plot()" 288 | ] 289 | }, 290 | { 291 | "cell_type": "code", 292 | "execution_count": 34, 293 | "metadata": {}, 294 | "outputs": [ 295 | { 296 | "data": { 297 | "text/plain": [ 298 | "[]" 299 | ] 300 | }, 301 | "execution_count": 34, 302 | "metadata": {}, 303 | "output_type": "execute_result" 304 | }, 305 | { 306 | "data": { 307 | "image/png": "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\n", 308 | "text/plain": [ 309 | "
" 310 | ] 311 | }, 312 | "metadata": { 313 | "needs_background": "light" 314 | }, 315 | "output_type": "display_data" 316 | } 317 | ], 318 | "source": [ 319 | "tmp = pd.concat([data.X, marginal_x.mean(0)], axis=1)\n", 320 | "plt.scatter(tmp.X, tmp[0])\n", 321 | "plt.plot(np.arange(20, 60), np.arange(20, 60))" 322 | ] 323 | }, 324 | { 325 | "cell_type": "code", 326 | "execution_count": null, 327 | "metadata": {}, 328 | "outputs": [], 329 | "source": [] 330 | } 331 | ], 332 | "metadata": { 333 | "kernelspec": { 334 | "display_name": "Python 3", 335 | "language": "python", 336 | "name": "python3" 337 | }, 338 | "language_info": { 339 | "codemirror_mode": { 340 | "name": "ipython", 341 | "version": 3 342 | }, 343 | "file_extension": ".py", 344 | "mimetype": "text/x-python", 345 | "name": "python", 346 | "nbconvert_exporter": "python", 347 | "pygments_lexer": "ipython3", 348 | "version": "3.7.1" 349 | } 350 | }, 351 | "nbformat": 4, 352 | "nbformat_minor": 2 353 | } 354 | -------------------------------------------------------------------------------- /chap07/input/data-50m.txt: -------------------------------------------------------------------------------- 1 | Y,Weight,Age 2 | 2.46,16.6,7 3 | 3.02,21.4,7 4 | 2.91,24,7 5 | 3.05,13,7 6 | 2.6,21.9,7 7 | 2.45,22.1,7 8 | 2.61,18.7,7 9 | 2.91,18.8,7 10 | 3.34,18.7,7 11 | 3.17,21.5,8 12 | 2.75,22.8,8 13 | 3.02,21.1,8 14 | 3.29,21.8,8 15 | 3,24.5,8 16 | 2.93,27.4,8 17 | 3.07,23.9,8 18 | 2.76,22.7,8 19 | 3.17,21.4,8 20 | 3.47,21.6,8 21 | 3.01,32,8 22 | 3.26,24.7,8 23 | 3.51,26.5,9 24 | 3.56,26.7,9 25 | 3.15,29.6,9 26 | 3.64,25.9,9 27 | 3.83,23.5,9 28 | 4.01,29.9,9 29 | 4,24.8,9 30 | 3.42,28.1,9 31 | 3.79,25.1,9 32 | 3.09,31.6,9 33 | 4.35,30.4,10 34 | 4.41,29.6,10 35 | 4.72,30.3,10 36 | 4.36,26.7,10 37 | 4.03,28.2,10 38 | 4.32,24.9,10 39 | 4.05,27.6,10 40 | 3.81,31,10 41 | 4.13,30.4,10 42 | 3.57,36.5,10 43 | 4.21,28.5,10 44 | 4.24,29.2,10 45 | 4.04,31,10 46 | 4.09,28.7,10 47 | 3.95,28.8,10 48 | 4.29,32.2,11 49 | 4.9,31.7,11 50 | 4.56,34,11 51 | 4.8,34.1,11 52 | 4.34,29.9,11 53 | 4.61,33.8,11 54 | 4.82,32.2,11 55 | 4.6,32.5,11 56 | 4.44,35.2,11 57 | 4.18,37.5,11 58 | 4.89,41,11 59 | 4.81,33.2,11 60 | 5.28,44.6,12 61 | 5.11,35.8,12 62 | 4.67,41.6,12 63 | 4.16,47.7,12 64 | 4.75,39.4,12 65 | 5.09,37.4,12 66 | 5.24,39.5,12 67 | 4.79,45.2,12 68 | -------------------------------------------------------------------------------- /chap07/input/data-aircon.txt: -------------------------------------------------------------------------------- 1 | X,Y 2 | -2.1,98.2 3 | -1.9,109.3 4 | -1.3,95.4 5 | -1.4,93.5 6 | -1.3,95.5 7 | -0.8,91.5 8 | -0.8,99.5 9 | -1,95.1 10 | -0.7,96.4 11 | -0.5,87.4 12 | 0,87.3 13 | 0,84.2 14 | 0.2,85.1 15 | 0.3,78.5 16 | 0.4,75.8 17 | 1,89.7 18 | 1,82.3 19 | 0.6,74.2 20 | 1.4,72.4 21 | 1.3,69.6 22 | 1.4,88.4 23 | 1.7,80.8 24 | 1.7,71.7 25 | 2,74.6 26 | 2.2,67.7 27 | 2.1,67.6 28 | 2.8,61.1 29 | 2.9,61.9 30 | 2.8,75.2 31 | 3.4,61.2 32 | 3.4,62.1 33 | 3.5,62.5 34 | 3.9,65.5 35 | 4.1,54.5 36 | 4.2,50.7 37 | 4.4,65 38 | 4.5,52 39 | 4.6,50.1 40 | 4.7,46.4 41 | 4.9,45.1 42 | 5,48.5 43 | 5.3,53.7 44 | 5.3,56.7 45 | 6.1,49.6 46 | 6.1,43.6 47 | 5.8,47.6 48 | 6.1,41.5 49 | 6.3,40.5 50 | 6.7,47.5 51 | 6.7,36.6 52 | 7,52.3 53 | 7.1,40 54 | 7.3,40.9 55 | 7.7,33.3 56 | 7.6,34.9 57 | 8.1,28.3 58 | 7.7,36.7 59 | 8.3,37.4 60 | 8.4,36.5 61 | 8.6,29.4 62 | 8.8,28.4 63 | 8.8,30.1 64 | 9,40.6 65 | 9.1,25.4 66 | 9.2,30.2 67 | 9.7,40.3 68 | 9.9,28.1 69 | 10,20.6 70 | 10.3,23.3 71 | 10.7,28.5 72 | 10.4,24.7 73 | 10.2,24.3 74 | 11.1,22.7 75 | 10.9,25.7 76 | 11.1,33.7 77 | 11.6,22.5 78 | 11.5,29.4 79 | 11.5,26.9 80 | 12,21.4 81 | 12.1,13 82 | 12.3,18.2 83 | 12.6,17.7 84 | 12.6,20.7 85 | 13,26.9 86 | 13,32.6 87 | 13.3,27.7 88 | 13.6,17.4 89 | 13.6,8.1 90 | 13.7,15.8 91 | 14.1,17.6 92 | 14.3,21.7 93 | 14.4,22.2 94 | 14.5,20.4 95 | 14.5,8.6 96 | 15.1,20.5 97 | 14.9,13.4 98 | 15.6,16 99 | 15.6,15.4 100 | 15.5,17.6 101 | 15.5,15.3 102 | 15.7,5.3 103 | 16.1,18.7 104 | 16.2,16.6 105 | 16.3,12.7 106 | 16.4,14.9 107 | 16.8,14.7 108 | 16.8,15.2 109 | 16.8,23.3 110 | 17.2,12.5 111 | 17.7,14.5 112 | 17.5,20.3 113 | 18,19.5 114 | 17.7,20.1 115 | 18.2,10.2 116 | 18.5,24.9 117 | 18.6,13.9 118 | 18.8,24.2 119 | 18.8,5.9 120 | 18.9,13.7 121 | 19.1,20.8 122 | 19.5,9.8 123 | 19.4,9.5 124 | 19.7,8.7 125 | 19.9,8.2 126 | 20.5,12.2 127 | 20.2,16.3 128 | 20.6,3.3 129 | 20.7,16.1 130 | 20.7,21.9 131 | 21,26.9 132 | 21.5,23.4 133 | 21.5,20.2 134 | 21.6,6.2 135 | 21.7,12.8 136 | 21.5,14 137 | 22.4,21.3 138 | 22,16.1 139 | 22.6,10.7 140 | 23.1,28.3 141 | 22.6,22.9 142 | 23.2,20.3 143 | 23.2,25.8 144 | 23.1,11.1 145 | 23.3,22.9 146 | 23.4,16.5 147 | 23.8,24.3 148 | 23.8,20.1 149 | 24.4,25.6 150 | 24.9,30.9 151 | 24.4,21.9 152 | 25,29.4 153 | 25.1,17.3 154 | 25.2,20.3 155 | 25.2,32.8 156 | 25.5,27.4 157 | 25.7,14 158 | 26,19.1 159 | 26,25.7 160 | 26.4,33.4 161 | 26.3,27.5 162 | 26.8,33.4 163 | 26.6,34.4 164 | 26.7,39 165 | 27.8,34 166 | 27.2,31.2 167 | 27.6,22.8 168 | 27.8,34.4 169 | 27.8,30.3 170 | 28.1,29.7 171 | 28.3,34.9 172 | 28.3,41.9 173 | 28.6,25.9 174 | 28.7,35.5 175 | 29.4,41.5 176 | 29,33.9 177 | 29.1,41.4 178 | 29.5,43.8 179 | 29.7,42.4 180 | 29.9,29.6 181 | 29.9,58.3 182 | -------------------------------------------------------------------------------- /chap07/input/data-conc.txt: -------------------------------------------------------------------------------- 1 | Time,Y 2 | 1,2.4 3 | 2,5.0 4 | 4,7.5 5 | 8,11.9 6 | 12,12.5 7 | 24,12.7 8 | -------------------------------------------------------------------------------- /chap07/input/data-outlier.txt: -------------------------------------------------------------------------------- 1 | X,Y 2 | 1,3.4 3 | 2,8.2 4 | 3,40 5 | 4,17.6 6 | 5,20.3 7 | 6,23.2 8 | 7,28.5 9 | 8,32.7 10 | 9,36.6 11 | 10,39.7 12 | -------------------------------------------------------------------------------- /chap07/input/data-protein.txt: -------------------------------------------------------------------------------- 1 | Y 2 | <25 3 | 32.3 4 | <25 5 | 28.3 6 | 30.8 7 | 35.2 8 | -------------------------------------------------------------------------------- /chap07/input/data-rental.txt: -------------------------------------------------------------------------------- 1 | Y,Area 2 | 263.062,40.66 3 | 519,61.94 4 | 671.4,55.13 5 | 473.03,56.82 6 | 455.6,56.82 7 | 153.5,15.5 8 | 234,32 9 | 264.48,33.21 10 | 650,63.83 11 | 223.2,20 12 | 160.8,20 13 | 756,82.81 14 | 220.9,26.49 15 | 201.6,23.63 16 | 246,22.48 17 | 161.2,19.83 18 | 200.2,23.14 19 | 196.2,20.09 20 | 182.3,23.47 21 | 496.5,41.58 22 | 291.376,44 23 | 158,19.5 24 | 473.22,42.89 25 | 634.4,53.14 26 | 310.6,30.83 27 | 868,64.34 28 | 306.63,23.37 29 | 434.2,39.84 30 | 272,40.6 31 | 259.5,30.45 32 | 155.6,31 33 | 351,54.18 34 | 1870.5,112.82 35 | 184.2,21 36 | 179.4,15.57 37 | 184.2,21 38 | 207.6,21 39 | 364.5,37.13 40 | 235,23.08 41 | 432,57.1 42 | 183.6,33.43 43 | 297.6,24.92 44 | 124.6,11.64 45 | 282.22,31.56 46 | 311.6,35.54 47 | 247,29 48 | 1234.8,72.56 49 | 419.2,45.01 50 | 185.508,24.3 51 | 184.2,21 52 | 347.8,36.56 53 | 884.8,54.68 54 | 453,34.89 55 | 184.5,29 56 | 234,32 57 | 191.25,18.6 58 | 312.5,46.7 59 | 598.5,48.75 60 | 318.4,26.06 61 | 197.508,29.16 62 | 145.4,18 63 | 147.8,17 64 | 593.6,50.5 65 | 413.4,31.48 66 | 176.2,18.2 67 | 250.6,27.02 68 | 194,18.9 69 | 401.1,51.3 70 | 228.2,30.52 71 | 476.82,45.96 72 | 146.4,16.89 73 | 164.304,23.01 74 | 210.075,30.24 75 | 207,21.35 76 | 179,19.87 77 | 352.4,45 78 | 1053,81.46 79 | 260,38.25 80 | 390,44.28 81 | 154.86,16.61 82 | 636.3,68.24 83 | 459.2,49.14 84 | 781.2,37.81 85 | 179.8,22.72 86 | 240.6,26.42 87 | 1754.5,110.06 88 | 213.3,35.1 89 | 503.7,51.95 90 | 194.8,23.52 91 | 217.3,38.22 92 | 264,32.1 93 | 221,33 94 | 280.8,50.68 95 | 389.7,31.36 96 | 196.35,25 97 | 209.508,19.4 98 | 221,28.07 99 | 604.5,59.71 100 | 325,32.88 101 | 423,41.2 102 | -------------------------------------------------------------------------------- /chap08/input/d1.csv: -------------------------------------------------------------------------------- 1 | id,pot,f,y 2 | 1,A,C,6 3 | 2,A,C,3 4 | 3,A,C,19 5 | 4,A,C,5 6 | 5,A,C,0 7 | 6,A,C,19 8 | 7,A,C,4 9 | 8,A,C,8 10 | 9,A,C,12 11 | 10,A,C,8 12 | 11,B,C,0 13 | 12,B,C,1 14 | 13,B,C,1 15 | 14,B,C,5 16 | 15,B,C,7 17 | 16,B,C,4 18 | 17,B,C,0 19 | 18,B,C,4 20 | 19,B,C,2 21 | 20,B,C,23 22 | 21,C,C,2 23 | 22,C,C,1 24 | 23,C,C,4 25 | 24,C,C,3 26 | 25,C,C,4 27 | 26,C,C,0 28 | 27,C,C,1 29 | 28,C,C,1 30 | 29,C,C,3 31 | 30,C,C,6 32 | 31,D,C,27 33 | 32,D,C,3 34 | 33,D,C,29 35 | 34,D,C,17 36 | 35,D,C,1 37 | 36,D,C,16 38 | 37,D,C,16 39 | 38,D,C,6 40 | 39,D,C,4 41 | 40,D,C,8 42 | 41,E,C,6 43 | 42,E,C,16 44 | 43,E,C,8 45 | 44,E,C,3 46 | 45,E,C,2 47 | 46,E,C,8 48 | 47,E,C,4 49 | 48,E,C,0 50 | 49,E,C,0 51 | 50,E,C,2 52 | 51,F,T,2 53 | 52,F,T,2 54 | 53,F,T,0 55 | 54,F,T,0 56 | 55,F,T,1 57 | 56,F,T,0 58 | 57,F,T,0 59 | 58,F,T,1 60 | 59,F,T,0 61 | 60,F,T,1 62 | 61,G,T,11 63 | 62,G,T,2 64 | 63,G,T,2 65 | 64,G,T,18 66 | 65,G,T,3 67 | 66,G,T,8 68 | 67,G,T,7 69 | 68,G,T,3 70 | 69,G,T,1 71 | 70,G,T,0 72 | 71,H,T,7 73 | 72,H,T,0 74 | 73,H,T,0 75 | 74,H,T,0 76 | 75,H,T,1 77 | 76,H,T,1 78 | 77,H,T,0 79 | 78,H,T,0 80 | 79,H,T,1 81 | 80,H,T,1 82 | 81,I,T,10 83 | 82,I,T,2 84 | 83,I,T,11 85 | 84,I,T,4 86 | 85,I,T,3 87 | 86,I,T,16 88 | 87,I,T,4 89 | 88,I,T,37 90 | 89,I,T,5 91 | 90,I,T,19 92 | 91,J,T,27 93 | 92,J,T,1 94 | 93,J,T,1 95 | 94,J,T,2 96 | 95,J,T,0 97 | 96,J,T,1 98 | 97,J,T,1 99 | 98,J,T,2 100 | 99,J,T,1 101 | 100,J,T,0 102 | -------------------------------------------------------------------------------- /chap08/input/data-attendance-4-1.txt: -------------------------------------------------------------------------------- 1 | PersonID,A,Score 2 | 1,0,69 3 | 2,1,145 4 | 3,0,125 5 | 4,1,86 6 | 5,1,158 7 | 6,0,133 8 | 7,0,111 9 | 8,1,147 10 | 9,0,146 11 | 10,0,145 12 | 11,1,141 13 | 12,0,137 14 | 13,1,118 15 | 14,0,111 16 | 15,0,109 17 | 16,1,99 18 | 17,0,114 19 | 18,0,82 20 | 19,0,185 21 | 20,1,156 22 | 21,1,86 23 | 22,1,108 24 | 23,1,106 25 | 24,1,143 26 | 25,1,117 27 | 26,1,128 28 | 27,0,119 29 | 28,0,119 30 | 29,0,161 31 | 30,0,113 32 | 31,1,165 33 | 32,1,74 34 | 33,1,138 35 | 34,1,124 36 | 35,0,126 37 | 36,0,131 38 | 37,1,105 39 | 38,0,110 40 | 39,0,89 41 | 40,0,88 42 | 41,0,129 43 | 42,0,133 44 | 43,0,122 45 | 44,0,148 46 | 45,0,182 47 | 46,0,105 48 | 47,0,51 49 | 48,0,150 50 | 49,0,99 51 | 50,1,99 52 | -------------------------------------------------------------------------------- /chap08/input/data-attendance-4-2.txt: -------------------------------------------------------------------------------- 1 | PersonID,CourseID,Weather,Y 2 | 1,3,B,1 3 | 1,9,A,1 4 | 1,1,C,1 5 | 1,9,A,1 6 | 1,7,B,1 7 | 1,9,B,1 8 | 1,3,C,0 9 | 1,1,B,1 10 | 1,9,A,1 11 | 1,7,A,1 12 | 1,7,A,1 13 | 1,7,C,1 14 | 1,3,A,1 15 | 1,7,A,1 16 | 1,1,A,1 17 | 1,3,A,1 18 | 1,3,A,0 19 | 1,3,B,1 20 | 1,3,A,1 21 | 1,9,A,1 22 | 1,1,B,1 23 | 1,3,B,1 24 | 1,9,C,0 25 | 1,7,C,1 26 | 1,1,A,1 27 | 1,3,A,1 28 | 1,9,B,1 29 | 1,9,A,1 30 | 1,9,B,1 31 | 1,7,A,1 32 | 1,1,B,1 33 | 1,3,A,1 34 | 1,7,B,1 35 | 1,3,A,0 36 | 1,7,C,0 37 | 1,9,A,1 38 | 1,9,A,1 39 | 1,7,A,1 40 | 1,7,B,1 41 | 1,1,A,1 42 | 1,9,A,1 43 | 1,7,B,1 44 | 1,1,B,1 45 | 2,8,A,1 46 | 2,9,A,1 47 | 2,10,A,1 48 | 2,1,C,1 49 | 2,9,A,0 50 | 2,10,B,1 51 | 2,7,B,1 52 | 2,9,B,1 53 | 2,1,B,0 54 | 2,10,A,1 55 | 2,9,A,1 56 | 2,7,A,1 57 | 2,7,A,1 58 | 2,10,A,1 59 | 2,7,C,1 60 | 2,8,A,0 61 | 2,10,C,1 62 | 2,10,A,1 63 | 2,7,A,0 64 | 2,8,A,0 65 | 2,1,A,1 66 | 2,8,B,0 67 | 2,9,A,1 68 | 2,1,B,1 69 | 2,8,C,1 70 | 2,8,B,0 71 | 2,9,C,1 72 | 2,7,C,1 73 | 2,1,A,1 74 | 2,9,B,1 75 | 2,9,A,1 76 | 2,9,B,1 77 | 2,8,C,0 78 | 2,8,A,1 79 | 2,7,A,1 80 | 2,8,C,0 81 | 2,1,B,1 82 | 2,7,B,1 83 | 2,7,C,1 84 | 2,8,B,1 85 | 2,10,A,1 86 | 2,9,A,0 87 | 2,9,A,1 88 | 2,7,A,1 89 | 2,7,B,1 90 | 2,8,A,0 91 | 2,1,A,0 92 | 2,10,B,1 93 | 2,9,A,0 94 | 2,10,A,1 95 | 2,7,B,1 96 | 2,10,B,0 97 | 2,1,B,1 98 | 2,10,A,1 99 | 2,8,A,0 100 | 2,10,C,0 101 | 3,8,A,1 102 | 3,10,A,1 103 | 3,1,C,1 104 | 3,10,B,1 105 | 3,1,B,1 106 | 3,10,A,1 107 | 3,10,A,1 108 | 3,8,A,1 109 | 3,10,C,1 110 | 3,10,A,0 111 | 3,8,A,1 112 | 3,1,A,1 113 | 3,8,B,0 114 | 3,1,B,1 115 | 3,8,C,0 116 | 3,8,B,0 117 | 3,1,A,1 118 | 3,8,C,0 119 | 3,8,A,0 120 | 3,8,C,1 121 | 3,1,B,1 122 | 3,8,B,0 123 | 3,10,A,1 124 | 3,8,A,1 125 | 3,1,A,1 126 | 3,10,B,1 127 | 3,10,A,1 128 | 3,10,B,1 129 | 3,1,B,1 130 | 3,10,A,1 131 | 3,8,A,0 132 | 3,10,C,1 133 | 4,8,A,0 134 | 4,6,A,1 135 | 4,6,A,0 136 | 4,7,B,1 137 | 4,6,B,0 138 | 4,4,C,1 139 | 4,7,A,1 140 | 4,7,A,1 141 | 4,7,C,1 142 | 4,8,A,1 143 | 4,6,A,0 144 | 4,6,A,1 145 | 4,7,A,1 146 | 4,8,A,0 147 | 4,8,B,1 148 | 4,4,A,1 149 | 4,4,A,1 150 | 4,8,C,0 151 | 4,6,B,1 152 | 4,8,B,1 153 | 4,4,B,1 154 | 4,7,C,1 155 | 4,4,B,0 156 | 4,8,C,1 157 | 4,8,A,1 158 | 4,7,A,1 159 | 4,8,C,0 160 | 4,4,A,1 161 | 4,7,B,1 162 | 4,4,A,1 163 | 4,7,C,0 164 | 4,8,B,1 165 | 4,7,A,1 166 | 4,4,A,1 167 | 4,7,B,1 168 | 4,4,A,1 169 | 4,8,A,0 170 | 4,6,C,1 171 | 4,6,A,1 172 | 4,4,C,1 173 | 4,7,B,1 174 | 4,4,A,1 175 | 4,8,A,1 176 | 4,6,A,0 177 | 4,6,A,0 178 | 5,1,C,1 179 | 5,2,B,0 180 | 5,1,B,0 181 | 5,4,C,1 182 | 5,2,B,0 183 | 5,1,A,1 184 | 5,4,A,1 185 | 5,2,B,1 186 | 5,4,A,1 187 | 5,2,A,1 188 | 5,2,B,1 189 | 5,1,B,1 190 | 5,2,B,0 191 | 5,2,A,0 192 | 5,4,B,1 193 | 5,1,A,1 194 | 5,4,B,1 195 | 5,1,B,0 196 | 5,4,A,1 197 | 5,4,A,1 198 | 5,2,B,0 199 | 5,2,A,0 200 | 5,2,A,1 201 | 5,2,A,0 202 | 5,4,A,1 203 | 5,4,A,1 204 | 5,2,B,0 205 | 5,1,A,1 206 | 5,4,C,1 207 | 5,2,C,1 208 | 5,4,A,1 209 | 5,1,B,1 210 | 5,2,A,1 211 | 6,5,A,1 212 | 6,9,A,1 213 | 6,10,A,1 214 | 6,1,C,1 215 | 6,9,A,1 216 | 6,5,B,1 217 | 6,10,B,1 218 | 6,5,C,1 219 | 6,9,B,1 220 | 6,1,B,1 221 | 6,4,C,1 222 | 6,10,A,1 223 | 6,9,A,1 224 | 6,10,A,1 225 | 6,10,C,1 226 | 6,10,A,1 227 | 6,1,A,1 228 | 6,5,A,1 229 | 6,4,A,1 230 | 6,5,A,1 231 | 6,5,B,1 232 | 6,4,A,1 233 | 6,5,A,0 234 | 6,9,A,1 235 | 6,1,B,1 236 | 6,5,A,1 237 | 6,9,C,1 238 | 6,4,B,1 239 | 6,1,A,1 240 | 6,4,B,1 241 | 6,9,B,1 242 | 6,5,A,1 243 | 6,9,A,1 244 | 6,9,B,1 245 | 6,5,C,1 246 | 6,1,B,1 247 | 6,5,C,1 248 | 6,4,A,1 249 | 6,4,A,1 250 | 6,5,B,1 251 | 6,5,C,1 252 | 6,10,A,1 253 | 6,9,A,1 254 | 6,9,A,1 255 | 6,4,A,1 256 | 6,4,A,1 257 | 6,1,A,1 258 | 6,5,C,1 259 | 6,4,C,1 260 | 6,5,B,1 261 | 6,10,B,1 262 | 6,5,A,1 263 | 6,9,A,1 264 | 6,10,A,1 265 | 6,5,B,1 266 | 6,10,B,1 267 | 6,4,A,1 268 | 6,1,B,1 269 | 6,10,A,1 270 | 6,10,C,1 271 | 6,5,C,1 272 | 7,8,A,1 273 | 7,7,B,1 274 | 7,2,B,0 275 | 7,4,C,1 276 | 7,7,A,1 277 | 7,7,A,1 278 | 7,7,C,0 279 | 7,8,A,1 280 | 7,2,B,0 281 | 7,7,A,1 282 | 7,8,A,1 283 | 7,8,B,1 284 | 7,4,A,1 285 | 7,2,B,0 286 | 7,4,A,1 287 | 7,2,A,0 288 | 7,2,B,1 289 | 7,8,C,1 290 | 7,2,B,0 291 | 7,2,A,1 292 | 7,8,B,0 293 | 7,4,B,1 294 | 7,7,C,1 295 | 7,4,B,1 296 | 7,8,C,1 297 | 7,8,A,1 298 | 7,7,A,1 299 | 7,8,C,0 300 | 7,4,A,1 301 | 7,7,B,1 302 | 7,4,A,1 303 | 7,2,B,1 304 | 7,7,C,1 305 | 7,8,B,0 306 | 7,2,A,0 307 | 7,2,A,0 308 | 7,2,A,0 309 | 7,7,A,1 310 | 7,4,A,1 311 | 7,7,B,1 312 | 7,4,A,1 313 | 7,2,B,0 314 | 7,8,A,1 315 | 7,4,C,1 316 | 7,7,B,1 317 | 7,2,C,1 318 | 7,4,A,1 319 | 7,8,A,0 320 | 7,2,A,1 321 | 8,3,B,1 322 | 8,8,A,0 323 | 8,10,A,1 324 | 8,1,C,0 325 | 8,6,A,1 326 | 8,6,A,0 327 | 8,10,B,1 328 | 8,7,B,1 329 | 8,6,B,0 330 | 8,3,C,0 331 | 8,1,B,0 332 | 8,4,C,1 333 | 8,10,A,1 334 | 8,7,A,1 335 | 8,7,A,1 336 | 8,10,A,0 337 | 8,7,C,1 338 | 8,8,A,0 339 | 8,6,A,0 340 | 8,6,A,0 341 | 8,3,A,1 342 | 8,10,C,1 343 | 8,10,A,1 344 | 8,7,A,1 345 | 8,8,A,1 346 | 8,1,A,1 347 | 8,8,B,1 348 | 8,3,A,0 349 | 8,4,A,1 350 | 8,3,A,0 351 | 8,4,A,1 352 | 8,3,B,0 353 | 8,3,A,1 354 | 8,1,B,1 355 | 8,8,C,0 356 | 8,6,B,0 357 | 8,3,B,1 358 | 8,8,B,1 359 | 8,4,B,1 360 | 8,7,C,0 361 | 8,1,A,1 362 | 8,4,B,1 363 | 8,3,A,1 364 | 8,8,C,1 365 | 8,8,A,1 366 | 8,7,A,1 367 | 8,8,C,1 368 | 8,1,B,1 369 | 8,3,A,0 370 | 8,4,A,1 371 | 8,7,B,0 372 | 8,4,A,1 373 | 8,3,A,0 374 | 8,7,C,1 375 | 8,8,B,1 376 | 8,10,A,1 377 | 8,7,A,1 378 | 8,4,A,1 379 | 8,7,B,0 380 | 8,4,A,1 381 | 8,8,A,0 382 | 8,1,A,0 383 | 8,6,C,0 384 | 8,6,A,0 385 | 8,4,C,0 386 | 8,10,B,1 387 | 8,10,A,1 388 | 8,7,B,1 389 | 8,10,B,1 390 | 8,4,A,1 391 | 8,1,B,0 392 | 8,10,A,1 393 | 8,8,A,1 394 | 8,6,A,0 395 | 8,10,C,0 396 | 8,6,A,0 397 | 9,3,B,1 398 | 9,9,A,1 399 | 9,10,A,1 400 | 9,1,C,1 401 | 9,6,A,1 402 | 9,9,A,1 403 | 9,6,A,0 404 | 9,10,B,1 405 | 9,6,B,0 406 | 9,2,B,1 407 | 9,9,B,1 408 | 9,3,C,1 409 | 9,1,B,1 410 | 9,4,C,1 411 | 9,10,A,1 412 | 9,9,A,1 413 | 9,10,A,1 414 | 9,6,A,1 415 | 9,6,A,0 416 | 9,3,A,1 417 | 9,2,B,1 418 | 9,10,C,1 419 | 9,10,A,1 420 | 9,1,A,0 421 | 9,3,A,0 422 | 9,4,A,1 423 | 9,3,A,1 424 | 9,2,B,0 425 | 9,4,A,1 426 | 9,2,A,1 427 | 9,2,B,1 428 | 9,3,B,0 429 | 9,3,A,1 430 | 9,9,A,1 431 | 9,1,B,1 432 | 9,2,B,0 433 | 9,6,B,1 434 | 9,3,B,0 435 | 9,2,A,1 436 | 9,9,C,1 437 | 9,4,B,1 438 | 9,1,A,1 439 | 9,4,B,1 440 | 9,3,A,1 441 | 9,9,B,1 442 | 9,9,A,1 443 | 9,9,B,1 444 | 9,1,B,1 445 | 9,3,A,1 446 | 9,4,A,1 447 | 9,4,A,1 448 | 9,2,B,1 449 | 9,3,A,1 450 | 9,2,A,0 451 | 9,10,A,1 452 | 9,9,A,1 453 | 9,9,A,1 454 | 9,2,A,1 455 | 9,2,A,0 456 | 9,4,A,0 457 | 9,4,A,1 458 | 9,2,B,1 459 | 9,1,A,1 460 | 9,6,C,0 461 | 9,6,A,1 462 | 9,4,C,1 463 | 9,10,B,1 464 | 9,9,A,1 465 | 9,10,A,1 466 | 9,2,C,1 467 | 9,10,B,1 468 | 9,4,A,1 469 | 9,1,B,1 470 | 9,10,A,1 471 | 9,2,A,1 472 | 9,6,A,0 473 | 9,10,C,1 474 | 9,6,A,0 475 | 10,3,B,1 476 | 10,8,A,1 477 | 10,5,A,0 478 | 10,10,A,1 479 | 10,5,B,1 480 | 10,10,B,1 481 | 10,5,C,1 482 | 10,3,C,0 483 | 10,4,C,0 484 | 10,10,A,1 485 | 10,10,A,1 486 | 10,8,A,1 487 | 10,3,A,1 488 | 10,10,C,1 489 | 10,10,A,1 490 | 10,8,A,1 491 | 10,5,A,1 492 | 10,8,B,1 493 | 10,3,A,1 494 | 10,4,A,1 495 | 10,3,A,1 496 | 10,5,A,0 497 | 10,5,B,1 498 | 10,4,A,1 499 | 10,3,B,1 500 | 10,5,A,1 501 | 10,3,A,1 502 | 10,5,A,1 503 | 10,8,C,1 504 | 10,3,B,0 505 | 10,8,B,1 506 | 10,4,B,1 507 | 10,4,B,1 508 | 10,3,A,1 509 | 10,5,A,1 510 | 10,8,C,1 511 | 10,5,C,0 512 | 10,8,A,1 513 | 10,8,C,1 514 | 10,5,C,1 515 | 10,3,A,1 516 | 10,4,A,1 517 | 10,4,A,1 518 | 10,3,A,1 519 | 10,5,B,1 520 | 10,8,B,1 521 | 10,5,C,1 522 | 10,10,A,1 523 | 10,4,A,1 524 | 10,4,A,1 525 | 10,8,A,1 526 | 10,5,C,0 527 | 10,4,C,1 528 | 10,5,B,1 529 | 10,10,B,1 530 | 10,5,A,1 531 | 10,10,A,1 532 | 10,5,B,1 533 | 10,10,B,1 534 | 10,4,A,1 535 | 10,10,A,1 536 | 10,8,A,1 537 | 10,10,C,1 538 | 10,5,C,1 539 | 11,8,A,1 540 | 11,6,A,1 541 | 11,6,A,0 542 | 11,7,B,1 543 | 11,6,B,0 544 | 11,7,A,1 545 | 11,7,A,1 546 | 11,7,C,0 547 | 11,8,A,0 548 | 11,6,A,1 549 | 11,6,A,0 550 | 11,7,A,0 551 | 11,8,A,1 552 | 11,8,B,0 553 | 11,8,C,0 554 | 11,6,B,0 555 | 11,8,B,1 556 | 11,7,C,1 557 | 11,8,C,1 558 | 11,8,A,1 559 | 11,7,A,0 560 | 11,8,C,1 561 | 11,7,B,0 562 | 11,7,C,1 563 | 11,8,B,0 564 | 11,7,A,1 565 | 11,7,B,1 566 | 11,8,A,1 567 | 11,6,C,0 568 | 11,6,A,0 569 | 11,7,B,1 570 | 11,8,A,1 571 | 11,6,A,0 572 | 11,6,A,0 573 | 12,5,A,1 574 | 12,10,A,1 575 | 12,5,B,1 576 | 12,10,B,1 577 | 12,5,C,0 578 | 12,2,B,0 579 | 12,10,A,0 580 | 12,10,A,1 581 | 12,2,B,0 582 | 12,10,C,1 583 | 12,10,A,1 584 | 12,5,A,1 585 | 12,2,B,0 586 | 12,5,A,1 587 | 12,5,B,0 588 | 12,2,A,0 589 | 12,2,B,1 590 | 12,5,A,1 591 | 12,5,A,0 592 | 12,2,B,0 593 | 12,2,A,1 594 | 12,5,A,0 595 | 12,5,C,1 596 | 12,5,C,0 597 | 12,2,B,1 598 | 12,5,B,0 599 | 12,2,A,0 600 | 12,5,C,0 601 | 12,10,A,1 602 | 12,2,A,1 603 | 12,2,A,1 604 | 12,2,B,1 605 | 12,5,C,1 606 | 12,5,B,1 607 | 12,10,B,1 608 | 12,5,A,1 609 | 12,10,A,1 610 | 12,5,B,1 611 | 12,2,C,1 612 | 12,10,B,1 613 | 12,10,A,1 614 | 12,2,A,1 615 | 12,10,C,1 616 | 12,5,C,1 617 | 13,3,B,1 618 | 13,5,A,1 619 | 13,10,A,1 620 | 13,5,B,0 621 | 13,10,B,1 622 | 13,5,C,1 623 | 13,7,B,1 624 | 13,3,C,0 625 | 13,10,A,1 626 | 13,7,A,1 627 | 13,7,A,1 628 | 13,10,A,1 629 | 13,7,C,0 630 | 13,3,A,1 631 | 13,10,C,1 632 | 13,10,A,0 633 | 13,7,A,1 634 | 13,5,A,0 635 | 13,3,A,1 636 | 13,3,A,0 637 | 13,5,A,0 638 | 13,5,B,0 639 | 13,3,B,1 640 | 13,5,A,0 641 | 13,3,A,1 642 | 13,5,A,0 643 | 13,3,B,1 644 | 13,7,C,0 645 | 13,3,A,0 646 | 13,5,A,1 647 | 13,5,C,1 648 | 13,7,A,1 649 | 13,5,C,1 650 | 13,3,A,0 651 | 13,7,B,1 652 | 13,3,A,0 653 | 13,7,C,0 654 | 13,5,B,0 655 | 13,5,C,1 656 | 13,10,A,1 657 | 13,7,A,1 658 | 13,7,B,1 659 | 13,5,C,0 660 | 13,5,B,0 661 | 13,10,B,1 662 | 13,5,A,0 663 | 13,10,A,1 664 | 13,7,B,1 665 | 13,5,B,1 666 | 13,10,B,1 667 | 13,10,A,1 668 | 13,10,C,1 669 | 13,5,C,0 670 | 14,3,B,0 671 | 14,5,A,0 672 | 14,5,B,0 673 | 14,5,C,1 674 | 14,3,C,0 675 | 14,4,C,1 676 | 14,3,A,1 677 | 14,5,A,1 678 | 14,3,A,1 679 | 14,4,A,0 680 | 14,3,A,0 681 | 14,5,A,1 682 | 14,5,B,1 683 | 14,4,A,1 684 | 14,3,B,1 685 | 14,5,A,1 686 | 14,3,A,0 687 | 14,5,A,1 688 | 14,3,B,0 689 | 14,4,B,1 690 | 14,4,B,1 691 | 14,3,A,0 692 | 14,5,A,1 693 | 14,5,C,1 694 | 14,5,C,1 695 | 14,3,A,1 696 | 14,4,A,1 697 | 14,4,A,1 698 | 14,3,A,0 699 | 14,5,B,0 700 | 14,5,C,1 701 | 14,4,A,1 702 | 14,4,A,1 703 | 14,5,C,1 704 | 14,4,C,1 705 | 14,5,B,1 706 | 14,5,A,1 707 | 14,5,B,1 708 | 14,4,A,1 709 | 14,5,C,0 710 | 15,5,A,0 711 | 15,9,A,1 712 | 15,10,A,1 713 | 15,9,A,1 714 | 15,5,B,1 715 | 15,10,B,1 716 | 15,5,C,1 717 | 15,2,B,1 718 | 15,9,B,1 719 | 15,10,A,1 720 | 15,9,A,1 721 | 15,10,A,1 722 | 15,2,B,1 723 | 15,10,C,1 724 | 15,10,A,1 725 | 15,5,A,1 726 | 15,2,B,1 727 | 15,5,A,1 728 | 15,5,B,0 729 | 15,2,A,0 730 | 15,2,B,0 731 | 15,5,A,1 732 | 15,9,A,1 733 | 15,5,A,1 734 | 15,2,B,1 735 | 15,2,A,1 736 | 15,9,C,1 737 | 15,9,B,1 738 | 15,5,A,1 739 | 15,9,A,0 740 | 15,9,B,1 741 | 15,5,C,1 742 | 15,5,C,1 743 | 15,2,B,0 744 | 15,5,B,1 745 | 15,2,A,1 746 | 15,5,C,1 747 | 15,10,A,1 748 | 15,9,A,1 749 | 15,9,A,1 750 | 15,2,A,1 751 | 15,2,A,1 752 | 15,2,B,0 753 | 15,5,C,0 754 | 15,5,B,1 755 | 15,10,B,1 756 | 15,5,A,1 757 | 15,9,A,1 758 | 15,10,A,1 759 | 15,5,B,1 760 | 15,2,C,0 761 | 15,10,B,0 762 | 15,10,A,1 763 | 15,2,A,1 764 | 15,10,C,1 765 | 15,5,C,1 766 | 16,3,B,1 767 | 16,9,A,1 768 | 16,6,A,1 769 | 16,9,A,1 770 | 16,6,A,0 771 | 16,7,B,1 772 | 16,6,B,0 773 | 16,2,B,0 774 | 16,9,B,1 775 | 16,3,C,1 776 | 16,9,A,1 777 | 16,7,A,1 778 | 16,7,A,1 779 | 16,7,C,0 780 | 16,6,A,0 781 | 16,6,A,1 782 | 16,3,A,0 783 | 16,2,B,0 784 | 16,7,A,1 785 | 16,3,A,1 786 | 16,3,A,0 787 | 16,2,B,1 788 | 16,2,A,0 789 | 16,2,B,0 790 | 16,3,B,1 791 | 16,3,A,0 792 | 16,9,A,1 793 | 16,2,B,0 794 | 16,6,B,0 795 | 16,3,B,0 796 | 16,2,A,0 797 | 16,9,C,1 798 | 16,7,C,1 799 | 16,3,A,0 800 | 16,9,B,1 801 | 16,9,A,1 802 | 16,9,B,1 803 | 16,7,A,0 804 | 16,3,A,1 805 | 16,7,B,1 806 | 16,2,B,0 807 | 16,3,A,1 808 | 16,7,C,1 809 | 16,2,A,0 810 | 16,9,A,1 811 | 16,9,A,1 812 | 16,2,A,1 813 | 16,2,A,1 814 | 16,7,A,1 815 | 16,7,B,1 816 | 16,2,B,1 817 | 16,6,C,0 818 | 16,6,A,1 819 | 16,9,A,1 820 | 16,7,B,1 821 | 16,2,C,1 822 | 16,2,A,1 823 | 16,6,A,0 824 | 16,6,A,0 825 | 17,9,A,1 826 | 17,10,A,1 827 | 17,9,A,1 828 | 17,10,B,1 829 | 17,2,B,0 830 | 17,9,B,1 831 | 17,10,A,1 832 | 17,9,A,1 833 | 17,10,A,1 834 | 17,2,B,0 835 | 17,10,C,1 836 | 17,10,A,1 837 | 17,2,B,0 838 | 17,2,A,0 839 | 17,2,B,1 840 | 17,9,A,1 841 | 17,2,B,0 842 | 17,2,A,0 843 | 17,9,C,0 844 | 17,9,B,1 845 | 17,9,A,1 846 | 17,9,B,1 847 | 17,2,B,0 848 | 17,2,A,1 849 | 17,10,A,1 850 | 17,9,A,1 851 | 17,9,A,1 852 | 17,2,A,1 853 | 17,2,A,0 854 | 17,2,B,0 855 | 17,10,B,1 856 | 17,9,A,1 857 | 17,10,A,1 858 | 17,2,C,1 859 | 17,10,B,1 860 | 17,10,A,1 861 | 17,2,A,0 862 | 17,10,C,1 863 | 18,3,B,1 864 | 18,9,A,1 865 | 18,10,A,1 866 | 18,6,A,0 867 | 18,9,A,1 868 | 18,6,A,0 869 | 18,10,B,1 870 | 18,6,B,1 871 | 18,9,B,1 872 | 18,3,C,0 873 | 18,10,A,1 874 | 18,9,A,1 875 | 18,10,A,1 876 | 18,6,A,0 877 | 18,6,A,0 878 | 18,3,A,0 879 | 18,10,C,1 880 | 18,10,A,1 881 | 18,3,A,0 882 | 18,3,A,0 883 | 18,3,B,0 884 | 18,3,A,1 885 | 18,9,A,1 886 | 18,6,B,0 887 | 18,3,B,0 888 | 18,9,C,0 889 | 18,3,A,1 890 | 18,9,B,1 891 | 18,9,A,1 892 | 18,9,B,1 893 | 18,3,A,1 894 | 18,3,A,0 895 | 18,10,A,1 896 | 18,9,A,1 897 | 18,9,A,1 898 | 18,6,C,1 899 | 18,6,A,1 900 | 18,10,B,0 901 | 18,9,A,1 902 | 18,10,A,1 903 | 18,10,B,1 904 | 18,10,A,0 905 | 18,6,A,0 906 | 18,10,C,0 907 | 18,6,A,1 908 | 19,8,A,0 909 | 19,1,C,1 910 | 19,2,B,1 911 | 19,1,B,1 912 | 19,4,C,1 913 | 19,8,A,1 914 | 19,2,B,1 915 | 19,8,A,1 916 | 19,1,A,1 917 | 19,8,B,1 918 | 19,4,A,1 919 | 19,2,B,1 920 | 19,4,A,1 921 | 19,2,A,1 922 | 19,2,B,1 923 | 19,1,B,1 924 | 19,8,C,0 925 | 19,2,B,1 926 | 19,2,A,1 927 | 19,8,B,1 928 | 19,4,B,1 929 | 19,1,A,1 930 | 19,4,B,1 931 | 19,8,C,1 932 | 19,8,A,1 933 | 19,8,C,1 934 | 19,1,B,1 935 | 19,4,A,1 936 | 19,4,A,1 937 | 19,2,B,1 938 | 19,8,B,1 939 | 19,2,A,1 940 | 19,2,A,1 941 | 19,2,A,1 942 | 19,4,A,1 943 | 19,4,A,1 944 | 19,2,B,1 945 | 19,8,A,1 946 | 19,1,A,1 947 | 19,4,C,1 948 | 19,2,C,1 949 | 19,4,A,1 950 | 19,1,B,1 951 | 19,8,A,1 952 | 19,2,A,1 953 | 20,8,A,0 954 | 20,5,A,0 955 | 20,9,A,1 956 | 20,10,A,1 957 | 20,9,A,1 958 | 20,5,B,0 959 | 20,10,B,1 960 | 20,5,C,0 961 | 20,7,B,1 962 | 20,9,B,1 963 | 20,4,C,0 964 | 20,10,A,1 965 | 20,9,A,1 966 | 20,7,A,1 967 | 20,7,A,1 968 | 20,10,A,1 969 | 20,7,C,0 970 | 20,8,A,1 971 | 20,10,C,0 972 | 20,10,A,1 973 | 20,7,A,1 974 | 20,8,A,0 975 | 20,5,A,0 976 | 20,8,B,0 977 | 20,4,A,1 978 | 20,5,A,1 979 | 20,5,B,1 980 | 20,4,A,1 981 | 20,5,A,0 982 | 20,9,A,1 983 | 20,5,A,1 984 | 20,8,C,0 985 | 20,8,B,0 986 | 20,9,C,1 987 | 20,4,B,1 988 | 20,7,C,1 989 | 20,4,B,1 990 | 20,9,B,1 991 | 20,5,A,0 992 | 20,9,A,1 993 | 20,9,B,0 994 | 20,8,C,0 995 | 20,5,C,0 996 | 20,8,A,1 997 | 20,7,A,1 998 | 20,8,C,0 999 | 20,5,C,1 1000 | 20,4,A,1 1001 | 20,7,B,1 1002 | 20,4,A,1 1003 | 20,7,C,0 1004 | 20,5,B,0 1005 | 20,8,B,1 1006 | 20,5,C,0 1007 | 20,10,A,1 1008 | 20,9,A,1 1009 | 20,9,A,1 1010 | 20,7,A,0 1011 | 20,4,A,1 1012 | 20,7,B,0 1013 | 20,4,A,1 1014 | 20,8,A,1 1015 | 20,5,C,1 1016 | 20,4,C,0 1017 | 20,5,B,0 1018 | 20,10,B,1 1019 | 20,5,A,0 1020 | 20,9,A,1 1021 | 20,10,A,1 1022 | 20,7,B,1 1023 | 20,5,B,1 1024 | 20,10,B,1 1025 | 20,4,A,1 1026 | 20,10,A,1 1027 | 20,8,A,0 1028 | 20,10,C,1 1029 | 20,5,C,1 1030 | 21,3,B,1 1031 | 21,8,A,1 1032 | 21,6,A,0 1033 | 21,6,A,0 1034 | 21,7,B,1 1035 | 21,6,B,0 1036 | 21,2,B,0 1037 | 21,3,C,0 1038 | 21,4,C,1 1039 | 21,7,A,1 1040 | 21,7,A,1 1041 | 21,7,C,0 1042 | 21,8,A,0 1043 | 21,6,A,0 1044 | 21,6,A,0 1045 | 21,3,A,0 1046 | 21,2,B,0 1047 | 21,7,A,1 1048 | 21,8,A,0 1049 | 21,8,B,0 1050 | 21,3,A,0 1051 | 21,4,A,1 1052 | 21,3,A,0 1053 | 21,2,B,1 1054 | 21,4,A,1 1055 | 21,2,A,0 1056 | 21,2,B,1 1057 | 21,3,B,0 1058 | 21,3,A,0 1059 | 21,8,C,0 1060 | 21,2,B,1 1061 | 21,6,B,0 1062 | 21,3,B,0 1063 | 21,2,A,1 1064 | 21,8,B,1 1065 | 21,4,B,1 1066 | 21,7,C,0 1067 | 21,4,B,1 1068 | 21,3,A,0 1069 | 21,8,C,0 1070 | 21,8,A,0 1071 | 21,7,A,1 1072 | 21,8,C,1 1073 | 21,3,A,0 1074 | 21,4,A,0 1075 | 21,7,B,1 1076 | 21,4,A,1 1077 | 21,2,B,0 1078 | 21,3,A,0 1079 | 21,7,C,0 1080 | 21,8,B,1 1081 | 21,2,A,0 1082 | 21,2,A,0 1083 | 21,2,A,0 1084 | 21,7,A,1 1085 | 21,4,A,1 1086 | 21,7,B,1 1087 | 21,4,A,1 1088 | 21,2,B,1 1089 | 21,8,A,0 1090 | 21,6,C,0 1091 | 21,6,A,0 1092 | 21,4,C,1 1093 | 21,7,B,1 1094 | 21,2,C,0 1095 | 21,4,A,1 1096 | 21,8,A,1 1097 | 21,2,A,0 1098 | 21,6,A,1 1099 | 21,6,A,0 1100 | 22,5,A,1 1101 | 22,9,A,1 1102 | 22,6,A,0 1103 | 22,9,A,1 1104 | 22,6,A,0 1105 | 22,5,B,1 1106 | 22,5,C,0 1107 | 22,7,B,1 1108 | 22,6,B,0 1109 | 22,2,B,0 1110 | 22,9,B,1 1111 | 22,4,C,1 1112 | 22,9,A,1 1113 | 22,7,A,1 1114 | 22,7,A,1 1115 | 22,7,C,1 1116 | 22,6,A,0 1117 | 22,6,A,0 1118 | 22,2,B,0 1119 | 22,7,A,1 1120 | 22,5,A,1 1121 | 22,4,A,1 1122 | 22,2,B,1 1123 | 22,5,A,0 1124 | 22,5,B,0 1125 | 22,4,A,1 1126 | 22,2,A,1 1127 | 22,2,B,1 1128 | 22,5,A,1 1129 | 22,9,A,1 1130 | 22,5,A,1 1131 | 22,2,B,0 1132 | 22,6,B,1 1133 | 22,2,A,0 1134 | 22,9,C,1 1135 | 22,4,B,1 1136 | 22,7,C,0 1137 | 22,4,B,1 1138 | 22,9,B,0 1139 | 22,5,A,1 1140 | 22,9,A,1 1141 | 22,9,B,1 1142 | 22,5,C,0 1143 | 22,7,A,1 1144 | 22,5,C,1 1145 | 22,4,A,0 1146 | 22,7,B,1 1147 | 22,4,A,1 1148 | 22,2,B,0 1149 | 22,7,C,1 1150 | 22,5,B,1 1151 | 22,2,A,0 1152 | 22,5,C,1 1153 | 22,9,A,1 1154 | 22,9,A,1 1155 | 22,2,A,0 1156 | 22,2,A,1 1157 | 22,7,A,1 1158 | 22,4,A,1 1159 | 22,7,B,0 1160 | 22,4,A,1 1161 | 22,2,B,0 1162 | 22,5,C,0 1163 | 22,6,C,0 1164 | 22,6,A,0 1165 | 22,4,C,1 1166 | 22,5,B,1 1167 | 22,5,A,0 1168 | 22,9,A,1 1169 | 22,7,B,0 1170 | 22,5,B,1 1171 | 22,2,C,0 1172 | 22,4,A,1 1173 | 22,2,A,1 1174 | 22,6,A,0 1175 | 22,6,A,1 1176 | 22,5,C,1 1177 | 23,3,B,1 1178 | 23,8,A,1 1179 | 23,5,A,1 1180 | 23,1,C,0 1181 | 23,5,B,1 1182 | 23,5,C,0 1183 | 23,2,B,1 1184 | 23,3,C,0 1185 | 23,1,B,0 1186 | 23,8,A,0 1187 | 23,3,A,0 1188 | 23,2,B,1 1189 | 23,8,A,1 1190 | 23,1,A,1 1191 | 23,5,A,1 1192 | 23,8,B,1 1193 | 23,3,A,0 1194 | 23,3,A,0 1195 | 23,2,B,0 1196 | 23,5,A,1 1197 | 23,5,B,0 1198 | 23,2,A,0 1199 | 23,2,B,0 1200 | 23,3,B,0 1201 | 23,5,A,1 1202 | 23,3,A,0 1203 | 23,1,B,1 1204 | 23,5,A,1 1205 | 23,8,C,1 1206 | 23,2,B,1 1207 | 23,3,B,0 1208 | 23,2,A,0 1209 | 23,8,B,0 1210 | 23,1,A,1 1211 | 23,3,A,1 1212 | 23,5,A,1 1213 | 23,8,C,1 1214 | 23,5,C,1 1215 | 23,8,A,1 1216 | 23,8,C,0 1217 | 23,1,B,0 1218 | 23,5,C,1 1219 | 23,3,A,1 1220 | 23,2,B,1 1221 | 23,3,A,1 1222 | 23,5,B,1 1223 | 23,8,B,1 1224 | 23,2,A,0 1225 | 23,5,C,0 1226 | 23,2,A,1 1227 | 23,2,A,0 1228 | 23,2,B,0 1229 | 23,8,A,1 1230 | 23,1,A,1 1231 | 23,5,C,1 1232 | 23,5,B,1 1233 | 23,5,A,1 1234 | 23,5,B,1 1235 | 23,2,C,0 1236 | 23,1,B,1 1237 | 23,8,A,1 1238 | 23,2,A,1 1239 | 23,5,C,0 1240 | 24,8,A,1 1241 | 24,9,A,1 1242 | 24,10,A,1 1243 | 24,1,C,1 1244 | 24,6,A,0 1245 | 24,9,A,0 1246 | 24,6,A,0 1247 | 24,10,B,1 1248 | 24,6,B,0 1249 | 24,2,B,1 1250 | 24,9,B,1 1251 | 24,1,B,0 1252 | 24,10,A,1 1253 | 24,9,A,1 1254 | 24,10,A,1 1255 | 24,8,A,1 1256 | 24,6,A,0 1257 | 24,6,A,0 1258 | 24,2,B,0 1259 | 24,10,C,1 1260 | 24,10,A,1 1261 | 24,8,A,1 1262 | 24,1,A,1 1263 | 24,8,B,1 1264 | 24,2,B,0 1265 | 24,2,A,1 1266 | 24,2,B,0 1267 | 24,9,A,1 1268 | 24,1,B,1 1269 | 24,8,C,0 1270 | 24,2,B,1 1271 | 24,6,B,0 1272 | 24,2,A,0 1273 | 24,8,B,1 1274 | 24,9,C,0 1275 | 24,1,A,1 1276 | 24,9,B,1 1277 | 24,9,A,1 1278 | 24,9,B,1 1279 | 24,8,C,1 1280 | 24,8,A,1 1281 | 24,8,C,0 1282 | 24,1,B,1 1283 | 24,2,B,1 1284 | 24,8,B,1 1285 | 24,2,A,0 1286 | 24,10,A,1 1287 | 24,9,A,1 1288 | 24,9,A,1 1289 | 24,2,A,1 1290 | 24,2,A,0 1291 | 24,2,B,0 1292 | 24,8,A,0 1293 | 24,1,A,1 1294 | 24,6,C,0 1295 | 24,6,A,1 1296 | 24,10,B,1 1297 | 24,9,A,1 1298 | 24,10,A,1 1299 | 24,2,C,1 1300 | 24,10,B,1 1301 | 24,1,B,1 1302 | 24,10,A,1 1303 | 24,8,A,1 1304 | 24,2,A,0 1305 | 24,6,A,0 1306 | 24,10,C,1 1307 | 24,6,A,0 1308 | 25,9,A,1 1309 | 25,10,A,1 1310 | 25,9,A,1 1311 | 25,10,B,0 1312 | 25,7,B,1 1313 | 25,2,B,0 1314 | 25,9,B,1 1315 | 25,10,A,1 1316 | 25,9,A,1 1317 | 25,7,A,1 1318 | 25,7,A,1 1319 | 25,10,A,1 1320 | 25,7,C,1 1321 | 25,2,B,0 1322 | 25,10,C,0 1323 | 25,10,A,1 1324 | 25,7,A,1 1325 | 25,2,B,0 1326 | 25,2,A,1 1327 | 25,2,B,1 1328 | 25,9,A,1 1329 | 25,2,B,0 1330 | 25,2,A,0 1331 | 25,9,C,1 1332 | 25,7,C,1 1333 | 25,9,B,1 1334 | 25,9,A,0 1335 | 25,9,B,1 1336 | 25,7,A,1 1337 | 25,7,B,1 1338 | 25,2,B,0 1339 | 25,7,C,1 1340 | 25,2,A,1 1341 | 25,10,A,1 1342 | 25,9,A,1 1343 | 25,9,A,1 1344 | 25,2,A,0 1345 | 25,2,A,0 1346 | 25,7,A,1 1347 | 25,7,B,1 1348 | 25,2,B,1 1349 | 25,10,B,1 1350 | 25,9,A,0 1351 | 25,10,A,1 1352 | 25,7,B,1 1353 | 25,2,C,0 1354 | 25,10,B,1 1355 | 25,10,A,1 1356 | 25,2,A,1 1357 | 25,10,C,1 1358 | 26,5,A,1 1359 | 26,9,A,1 1360 | 26,6,A,1 1361 | 26,9,A,1 1362 | 26,6,A,0 1363 | 26,5,B,0 1364 | 26,5,C,1 1365 | 26,6,B,1 1366 | 26,9,B,0 1367 | 26,4,C,1 1368 | 26,9,A,1 1369 | 26,6,A,0 1370 | 26,6,A,1 1371 | 26,5,A,1 1372 | 26,4,A,1 1373 | 26,5,A,1 1374 | 26,5,B,1 1375 | 26,4,A,1 1376 | 26,5,A,1 1377 | 26,9,A,1 1378 | 26,5,A,1 1379 | 26,6,B,0 1380 | 26,9,C,1 1381 | 26,4,B,1 1382 | 26,4,B,0 1383 | 26,9,B,0 1384 | 26,5,A,1 1385 | 26,9,A,1 1386 | 26,9,B,1 1387 | 26,5,C,0 1388 | 26,5,C,1 1389 | 26,4,A,1 1390 | 26,4,A,1 1391 | 26,5,B,0 1392 | 26,5,C,1 1393 | 26,9,A,1 1394 | 26,9,A,1 1395 | 26,4,A,0 1396 | 26,4,A,1 1397 | 26,5,C,1 1398 | 26,6,C,0 1399 | 26,6,A,1 1400 | 26,4,C,0 1401 | 26,5,B,0 1402 | 26,5,A,0 1403 | 26,9,A,1 1404 | 26,5,B,0 1405 | 26,4,A,1 1406 | 26,6,A,0 1407 | 26,6,A,1 1408 | 26,5,C,0 1409 | 27,1,C,1 1410 | 27,6,A,0 1411 | 27,6,A,1 1412 | 27,6,B,0 1413 | 27,1,B,1 1414 | 27,4,C,1 1415 | 27,6,A,0 1416 | 27,6,A,1 1417 | 27,1,A,1 1418 | 27,4,A,1 1419 | 27,4,A,1 1420 | 27,1,B,1 1421 | 27,6,B,0 1422 | 27,4,B,1 1423 | 27,1,A,1 1424 | 27,4,B,1 1425 | 27,1,B,1 1426 | 27,4,A,1 1427 | 27,4,A,0 1428 | 27,4,A,1 1429 | 27,4,A,1 1430 | 27,1,A,1 1431 | 27,6,C,0 1432 | 27,6,A,0 1433 | 27,4,C,1 1434 | 27,4,A,1 1435 | 27,1,B,1 1436 | 27,6,A,1 1437 | 27,6,A,0 1438 | 28,8,A,0 1439 | 28,2,B,1 1440 | 28,4,C,1 1441 | 28,8,A,0 1442 | 28,2,B,1 1443 | 28,8,A,1 1444 | 28,8,B,1 1445 | 28,4,A,1 1446 | 28,2,B,1 1447 | 28,4,A,1 1448 | 28,2,A,1 1449 | 28,2,B,1 1450 | 28,8,C,1 1451 | 28,2,B,0 1452 | 28,2,A,1 1453 | 28,8,B,0 1454 | 28,4,B,1 1455 | 28,4,B,1 1456 | 28,8,C,0 1457 | 28,8,A,1 1458 | 28,8,C,0 1459 | 28,4,A,1 1460 | 28,4,A,1 1461 | 28,2,B,1 1462 | 28,8,B,1 1463 | 28,2,A,0 1464 | 28,2,A,0 1465 | 28,2,A,1 1466 | 28,4,A,1 1467 | 28,4,A,1 1468 | 28,2,B,1 1469 | 28,8,A,1 1470 | 28,4,C,0 1471 | 28,2,C,0 1472 | 28,4,A,1 1473 | 28,8,A,0 1474 | 28,2,A,1 1475 | 29,5,A,1 1476 | 29,5,B,1 1477 | 29,5,C,1 1478 | 29,5,A,1 1479 | 29,5,A,1 1480 | 29,5,B,1 1481 | 29,5,A,1 1482 | 29,5,A,1 1483 | 29,5,A,1 1484 | 29,5,C,1 1485 | 29,5,C,1 1486 | 29,5,B,0 1487 | 29,5,C,1 1488 | 29,5,C,1 1489 | 29,5,B,1 1490 | 29,5,A,1 1491 | 29,5,B,1 1492 | 29,5,C,1 1493 | 30,3,B,1 1494 | 30,8,A,0 1495 | 30,10,A,1 1496 | 30,10,B,1 1497 | 30,2,B,0 1498 | 30,3,C,1 1499 | 30,10,A,1 1500 | 30,10,A,1 1501 | 30,8,A,1 1502 | 30,3,A,1 1503 | 30,2,B,0 1504 | 30,10,C,1 1505 | 30,10,A,1 1506 | 30,8,A,0 1507 | 30,8,B,1 1508 | 30,3,A,1 1509 | 30,3,A,1 1510 | 30,2,B,0 1511 | 30,2,A,0 1512 | 30,2,B,1 1513 | 30,3,B,1 1514 | 30,3,A,1 1515 | 30,8,C,0 1516 | 30,2,B,0 1517 | 30,3,B,1 1518 | 30,2,A,1 1519 | 30,8,B,1 1520 | 30,3,A,1 1521 | 30,8,C,1 1522 | 30,8,A,1 1523 | 30,8,C,1 1524 | 30,3,A,1 1525 | 30,2,B,0 1526 | 30,3,A,1 1527 | 30,8,B,1 1528 | 30,2,A,1 1529 | 30,10,A,1 1530 | 30,2,A,1 1531 | 30,2,A,1 1532 | 30,2,B,1 1533 | 30,8,A,1 1534 | 30,10,B,1 1535 | 30,10,A,1 1536 | 30,2,C,1 1537 | 30,10,B,1 1538 | 30,10,A,1 1539 | 30,8,A,1 1540 | 30,2,A,1 1541 | 30,10,C,1 1542 | 31,8,A,1 1543 | 31,5,A,0 1544 | 31,10,A,1 1545 | 31,1,C,1 1546 | 31,5,B,1 1547 | 31,10,B,1 1548 | 31,5,C,1 1549 | 31,2,B,1 1550 | 31,1,B,0 1551 | 31,4,C,1 1552 | 31,10,A,1 1553 | 31,10,A,1 1554 | 31,8,A,1 1555 | 31,2,B,0 1556 | 31,10,C,1 1557 | 31,10,A,0 1558 | 31,8,A,1 1559 | 31,1,A,0 1560 | 31,5,A,1 1561 | 31,8,B,1 1562 | 31,4,A,1 1563 | 31,2,B,0 1564 | 31,5,A,1 1565 | 31,5,B,1 1566 | 31,4,A,1 1567 | 31,2,A,0 1568 | 31,2,B,0 1569 | 31,5,A,0 1570 | 31,1,B,1 1571 | 31,5,A,1 1572 | 31,8,C,0 1573 | 31,2,B,1 1574 | 31,2,A,1 1575 | 31,8,B,0 1576 | 31,4,B,1 1577 | 31,1,A,0 1578 | 31,4,B,1 1579 | 31,5,A,1 1580 | 31,8,C,1 1581 | 31,5,C,1 1582 | 31,8,A,1 1583 | 31,8,C,1 1584 | 31,1,B,1 1585 | 31,5,C,1 1586 | 31,4,A,1 1587 | 31,4,A,0 1588 | 31,2,B,0 1589 | 31,5,B,1 1590 | 31,8,B,1 1591 | 31,2,A,1 1592 | 31,5,C,1 1593 | 31,10,A,0 1594 | 31,2,A,1 1595 | 31,2,A,1 1596 | 31,4,A,1 1597 | 31,4,A,1 1598 | 31,2,B,1 1599 | 31,8,A,1 1600 | 31,1,A,1 1601 | 31,5,C,1 1602 | 31,4,C,1 1603 | 31,5,B,1 1604 | 31,10,B,1 1605 | 31,5,A,1 1606 | 31,10,A,1 1607 | 31,5,B,1 1608 | 31,2,C,0 1609 | 31,10,B,1 1610 | 31,4,A,1 1611 | 31,1,B,1 1612 | 31,10,A,1 1613 | 31,8,A,1 1614 | 31,2,A,1 1615 | 31,10,C,1 1616 | 31,5,C,0 1617 | 32,9,A,0 1618 | 32,9,A,1 1619 | 32,9,B,1 1620 | 32,9,A,1 1621 | 32,9,A,1 1622 | 32,9,C,1 1623 | 32,9,B,1 1624 | 32,9,A,1 1625 | 32,9,B,1 1626 | 32,9,A,1 1627 | 32,9,A,1 1628 | 32,9,A,1 1629 | 33,3,B,0 1630 | 33,7,B,0 1631 | 33,3,C,1 1632 | 33,7,A,1 1633 | 33,7,A,1 1634 | 33,7,C,1 1635 | 33,3,A,0 1636 | 33,7,A,1 1637 | 33,3,A,0 1638 | 33,3,A,1 1639 | 33,3,B,1 1640 | 33,3,A,1 1641 | 33,3,B,0 1642 | 33,7,C,1 1643 | 33,3,A,1 1644 | 33,7,A,1 1645 | 33,3,A,1 1646 | 33,7,B,1 1647 | 33,3,A,1 1648 | 33,7,C,1 1649 | 33,7,A,1 1650 | 33,7,B,1 1651 | 33,7,B,1 1652 | 34,7,B,1 1653 | 34,2,B,0 1654 | 34,4,C,1 1655 | 34,7,A,1 1656 | 34,7,A,1 1657 | 34,7,C,1 1658 | 34,2,B,0 1659 | 34,7,A,1 1660 | 34,4,A,1 1661 | 34,2,B,0 1662 | 34,4,A,1 1663 | 34,2,A,1 1664 | 34,2,B,0 1665 | 34,2,B,0 1666 | 34,2,A,0 1667 | 34,4,B,1 1668 | 34,7,C,1 1669 | 34,4,B,1 1670 | 34,7,A,1 1671 | 34,4,A,1 1672 | 34,7,B,1 1673 | 34,4,A,1 1674 | 34,2,B,1 1675 | 34,7,C,1 1676 | 34,2,A,0 1677 | 34,2,A,1 1678 | 34,2,A,1 1679 | 34,7,A,1 1680 | 34,4,A,1 1681 | 34,7,B,1 1682 | 34,4,A,1 1683 | 34,2,B,0 1684 | 34,4,C,1 1685 | 34,7,B,1 1686 | 34,2,C,1 1687 | 34,4,A,1 1688 | 34,2,A,0 1689 | 35,3,B,0 1690 | 35,10,A,1 1691 | 35,6,A,0 1692 | 35,6,A,0 1693 | 35,10,B,1 1694 | 35,7,B,1 1695 | 35,6,B,0 1696 | 35,2,B,0 1697 | 35,3,C,1 1698 | 35,10,A,1 1699 | 35,7,A,1 1700 | 35,7,A,1 1701 | 35,10,A,1 1702 | 35,7,C,1 1703 | 35,6,A,1 1704 | 35,6,A,0 1705 | 35,3,A,1 1706 | 35,2,B,0 1707 | 35,10,C,1 1708 | 35,10,A,1 1709 | 35,7,A,1 1710 | 35,3,A,1 1711 | 35,3,A,1 1712 | 35,2,B,1 1713 | 35,2,A,0 1714 | 35,2,B,0 1715 | 35,3,B,0 1716 | 35,3,A,0 1717 | 35,2,B,0 1718 | 35,6,B,1 1719 | 35,3,B,0 1720 | 35,2,A,1 1721 | 35,7,C,1 1722 | 35,3,A,1 1723 | 35,7,A,1 1724 | 35,3,A,1 1725 | 35,7,B,1 1726 | 35,2,B,0 1727 | 35,3,A,1 1728 | 35,7,C,0 1729 | 35,2,A,1 1730 | 35,10,A,1 1731 | 35,2,A,1 1732 | 35,2,A,1 1733 | 35,7,A,1 1734 | 35,7,B,1 1735 | 35,2,B,0 1736 | 35,6,C,0 1737 | 35,6,A,1 1738 | 35,10,B,0 1739 | 35,10,A,1 1740 | 35,7,B,1 1741 | 35,2,C,0 1742 | 35,10,B,1 1743 | 35,10,A,1 1744 | 35,2,A,0 1745 | 35,6,A,1 1746 | 35,10,C,1 1747 | 35,6,A,1 1748 | 36,9,A,1 1749 | 36,10,A,1 1750 | 36,1,C,1 1751 | 36,9,A,1 1752 | 36,10,B,1 1753 | 36,7,B,1 1754 | 36,9,B,1 1755 | 36,1,B,1 1756 | 36,4,C,1 1757 | 36,10,A,1 1758 | 36,9,A,1 1759 | 36,7,A,1 1760 | 36,7,A,1 1761 | 36,10,A,1 1762 | 36,7,C,1 1763 | 36,10,C,1 1764 | 36,10,A,1 1765 | 36,7,A,0 1766 | 36,1,A,1 1767 | 36,4,A,1 1768 | 36,4,A,1 1769 | 36,9,A,1 1770 | 36,1,B,0 1771 | 36,9,C,1 1772 | 36,4,B,1 1773 | 36,7,C,1 1774 | 36,1,A,1 1775 | 36,4,B,1 1776 | 36,9,B,1 1777 | 36,9,A,1 1778 | 36,9,B,1 1779 | 36,7,A,1 1780 | 36,1,B,1 1781 | 36,4,A,1 1782 | 36,7,B,1 1783 | 36,4,A,1 1784 | 36,7,C,1 1785 | 36,10,A,0 1786 | 36,9,A,1 1787 | 36,9,A,1 1788 | 36,7,A,1 1789 | 36,4,A,1 1790 | 36,7,B,1 1791 | 36,4,A,1 1792 | 36,1,A,1 1793 | 36,4,C,1 1794 | 36,10,B,1 1795 | 36,9,A,0 1796 | 36,10,A,1 1797 | 36,7,B,1 1798 | 36,10,B,1 1799 | 36,4,A,1 1800 | 36,1,B,1 1801 | 36,10,A,1 1802 | 36,10,C,1 1803 | 37,3,B,0 1804 | 37,8,A,1 1805 | 37,5,A,1 1806 | 37,9,A,1 1807 | 37,6,A,0 1808 | 37,9,A,1 1809 | 37,6,A,1 1810 | 37,5,B,1 1811 | 37,5,C,0 1812 | 37,6,B,1 1813 | 37,2,B,1 1814 | 37,9,B,1 1815 | 37,3,C,0 1816 | 37,4,C,0 1817 | 37,9,A,1 1818 | 37,8,A,1 1819 | 37,6,A,1 1820 | 37,6,A,1 1821 | 37,3,A,0 1822 | 37,2,B,0 1823 | 37,8,A,1 1824 | 37,5,A,1 1825 | 37,8,B,0 1826 | 37,3,A,1 1827 | 37,4,A,1 1828 | 37,3,A,0 1829 | 37,2,B,0 1830 | 37,5,A,0 1831 | 37,5,B,0 1832 | 37,4,A,0 1833 | 37,2,A,1 1834 | 37,2,B,0 1835 | 37,3,B,0 1836 | 37,5,A,0 1837 | 37,3,A,1 1838 | 37,9,A,1 1839 | 37,5,A,0 1840 | 37,8,C,0 1841 | 37,2,B,0 1842 | 37,6,B,0 1843 | 37,3,B,0 1844 | 37,2,A,1 1845 | 37,8,B,1 1846 | 37,9,C,1 1847 | 37,4,B,1 1848 | 37,4,B,0 1849 | 37,3,A,0 1850 | 37,9,B,1 1851 | 37,5,A,1 1852 | 37,9,A,1 1853 | 37,9,B,1 1854 | 37,8,C,0 1855 | 37,5,C,1 1856 | 37,8,A,1 1857 | 37,8,C,1 1858 | 37,5,C,1 1859 | 37,3,A,1 1860 | 37,4,A,1 1861 | 37,4,A,1 1862 | 37,2,B,1 1863 | 37,3,A,1 1864 | 37,5,B,0 1865 | 37,8,B,1 1866 | 37,2,A,1 1867 | 37,5,C,0 1868 | 37,9,A,1 1869 | 37,9,A,1 1870 | 37,2,A,0 1871 | 37,2,A,0 1872 | 37,4,A,1 1873 | 37,4,A,1 1874 | 37,2,B,0 1875 | 37,8,A,1 1876 | 37,5,C,1 1877 | 37,6,C,0 1878 | 37,6,A,0 1879 | 37,4,C,1 1880 | 37,5,B,1 1881 | 37,5,A,1 1882 | 37,9,A,1 1883 | 37,5,B,1 1884 | 37,2,C,0 1885 | 37,4,A,1 1886 | 37,8,A,1 1887 | 37,2,A,1 1888 | 37,6,A,1 1889 | 37,6,A,0 1890 | 37,5,C,1 1891 | 38,9,A,1 1892 | 38,6,A,0 1893 | 38,9,A,1 1894 | 38,6,A,1 1895 | 38,6,B,0 1896 | 38,2,B,0 1897 | 38,9,B,1 1898 | 38,4,C,1 1899 | 38,9,A,1 1900 | 38,6,A,0 1901 | 38,6,A,1 1902 | 38,2,B,0 1903 | 38,4,A,1 1904 | 38,2,B,0 1905 | 38,4,A,1 1906 | 38,2,A,0 1907 | 38,2,B,1 1908 | 38,9,A,1 1909 | 38,2,B,0 1910 | 38,6,B,1 1911 | 38,2,A,0 1912 | 38,9,C,1 1913 | 38,4,B,0 1914 | 38,4,B,1 1915 | 38,9,B,1 1916 | 38,9,A,1 1917 | 38,9,B,1 1918 | 38,4,A,1 1919 | 38,4,A,1 1920 | 38,2,B,1 1921 | 38,2,A,1 1922 | 38,9,A,1 1923 | 38,9,A,0 1924 | 38,2,A,1 1925 | 38,2,A,1 1926 | 38,4,A,1 1927 | 38,4,A,1 1928 | 38,2,B,0 1929 | 38,6,C,0 1930 | 38,6,A,0 1931 | 38,4,C,1 1932 | 38,9,A,1 1933 | 38,2,C,0 1934 | 38,4,A,1 1935 | 38,2,A,1 1936 | 38,6,A,0 1937 | 38,6,A,0 1938 | 39,3,B,1 1939 | 39,3,C,1 1940 | 39,4,C,1 1941 | 39,3,A,0 1942 | 39,3,A,1 1943 | 39,4,A,1 1944 | 39,3,A,1 1945 | 39,4,A,1 1946 | 39,3,B,0 1947 | 39,3,A,0 1948 | 39,3,B,1 1949 | 39,4,B,1 1950 | 39,4,B,1 1951 | 39,3,A,1 1952 | 39,3,A,0 1953 | 39,4,A,1 1954 | 39,4,A,1 1955 | 39,3,A,1 1956 | 39,4,A,1 1957 | 39,4,A,1 1958 | 39,4,C,1 1959 | 39,4,A,1 1960 | 40,3,B,1 1961 | 40,8,A,1 1962 | 40,1,C,0 1963 | 40,6,A,1 1964 | 40,6,A,1 1965 | 40,6,B,0 1966 | 40,3,C,1 1967 | 40,1,B,1 1968 | 40,8,A,0 1969 | 40,6,A,1 1970 | 40,6,A,0 1971 | 40,3,A,1 1972 | 40,8,A,0 1973 | 40,1,A,1 1974 | 40,8,B,1 1975 | 40,3,A,1 1976 | 40,3,A,0 1977 | 40,3,B,1 1978 | 40,3,A,1 1979 | 40,1,B,1 1980 | 40,8,C,1 1981 | 40,6,B,1 1982 | 40,3,B,1 1983 | 40,8,B,0 1984 | 40,1,A,1 1985 | 40,3,A,1 1986 | 40,8,C,1 1987 | 40,8,A,0 1988 | 40,8,C,1 1989 | 40,1,B,1 1990 | 40,3,A,0 1991 | 40,3,A,0 1992 | 40,8,B,0 1993 | 40,8,A,1 1994 | 40,1,A,1 1995 | 40,6,C,0 1996 | 40,6,A,0 1997 | 40,1,B,1 1998 | 40,8,A,0 1999 | 40,6,A,0 2000 | 40,6,A,1 2001 | 41,3,B,1 2002 | 41,8,A,1 2003 | 41,1,C,1 2004 | 41,7,B,1 2005 | 41,2,B,0 2006 | 41,3,C,0 2007 | 41,1,B,1 2008 | 41,7,A,1 2009 | 41,7,A,1 2010 | 41,7,C,1 2011 | 41,8,A,1 2012 | 41,3,A,1 2013 | 41,2,B,1 2014 | 41,7,A,1 2015 | 41,8,A,1 2016 | 41,1,A,1 2017 | 41,8,B,1 2018 | 41,3,A,1 2019 | 41,3,A,1 2020 | 41,2,B,1 2021 | 41,2,A,0 2022 | 41,2,B,0 2023 | 41,3,B,1 2024 | 41,3,A,1 2025 | 41,1,B,1 2026 | 41,8,C,0 2027 | 41,2,B,1 2028 | 41,3,B,0 2029 | 41,2,A,1 2030 | 41,8,B,1 2031 | 41,7,C,1 2032 | 41,1,A,1 2033 | 41,3,A,0 2034 | 41,8,C,1 2035 | 41,8,A,1 2036 | 41,7,A,1 2037 | 41,8,C,1 2038 | 41,1,B,1 2039 | 41,3,A,1 2040 | 41,7,B,1 2041 | 41,2,B,1 2042 | 41,3,A,1 2043 | 41,7,C,1 2044 | 41,8,B,0 2045 | 41,2,A,0 2046 | 41,2,A,0 2047 | 41,2,A,1 2048 | 41,7,A,1 2049 | 41,7,B,1 2050 | 41,2,B,0 2051 | 41,8,A,1 2052 | 41,1,A,1 2053 | 41,7,B,1 2054 | 41,2,C,1 2055 | 41,1,B,1 2056 | 41,8,A,1 2057 | 41,2,A,1 2058 | 42,5,A,1 2059 | 42,5,B,1 2060 | 42,5,C,1 2061 | 42,2,B,0 2062 | 42,2,B,1 2063 | 42,5,A,1 2064 | 42,2,B,1 2065 | 42,5,A,1 2066 | 42,5,B,1 2067 | 42,2,A,1 2068 | 42,2,B,1 2069 | 42,5,A,1 2070 | 42,5,A,1 2071 | 42,2,B,1 2072 | 42,2,A,0 2073 | 42,5,A,1 2074 | 42,5,C,1 2075 | 42,5,C,1 2076 | 42,2,B,1 2077 | 42,5,B,1 2078 | 42,2,A,1 2079 | 42,5,C,1 2080 | 42,2,A,1 2081 | 42,2,A,1 2082 | 42,2,B,0 2083 | 42,5,C,1 2084 | 42,5,B,1 2085 | 42,5,A,0 2086 | 42,5,B,1 2087 | 42,2,C,0 2088 | 42,2,A,1 2089 | 42,5,C,0 2090 | 43,3,B,1 2091 | 43,5,A,1 2092 | 43,6,A,1 2093 | 43,6,A,1 2094 | 43,5,B,0 2095 | 43,5,C,1 2096 | 43,6,B,1 2097 | 43,2,B,1 2098 | 43,3,C,1 2099 | 43,6,A,0 2100 | 43,6,A,0 2101 | 43,3,A,1 2102 | 43,2,B,1 2103 | 43,5,A,1 2104 | 43,3,A,1 2105 | 43,3,A,1 2106 | 43,2,B,1 2107 | 43,5,A,1 2108 | 43,5,B,1 2109 | 43,2,A,0 2110 | 43,2,B,1 2111 | 43,3,B,1 2112 | 43,5,A,1 2113 | 43,3,A,0 2114 | 43,5,A,0 2115 | 43,2,B,0 2116 | 43,6,B,0 2117 | 43,3,B,1 2118 | 43,2,A,0 2119 | 43,3,A,1 2120 | 43,5,A,1 2121 | 43,5,C,1 2122 | 43,5,C,1 2123 | 43,3,A,1 2124 | 43,2,B,1 2125 | 43,3,A,1 2126 | 43,5,B,1 2127 | 43,2,A,0 2128 | 43,5,C,1 2129 | 43,2,A,0 2130 | 43,2,A,0 2131 | 43,2,B,0 2132 | 43,5,C,0 2133 | 43,6,C,0 2134 | 43,6,A,1 2135 | 43,5,B,1 2136 | 43,5,A,0 2137 | 43,5,B,1 2138 | 43,2,C,1 2139 | 43,2,A,1 2140 | 43,6,A,0 2141 | 43,6,A,1 2142 | 43,5,C,1 2143 | 44,3,B,0 2144 | 44,8,A,1 2145 | 44,1,C,1 2146 | 44,3,C,1 2147 | 44,1,B,1 2148 | 44,8,A,1 2149 | 44,3,A,0 2150 | 44,8,A,1 2151 | 44,1,A,1 2152 | 44,8,B,1 2153 | 44,3,A,1 2154 | 44,3,A,1 2155 | 44,3,B,1 2156 | 44,3,A,1 2157 | 44,1,B,1 2158 | 44,8,C,1 2159 | 44,3,B,1 2160 | 44,8,B,0 2161 | 44,1,A,1 2162 | 44,3,A,0 2163 | 44,8,C,1 2164 | 44,8,A,1 2165 | 44,8,C,0 2166 | 44,1,B,1 2167 | 44,3,A,1 2168 | 44,3,A,1 2169 | 44,8,B,0 2170 | 44,8,A,1 2171 | 44,1,A,1 2172 | 44,1,B,1 2173 | 44,8,A,0 2174 | 45,9,A,0 2175 | 45,9,A,1 2176 | 45,9,B,1 2177 | 45,4,C,1 2178 | 45,9,A,1 2179 | 45,4,A,1 2180 | 45,4,A,1 2181 | 45,9,A,1 2182 | 45,9,C,1 2183 | 45,4,B,1 2184 | 45,4,B,1 2185 | 45,9,B,1 2186 | 45,9,A,1 2187 | 45,9,B,1 2188 | 45,4,A,1 2189 | 45,4,A,1 2190 | 45,9,A,1 2191 | 45,9,A,1 2192 | 45,4,A,1 2193 | 45,4,A,1 2194 | 45,4,C,1 2195 | 45,9,A,1 2196 | 45,4,A,1 2197 | 46,8,A,1 2198 | 46,5,A,1 2199 | 46,6,A,0 2200 | 46,6,A,0 2201 | 46,5,B,0 2202 | 46,5,C,1 2203 | 46,6,B,0 2204 | 46,4,C,1 2205 | 46,8,A,1 2206 | 46,6,A,0 2207 | 46,6,A,0 2208 | 46,8,A,1 2209 | 46,5,A,1 2210 | 46,8,B,0 2211 | 46,4,A,1 2212 | 46,5,A,0 2213 | 46,5,B,1 2214 | 46,4,A,1 2215 | 46,5,A,1 2216 | 46,5,A,1 2217 | 46,8,C,0 2218 | 46,6,B,0 2219 | 46,8,B,1 2220 | 46,4,B,1 2221 | 46,4,B,1 2222 | 46,5,A,1 2223 | 46,8,C,0 2224 | 46,5,C,0 2225 | 46,8,A,1 2226 | 46,8,C,1 2227 | 46,5,C,0 2228 | 46,4,A,1 2229 | 46,4,A,1 2230 | 46,5,B,1 2231 | 46,8,B,1 2232 | 46,5,C,0 2233 | 46,4,A,1 2234 | 46,4,A,1 2235 | 46,8,A,1 2236 | 46,5,C,1 2237 | 46,6,C,0 2238 | 46,6,A,1 2239 | 46,4,C,1 2240 | 46,5,B,1 2241 | 46,5,A,0 2242 | 46,5,B,1 2243 | 46,4,A,1 2244 | 46,8,A,1 2245 | 46,6,A,1 2246 | 46,6,A,0 2247 | 46,5,C,1 2248 | 47,1,C,0 2249 | 47,2,B,0 2250 | 47,1,B,1 2251 | 47,2,B,1 2252 | 47,1,A,1 2253 | 47,2,B,1 2254 | 47,2,A,1 2255 | 47,2,B,0 2256 | 47,1,B,1 2257 | 47,2,B,0 2258 | 47,2,A,0 2259 | 47,1,A,1 2260 | 47,1,B,0 2261 | 47,2,B,0 2262 | 47,2,A,0 2263 | 47,2,A,0 2264 | 47,2,A,0 2265 | 47,2,B,1 2266 | 47,1,A,1 2267 | 47,2,C,0 2268 | 47,1,B,1 2269 | 47,2,A,0 2270 | 48,8,A,1 2271 | 48,7,B,1 2272 | 48,2,B,1 2273 | 48,7,A,1 2274 | 48,7,A,1 2275 | 48,7,C,1 2276 | 48,8,A,0 2277 | 48,2,B,0 2278 | 48,7,A,1 2279 | 48,8,A,1 2280 | 48,8,B,1 2281 | 48,2,B,1 2282 | 48,2,A,1 2283 | 48,2,B,1 2284 | 48,8,C,1 2285 | 48,2,B,0 2286 | 48,2,A,1 2287 | 48,8,B,1 2288 | 48,7,C,1 2289 | 48,8,C,1 2290 | 48,8,A,0 2291 | 48,7,A,1 2292 | 48,8,C,0 2293 | 48,7,B,1 2294 | 48,2,B,0 2295 | 48,7,C,0 2296 | 48,8,B,1 2297 | 48,2,A,1 2298 | 48,2,A,0 2299 | 48,2,A,0 2300 | 48,7,A,1 2301 | 48,7,B,1 2302 | 48,2,B,1 2303 | 48,8,A,1 2304 | 48,7,B,1 2305 | 48,2,C,1 2306 | 48,8,A,1 2307 | 48,2,A,1 2308 | 49,7,B,0 2309 | 49,4,C,1 2310 | 49,7,A,1 2311 | 49,7,A,1 2312 | 49,7,C,1 2313 | 49,7,A,1 2314 | 49,4,A,1 2315 | 49,4,A,1 2316 | 49,4,B,1 2317 | 49,7,C,0 2318 | 49,4,B,1 2319 | 49,7,A,1 2320 | 49,4,A,1 2321 | 49,7,B,0 2322 | 49,4,A,1 2323 | 49,7,C,1 2324 | 49,7,A,1 2325 | 49,4,A,1 2326 | 49,7,B,1 2327 | 49,4,A,1 2328 | 49,4,C,1 2329 | 49,7,B,1 2330 | 49,4,A,1 2331 | 50,3,B,0 2332 | 50,5,A,0 2333 | 50,9,A,1 2334 | 50,10,A,1 2335 | 50,9,A,0 2336 | 50,5,B,1 2337 | 50,10,B,1 2338 | 50,5,C,0 2339 | 50,2,B,0 2340 | 50,9,B,1 2341 | 50,3,C,0 2342 | 50,10,A,1 2343 | 50,9,A,1 2344 | 50,10,A,1 2345 | 50,3,A,0 2346 | 50,2,B,1 2347 | 50,10,C,1 2348 | 50,10,A,1 2349 | 50,5,A,0 2350 | 50,3,A,1 2351 | 50,3,A,0 2352 | 50,2,B,1 2353 | 50,5,A,1 2354 | 50,5,B,0 2355 | 50,2,A,0 2356 | 50,2,B,0 2357 | 50,3,B,0 2358 | 50,5,A,1 2359 | 50,3,A,0 2360 | 50,9,A,1 2361 | 50,5,A,1 2362 | 50,2,B,0 2363 | 50,3,B,0 2364 | 50,2,A,1 2365 | 50,9,C,1 2366 | 50,3,A,0 2367 | 50,9,B,1 2368 | 50,5,A,0 2369 | 50,9,A,1 2370 | 50,9,B,1 2371 | 50,5,C,0 2372 | 50,5,C,1 2373 | 50,3,A,1 2374 | 50,2,B,1 2375 | 50,3,A,1 2376 | 50,5,B,1 2377 | 50,2,A,1 2378 | 50,5,C,0 2379 | 50,10,A,1 2380 | 50,9,A,1 2381 | 50,9,A,1 2382 | 50,2,A,1 2383 | 50,2,A,1 2384 | 50,2,B,1 2385 | 50,5,C,1 2386 | 50,5,B,0 2387 | 50,10,B,1 2388 | 50,5,A,0 2389 | 50,9,A,1 2390 | 50,10,A,1 2391 | 50,5,B,1 2392 | 50,2,C,0 2393 | 50,10,B,1 2394 | 50,10,A,1 2395 | 50,2,A,1 2396 | 50,10,C,1 2397 | 50,5,C,0 2398 | -------------------------------------------------------------------------------- /chap08/input/data-conc-2.txt: -------------------------------------------------------------------------------- 1 | PersonID,Time1,Time2,Time4,Time8,Time12,Time24 2 | 1,2.4,5.0,7.5,11.9,12.5,12.7 3 | 2,1.4,3.9,4.4,7.7,6.4,8.3 4 | 3,5.2,9.4,19.4,20.2,22.7,24.9 5 | 4,6.7,12.6,19.1,23.4,25.8,26.1 6 | 5,0.3,4.7,7.0,10.2,12.9,14.8 7 | 6,6.3,3.8,11.8,9.2,13.9,18.2 8 | 7,3.0,4.2,8.8,15.4,10.7,16.2 9 | 8,6.2,6.8,9.4,11.3,12.4,14.7 10 | 9,14.4,17.0,22.7,29.8,33.0,32.2 11 | 10,7.7,10.0,14.8,15.3,18.0,18.7 12 | 11,8.8,11.3,13.3,19.2,17.4,21.8 13 | 12,6.8,12.6,13.4,14.9,16.8,16.0 14 | 13,0.7,4.6,5.1,9.9,11.4,11.2 15 | 14,5.8,9.4,14.3,23.1,22.9,25.2 16 | 15,1.8,7.9,13.2,15.6,16.5,15.9 17 | 16,14.3,18.7,29.3,31.9,31.9,30.6 18 | -------------------------------------------------------------------------------- /chap08/input/data-salary-2.txt: -------------------------------------------------------------------------------- 1 | X,Y,KID 2 | 7,457,1 3 | 10,482,1 4 | 16,518,1 5 | 25,535,1 6 | 5,427,1 7 | 25,603,1 8 | 26,610,1 9 | 18,484,1 10 | 17,508,1 11 | 1,380,1 12 | 5,453,1 13 | 4,391,1 14 | 19,559,1 15 | 10,453,1 16 | 21,517,1 17 | 12,553,2 18 | 17,653,2 19 | 22,763,2 20 | 9,538,2 21 | 18,708,2 22 | 21,740,2 23 | 6,437,2 24 | 15,646,2 25 | 4,422,2 26 | 7,444,2 27 | 10,504,2 28 | 2,376,2 29 | 15,522,3 30 | 27,623,3 31 | 14,515,3 32 | 18,542,3 33 | 20,529,3 34 | 18,540,3 35 | 11,411,3 36 | 26,666,3 37 | 22,641,3 38 | 25,592,3 39 | 28,722,4 40 | 24,726,4 41 | 22,728,4 42 | -------------------------------------------------------------------------------- /chap08/input/data-salary-3.txt: -------------------------------------------------------------------------------- 1 | X,Y,KID,GID 2 | 7,457,1,1 3 | 10,482,1,1 4 | 16,518,1,1 5 | 25,535,1,1 6 | 5,427,1,1 7 | 25,603,1,1 8 | 26,610,1,1 9 | 18,484,1,1 10 | 17,508,1,1 11 | 1,380,1,1 12 | 5,453,1,1 13 | 4,391,1,1 14 | 19,559,1,1 15 | 10,453,1,1 16 | 21,517,1,1 17 | 12,553,2,1 18 | 17,653,2,1 19 | 22,763,2,1 20 | 9,538,2,1 21 | 18,708,2,1 22 | 21,740,2,1 23 | 6,437,2,1 24 | 15,646,2,1 25 | 4,422,2,1 26 | 7,444,2,1 27 | 10,504,2,1 28 | 2,376,2,1 29 | 15,522,3,1 30 | 27,623,3,1 31 | 14,515,3,1 32 | 18,542,3,1 33 | 20,529,3,1 34 | 18,540,3,1 35 | 11,411,3,1 36 | 26,666,3,1 37 | 22,641,3,1 38 | 25,592,3,1 39 | 28,722,4,1 40 | 24,726,4,1 41 | 22,728,4,1 42 | 20,927,5,2 43 | 19,1036,5,2 44 | 12,640,5,2 45 | 15,851,5,2 46 | 10,568,5,2 47 | 16,832,5,2 48 | 1,191,5,2 49 | 12,730,5,2 50 | 10,742,5,2 51 | 7,562,5,2 52 | 17,722,5,2 53 | 15,849,6,2 54 | 12,899,6,2 55 | 9,788,6,2 56 | 14,766,6,2 57 | 13,787,6,2 58 | 15,923,6,2 59 | 9,675,6,2 60 | 14,811,6,2 61 | 11,660,6,2 62 | 10,598,7,2 63 | 13,757,7,2 64 | 26,1097,7,2 65 | 3,358,7,2 66 | 14,701,7,2 67 | 23,1097,7,2 68 | 10,583,7,2 69 | 7,560,7,2 70 | 0,388,7,2 71 | 3,420,7,2 72 | 7,493,7,2 73 | 4,423,7,2 74 | 24,1007,7,2 75 | 6,557,7,2 76 | 34,1331,7,2 77 | 33,1398,7,2 78 | 24,1003,7,2 79 | 23,863,8,2 80 | 23,920,8,2 81 | 22,886,8,2 82 | 14,637,8,2 83 | 26,873,8,2 84 | 21,860,8,2 85 | 20,779,8,2 86 | 12,700,8,2 87 | 17,683,8,2 88 | 24,880,9,2 89 | 15,567,9,2 90 | 26,863,9,2 91 | 27,927,9,2 92 | 20,681,9,2 93 | 7,484,9,2 94 | 26,837,9,2 95 | 4,303,9,2 96 | 22,740,9,2 97 | 15,726,9,2 98 | 27,849,9,2 99 | 16,632,10,2 100 | 20,814,10,2 101 | 4,434,10,2 102 | 18,864,10,2 103 | 8,622,10,2 104 | 10,568,10,2 105 | 16,833,10,2 106 | 2,271,10,2 107 | 8,267,10,2 108 | 13,589,10,2 109 | 19,741,10,2 110 | 7,244,10,2 111 | 2,406,10,2 112 | 19,714,10,2 113 | 4,378,10,2 114 | 1,161,10,2 115 | 8,561,10,2 116 | 7,671,10,2 117 | 5,338,10,2 118 | 13,625,10,2 119 | 16,913,10,2 120 | 9,627,10,2 121 | 19,988,10,2 122 | 5,426,10,2 123 | 13,621,10,2 124 | 7,428,10,2 125 | 26,1198,11,2 126 | 20,828,11,2 127 | 16,809,11,2 128 | 22,974,11,2 129 | 24,1190,11,2 130 | 26,1172,12,2 131 | 18,818,12,2 132 | 34,1521,12,2 133 | 19,960,12,2 134 | 30,1299,12,2 135 | 22,1081,12,2 136 | 21,1016,12,2 137 | 2,301,12,2 138 | 9,639,12,2 139 | 27,1228,12,2 140 | 20,821,13,2 141 | 20,765,13,2 142 | 16,781,13,2 143 | 14,858,13,2 144 | 5,532,13,2 145 | 13,810,13,2 146 | 12,763,13,2 147 | 1,370,13,2 148 | 8,466,13,2 149 | 18,724,14,2 150 | 8,565,14,2 151 | 10,358,14,2 152 | 3,330,14,2 153 | 4,448,14,2 154 | 11,580,14,2 155 | 8,524,14,2 156 | 13,622,14,2 157 | 12,603,14,2 158 | 2,347,14,2 159 | 6,392,14,2 160 | 0,238,14,2 161 | 20,762,14,2 162 | 8,463,14,2 163 | 20,714,14,2 164 | 10,551,14,2 165 | 9,515,14,2 166 | 12,816,15,2 167 | 6,451,15,2 168 | 10,624,15,2 169 | 11,686,15,2 170 | 12,637,15,2 171 | 9,605,15,2 172 | 6,476,15,2 173 | 5,353,15,2 174 | 13,741,15,2 175 | 12,691,15,2 176 | 13,830,15,2 177 | 15,516,16,2 178 | 24,814,16,2 179 | 28,852,16,2 180 | 31,773,16,2 181 | 18,675,16,2 182 | 25,767,16,2 183 | 19,674,16,2 184 | 24,824,16,2 185 | 13,548,16,2 186 | 24,918,16,2 187 | 24,769,16,2 188 | 26,671,16,2 189 | 28,913,16,2 190 | 29,735,16,2 191 | 8,453,17,2 192 | 25,968,17,2 193 | 30,1109,17,2 194 | 27,1031,17,2 195 | 30,1199,17,2 196 | 10,644,17,2 197 | 29,1137,17,2 198 | 13,598,18,2 199 | 15,736,18,2 200 | 15,766,18,2 201 | 14,698,18,2 202 | 12,662,18,2 203 | 15,675,18,2 204 | 14,626,18,2 205 | 12,739,18,2 206 | 14,724,18,2 207 | 13,653,18,2 208 | 15,756,18,2 209 | 12,781,18,2 210 | 15,608,19,2 211 | 20,798,19,2 212 | 17,739,19,2 213 | 19,609,19,2 214 | 12,591,19,2 215 | 12,458,19,2 216 | 17,472,19,2 217 | 14,443,19,2 218 | 8,572,20,2 219 | 20,1104,20,2 220 | 13,764,20,2 221 | 26,1176,20,2 222 | 3,415,20,2 223 | 32,1471,20,2 224 | 21,972,20,2 225 | 21,985,20,2 226 | 24,1044,20,2 227 | 9,478,21,2 228 | 7,438,21,2 229 | 10,537,21,2 230 | 15,726,21,2 231 | 5,446,21,2 232 | 12,609,21,2 233 | 8,475,21,2 234 | 13,624,21,2 235 | 14,670,21,2 236 | 15,661,21,2 237 | 14,688,21,2 238 | 5,453,21,2 239 | 8,521,22,2 240 | 26,1040,22,2 241 | 6,555,22,2 242 | 27,1033,22,2 243 | 32,1253,22,2 244 | 16,798,22,2 245 | 2,519,22,2 246 | 21,825,22,2 247 | 27,1065,22,2 248 | 5,507,22,2 249 | 32,1301,22,2 250 | 22,989,22,2 251 | 28,1070,22,2 252 | 25,824,23,3 253 | 6,571,23,3 254 | 20,756,23,3 255 | 33,940,23,3 256 | 20,785,24,3 257 | 14,701,24,3 258 | 22,807,24,3 259 | 11,663,24,3 260 | 11,662,24,3 261 | 8,620,24,3 262 | 13,687,24,3 263 | 32,943,24,3 264 | 8,637,25,3 265 | 7,583,25,3 266 | 8,654,25,3 267 | 20,801,25,3 268 | 19,751,25,3 269 | 25,815,25,3 270 | 11,621,26,3 271 | 12,650,26,3 272 | 8,590,26,3 273 | 10,614,26,3 274 | 13,644,26,3 275 | 12,645,26,3 276 | 15,673,26,3 277 | 16,695,27,3 278 | 12,653,27,3 279 | 15,695,27,3 280 | 2,534,27,3 281 | 8,610,27,3 282 | 19,708,28,3 283 | 14,663,28,3 284 | 14,668,28,3 285 | 12,643,28,3 286 | 14,665,28,3 287 | 18,704,28,3 288 | 13,637,29,3 289 | 8,579,29,3 290 | 7,577,29,3 291 | 5,546,29,3 292 | 14,651,30,3 293 | 20,718,30,3 294 | 25,800,30,3 295 | 16,670,30,3 296 | 22,746,30,3 297 | 17,690,30,3 298 | 23,740,30,3 299 | 20,720,30,3 300 | 26,805,30,3 301 | 20,727,30,3 302 | -------------------------------------------------------------------------------- /chap08/input/data7a.csv: -------------------------------------------------------------------------------- 1 | id,y 2 | 1,0 3 | 2,2 4 | 3,7 5 | 4,8 6 | 5,1 7 | 6,7 8 | 7,8 9 | 8,8 10 | 9,1 11 | 10,1 12 | 11,4 13 | 12,0 14 | 13,1 15 | 14,4 16 | 15,7 17 | 16,8 18 | 17,7 19 | 18,0 20 | 19,2 21 | 20,2 22 | 21,1 23 | 22,1 24 | 23,5 25 | 24,7 26 | 25,8 27 | 26,3 28 | 27,8 29 | 28,4 30 | 29,6 31 | 30,0 32 | 31,8 33 | 32,7 34 | 33,8 35 | 34,0 36 | 35,2 37 | 36,6 38 | 37,7 39 | 38,8 40 | 39,2 41 | 40,1 42 | 41,1 43 | 42,0 44 | 43,0 45 | 44,7 46 | 45,8 47 | 46,5 48 | 47,7 49 | 48,2 50 | 49,8 51 | 50,1 52 | 51,5 53 | 52,7 54 | 53,3 55 | 54,8 56 | 55,0 57 | 56,8 58 | 57,6 59 | 58,3 60 | 59,2 61 | 60,0 62 | 61,0 63 | 62,1 64 | 63,2 65 | 64,8 66 | 65,7 67 | 66,7 68 | 67,7 69 | 68,8 70 | 69,0 71 | 70,0 72 | 71,0 73 | 72,5 74 | 73,1 75 | 74,0 76 | 75,0 77 | 76,0 78 | 77,8 79 | 78,1 80 | 79,8 81 | 80,4 82 | 81,7 83 | 82,2 84 | 83,1 85 | 84,4 86 | 85,7 87 | 86,0 88 | 87,8 89 | 88,1 90 | 89,8 91 | 90,7 92 | 91,6 93 | 92,2 94 | 93,8 95 | 94,6 96 | 95,6 97 | 96,1 98 | 97,0 99 | 98,4 100 | 99,7 101 | 100,0 102 | --------------------------------------------------------------------------------