Visualizing the Missing value :

Time span of Data:

Data is of: 131.9931 Days

No of NA Available in Data:

[1] "Missing Values: 0"
[1] "Incomplete Records: 0"

Parameter in Data Set:

names(df1)
 [1] "Amb_Temp" "G1L1"     "G1L2"     "G1L3"     "DE_Temp"  "NDE_Temp" "Grid"     "Power"   
 [9] "C1"       "C2"       "C3"       "Asymmt"  
table(df1$Grid == 600)

FALSE  TRUE 
 3679 14933 
df1$Grid <- ifelse(df1$Grid < 600,"GNC","GC")
df1$Grid <- as.factor(df1$Grid)
str(df1)
'data.frame':   18612 obs. of  12 variables:
 $ Amb_Temp: num  30.3 30 29.3 29 28.2 27.9 27.1 27 27 27 ...
 $ G1L1    : num  68 67.7 66.4 65 64.5 65.2 66 66 66 66.9 ...
 $ G1L2    : num  69 68.3 67.1 65.5 64.9 66 66 66.8 67 67.3 ...
 $ G1L3    : num  68 67.6 66.3 65 64.4 65 65.6 66 66 66.2 ...
 $ DE_Temp : num  54 54 54 53.4 53 52.1 52 52 52 52 ...
 $ NDE_Temp: num  55 55 55 55 54 54 53.1 53 53 53 ...
 $ Grid    : Factor w/ 2 levels "GC","GNC": 1 2 2 2 1 1 1 1 1 1 ...
 $ Power   : num  60 2.4 -3.5 5.4 104.5 ...
 $ C1      : num  43.2 23.4 9.1 20.1 70.6 ...
 $ C2      : num  80.8 29.7 13.6 24.4 120.5 ...
 $ C3      : num  82.6 37.3 10.8 22.6 89.7 ...
 $ Asymmt  : num  14 5.8 1.8 1.9 14.8 13 12.4 12.6 14.9 14.4 ...
df1<- as.data.frame(df1)

No of event for Grid Connection :

Summarising Data:

Data preparation for Plotting:

[1] "Grid"     "variable" "value"   

Usually it is been said that During Grid connection Turbine is generating atmost , so lets check wheather its true with data.

So Lets start with Density plot: and see for behavior of parameter when Grid is connected to 100%.
GC : Grid Connection(Turbine at Maximum Generation) 600seconds.
NGC : Non Grid Connection !600 seconds.

# Density Plots
ggplot(data = df.melt, aes(x = value)) +
 facet_wrap(~variable, scales = "free") +
 theme_dark() +
 theme(axis.text.x=element_blank())+
 geom_density(aes(fill = Grid),alpha = .5)+
 ggtitle("Density Plots")

Distribution of other Parameters

ggplot(df1 , aes(x=Power ,group=Grid ,fill=Grid) )+ 
         geom_density(position = "identity",alpha=.4)+ scale_x_continuous(limits = c(0, 1000))+
         scale_color_brewer(palette = "Set1")

ggplot(df1 , aes(Power)) + 
  geom_histogram(binwidth = 5,col =  "blue",fill =  "skyblue")+ 
  scale_x_continuous(limits = c(1, 1000)) 

Power Distribution During Grid Connect and Non-Grid Connect:

p1=ggplot(df1, aes(Grid, Power, fill = Grid)) + geom_boxplot(show.legend = NA) + ggtitle("Power Distribution")+ labs(x="WTG",y="Temperature") 
ggplotly(p1)

Here with the boxplot, Turbine is generating power during Grid Connection 600sec.

dodge = position_dodge(width = 2)
ggplot(df.melt, aes(x=variable, y=value,fill=Grid))+
    geom_violin(width = 3,position = dodge) +
    geom_boxplot(width = 0.5,position = dodge)+
    labs(x="features", y = "values")+
    facet_wrap(~variable, scales = "free") +
    ggtitle("Violin Plot") +
    theme(axis.text.x=element_blank())

Correlation of Entire data frame :

library(ggcorrplot);library(psych)
# For Numerical Variables
nums <- sapply(df1, is.numeric)
num_df <- df1[,c(nums)]
pairs.panels(num_df)

Almost all the variable have a significance which is above : 0.7 apart from ambient temperature.

pr.com <- prcomp(num_df,scale. = TRUE)
summary(pr.com)
Importance of components:
                          PC1    PC2     PC3     PC4     PC5     PC6     PC7     PC8      PC9
Standard deviation     2.9663 1.1415 0.72099 0.48494 0.33448 0.16959 0.04151 0.02116 0.009729
Proportion of Variance 0.7999 0.1184 0.04726 0.02138 0.01017 0.00261 0.00016 0.00004 0.000010
Cumulative Proportion  0.7999 0.9184 0.96562 0.98700 0.99717 0.99978 0.99994 0.99998 0.999990
                           PC10     PC11
Standard deviation     0.008656 0.006185
Proportion of Variance 0.000010 0.000000
Cumulative Proportion  1.000000 1.000000
pr.var <- (pr.com$sdev)^2
pve <- pr.var/sum(pr.var)
par(mfrow = c(2, 2))
plot(pve, xlab = "Principal Component",
     ylab = "Proportion of Variance Explained",
     ylim = c(0, 1), type = "b")
plot(cumsum(pve), xlab = "Principal Component",
     ylab = "Cumulative Proportion of Variance Explained",
     ylim = c(0, 1), type = "b")
prop_varex <- pr.var/sum(pr.var)
plot(prop_varex, xlab = "Principal Component",
             ylab = "Proportion of Variance Explained",
             type = "b")

LS0tDQp0aXRsZTogIkVEQTogR2VuZXJhdG9yIFN5c3RlbSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCmBgYHtyLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0Kcm0obGlzdD1scygpKQ0KbGlicmFyeShyZWFkeGwpO2xpYnJhcnkoQW1lbGlhKTtsaWJyYXJ5KHJlc2hhcGUpO2xpYnJhcnkoZ2dwbG90Mik7bGlicmFyeShwbG90bHkpDQpzZXR3ZCgiSDpcXFByb2R1Y3QgZmFjdG9yeVxcR2VuZXJhdG9yIFN5c3RlbSIpDQojZGY8LSBmcmVhZCgiNTA0MTAyLkRhdGEgRXhwbG9yZXIgKFdURykueGxzeCIpDQpkZjwtIHJlYWRfZXhjZWwoIjUwNDEwMi5EYXRhIEV4cGxvcmVyIChXVEcpLnhsc3giKQ0KYGBgDQoNClZpc3VhbGl6aW5nIHRoZSBNaXNzaW5nIHZhbHVlIDoNCmBgYHtyLCBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCm1pc3NtYXAoZGYpDQpgYGANCg0KDQpUaW1lIHNwYW4gb2YgRGF0YToNCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KI25hbWVzKGRmKQ0KTG9jYWxfVGltZSA8LSBkZlssYygxKV0jIFNlcGFyYXRpbmcgTG9jYWwgVGltZSANCm5hbWVzKExvY2FsX1RpbWUpWzFdIDwtICJUaW1lIiANCmNhdCgiRGF0YSBpcyBvZjoiLChtYXgoTG9jYWxfVGltZSRUaW1lKS1taW4oTG9jYWxfVGltZSRUaW1lKSksIkRheXMiKQ0KYGBgDQoNCg0KDQpgYGB7ciwgaW5jbHVkZT1GQUxTRX0NCg0KDQpkZiA8LSBkZlssLWMoMSldDQojc2VxKDAsbmNvbChkZiksMTIpIzAgIDEyICAyNCAgMzYgIDQ4ICA2MCAgNzIgIDg0ICA5NiAxMDggMTIwIDEzMiAxNDQgMTU2IDE2OCAxODAgMTkyDQpzdGFydCA9IDAgDQplbmQ9c3RhcnQgKyAxMg0KZGYxIDwtIGRmWyxjKHN0YXJ0OmVuZCldDQpuYW1lcyhkZjEpIDwtIGMoIkFtYl9UZW1wIiwiRzFMMSIsIkcxTDIiLCJHMUwzIiwiREVfVGVtcCIsIk5ERV9UZW1wIiwiR3JpZCIsIlBvd2VyIiwiQzEiLCJDMiIsIkMzIiwiQXN5bW10IikNCg0KZGYxPWRmMVtjb21wbGV0ZS5jYXNlcyhkZjEpLCBdDQpkZjEgPC0gYXMuZGF0YS5mcmFtZShkZjEpDQpgYGANCg0KTm8gb2YgTkEgQXZhaWxhYmxlIGluIERhdGE6ICANCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KY2hlY2s8LWZ1bmN0aW9uKGRmKXsNCiAgICAgICMgY291bnQgTkEgKG1pc3NpbmcgdmFsdWVzKQ0KICAgICAgTkFzPC1zdW0oaXMubmEoZGYpKQ0KICAgICAgcHJpbnQocGFzdGUoIk1pc3NpbmcgVmFsdWVzOiIsIE5BcykpDQogICAgICANCiAgICAgICMgY291bnQgaW5jb21wbGV0ZSByZWNvcmRzIChyb3dzIGNvbnRhaW5pbmcgbWlzc2luZyB2YWx1ZXMpDQogICAgICBvazwtY29tcGxldGUuY2FzZXMoZGYpDQogICAgICBwcmludChwYXN0ZSgiSW5jb21wbGV0ZSBSZWNvcmRzOiIsIHN1bSghIG9rKSkpDQogICAgICANCiAgICAgICMgU2hvdyBpbmNvbXBsZXRlIHJlY29yZHMgKGlmIGxlc3MgdGhhbiAxMDAgTkFzKS4gDQogICAgICBpZihOQXMgPiAwICYgTkFzIDw9IDEwMCkgcHJpbnQoIGRmW3doaWNoKCEgY29tcGxldGUuY2FzZXMoZGYpKSwgXSApDQogICAgICANCiAgICAgICMgSWYgbW9yZSB0aGFuIDEwMCwgc2hvdyBjb2x1bW4td2lzZSBkaXN0cmlidXRpb24gb2YgTkFzLg0KICAgICAgaWYgKE5BcyA+IDEwMCkgaGlzdCh3aGljaChpcy5uYShkZiksIGFyci5pbmQ9VFJVRSlbLDJdLCB4bGFiPSJDb2x1bW4iLCBmcmVxPVRSVUUsIGJyZWFrcz0xOmRpbShkZilbMl0sIG1haW49IkNvbHVtbi13aXNlIGRpc3RyaWJ1dGlvbiBvZiBtaXNzaW5nIHZhbHVlcyIsbGFiZWxzID0gVFJVRSxjb2w9ImdyZXkiKQ0KICAgIH0NCmNoZWNrKGRmMSkgICANCmBgYA0KDQoNCg0KDQpgYGB7ciwgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCmNvbFN1bXMoaXMubmEoZGYxKSkNCmRmMCA9IGRmMQ0KcmVtb3ZlX291dGxpZXJzIDwtIGZ1bmN0aW9uKHgsIG5hLnJtID0gVFJVRSwgLi4uKXsNCiAgICAgIHFudCA8LSBxdWFudGlsZSh4LCBwcm9icz1jKC4yNSwgLjc1KSwgbmEucm0gPSBuYS5ybSwgLi4uKQ0KICAgICAgSCA8LSAxLjUgKiBJUVIoeCwgbmEucm0gPSBuYS5ybSkNCiAgICAgIHkgPC0geA0KICAgICAgeVt4IDwgKHFudFsxXSAtIEgpXSA8LSBxbnRbMV0NCiAgICAgIHlbeCA+IChxbnRbMl0gKyBIKV0gPC0gcW50WzJdDQogICAgICB5DQogICAgfSANCiAgICBkZmY9YXBwbHkoZGYwWyxjKDE6bmNvbChkZjApKV0gLCAyICwgcmVtb3ZlX291dGxpZXJzKQ0KICAgIGZvcihqIGluIDE6bmNvbChkZmYpKXtkZmZbaXMubmEoZGZmWyxqXSksIGpdIDwtIG1lYW4oZGZmWyxqXSwgbmEucm0gPSBUUlVFKX0NCiAgICBkZjEgPC0gZGZmDQpybShkZmYpDQpgYGANCg0KUGFyYW1ldGVyIGluIERhdGEgU2V0OiAgDQpgYGB7cn0NCm5hbWVzKGRmMSkNCmBgYA0KDQpObyBvZiBldmVudCBmb3IgR3JpZCBDb25uZWN0aW9uIDogIA0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQp0YWJsZShkZjEkR3JpZCA9PSA2MDApDQpgYGANCg0KDQpTdW1tYXJpc2luZyBEYXRhOiAgDQpgYGB7ciwgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmRmMSRHcmlkIDwtIGlmZWxzZShkZjEkR3JpZCA8IDYwMCwiR05DIiwiR0MiKQ0KZGYxJEdyaWQgPC0gYXMuZmFjdG9yKGRmMSRHcmlkKQ0Kc3RyKGRmMSkNCmRmMTwtIGFzLmRhdGEuZnJhbWUoZGYxKQ0KYGBgDQoNCg0KRGF0YSBwcmVwYXJhdGlvbiBmb3IgUGxvdHRpbmc6ICANCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KZGYubWVsdCA9IG1lbHQoZGYxLCBpZC52YXJzID0gJ0dyaWQnKQ0KbmFtZXMoZGYubWVsdCkNCmhlYWQoZGYubWVsdCkNCmBgYA0KDQpVc3VhbGx5IGl0IGlzIGJlZW4gc2FpZCB0aGF0IER1cmluZyBHcmlkIGNvbm5lY3Rpb24gVHVyYmluZSBpcyBnZW5lcmF0aW5nIGF0bW9zdCAsIHNvIGxldHMgY2hlY2sgd2hlYXRoZXIgaXRzIHRydWUgd2l0aCBkYXRhLiAgIA0KDQpTbyBMZXRzIHN0YXJ0IHdpdGggRGVuc2l0eSBwbG90OiBhbmQgc2VlIGZvciBiZWhhdmlvciBvZiBwYXJhbWV0ZXIgd2hlbiBHcmlkIGlzIGNvbm5lY3RlZCB0byAxMDAlLiAgICAgIA0KR0MgIDogIEdyaWQgQ29ubmVjdGlvbihUdXJiaW5lIGF0IE1heGltdW0gR2VuZXJhdGlvbikgNjAwc2Vjb25kcy4gICAgDQpOR0MgOiAgTm9uIEdyaWQgQ29ubmVjdGlvbiAhNjAwIHNlY29uZHMuICAgIA0KYGBge3IsIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTExLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KIyBEZW5zaXR5IFBsb3RzDQpnZ3Bsb3QoZGF0YSA9IGRmLm1lbHQsIGFlcyh4ID0gdmFsdWUpKSArDQogZmFjZXRfd3JhcCh+dmFyaWFibGUsIHNjYWxlcyA9ICJmcmVlIikgKw0KIHRoZW1lX2RhcmsoKSArDQogdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF9ibGFuaygpKSsNCiBnZW9tX2RlbnNpdHkoYWVzKGZpbGwgPSBHcmlkKSxhbHBoYSA9IC41KSsNCiBnZ3RpdGxlKCJEZW5zaXR5IFBsb3RzIikNCmBgYA0KDQoNCkRpc3RyaWJ1dGlvbiBvZiBvdGhlciBQYXJhbWV0ZXJzICANCg0KYGBge3IsIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTExLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KIyBIaXN0b2dyYW1zIGFuZCBkZW5zaXR5IGxpbmVzDQpwYXIobWZyb3c9YygzLCA0KSkNCmNvbG5hbWVzIDwtIGRpbW5hbWVzKGRmMSlbWzJdXQ0KZm9yIChpIGluIDE6KG5jb2woZGYxKSkpIHsNCiAgDQogIGlmIChpcy5udW1lcmljKGRmMVssaV0pKQ0KICAgIHtoaXN0KGRmMVssaV0sIG1haW49Y29sbmFtZXNbaV0sIHByb2JhYmlsaXR5PVRSVUUsIGNvbD0iZ3JheSIsIGJvcmRlcj0iI0NENUM1QyIpDQogICAgZCA8LSBkZW5zaXR5KGRmMVssaV0pDQogICAgbGluZXMoZCwgY29sPSJyZWQiKX0NCn0NCmBgYA0KDQoNCg0KYGBge3IsIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTExLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KZ2dwbG90KGRmMSAsIGFlcyh4PVBvd2VyICxncm91cD1HcmlkICxmaWxsPUdyaWQpICkrIA0KICAgICAgICAgZ2VvbV9kZW5zaXR5KHBvc2l0aW9uID0gImlkZW50aXR5IixhbHBoYT0uNCkrIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKDAsIDEwMDApKSsNCiAgICAgICAgIHNjYWxlX2NvbG9yX2JyZXdlcihwYWxldHRlID0gIlNldDEiKQ0KYGBgDQoNCg0KDQpgYGB7ciwgZmlnLmhlaWdodD02LCBmaWcud2lkdGg9MTEsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpnZ3Bsb3QoZGYxICwgYWVzKFBvd2VyKSkgKyANCiAgZ2VvbV9oaXN0b2dyYW0oYmlud2lkdGggPSA1LGNvbCA9ICAiYmx1ZSIsZmlsbCA9ICAic2t5Ymx1ZSIpKyANCiAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoMSwgMTAwMCkpIA0KDQpgYGANCg0KDQoNClBvd2VyIERpc3RyaWJ1dGlvbiBEdXJpbmcgR3JpZCBDb25uZWN0IGFuZCBOb24tR3JpZCBDb25uZWN0Og0KYGBge3IsIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTExLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KDQpwMT1nZ3Bsb3QoZGYxLCBhZXMoR3JpZCwgUG93ZXIsIGZpbGwgPSBHcmlkKSkgKyBnZW9tX2JveHBsb3Qoc2hvdy5sZWdlbmQgPSBOQSkgKyBnZ3RpdGxlKCJQb3dlciBEaXN0cmlidXRpb24iKSsgbGFicyh4PSJXVEciLHk9IlRlbXBlcmF0dXJlIikgDQpnZ3Bsb3RseShwMSkNCmBgYA0KDQpIZXJlIHdpdGggdGhlIGJveHBsb3QsIFR1cmJpbmUgaXMgZ2VuZXJhdGluZyBwb3dlciBkdXJpbmcgR3JpZCBDb25uZWN0aW9uIDYwMHNlYy4gICAgDQoNCg0KYGBge3IsIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTExLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KZG9kZ2UgPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDIpDQpnZ3Bsb3QoZGYubWVsdCwgYWVzKHg9dmFyaWFibGUsIHk9dmFsdWUsZmlsbD1HcmlkKSkrDQogICAgZ2VvbV92aW9saW4od2lkdGggPSAzLHBvc2l0aW9uID0gZG9kZ2UpICsNCiAgICBnZW9tX2JveHBsb3Qod2lkdGggPSAwLjUscG9zaXRpb24gPSBkb2RnZSkrDQogICAgbGFicyh4PSJmZWF0dXJlcyIsIHkgPSAidmFsdWVzIikrDQogICAgZmFjZXRfd3JhcCh+dmFyaWFibGUsIHNjYWxlcyA9ICJmcmVlIikgKw0KICAgIGdndGl0bGUoIlZpb2xpbiBQbG90IikgKw0KICAgIHRoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfYmxhbmsoKSkNCg0KYGBgDQoNCg0KQ29ycmVsYXRpb24gb2YgRW50aXJlIGRhdGEgZnJhbWUgOg0KYGBge3IsIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTExLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShnZ2NvcnJwbG90KTtsaWJyYXJ5KHBzeWNoKQ0KIyBGb3IgTnVtZXJpY2FsIFZhcmlhYmxlcw0KbnVtcyA8LSBzYXBwbHkoZGYxLCBpcy5udW1lcmljKQ0KbnVtX2RmIDwtIGRmMVssYyhudW1zKV0NCnBhaXJzLnBhbmVscyhudW1fZGYpDQpgYGANCg0KDQpBbG1vc3QgYWxsIHRoZSB2YXJpYWJsZSBoYXZlIGEgc2lnbmlmaWNhbmNlIHdoaWNoIGlzIGFib3ZlIDogMC43IGFwYXJ0IGZyb20gYW1iaWVudCB0ZW1wZXJhdHVyZS4gICANCg0KDQpgYGB7cn0NCnByLmNvbSA8LSBwcmNvbXAobnVtX2RmLHNjYWxlLiA9IFRSVUUpDQpzdW1tYXJ5KHByLmNvbSkNCmBgYA0KDQoNCg0KYGBge3J9DQpwci52YXIgPC0gKHByLmNvbSRzZGV2KV4yDQpwdmUgPC0gcHIudmFyL3N1bShwci52YXIpDQoNCnBhcihtZnJvdyA9IGMoMiwgMikpDQoNCnBsb3QocHZlLCB4bGFiID0gIlByaW5jaXBhbCBDb21wb25lbnQiLA0KICAgICB5bGFiID0gIlByb3BvcnRpb24gb2YgVmFyaWFuY2UgRXhwbGFpbmVkIiwNCiAgICAgeWxpbSA9IGMoMCwgMSksIHR5cGUgPSAiYiIpDQoNCnBsb3QoY3Vtc3VtKHB2ZSksIHhsYWIgPSAiUHJpbmNpcGFsIENvbXBvbmVudCIsDQogICAgIHlsYWIgPSAiQ3VtdWxhdGl2ZSBQcm9wb3J0aW9uIG9mIFZhcmlhbmNlIEV4cGxhaW5lZCIsDQogICAgIHlsaW0gPSBjKDAsIDEpLCB0eXBlID0gImIiKQ0KDQpwcm9wX3ZhcmV4IDwtIHByLnZhci9zdW0ocHIudmFyKQ0KcGxvdChwcm9wX3ZhcmV4LCB4bGFiID0gIlByaW5jaXBhbCBDb21wb25lbnQiLA0KICAgICAgICAgICAgIHlsYWIgPSAiUHJvcG9ydGlvbiBvZiBWYXJpYW5jZSBFeHBsYWluZWQiLA0KICAgICAgICAgICAgIHR5cGUgPSAiYiIpDQpgYGANCg0KDQoNCg==