├── .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 | " Time | \n",
60 | " Y | \n",
61 | "
\n",
62 | " \n",
63 | " \n",
64 | " \n",
65 | " 0 | \n",
66 | " 1 | \n",
67 | " 2.4 | \n",
68 | "
\n",
69 | " \n",
70 | " 1 | \n",
71 | " 2 | \n",
72 | " 5.0 | \n",
73 | "
\n",
74 | " \n",
75 | " 2 | \n",
76 | " 4 | \n",
77 | " 7.5 | \n",
78 | "
\n",
79 | " \n",
80 | " 3 | \n",
81 | " 8 | \n",
82 | " 11.9 | \n",
83 | "
\n",
84 | " \n",
85 | " 4 | \n",
86 | " 12 | \n",
87 | " 12.5 | \n",
88 | "
\n",
89 | " \n",
90 | " 5 | \n",
91 | " 24 | \n",
92 | " 12.7 | \n",
93 | "
\n",
94 | " \n",
95 | "
\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 | " 0.025 | \n",
289 | " 0.25 | \n",
290 | " 0.5 | \n",
291 | " 0.75 | \n",
292 | " 0.975 | \n",
293 | "
\n",
294 | " \n",
295 | " \n",
296 | " \n",
297 | " a | \n",
298 | " 11.674364 | \n",
299 | " 12.741878 | \n",
300 | " 13.119759 | \n",
301 | " 13.473246 | \n",
302 | " 14.566420 | \n",
303 | "
\n",
304 | " \n",
305 | " b | \n",
306 | " 0.177117 | \n",
307 | " 0.220226 | \n",
308 | " 0.238723 | \n",
309 | " 0.259284 | \n",
310 | " 0.358479 | \n",
311 | "
\n",
312 | " \n",
313 | " sigma | \n",
314 | " 0.352461 | \n",
315 | " 0.525944 | \n",
316 | " 0.691944 | \n",
317 | " 0.957323 | \n",
318 | " 2.340452 | \n",
319 | "
\n",
320 | " \n",
321 | "
\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 | " Y | \n",
60 | " Weight | \n",
61 | " Age | \n",
62 | "
\n",
63 | " \n",
64 | " \n",
65 | " \n",
66 | " 0 | \n",
67 | " 2.46 | \n",
68 | " 16.6 | \n",
69 | " 7 | \n",
70 | "
\n",
71 | " \n",
72 | " 1 | \n",
73 | " 3.02 | \n",
74 | " 21.4 | \n",
75 | " 7 | \n",
76 | "
\n",
77 | " \n",
78 | " 2 | \n",
79 | " 2.91 | \n",
80 | " 24.0 | \n",
81 | " 7 | \n",
82 | "
\n",
83 | " \n",
84 | " 3 | \n",
85 | " 3.05 | \n",
86 | " 13.0 | \n",
87 | " 7 | \n",
88 | "
\n",
89 | " \n",
90 | " 4 | \n",
91 | " 2.60 | \n",
92 | " 21.9 | \n",
93 | " 7 | \n",
94 | "
\n",
95 | " \n",
96 | "
\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 | " X | \n",
60 | " Y | \n",
61 | "
\n",
62 | " \n",
63 | " \n",
64 | " \n",
65 | " 0 | \n",
66 | " 24 | \n",
67 | " 472 | \n",
68 | "
\n",
69 | " \n",
70 | " 1 | \n",
71 | " 24 | \n",
72 | " 403 | \n",
73 | "
\n",
74 | " \n",
75 | " 2 | \n",
76 | " 26 | \n",
77 | " 454 | \n",
78 | "
\n",
79 | " \n",
80 | " 3 | \n",
81 | " 32 | \n",
82 | " 575 | \n",
83 | "
\n",
84 | " \n",
85 | " 4 | \n",
86 | " 33 | \n",
87 | " 546 | \n",
88 | "
\n",
89 | " \n",
90 | "
\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": "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\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 |
--------------------------------------------------------------------------------