学号:1940802 姓名:刘睿奇
首先导入基本的模块。
library(fBasics)
library(TTR)
library(xts)
library(zoo)
library(quantmod)
library(moments)
library(TSA)
Attaching package: 㤼㸱TSA㤼㸲
The following objects are masked from 㤼㸱package:moments㤼㸲:
kurtosis, skewness
The following objects are masked from 㤼㸱package:timeDate㤼㸲:
kurtosis, skewness
The following objects are masked from 㤼㸱package:stats㤼㸲:
acf, arima
The following object is masked from 㤼㸱package:utils㤼㸲:
tar
- 从正态分布N(100,100)中随机产生1000个随机数,
- 作出这1000个正态随机数的直方图;
da <- rnorm(1000, 100, sqrt(100))
hist(da,probability = T)
lines(density(da))

- 从这1000个随机数中随机有放回地抽取500个, 作出其直方图;
da500 <- sample(da, size = 500, replace = T)
hist(da500,probability = T)
lines(density(da500))

- 比较它们的样本均值与样本方差.
print('Mean')
[1] "Mean"
mean(da)
[1] 100.2
mean(da500)
[1] 99.75
print('Var')
[1] "Var"
var(da)
[1] 108.3
var(da500)
[1] 105.2
2.假定某校100名女生的血清总蛋白含量(g/L)服从均值为75, 标准差为9,并假定数据由下面的命令产生
options(digits=4)
da <- rnorm(100,75,9)
根据产生的数据: (a) 计算样本均值、方差、标准差、极差、四分位极差、变异系数、偏度、峰度和五数概括;
bda <- basicStats(da)
bda
如上所示,Mean为样本均值,Variance为方差,Stdev为标准差,Skewness为偏度,Kurtosis为(超额)峰度
dra <- bda["Maximum",1] - bda["Minimum",1]
print('dra')
[1] "dra"
dra
[1] 36.02
print('IQR')
[1] "IQR"
IQR(da)
[1] 10.52
print('cv')
[1] "cv"
cv <- bda["Mean",1]/bda["Stdev",1]
dra求得的结果为极差,IQR求得的结果为四分位极差,cv求得的结果为变异系数
summary(da)
Min. 1st Qu. Median Mean 3rd Qu. Max.
57.3 70.8 76.0 76.0 81.3 93.3
以上结果除了Mean剩下的五个数即为五数概括
- 画出直方图、核密度估计曲线、QQ图;
hist(da,probability = T)
lines(density(da))

qqnorm(da, main="Normality Check via QQ Plot") #QQ图
qqline(da, col='red')

- 画出茎叶图、盒形图
stem(da)
The decimal point is 1 digit(s) to the right of the |
5 | 7
6 | 0022344
6 | 5666788889999
7 | 000011223334444444
7 | 5555555566667777888888889999
8 | 0000011112223333344444
8 | 5677777799
9 | 3
boxplot(da)
title(main = 'Boxplot')

- 考虑美国从1947年第1季度到2011年第3季度的季度实际GNP,该数据存放于文件q-GNPC96.txt中,数据已做了季节调整,以2005年GDP为基础进行了通胀调整,以10亿美元为单位。假设x_t代表GNP增长率的时间序列数据.
读取数据:
da <- read.table('q-GNPC96.txt', header = T)
length(da$gnp)
[1] 259
head(da)
tail(da)
计算增长率x_t(简单收益率):
x_t <- 1 / (da$gnp[2:nrow(da)] / diff(da$gnp[2:nrow(da)]) - 1)
longer object length is not a multiple of shorter object length
length(x_t)
[1] 258
head(x_t)
[1] -0.0008429 0.0156643 0.0165671 0.0190084 0.0053833 0.0015469
tdx <- da$year + da$mon/12 #产生简易的时间指数
plot(tdx[2:nrow(da)], x_t,type = 'l',xlab = 'year')

- 通过ar命令,应用AIC准则,可以为x_t识别一个几阶AR()模型?拟合这个模型,拟合的模型充分吗?为什么?
模型定阶:
mm11 <- ar(x_t,method='mle') #用AIC准则,自动为AR(P)定阶,方法为极大似然估计
mm11$order #寻找合适的阶p
[1] 3
print(mm11$aic) #查看mm1中aic的值
0 1 2 3 4 5 6 7 8 9
38.5705 3.1667 2.4577 0.0000 0.1469 0.3142 1.9640 3.8857 5.8843 5.7963
10 11 12
7.7942 9.7707 4.9022
aic <- mm11$aic
plot(c(0:(length(aic)-1)),aic,type='h',xlab='order',ylab='aic') #画aic竖线图
lines(0:(length(aic)-1),aic,lty=2) #画aic连线图

由上述结果可知,3的AIC最小(为0.000),可以识别为一个AR(3)的模型。
参数估计:
mm12 <- arima(x_t,order=c(3,0,0))
mm12
Call:
arima(x = x_t, order = c(3, 0, 0))
Coefficients:
ar1 ar2 ar3 intercept
0.344 0.145 -0.132 0.008
s.e. 0.062 0.065 0.062 0.001
sigma^2 estimated as 8.81e-05: log likelihood = 838.2, aic = -1668
模型检验: H0:残差为白噪声 Ha:残差不为白噪声
Box.test(mm12$residuals,lag=12,type='Ljung')
Box-Ljung test
data: mm12$residuals
X-squared = 11, df = 12, p-value = 0.5
pv=1-pchisq(11,9) #去掉3个参数后,用自由度9检验p值
pv
[1] 0.2757
p-value > 0.05,无法拒绝原假设,故残差为白噪声,故模型是充分的。
- 数据x_t的样本PACF识别的是几阶AR()时间序列模型?拟合这个模型,拟合的模型充分吗? 为什么?
模型定阶:
pacf(x_t)

可以看到,PACF在3和12时还是显著的,但4~11都不显著,所以还是定为AR(3)模型更为合适。 参数估计、模型检验同第一问,不再重新计算。
- 以 NYSE/AMEX/NASDAQ 的市场资本为基础考虑 CRSP Decile 1、2、5、9、10投资组合的月简单收益率. 该数据的时间区间是从1961年1月到2011年9月.
读取数据:
da <- read.table('m-dec125910-6111.txt', header=T, row.names = 1)
nrow(da)
[1] 609
head(da)
tail(da)
- 对于 Decile 2 和 Decile 10的收益序列,在5%的显著性水平下检验:原假设是滞后阶数为1-12的自相关系数均为0. 给出你的结论.
par(mfcol=c(2,1))
acf(da$dec2,lag = 12)
acf(da$dec10,lag = 12)

对于Decile 2: H0:滞后阶数为1-12的自相关系数均为0 Ha:滞后阶数为1-12的自相关系数不全为0
Box.test(da$dec2,lag=12,type='Ljung')
Box-Ljung test
data: da$dec2
X-squared = 17, df = 12, p-value = 0.1
p-value > 0.05,故无法拒绝原假设。所以对于Decile 2,滞后阶数为1-12的自相关系数均为0
对于Decile 10: H0:滞后阶数为1-12的自相关系数均为0 Ha:滞后阶数为1-12的自相关系数不全为0
Box.test(da$dec10,lag=12,type='Ljung')
Box-Ljung test
data: da$dec10
X-squared = 48, df = 12, p-value = 4e-06
p-value < 0.05,故拒绝原假设。所以对于Decile 2,滞后阶数为1-12的自相关系数不全为0
- 对于 Decile 2 的收益率序列建立一个 ARMA 模型, 对模型进行检验并写出拟合的模型.
模型定阶:
mm <- eacf(da$dec2,9,9)
AR/MA
0 1 2 3 4 5 6 7 8 9
0 x o o o o o o o o o
1 x o o o o o o o o o
2 x x o o o o o o o o
3 x o x o o o o o o o
4 x o x o o o o o o o
5 x x x x x o o o o o
6 x x o x o x o o o o
7 x x o x x x x o o o
8 x x x x x o o x o o
9 x o o o x o x x x o
print(mm$eacf,digits=2)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 0.11 -0.054 0.00042 0.0332 0.0354 -0.064 -0.0088 -0.0627 -0.0352 0.0070
[2,] 0.43 -0.053 -0.00083 0.0170 0.0211 -0.071 0.0111 -0.0476 -0.0431 -0.0115
[3,] 0.21 0.194 0.06062 -0.0129 0.0172 -0.051 -0.0058 -0.0629 -0.0464 -0.0103
[4,] -0.42 0.065 0.15791 0.0238 -0.0053 -0.055 0.0088 -0.0814 -0.0474 -0.0087
[5,] -0.50 0.075 0.26943 0.0537 -0.0116 -0.069 -0.0078 -0.0415 -0.0367 0.0094
[6,] 0.36 0.368 0.30068 -0.1653 0.2682 -0.074 0.0189 -0.0014 -0.0217 -0.0347
[7,] 0.16 -0.472 -0.03422 0.3843 0.0681 -0.215 0.0292 -0.0095 -0.0034 -0.0428
[8,] 0.14 -0.459 -0.04374 0.3828 0.1496 -0.110 -0.1439 -0.0247 0.0064 -0.0408
[9,] -0.26 0.160 -0.13143 0.2240 -0.2530 0.026 0.0390 -0.1192 -0.0546 -0.0425
[10,] 0.32 -0.073 0.04478 -0.0072 -0.2709 0.019 0.1002 -0.1569 0.1428 0.0346
可见三角形的顶点在(0,0),虽然这个位置不为“o”,但是三角形的顶点应该在这里。选用ARMA(0,0)模型。
参数估计:
m1 <- arima(da$dec2, order = c(0,0,0))
m1
Call:
arima(x = da$dec2, order = c(0, 0, 0))
Coefficients:
intercept
0.009
s.e. 0.002
sigma^2 estimated as 0.00226: log likelihood = 991.4, aic = -1981
模型检验:
tsdiag(m1)

Box.test(m1$residuals,lag=12,type='Ljung')
Box-Ljung test
data: m1$residuals
X-squared = 17, df = 12, p-value = 0.1
pv=1-pchisq(17,12)
pv
[1] 0.1496
由于pv > 0.05,可以认为模型是可以成立的。 模型为:dec2 == 0.009
LS0tDQp0aXRsZTogIkhvbWV3b3JrIDMiDQphdXRob3I6ICIxOTQwODAyIC0gTElVIFJ1aXFpIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQojb3V0cHV0OiBwZGZfZG9jdW1lbnQNCiNvdXRwdXQ6IGh0bWxfZG9jdW1lbnQNCi0tLQ0KDQrlrablj7fvvJoxOTQwODAyDQrlp5PlkI3vvJrliJjnnb/lpYcNCg0K6aaW5YWI5a+85YWl5Z+65pys55qE5qih5Z2X44CCDQpgYGB7cn0NCmxpYnJhcnkoZkJhc2ljcykNCmxpYnJhcnkoVFRSKQ0KbGlicmFyeSh4dHMpDQpsaWJyYXJ5KHpvbykNCmxpYnJhcnkocXVhbnRtb2QpDQpsaWJyYXJ5KG1vbWVudHMpDQpsaWJyYXJ5KFRTQSkNCmBgYA0KDQoNCjEuDQrku47mraPmgIHliIbluINOKDEwMCwxMDAp5Lit6ZqP5py65Lqn55SfMTAwMOS4qumaj+acuuaVsCwNCihhKSDkvZzlh7rov5kxMDAw5Liq5q2j5oCB6ZqP5py65pWw55qE55u05pa55Zu+Ow0KYGBge3J9DQpkYSA8LSBybm9ybSgxMDAwLCAxMDAsIHNxcnQoMTAwKSkNCmhpc3QoZGEscHJvYmFiaWxpdHkgPSBUKQ0KbGluZXMoZGVuc2l0eShkYSkpDQpgYGANCg0KDQoNCihiKSDku47ov5kxMDAw5Liq6ZqP5py65pWw5Lit6ZqP5py65pyJ5pS+5Zue5Zyw5oq95Y+WNTAw5LiqLCDkvZzlh7rlhbbnm7Tmlrnlm747DQpgYGB7cn0NCmRhNTAwIDwtIHNhbXBsZShkYSwgc2l6ZSA9IDUwMCwgcmVwbGFjZSA9IFQpDQpoaXN0KGRhNTAwLHByb2JhYmlsaXR5ID0gVCkNCmxpbmVzKGRlbnNpdHkoZGE1MDApKQ0KYGBgDQoNCg0KDQooYykg5q+U6L6D5a6D5Lus55qE5qC35pys5Z2H5YC85LiO5qC35pys5pa55beuLg0KYGBge3J9DQpwcmludCgnTWVhbicpDQptZWFuKGRhKQ0KbWVhbihkYTUwMCkNCg0KcHJpbnQoJ1ZhcicpDQp2YXIoZGEpDQp2YXIoZGE1MDApDQpgYGANCg0KDQoNCg0KDQoyLuWBh+WumuafkOagoTEwMOWQjeWls+eUn+eahOihgOa4heaAu+ibi+eZveWQq+mHjyhnL0wp5pyN5LuO5Z2H5YC85Li6NzUsIOagh+WHhuW3ruS4ujks5bm25YGH5a6a5pWw5o2u55Sx5LiL6Z2i55qE5ZG95Luk5Lqn55SfDQpgYGB7cn0NCm9wdGlvbnMoZGlnaXRzPTQpDQpkYSA8LSBybm9ybSgxMDAsNzUsOSkNCmBgYA0KDQrmoLnmja7kuqfnlJ/nmoTmlbDmja46DQooYSkg6K6h566X5qC35pys5Z2H5YC844CB5pa55beu44CB5qCH5YeG5beu44CB5p6B5beu44CB5Zub5YiG5L2N5p6B5beu44CB5Y+Y5byC57O75pWw44CB5YGP5bqm44CB5bOw5bqm5ZKM5LqU5pWw5qaC5ousOw0KYGBge3J9DQpiZGEgPC0gYmFzaWNTdGF0cyhkYSkNCmJkYQ0KYGBgDQrlpoLkuIrmiYDnpLrvvIxNZWFu5Li65qC35pys5Z2H5YC877yMVmFyaWFuY2XkuLrmlrnlt67vvIxTdGRlduS4uuagh+WHhuW3ru+8jFNrZXduZXNz5Li65YGP5bqm77yMS3VydG9zaXPkuLrvvIjotoXpop3vvInls7DluqYNCg0KDQoNCmBgYHtyfQ0KZHJhIDwtIGJkYVsiTWF4aW11bSIsMV0gLSBiZGFbIk1pbmltdW0iLDFdDQpwcmludCgnZHJhJykNCmRyYQ0KcHJpbnQoJ0lRUicpDQpJUVIoZGEpDQpwcmludCgnY3YnKQ0KY3YgPC0gYmRhWyJNZWFuIiwxXS9iZGFbIlN0ZGV2IiwxXQ0KYGBgDQpkcmHmsYLlvpfnmoTnu5PmnpzkuLrmnoHlt67vvIxJUVLmsYLlvpfnmoTnu5PmnpzkuLrlm5vliIbkvY3mnoHlt67vvIxjduaxguW+l+eahOe7k+aenOS4uuWPmOW8guezu+aVsA0KDQoNCg0KYGBge3J9DQpzdW1tYXJ5KGRhKQ0KYGBgDQrku6XkuIrnu5PmnpzpmaTkuoZNZWFu5Ymp5LiL55qE5LqU5Liq5pWw5Y2z5Li65LqU5pWw5qaC5ousDQoNCg0KDQooYikg55S75Ye655u05pa55Zu+44CB5qC45a+G5bqm5Lyw6K6h5puy57q/44CBUVHlm747DQpgYGB7cn0NCmhpc3QoZGEscHJvYmFiaWxpdHkgPSBUKQ0KbGluZXMoZGVuc2l0eShkYSkpDQoNCnFxbm9ybShkYSwgbWFpbj0iTm9ybWFsaXR5IENoZWNrIHZpYSBRUSBQbG90IikgICAjUVHlm74NCnFxbGluZShkYSwgY29sPSdyZWQnKSAgIA0KYGBgDQoNCg0KDQooYykg55S75Ye66IyO5Y+25Zu+44CB55uS5b2i5Zu+DQpgYGB7cn0NCnN0ZW0oZGEpDQpib3hwbG90KGRhKQ0KdGl0bGUobWFpbiA9ICdCb3hwbG90JykNCmBgYA0KDQoNCg0KDQoNCjMuIOiAg+iZkee+juWbveS7jjE5NDflubTnrKwx5a2j5bqm5YiwMjAxMeW5tOesrDPlraPluqbnmoTlraPluqblrp7pmYVHTlDvvIzor6XmlbDmja7lrZjmlL7kuo7mlofku7ZxLUdOUEM5Ni50eHTkuK3vvIzmlbDmja7lt7LlgZrkuoblraPoioLosIPmlbTvvIzku6UyMDA15bm0R0RQ5Li65Z+656GA6L+b6KGM5LqG6YCa6IOA6LCD5pW077yM5LulMTDkur/nvo7lhYPkuLrljZXkvY3jgILlgYforr54X3Tku6PooahHTlDlop7plb/njofnmoTml7bpl7Tluo/liJfmlbDmja4uDQoNCuivu+WPluaVsOaNru+8mg0KYGBge3J9DQpkYSA8LSByZWFkLnRhYmxlKCdxLUdOUEM5Ni50eHQnLCBoZWFkZXIgPSBUKQ0KbGVuZ3RoKGRhJGducCkNCmhlYWQoZGEpDQp0YWlsKGRhKQ0KYGBgDQoNCuiuoeeul+WinumVv+eOh3hfdO+8iOeugOWNleaUtuebiueOh++8ie+8mg0KYGBge3J9DQp4X3QgPC0gMSAvIChkYSRnbnBbMjpucm93KGRhKV0gLyBkaWZmKGRhJGducFsyOm5yb3coZGEpXSkgLSAxKQ0KbGVuZ3RoKHhfdCkNCmhlYWQoeF90KQ0KDQp0ZHggPC0gZGEkeWVhciArIGRhJG1vbi8xMiAgI+S6p+eUn+eugOaYk+eahOaXtumXtOaMh+aVsA0KcGxvdCh0ZHhbMjpucm93KGRhKV0sIHhfdCx0eXBlID0gJ2wnLHhsYWIgPSAneWVhcicpDQpgYGANCg0KDQoNCihhKSDpgJrov4dhcuWRveS7pO+8jOW6lOeUqEFJQ+WHhuWIme+8jOWPr+S7peS4unhfdOivhuWIq+S4gOS4quWHoOmYtkFSKCnmqKHlnovvvJ/mi5/lkIjov5nkuKrmqKHlnovvvIzmi5/lkIjnmoTmqKHlnovlhYXliIblkJfvvJ/kuLrku4DkuYjvvJ8NCg0K5qih5Z6L5a6a6Zi277yaDQpgYGB7cn0NCm1tMTEgPC0gYXIoeF90LG1ldGhvZD0nbWxlJykgI+eUqEFJQ+WHhuWIme+8jOiHquWKqOS4ukFSKFAp5a6a6Zi277yM5pa55rOV5Li65p6B5aSn5Ly854S25Lyw6K6hDQptbTExJG9yZGVyICPlr7vmib7lkIjpgILnmoTpmLZwDQpwcmludChtbTExJGFpYykgI+afpeeci21tMeS4rWFpY+eahOWAvA0KYWljIDwtIG1tMTEkYWljDQpwbG90KGMoMDoobGVuZ3RoKGFpYyktMSkpLGFpYyx0eXBlPSdoJyx4bGFiPSdvcmRlcicseWxhYj0nYWljJykgI+eUu2FpY+erlue6v+Wbvg0KbGluZXMoMDoobGVuZ3RoKGFpYyktMSksYWljLGx0eT0yKSAj55S7YWlj6L+e57q/5Zu+DQpgYGANCueUseS4iui/sOe7k+aenOWPr+efpe+8jDPnmoRBSUPmnIDlsI/vvIjkuLowLjAwMO+8ie+8jOWPr+S7peivhuWIq+S4uuS4gOS4qkFSKDMp55qE5qih5Z6L44CCDQoNCuWPguaVsOS8sOiuoe+8mg0KYGBge3J9DQptbTEyIDwtIGFyaW1hKHhfdCxvcmRlcj1jKDMsMCwwKSkNCm1tMTINCmBgYA0KDQrmqKHlnovmo4DpqozvvJoNCkgw77ya5q6L5beu5Li655m95Zmq5aOwDQpIYe+8muaui+W3ruS4jeS4uueZveWZquWjsA0KYGBge3J9DQpCb3gudGVzdChtbTEyJHJlc2lkdWFscyxsYWc9MTIsdHlwZT0nTGp1bmcnKSANCnB2PTEtcGNoaXNxKDExLDkpICPljrvmjokz5Liq5Y+C5pWw5ZCO77yM55So6Ieq55Sx5bqmOeajgOmqjHDlgLwNCnB2DQpgYGANCnAtdmFsdWUgPiAwLjA177yM5peg5rOV5ouS57ud5Y6f5YGH6K6+77yM5pWF5q6L5beu5Li655m95Zmq5aOw77yM5pWF5qih5Z6L5piv5YWF5YiG55qE44CCDQoNCg0KDQooYikg5pWw5o2ueF9055qE5qC35pysUEFDRuivhuWIq+eahOaYr+WHoOmYtkFSKCnml7bpl7Tluo/liJfmqKHlnovvvJ/mi5/lkIjov5nkuKrmqKHlnovvvIzmi5/lkIjnmoTmqKHlnovlhYXliIblkJfvvJ8g5Li65LuA5LmI77yfDQoNCuaooeWei+WumumYtu+8mg0KYGBge3J9DQpwYWNmKHhfdCkNCmBgYA0K5Y+v5Lul55yL5Yiw77yMUEFDRuWcqDPlkowxMuaXtui/mOaYr+aYvuiRl+eahO+8jOS9hjR+MTHpg73kuI3mmL7okZfvvIzmiYDku6Xov5jmmK/lrprkuLpBUigzKeaooeWei+abtOS4uuWQiOmAguOAgg0K5Y+C5pWw5Lyw6K6h44CB5qih5Z6L5qOA6aqM5ZCM56ys5LiA6Zeu77yM5LiN5YaN6YeN5paw6K6h566X44CCDQoNCg0KDQoNCg0KNC4g5LulIE5ZU0UvQU1FWC9OQVNEQVEg55qE5biC5Zy66LWE5pys5Li65Z+656GA6ICD6JmRIENSU1AgRGVjaWxlIDHjgIEy44CBNeOAgTnjgIExMOaKlei1hOe7hOWQiOeahOaciOeugOWNleaUtuebiueOhy4g6K+l5pWw5o2u55qE5pe26Ze05Yy66Ze05piv5LuOMTk2MeW5tDHmnIjliLAyMDEx5bm0OeaciC4NCg0K6K+75Y+W5pWw5o2u77yaDQpgYGB7cn0NCmRhIDwtIHJlYWQudGFibGUoJ20tZGVjMTI1OTEwLTYxMTEudHh0JywgaGVhZGVyPVQsIHJvdy5uYW1lcyA9IDEpDQpucm93KGRhKQ0KaGVhZChkYSkNCnRhaWwoZGEpDQpgYGANCg0KDQooYSkg5a+55LqOIERlY2lsZSAyIOWSjCBEZWNpbGUgMTDnmoTmlLbnm4rluo/liJfvvIzlnKg1JeeahOaYvuiRl+aAp+awtOW5s+S4i+ajgOmqjO+8muWOn+WBh+iuvuaYr+a7nuWQjumYtuaVsOS4ujEtMTLnmoToh6rnm7jlhbPns7vmlbDlnYfkuLowLiDnu5nlh7rkvaDnmoTnu5PorrouDQpgYGB7cn0NCnBhcihtZmNvbD1jKDIsMSkpDQphY2YoZGEkZGVjMixsYWcgPSAxMikNCmFjZihkYSRkZWMxMCxsYWcgPSAxMikNCmBgYA0KDQoNCuWvueS6jkRlY2lsZSAy77yaDQpIMO+8mua7nuWQjumYtuaVsOS4ujEtMTLnmoToh6rnm7jlhbPns7vmlbDlnYfkuLowDQpIYe+8mua7nuWQjumYtuaVsOS4ujEtMTLnmoToh6rnm7jlhbPns7vmlbDkuI3lhajkuLowDQpgYGB7cn0NCkJveC50ZXN0KGRhJGRlYzIsbGFnPTEyLHR5cGU9J0xqdW5nJykNCmBgYA0KcC12YWx1ZSA+IDAuMDXvvIzmlYXml6Dms5Xmi5Lnu53ljp/lgYforr7jgILmiYDku6Xlr7nkuo5EZWNpbGUgMu+8jOa7nuWQjumYtuaVsOS4ujEtMTLnmoToh6rnm7jlhbPns7vmlbDlnYfkuLowDQoNCg0KDQrlr7nkuo5EZWNpbGUgMTDvvJoNCkgw77ya5rue5ZCO6Zi25pWw5Li6MS0xMueahOiHquebuOWFs+ezu+aVsOWdh+S4ujANCkhh77ya5rue5ZCO6Zi25pWw5Li6MS0xMueahOiHquebuOWFs+ezu+aVsOS4jeWFqOS4ujANCmBgYHtyfQ0KQm94LnRlc3QoZGEkZGVjMTAsbGFnPTEyLHR5cGU9J0xqdW5nJykNCmBgYA0KcC12YWx1ZSA8IDAuMDXvvIzmlYXmi5Lnu53ljp/lgYforr7jgILmiYDku6Xlr7nkuo5EZWNpbGUgMu+8jOa7nuWQjumYtuaVsOS4ujEtMTLnmoToh6rnm7jlhbPns7vmlbDkuI3lhajkuLowDQoNCg0KDQooYikg5a+55LqOIERlY2lsZSAyIOeahOaUtuebiueOh+W6j+WIl+W7uueri+S4gOS4qiBBUk1BIOaooeWeiywg5a+55qih5Z6L6L+b6KGM5qOA6aqM5bm25YaZ5Ye65ouf5ZCI55qE5qih5Z6LLg0KDQrmqKHlnovlrprpmLbvvJoNCmBgYHtyfQ0KbW0gPC0gZWFjZihkYSRkZWMyLDksOSkNCmBgYA0KYGBge3J9DQpwcmludChtbSRlYWNmLGRpZ2l0cz0yKQ0KYGBgDQrlj6/op4HkuInop5LlvaLnmoTpobbngrnlnKjvvIgw77yMMO+8ie+8jOiZveeEtui/meS4quS9jee9ruS4jeS4uiJvIu+8jOS9huaYr+S4ieinkuW9oueahOmhtueCueW6lOivpeWcqOi/memHjOOAgumAieeUqEFSTUEoMCwwKeaooeWei+OAgg0KDQrlj4LmlbDkvLDorqHvvJoNCmBgYHtyfQ0KbTEgPC0gYXJpbWEoZGEkZGVjMiwgb3JkZXIgPSBjKDAsMCwwKSkNCm0xDQpgYGANCg0K5qih5Z6L5qOA6aqM77yaDQpgYGB7cn0NCnRzZGlhZyhtMSkgDQpCb3gudGVzdChtMSRyZXNpZHVhbHMsbGFnPTEyLHR5cGU9J0xqdW5nJykgDQpwdj0xLXBjaGlzcSgxNywxMikNCnB2DQpgYGANCueUseS6jnB2ID4gMC4wNe+8jOWPr+S7peiupOS4uuaooeWei+aYr+WPr+S7peaIkOeri+eahOOAgg0K5qih5Z6L5Li677yaZGVjMiA9PSAwLjAwOQ0KDQoNCg0KDQo=