.common-title-wrap {
  padding-bottom: 20px;
}

@media screen and (min-width: 768px) {
  .common-title-wrap {
    padding-bottom: 35px;
  }
}

.content-wrap .list-wrap {
  padding: 0 38px;
}

.content-wrap .list-wrap li {
  width: 33.333333%;
  float: left;
  border-right: 1px solid #ddd;
  text-align: center;
}

.content-wrap .list-wrap li:last-child {
  border: none;
}

.content-wrap .list-wrap li dt {
  line-height: 1.25;
  margin-top: 32px;
  background-repeat: no-repeat;
  background-position: 50% 9px;
  font-size: 17px;
  font-weight: 800;
}

.content-wrap .list-wrap li dt .num {
  display: inline-block;
  margin-left: -20px;
  padding-right: 10px;
  line-height: 2;
  font-size: 11px;
  letter-spacing: 0.02em;
  color: #bfbfbf;
  vertical-align: text-bottom;
}

.content-wrap .list-wrap li dd {
  margin-top: 1px;
  line-height: 2.33;
  font-size: 15px;
}

.content-wrap .list-item {
  background-color: #f9f9f9;
  margin-top: 80px;
  padding: 38px 50px;
}

.content-wrap .list-item li {
  position: relative;
  line-height: 1.57;
  margin-top: 10px;
  padding-left: 24px;
  font-size: 14px;
  color: #555;
}

.content-wrap .list-item li:first-child {
  margin: 0;
}

.content-wrap .list-item li:before {
  content: '';
  position: absolute;
  top: 8px;
  left: 0;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background-color: #461da3;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGMvbGF5b3V0L3BhZ2UvcmVjcnVpdC9yZWNydWl0X2xheW91dC5jc3MiLCJzb3VyY2VzIjpbInBjL2xheW91dC9wYWdlL3JlY3J1aXQvcmVjcnVpdF9sYXlvdXQuc2NzcyIsInJlcy9zY3NzL19fdmFyaWFibGVzLnNjc3MiLCJyZXMvc2Nzcy9fX21peGlucy5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19tZWRpYS1xdWVyeS5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19tYXAuc2NzcyIsInJlcy9zY3NzL21peGlucy9fY2xlYXIuc2NzcyIsInJlcy9zY3NzL21peGlucy9fZmxvYXQuc2NzcyIsInJlcy9zY3NzL21peGlucy9faG92ZXIuc2NzcyIsInJlcy9zY3NzL21peGlucy9fc2NyZWVucmVhZGVyLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX3Jlc2V0LXRleHQuc2NzcyIsInJlcy9zY3NzL21peGlucy9fcHJlZml4ZXIuc2NzcyIsInJlcy9zY3NzL21peGlucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19hcmVhLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX2dyaWQuc2NzcyIsInJlcy9zY3NzL21peGlucy9fdHJpYW5nbGUuc2NzcyIsInJlcy9zY3NzL21peGlucy9fYnV0dG9ucy5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19jYXJkcy5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19wYWdpbmF0aW9uLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX2Zvcm1zLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX3RhYmxlcy5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL190YWIuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3JlIHZhcmlhYmxlcyBhbmQgbWl4aW5zXHJcbkBpbXBvcnQgXCJyZXMvc2Nzcy9fX3ZhcmlhYmxlcy5zY3NzXCI7XHJcbkBpbXBvcnQgXCJyZXMvc2Nzcy9fX21peGlucy5zY3NzXCI7XHJcblxyXG4uY29tbW9uLXRpdGxlLXdyYXB7XHJcbiAgcGFkZGluZy1ib3R0b206MjBweDtcclxuICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4obWQpe1xyXG4gICAgcGFkZGluZy1ib3R0b206MzVweDtcclxuICB9XHJcbn1cclxuXHJcbi5jb250ZW50LXdyYXB7XHJcbiAgLmxpc3Qtd3JhcHtcclxuICAgIHBhZGRpbmc6MCAzOHB4O1xyXG4gICAgbGl7XHJcbiAgICAgIHdpZHRoOjMzLjMzMzMzMyU7XHJcbiAgICAgIGZsb2F0OmxlZnQ7XHJcbiAgICAgIGJvcmRlci1yaWdodDoxcHggc29saWQgI2RkZDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAmOmxhc3QtY2hpbGR7XHJcbiAgICAgICAgYm9yZGVyOm5vbmU7XHJcbiAgICAgIH1cclxuICAgICAgZHR7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6MS4yNTtcclxuICAgICAgICBtYXJnaW4tdG9wOjMycHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgOXB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTdweDtcclxuICAgICAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgICAgIC5udW17XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDotMjBweDtcclxuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6MTBweDtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OjI7XHJcbiAgICAgICAgICBmb250LXNpemU6IDExcHg7XHJcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xyXG4gICAgICAgICAgY29sb3I6ICNiZmJmYmY7XHJcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGRke1xyXG4gICAgICAgIG1hcmdpbi10b3A6MXB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjMzO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAubGlzdC1pdGVte1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcclxuICAgIG1hcmdpbi10b3A6ODBweDtcclxuICAgIHBhZGRpbmc6MzhweCA1MHB4O1xyXG4gICAgbGl7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuNTc7XHJcbiAgICAgIG1hcmdpbi10b3A6MTBweDtcclxuICAgICAgcGFkZGluZy1sZWZ0OjI0cHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgY29sb3I6ICM1NTU7XHJcbiAgICAgICY6Zmlyc3QtY2hpbGR7XHJcbiAgICAgICAgbWFyZ2luOjA7XHJcbiAgICAgIH1cclxuICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgY29udGVudDonJztcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOjhweDtcclxuICAgICAgICBsZWZ0OjA7XHJcbiAgICAgICAgd2lkdGg6M3B4O1xyXG4gICAgICAgIGhlaWdodDozcHg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czo1MCU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdfcG9pbnQtZm9udC1jb2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufSIsIi8vLy8vZGVmYXVsdC8vLy8vXHJcbi8vY29sb3JcclxuJGdfd2hpdGU6ICNmZmYgIWRlZmF1bHQ7XHJcbiRnX2JsYWNrOiAjMDAwICFkZWZhdWx0O1xyXG4kZ19yZWQ6ICNmZjAwMDA7XHJcblxyXG4kZ19wb2ludC1mb250LWNvbG9yOiAjNDYxZGEzO1xyXG4kZ19wb2ludC1mb250LWNvbG9yLXNreTogIzAwYWVmZjtcclxuJGdfcG9pbnQtdGhlbWUtY29sb3I6ICM0NjFkYTM7XHJcblxyXG5cclxuLy9mb250XHJcbi8vLWZvbnQtZmFtaWx5XHJcbiRnX2ZvbnQtZmFtaWx5OiAoXHJcbiAgc3lzdGVtOiAnIFwi66eR7J2AIOqzoOuUlVwiLCBcIk1hbGd1biBHb3RoaWNcIiwgXCLslaDtlIwgU0Qg7IKw64+M6rOg65SVIE5lb1wiLCBcIkFwcGxlIFNEIEdvdGhpYyBOZW9cIiwgc2Fucy1zZXJpZiAnLFxyXG4gIG9wZW5zYW5zIDogJ1wiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWYnLFxyXG4gIG5hbnVtc3F1cmU6ICdcIk5hbnVtU3F1YXJlXCIsIHNhbnMtc2VyaWYnLFxyXG4gIGRvdHVtOiAnXCJEb3R1bVwiLCBzYW5zLXNlcmlmJyxcclxuICByb2JvdG86ICdcIlJvYm90b1wiLCBzYW5zLXNlcmlmJ1xyXG4pO1xyXG4kZm9udC1zeXN0ZW06ICN7bWFwLWdldCgkZ19mb250LWZhbWlseSwgc3lzdGVtKX07XHJcbiRmb250LW9wZW5zYW5zOiAje21hcC1nZXQoJGdfZm9udC1mYW1pbHksIG9wZW5zYW5zKX07XHJcbiRmb250LW5hbnVtc3F1cmU6ICN7bWFwLWdldCgkZ19mb250LWZhbWlseSwgbmFudW1zcXVyZSl9O1xyXG4kZm9udC1kb3R1bTogI3ttYXAtZ2V0KCRnX2ZvbnQtZmFtaWx5LCBkb3R1bSl9O1xyXG4kZm9udC1yb2JvdG86ICN7bWFwLWdldCgkZ19mb250LWZhbWlseSwgcm9ib3RvKX07XHJcblxyXG4vLy1mb250LXNpemVcclxuJGdfZm9udC1zaXplOihcclxuICB4czogMTBweCxcclxuICBzbTogMTJweCxcclxuICBtZDogMTVweCxcclxuICBsZzogMThweCxcclxuICB4bDogMjRweCxcclxuKTtcclxuXHJcbi8vLWZvbnQtd2VpZ2h0XHJcbiRnX2ZvbnQtd2VpZ2h0czogMTAwLCAyMDAsIDMwMCwgNDAwLCA1MDAsIDYwMCwgNzAwLCA4MDAsIDkwMDtcclxuXHJcbi8vLWxldHRlci1zcGFjaW5nXHJcblxyXG4vLy8vL21lZGlhLy8vLy9cclxuJGdfbWVkaWEtYnJlYWtwb2ludHM6IChcclxuICB4czogMCxcclxuICBzbTogNTQ0cHgsXHJcbiAgbWQ6IDc2OHB4LFxyXG4gIGxnOiA5OTJweCxcclxuICB4bDogMTIwMHB4XHJcbik7XHJcblxyXG4vLy8vL2xheW91dC8vLy8vXHJcbi8vZ3JpZFxyXG4kZ19ncmlkLWNvbHVtbnM6IDEyO1xyXG4kZ19ncmlkLWd1dHRlci13aWR0aDogMSU7XHJcblxyXG4vL2dyaWRcclxuJGdfZ3JpZC1jb2wtaW5mbzogKFxyXG4gIGdyaWQtY29sLWNudDogMTIsXHJcbiAgZ3JpZC1jb2wtbmFtZTogbnVsbFxyXG4pO1xyXG4kZ3JpZC1jb2w1LWluZm86IChcclxuICBncmlkLWNvbC1jbnQ6IDUsXHJcbiAgZ3JpZC1jb2wtbmFtZTogZml2ZS1cclxuKTtcclxuXHJcbi8vLy8vVVRJTElUSUVTLy8vLy9cclxuLy9jbGVhclxyXG5cclxuLy9zcGFjaW5nXHJcbiRzcGFjZXJzOihcclxuICAwOiAwLFxyXG4gIDU6IDVweCxcclxuICAxMDogMTBweCxcclxuICAyMDogMjBweCxcclxuICAyNTogMjVweCxcclxuICAzMDogMzBweCxcclxuICA0MDogNDBweCxcclxuICA1MDogNTBweCxcclxuICA2MDogNjBweCxcclxuICA3MDogNzBweCxcclxuICA4MDogODBweCxcclxuICA5MDogOTBweCxcclxuICAxMDA6IDEwMHB4XHJcbik7XHJcblxyXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0vL1xyXG5cclxuXHJcbiIsIi8vIFRvZ2dsZXNcclxuLy9cclxuLy8gVXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIGNlcnRhaW4gdGhlbWUgZmVhdHVyZXMuXHJcblxyXG5AaW1wb3J0IFwibWl4aW5zL19tZWRpYS1xdWVyeVwiO1xyXG5AaW1wb3J0IFwibWl4aW5zL19tYXBcIjtcclxuXHJcbi8vIFV0aWxpdGllc1xyXG4vL0BpbXBvcnQgXCJtaXhpbnMvYnJlYWtwb2ludHNcIjtcclxuQGltcG9ydCBcIm1peGlucy9fY2xlYXJcIjtcclxuQGltcG9ydCBcIm1peGlucy9fZmxvYXRcIjtcclxuQGltcG9ydCBcIm1peGlucy9faG92ZXJcIjtcclxuLy9AaW1wb3J0IFwibWl4aW5zL2ltYWdlXCI7XHJcbi8vQGltcG9ydCBcIm1peGlucy9iYWRnZVwiO1xyXG4vL0BpbXBvcnQgXCJtaXhpbnMvcmVzaXplXCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX3NjcmVlbnJlYWRlclwiO1xyXG4vL0BpbXBvcnQgXCJtaXhpbnMvc2l6ZVwiO1xyXG5AaW1wb3J0IFwibWl4aW5zL19yZXNldC10ZXh0XCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX3ByZWZpeGVyXCI7XHJcbi8vQGltcG9ydCBcIm1peGlucy90ZXh0LWVtcGhhc2lzXCI7XHJcbi8vQGltcG9ydCBcIm1peGlucy90ZXh0LWhpZGVcIjtcclxuLy9AaW1wb3J0IFwibWl4aW5zL3RleHQtdHJ1bmNhdGVcIjtcclxuLy9AaW1wb3J0IFwibWl4aW5zL3RyYW5zZm9ybXNcIjtcclxuLy9AaW1wb3J0IFwibWl4aW5zL3Zpc2liaWxpdHlcIjtcclxuQGltcG9ydCBcIm1peGlucy9fYm9yZGVyLXJhZGl1c1wiO1xyXG5cclxuLy8gLy8gTGF5b3V0XHJcbi8vIEBpbXBvcnQgXCJtaXhpbnMvbmF2YmFyLWFsaWduXCI7XHJcbi8vQGltcG9ydCBcIm1peGlucy9ncmlkLWZyYW1ld29ya1wiO1xyXG5AaW1wb3J0IFwibWl4aW5zL19hcmVhXCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX2dyaWRcIjtcclxuXHJcbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS8vL1xyXG5cclxuXHJcbi8vIC8vIENvbXBvbmVudHNcclxuLy9AaW1wb3J0IFwibWl4aW5zL2FsZXJ0XCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX3RyaWFuZ2xlXCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX2J1dHRvbnNcIjtcclxuQGltcG9ydCBcIm1peGlucy9jYXJkc1wiO1xyXG5AaW1wb3J0IFwibWl4aW5zL19wYWdpbmF0aW9uXCI7XHJcbi8vQGltcG9ydCBcIm1peGlucy9saXN0c1wiO1xyXG4vL0BpbXBvcnQgXCJtaXhpbnMvbGlzdC1ncm91cFwiO1xyXG4vL0BpbXBvcnQgXCJtaXhpbnMvbmF2LWRpdmlkZXJcIjtcclxuQGltcG9ydCBcIm1peGlucy9fZm9ybXNcIjtcclxuQGltcG9ydCBcIm1peGlucy90YWJsZXNcIjtcclxuLy9AaW1wb3J0IFwibWl4aW5zL3RhYmxlLXJvd1wiO1xyXG5AaW1wb3J0IFwibWl4aW5zL190YWJcIjtcclxuXHJcbiIsIi8vIG1lZGlhLXF1ZXJ5LW1pbiDrr7nsiqTsnbhcclxuLy8gW+unpOqwnOuzgOyImF1cclxuLy8gJGJyZWFrcG9pbnQg6riw67O46rCSOiDsl4bsnYxcclxuLy8gJGJyZWFrcG9pbnQg7JeQIOqwgOyaqeqwgOuKpe2VnCDqsJJcclxuLy8gKDEpICRtZWRpYS1icmVha3BvaW50cyDsnZgg7YKkIOqwkiAoeHMsIHNtLCBtZCwgbGcsIHhsICnspJEg7ZWY64KYXHJcbi8vICgyKSDqs6DsoJUgcHjqsJJcclxuLy8gJGJyZWFrcG9pbnQg7KCE64us65CcIOqwkuyXkCDrlLDrnbzshJwgQG1lZGlhKG1pbi13aWR0aDogXCLrp6TqsJzrs4DsiJjsl5Ag7ZW064u57ZWY64qUIOqwklwiKSDshYvtjIXtlbTspI3ri4jri6QuXHJcbi8vICRicmVha3BvaW50IOqwkuydhCDtlL3shYDroZwg64Sj64qU64uk66m0IO2VtOuLuSDtlL3shYDqsJLsnZgg66+465SU7Ja07L+866as66W8IOunjOuTpOyWtCDspI3ri4jri6QuXHJcbi8vIGV4KSBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4obGcpIHsgQGNvbnRlbnQgfVxyXG4vLyBleCkgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKDUwMHB4KSB7IEBjb250ZW50IH1cclxuQG1peGluIG1lZGlhLXF1ZXJ5LW1pbiggJGJyZWFrcG9pbnQgKSB7XHJcbiAgQGlmIG1hcF9oYXNfa2V5KCAkZ19tZWRpYS1icmVha3BvaW50cywgJGJyZWFrcG9pbnQgKXtcclxuICAgIEBpZiAgJGJyZWFrcG9pbnQgPT0gXCJ4c1wiIHtcclxuICAgICAgQGNvbnRlbnRcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogbWFwX2dldCgkZ19tZWRpYS1icmVha3BvaW50cywgJGJyZWFrcG9pbnQpKSB7XHJcbiAgICAgICAgQGNvbnRlbnRcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSBpZiB1bml0KCRicmVha3BvaW50KSA9PSBcInB4XCIge1xyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQpeyAgQGNvbnRlbnQgIH1cclxuICB9XHJcbn1cclxuQG1peGluIG1lZGlhLXF1ZXJ5LW1heCggJGJyZWFrcG9pbnQgKSB7XHJcbiAgQGlmIG1hcF9oYXNfa2V5KCAkZ19tZWRpYS1icmVha3BvaW50cywgJGJyZWFrcG9pbnQgKXtcclxuICAgIEBpZiAgJGJyZWFrcG9pbnQgPT0gXCJ4c1wiIHtcclxuICAgICAgQGNvbnRlbnRcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogbWFwX2dldCgkZ19tZWRpYS1icmVha3BvaW50cywgJGJyZWFrcG9pbnQpKSB7XHJcbiAgICAgICAgQGNvbnRlbnRcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSBpZiB1bml0KCRicmVha3BvaW50KSA9PSBcInB4XCIge1xyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrcG9pbnQpeyAgQGNvbnRlbnQgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBtZWRpYS1xdWVyeS1taW4tdmFsIO2VqOyImFxyXG4vLyDsoITsl63rs4DsiJggJG1lZGlhLWJyZWFrcG9pbnRzIG1hcOydmCB2YWx1ZeulvCDrsJjtmZjtlbQg7KSN64uI64ukLlxyXG4vLyDso7zroZwgZWFjaCDrrLjqs7wg6rCZ7J2AIGxvb3Ag66y47JeQ7IScIO2ZnOyaqeuQqeuLiOuLpC5cclxuLy8gZXgpXHJcbi8vIEBlYWNoICRicmVha3BvaW50IGluIG1hcF9rZXlzKCRtZWRpYS1icmVha3BvaW50cykge1xyXG4vLyAgICRwb2ludDogbWVkaWEtcXVlcnktbWluLXZhbCgkYnJlYWtwb2ludCk7XHJcbi8vICAgQG1lZGlhICggbWluLXdpZHRoOiAjeyRwb2ludH0gKXtcclxuLy8gICAgIC4jeyRicmVha3BvaW50fS1mLWwgeyBAaW5jbHVkZSBmbG9hdC1sZWZ0IH1cclxuLy8gICAgIC4jeyRicmVha3BvaW50fS1mLXIgeyBAaW5jbHVkZSBmbG9hdC1yaWdodCB9XHJcbi8vICAgICAuI3skYnJlYWtwb2ludH0tZi1uIHsgQGluY2x1ZGUgZmxvYXQtbm9uZSB9XHJcbi8vICAgfVxyXG4vLyB9XHJcbkBmdW5jdGlvbiBtZWRpYS1xdWVyeS1taW4tdmFsKCAkYnJlYWtwb2ludCApe1xyXG4gIEByZXR1cm4gbWFwX2dldCgkZ19tZWRpYS1icmVha3BvaW50cywgJGJyZWFrcG9pbnQpO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiIsIkBmdW5jdGlvbiBtYXAtc2V0KCRtYXAsICRrZXksICR2YWx1ZSkge1xyXG4gICRuZXc6ICgka2V5OiAkdmFsdWUpO1xyXG4gIEByZXR1cm4gbWFwLW1lcmdlKCRtYXAsICRuZXcpO1xyXG59XHJcblxyXG5cclxuLy9wcmVmaXgg7KCc6rGwXHJcbi8v7YOc6re47J2066aELCDsho3shLEsIOyVhOydtOuUlCDrk7EgIOyFgOugie2EsCDqsIDriqXrj4TroZ1cclxuQGZ1bmN0aW9uIG1ha2VNYXBUb0NvZGVzKCRtYXAsICRwcmVmaXg6IFwiXCIsICRzZWxmOiBmYWxzZSkge1xyXG4gICRjb2RlcyA6ICgpO1xyXG4gIEBlYWNoICRrZXksICR2YWwgaW4gJG1hcCB7XHJcbiAgICBAaWYgKCB0eXBlLW9mKCR2YWwpID09IG1hcCApIHtcclxuXHJcbiAgICAgIEBpZiAoJGtleSA9PSBcIiZcIikge1xyXG4gICAgICAgICRtYWtlOiBtYWtlTWFwVG9Db2RlcygkdmFsLCBcIlwiLCB0cnVlKTtcclxuICAgICAgICAkY29kZXM6IG1hcC1tZXJnZSgkY29kZXMsICRtYWtlKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHNlbGVjdG9yOiBcIi4jeyRwcmVmaXh9I3ska2V5fVwiO1xyXG5cclxuICAgICAgICBAaWYgKCRzZWxmKSB7XHJcbiAgICAgICAgICAkc2VsZWN0b3IgOiBcIiYjeyRwcmVmaXh9I3ska2V5fVwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICAkbWFrZTogbWFrZU1hcFRvQ29kZXMoJHZhbCwgJHByZWZpeCk7XHJcbiAgICAgICAgJGNvZGVzOiBtYXAtc2V0KCRjb2RlcywgJHNlbGVjdG9yLCAkbWFrZSk7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgJGNvZGVzOiBtYXAtc2V0KCRjb2RlcywgJGtleSwgJHZhbCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEByZXR1cm4gJGNvZGVzO1xyXG59O1xyXG5cclxuXHJcbkBtaXhpbiBwcmludENvZGVzKCRtYXApIHtcclxuXHJcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkbWFwIHtcclxuICAgXHJcbiAgICBAaWYgKCB0eXBlLW9mKCR2YWwpID09IG1hcCApIHtcclxuICAgICAgI3ska2V5fSB7XHJcbiAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkdmFsKTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICN7JGtleX0gOiAjeyR2YWx9O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgfVxyXG59XHJcblxyXG4vLyBpc01hcCDtlajsiJhcclxuLy8gI3trZXl9IDogI3t2YWx1ZX3snZgg7ZiV7YOc66W8IOumrO2EtO2VtOyjvOuKlCDtlajsiJhcclxuLy8gaXNNYXAoJHZhbCwgJGtleSk7XHJcbi8vIGlzTWFwIO2VqOyImOyXkOyEnCDsnbjsnpDroZwg64SY7Ja07JioICckdmFsJ+yXkCDtlaDri7nrkJwg6rCS7J20IG1hcOydtOudvOuptCBpc21hcO2VqOyImOulvCDsnqzqt4DtmLjstpwg7ZWc64ukLlxyXG4vLyDsmIjsmbjsoIHsnLzroZwg7YKk6rCS7J20IFwiX1wiIOudvOuptCBpc1BzZXVkb+ulvCDtmLjstpztlZzri6QuXHJcbi8vIOy1nOyiheyggeycvOuhnCAje2tleX0gOiAje3ZhbHVlfeydmCDqsJLsnYQg66as7YS07ZWY64+E66GdIOunjOuToOuLpC5cclxuXHJcbi8vaXNQc2V1ZG8g7ZWo7IiYXHJcbi8v6rCA7IOBIOyEoO2DneyekOulvCDrp4zrk6TslrQg66as7YS07ZW07KO864qUIO2VqOyImFxyXG4vL1xyXG5cclxuXHJcbi8vQGZ1bmN0aW9uIGlzTWFwICgkdmFsLCAka2V5KSB7XHJcbi8vICAkcmVzdWx0IDogKCk7XHJcbi8vXHJcbi8vICBAaWYgKHR5cGUtb2YoJHZhbCkgPT0gbWFwKSB7XHJcbi8vICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAkdmFsIHtcclxuLy8gICAgICBAaWYgKHR5cGUtb2YoJHZhbDIpID09IG1hcCBhbmQgJGtleSA9PSBudWxsKSB7XHJcbi8vICAgICAgICAkbWFwIDogaXNNYXAoJHZhbDIsICRrZXkyKTtcclxuLy8gICAgICAgICRtYXBrZXkgOiBtYXAta2V5cygkbWFwKTtcclxuLy8gICAgICAgICRyZXN1bHQ6IG1hcC1zZXQoJHJlc3VsdCwgJG1hcGtleSwgbWFwLWdldCgkbWFwLCAjeyRtYXBrZXl9KSk7XHJcbi8vICAgICAgfSBAZWxzZSBpZiAodHlwZS1vZigkdmFsMikgPT0gbWFwIGFuZCAka2V5ID09IFwiX1wiKXtcclxuLy8gICAgICAgICRyZXN1bHQ6IG1hcC1zZXQoJHJlc3VsdCwgJGtleTIsIGlzTWFwKCR2YWwyLCAka2V5MikpO1xyXG4vLyAgICAgIH0gQGVsc2Uge1xyXG4vLyAgICAgICAgJHJlc3VsdDogbWFwLXNldCgkcmVzdWx0LCAka2V5MiwgJHZhbDIpO1xyXG4vLyAgICAgIH1cclxuLy8gICAgfVxyXG4vLyAgfSBAZWxzZSB7XHJcbi8vICAgICRyZXN1bHQ6IG1hcC1zZXQoJHJlc3VsdCwgJHZhbCwgJGtleSk7XHJcbi8vICB9XHJcbi8vXHJcbi8vICBAcmV0dXJuICRyZXN1bHQ7XHJcbi8vfTtcclxuXHJcblxyXG4vL0BmdW5jdGlvbiBpc1BzZXVkbyAoJGtleSwgJHZhbCkge1xyXG4vLyAgJHJlc3VsdDogbnVsbDtcclxuLy8gIEBpZiAoJGtleSA9PSBcIl9cIikge1xyXG4vLyAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbCB7XHJcbi8vICAgICAgJHJlc3VsdDogaXNNYXAoJGtleTIsICR2YWwyKTtcclxuLy8gICAgICBAcmV0dXJuIGlzTWFwKCRrZXkyLCAkdmFsMik7XHJcbi8vICAgIH1cclxuLy8gIH0gQGVsc2UgIHtcclxuLy8gICAgJHJlc3VsdDogaXNNYXAoJGtleSwgJHZhbCk7XHJcbi8vICAgIEByZXR1cm4gJHJlc3VsdDtcclxuLy8gIH1cclxuLy99O1xyXG5cclxuXHJcbiIsIkBtaXhpbiBjbGVhcigpIHtcclxuICAmOjphZnRlciB7XHJcbiAgICAgY29udGVudDogXCJcIjtcclxuICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICBjbGVhcjogYm90aDtcclxuICAgfVxyXG59XHJcblxyXG5cclxuXHJcbiIsIkBtaXhpbiBmbG9hdC1sZWZ0IHtcclxuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xyXG59XHJcbkBtaXhpbiBmbG9hdC1yaWdodCB7XHJcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XHJcbn1cclxuQG1peGluIGZsb2F0LW5vbmUge1xyXG4gIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuIiwiQG1peGluIGhvdmVyLW9ue1xyXG4gICY6aG92ZXIsICY6Zm9jdXMsICY6YWN0aXZlLCAmLm9ueyBAY29udGVudDsgfVxyXG59XHJcblxyXG5AbWl4aW4gaG92ZXJ7XHJcbiAgJjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUgeyBAY29udGVudDsgfVxyXG59XHJcblxyXG4vL1xyXG4vL0BtaXhpbiBob3ZlciB7XHJcbi8vICAmOmhvdmVyIHsgQGNvbnRlbnQ7IH1cclxuLy99XHJcbi8vXHJcbi8vQG1peGluIGhvdmVyLWZvY3VzIHtcclxuLy8gICY6aG92ZXIsXHJcbi8vICAmOmZvY3VzIHtcclxuLy8gICAgQGNvbnRlbnQ7XHJcbi8vICB9XHJcbi8vfVxyXG4vL1xyXG4vL0BtaXhpbiBwbGFpbi1ob3Zlci1mb2N1cyB7XHJcbi8vICAmLFxyXG4vLyAgJjpob3ZlcixcclxuLy8gICY6Zm9jdXMge1xyXG4vLyAgICBAY29udGVudDtcclxuLy8gIH1cclxuLy99XHJcbi8vXHJcbi8vQG1peGluIGhvdmVyLWZvY3VzLWFjdGl2ZSB7XHJcbi8vICAmOmhvdmVyLFxyXG4vLyAgJjpmb2N1cyxcclxuLy8gICY6YWN0aXZlIHtcclxuLy8gICAgQGNvbnRlbnQ7XHJcbi8vICB9XHJcbi8vfSIsIi8vIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIC5zci1vbmx5IHRvIG9ubHkgZGlzcGxheSBjb250ZW50IHdoZW4gaXQncyBmb2N1c2VkLlxyXG4vLyBTZWU6IGh0dHA6Ly9hMTF5cHJvamVjdC5jb20vcG9zdHMvaG93LXRvLWhpZGUtY29udGVudC9cclxuLy8gU2VlOiBodHRwczovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cclxuQG1peGluIHNyLW9ubHkge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogMXB4O1xyXG4gIGhlaWdodDogMXB4O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xyXG4gIGJvcmRlcjogMDtcclxufVxyXG5AbWl4aW4gdGV4dC1oaWRlIHtcclxuICBmb250OiAwLzAgYSAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcclxuICB0ZXh0LXNoYWRvdzogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBib3JkZXI6IDA7XHJcbn1cclxuXHJcbiIsIkBtaXhpbiByZXNldC10ZXh0IHtcclxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJhc2U7XHJcbiAgLy8gV2UgZGVsaWJlcmF0ZWx5IGRvIE5PVCByZXNldCBmb250LXNpemUgb3Igd29yZC13cmFwLlxyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIGxpbmUtYnJlYWs6IGF1dG87XHJcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7IC8vIEZhbGxiYWNrIGZvciB3aGVyZSBgc3RhcnRgIGlzIG5vdCBzdXBwb3J0ZWRcclxuICB0ZXh0LWFsaWduOiBzdGFydDtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XHJcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcclxuICB3b3JkLWJyZWFrOiBub3JtYWw7XHJcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XHJcbn1cclxuIiwiLy8gLyogcHJlZml4ICovXHJcbkBtaXhpbiBwcmVmaXhlcigkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzOigpKXtcclxuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlc3tcclxuICAgICN7Jy0nKyRwcmVmaXgrJy0nKyRwcm9wZXJ0eX06JHZhbHVlO1xyXG4gIH1cclxuICAjeyRwcm9wZXJ0eX0gOiAkdmFsdWU7XHJcbn1cclxuXHJcbiAgLy8gQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCByb3RhdGUoNDVkZWcpLCB3ZWJraXQgbXMpOyBvciAoXCJ3ZWJraXRcIiwgXCJtb3pcIilcclxuXHJcbiAvL2Nzc1xyXG4gIC8vIC5zZWxlY3RvciB7XHJcbiAgLy8gICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAvLyAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgLy8gICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgLy8gfVxyXG5cclxuIiwiLy8gU2luZ2xlIHNpZGUgYm9yZGVyLXJhZGl1c1xyXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkcmFkaXVzOiAkYm9yZGVyLXJhZGl1cykge1xyXG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaXVzKSB7XHJcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcclxufVxyXG5cclxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGl1cykge1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGl1cykge1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGl1cykge1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcclxufVxyXG4iLCIvLyBtYWtlLWFyZWEg66+57Iqk7J24XHJcbi8vIOq4sOuzuOqwkuydtCBudWxs66GcIOyFi+2MheuQmOyWtCDsnojripQg7JqU7IaM64qUIOyduOyekOqwgCDsoITri6zrkJjsp4Ag7JWK7J2EIOyLnCDsu7TtjIzsnbwg65CY7KeAIOyViuyKteuLiOuLpC5cclxuLy8gW+unpOqwnOuzgOyImF1cclxuLy8gJG1heC13aWR0aCDquLDrs7jqsJI6IG51bGxcclxuLy8gJGd1dHRlci13aWR0aCDquLDrs7jqsJI6IG51bGxcclxuLy8gJHdpZHRoIOq4sOuzuOqwkjogMTAwJVxyXG4vLyBleCkgQGluY2x1ZGUgbWFrZS1hcmVhKCAkbWF4LXdpZHRoOiAkbWF4LXdpZHRoLCAkZ3V0dGVyLXdpZHRoOiAkYXJlYS1ndXR0ZXItd2lkdGggKTtcclxuLy8gZXgpIEBpbmNsdWRlIG1ha2UtYXJlYSggJHdpZHRoOiAxNjAwcHggKTtcclxuLy9AbWl4aW4gbWFrZS1hcmVhKCAkbWF4LXdpZHRoOiBudWxsLCAkZ3V0dGVyLXdpZHRoOiBudWxsLCAkd2lkdGg6IDEwMCUgKSB7XHJcbi8vICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vICB3aWR0aDogJHdpZHRoO1xyXG4vLyAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xyXG4vLyAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4vLyAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbi8vICBwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyLXdpZHRoO1xyXG4vLyAgcGFkZGluZy1sZWZ0OiAkZ3V0dGVyLXdpZHRoO1xyXG4vL31cclxuXHJcbkBtaXhpbiBtYWtlLWFyZWEoICRhcmVhLWluZm86ICRnX2RlZmF1bHQtYXJlYSApIHtcclxuICAkd2lkdGg6IDEwMCU7XHJcbiAgQGlmICBtYXAtaGFzLWtleSgkYXJlYS1pbmZvLCB3aWR0aCkge1xyXG4gICAgJHdpZHRoIDogbWFwLWdldCgkYXJlYS1pbmZvLCB3aWR0aClcclxuICB9IEBlbHNlIHtcclxuICAgICR3aWR0aCA6IDEwMCVcclxuICB9XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAkd2lkdGg7XHJcbiAgbWF4LXdpZHRoOiBtYXAtZ2V0KCRhcmVhLWluZm8sIG1heC13aWR0aCk7XHJcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gIHBhZGRpbmctcmlnaHQ6IG1hcC1nZXQoJGFyZWEtaW5mbywgZ3V0dGVyLXdpZHRoKTtcclxuICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJGFyZWEtaW5mbywgZ3V0dGVyLXdpZHRoKTtcclxufVxyXG5cclxuIiwiLy8gbWFrZS1yb3cg66+57Iqk7J24XHJcbi8vIFvrp6TqsJzrs4DsiJhdXHJcbi8vICRncmlkLWd1dHRlciDquLDrs7jqsJI6ICRncmlkLWd1dHRlci13aWR0aFxyXG4vLyAkZ3JpZC1ndXR0ZXIg7KCE64us65CcIOqwkuyXkCDrlLDrnbzshJwgbWFyZ2luLXJpZ2h0LCBtYXJnaW4tbGVmdCDqsJLsnYQg7IWL7YyF7ZW0IOykjeuLiOuLpC5cclxuLy8gZXgpIEBpbmNsdWRlIG1ha2Utcm93KCAkZ3JpZC1ndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCk7XHJcbkBtaXhpbiBtYWtlLXJvdyggJGdyaWQtZ3V0dGVyIDogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luLXJpZ2h0OiAtJGdyaWQtZ3V0dGVyO1xyXG4gIG1hcmdpbi1sZWZ0OiAtJGdyaWQtZ3V0dGVyO1xyXG4gIEBpbmNsdWRlIGNsZWFyKCk7XHJcbn1cclxuXHJcbi8vIG1ha2UtY29sLXNldCDrr7nsiqTsnbhcclxuLy8gW+unpOqwnOuzgOyImF1cclxuLy8gJGdyaWQtY29sLWNudCDquLDrs7jqsJI6ICRncmlkLWNvbHVtbnNcclxuLy8gJGdyaWQtY29sLWNudCDsoITri6zrkJwg6rCS7J2YIOqwnOyImOunjO2CgeydmCBjb2wscHVsbCxwdXNoLG9mZnNldCDrk7HsnYQg66eM65Ok7Ja07KSN64uI64ukLlxyXG4vLyBleCkgQGluY2x1ZGUgbWFrZS1jb2wtc2V0KCk7XHJcbi8vIGV4KSBAaW5jbHVkZSBtYWtlLWNvbC1zZXQoJGdyaWQtY29sLWNudDogNSk7XHJcbkBtaXhpbiBtYWtlLWNvbC1zZXQoICRncmlkLWNvbC1pbmZvOiAkZ19ncmlkLWNvbC1pbmZvICkge1xyXG4gICRncmlkLWNvbC1uYW1lOiBudWxsO1xyXG4gIEBpZiAgbWFwLWhhcy1rZXkoJGdyaWQtY29sLWluZm8sIGdyaWQtY29sLW5hbWUpIHtcclxuICAgICRncmlkLWNvbC1uYW1lIDogbWFwLWdldCgkZ3JpZC1jb2wtaW5mbywgZ3JpZC1jb2wtbmFtZSlcclxuICB9IEBlbHNlIHtcclxuICAgICRncmlkLWNvbC1uYW1lIDogbnVsbFxyXG4gIH1cclxuICAgIEBpbmNsdWRlIG1ha2UtY29sKCBtYXAtZ2V0KCRncmlkLWNvbC1pbmZvLCBncmlkLWNvbC1jbnQpLCAkZ3JpZC1jb2wtbmFtZSApO1xyXG4gIEBpbmNsdWRlIG1ha2UtcHVsbCggbWFwLWdldCgkZ3JpZC1jb2wtaW5mbywgZ3JpZC1jb2wtY250KSwgJGdyaWQtY29sLW5hbWUgKTtcclxuICBAaW5jbHVkZSBtYWtlLXB1c2goIG1hcC1nZXQoJGdyaWQtY29sLWluZm8sIGdyaWQtY29sLWNudCksICRncmlkLWNvbC1uYW1lICk7XHJcbiAgQGluY2x1ZGUgbWFrZS1vZmZzZXQoIG1hcC1nZXQoJGdyaWQtY29sLWluZm8sIGdyaWQtY29sLWNudCksICRncmlkLWNvbC1uYW1lICk7XHJcbn1cclxuXHJcblxyXG5AbWl4aW4gbWFrZS1jb2woICRncmlkLWNvbC1jbnQ6ICRncmlkLWNvbC1jbnQsICRjb2wtbmFtZTogJGNvbC1uYW1lICkge1xyXG4gIEBlYWNoICRicmVha3BvaW50LCAkcG9pbnQgaW4gJGdfbWVkaWEtYnJlYWtwb2ludHMge1xyXG4gICAgQGlmICRicmVha3BvaW50ID09IHhzIHtcclxuICAgICAgLiN7JGNvbC1uYW1lfWNvbCB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICAgIC4jeyRjb2wtbmFtZX1jb2wtYXV0byB7XHJcbiAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgIH07XHJcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sLWNudCB7XHJcbiAgICAgICAgLiN7JGNvbC1uYW1lfWNvbC0jeyRpfSB7XHJcbiAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgkaSAvICRncmlkLWNvbC1jbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAjeyRwb2ludH0pIHtcclxuICAgICAgICAuI3skY29sLW5hbWV9Y29sLSN7JGJyZWFrcG9pbnR9IHtcclxuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLiN7JGNvbC1uYW1lfWNvbC0jeyRicmVha3BvaW50fS1hdXRvIHtcclxuICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2wtY250IHtcclxuICAgICAgICAgIC4jeyRjb2wtbmFtZX1jb2wtI3skYnJlYWtwb2ludH0tI3skaX0ge1xyXG4gICAgICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgkaSAvICRncmlkLWNvbC1jbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1ha2UtcHVsbCggJGdyaWQtY29sLWNudDogJGdyaWQtY29sLWNudCwgJGNvbC1uYW1lOiAkY29sLW5hbWUgKSB7XHJcbiAgQGVhY2ggJGJyZWFrcG9pbnQsICRwb2ludCBpbiAkZ19tZWRpYS1icmVha3BvaW50cyB7XHJcbiAgICBAaWYgJGJyZWFrcG9pbnQgPT0geHMge1xyXG4gICAgICAuI3skY29sLW5hbWV9cHVsbC0wIHtcclxuICAgICAgICByaWdodDogYXV0bztcclxuICAgICAgfVxyXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbC1jbnQge1xyXG4gICAgICAgIC4jeyRjb2wtbmFtZX1wdWxsLSN7JGl9IHtcclxuICAgICAgICAgIHJpZ2h0OiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICN7JHBvaW50fSkge1xyXG4gICAgICAgIC4jeyRjb2wtbmFtZX1wdWxsLSN7JGJyZWFrcG9pbnR9LTAge1xyXG4gICAgICAgICAgcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sLWNudCB7XHJcbiAgICAgICAgICAuI3skY29sLW5hbWV9cHVsbC0jeyRicmVha3BvaW50fS0jeyRpfSB7XHJcbiAgICAgICAgICAgIHJpZ2h0OiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWFrZS1wdXNoKCAkZ3JpZC1jb2wtY250OiAkZ3JpZC1jb2wtY250LCAkY29sLW5hbWU6ICRjb2wtbmFtZSApIHtcclxuICBAZWFjaCAkYnJlYWtwb2ludCwgJHBvaW50IGluICRnX21lZGlhLWJyZWFrcG9pbnRzIHtcclxuICAgIEBpZiAkYnJlYWtwb2ludCA9PSB4cyB7XHJcbiAgICAgIC4jeyRjb2wtbmFtZX1wdXNoLTAge1xyXG4gICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgIH1cclxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2wtY250IHtcclxuICAgICAgICAuI3skY29sLW5hbWV9cHVzaC0jeyRpfSB7XHJcbiAgICAgICAgICBsZWZ0OiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICN7JHBvaW50fSkge1xyXG4gICAgICAgIC4jeyRjb2wtbmFtZX1wdXNoLSN7JGJyZWFrcG9pbnR9LTAge1xyXG4gICAgICAgICAgbGVmdDogYXV0bztcclxuICAgICAgICB9XHJcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2wtY250IHtcclxuICAgICAgICAgIC4jeyRjb2wtbmFtZX1wdXNoLSN7JGJyZWFrcG9pbnR9LSN7JGl9IHtcclxuICAgICAgICAgICAgbGVmdDogcGVyY2VudGFnZSgkaSAvICRncmlkLWNvbC1jbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1ha2Utb2Zmc2V0KCAkZ3JpZC1jb2wtY250OiAkZ3JpZC1jb2x1bW5zLCAkY29sLW5hbWU6ICRjb2wtbmFtZSApIHtcclxuICBAZWFjaCAkYnJlYWtwb2ludCwgJHBvaW50IGluICRnX21lZGlhLWJyZWFrcG9pbnRzIHtcclxuICAgICRwb2ludDogbWVkaWEtcXVlcnktbWluLXZhbCgkYnJlYWtwb2ludCk7XHJcbiAgICBAaWYgJGJyZWFrcG9pbnQgPT0geHMge1xyXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbC1jbnQgLSAxIHtcclxuICAgICAgICAuI3skY29sLW5hbWV9b2Zmc2V0LSN7JGl9IHtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICN7JHBvaW50fSkge1xyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sLWNudCAtIDEge1xyXG4gICAgICAgICAgLiN7JGNvbC1uYW1lfW9mZnNldC0jeyRicmVha3BvaW50fS0jeyRpfSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4iLCJAbWl4aW4gdHJpYW5nbGUoJGRpcmVjdGlvbiwkd2lkdGgsJGhlaWdodCwkd2lkdGhTaXplLCRoZWlnaHRTaXplLCRjb2xvcikge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOmFic29sdXRlO1xyXG4gICAgaGVpZ2h0OiAkd2lkdGg7XHJcbiAgICB3aWR0aDogJGhlaWdodDtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBAaWYgJHdpZHRoID09IDAge1xyXG4gICAgICAgIEBpZiAkd2lkdGggPT0gMCBhbmQgJGhlaWdodCA9PSAwIHtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkY29sb3I7XHJcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMCAoJHdpZHRoU2l6ZSAvIDIpICRoZWlnaHRTaXplO1xyXG4gICAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcInVwLXJpZ2h0XCIge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICRjb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwICR3aWR0aFNpemUgJHdpZHRoU2l6ZSAwO1xyXG4gICAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcInJpZ2h0XCIge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRjb2xvcjtcclxuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAoJGhlaWdodFNpemUgLyAyKSAwICgkaGVpZ2h0U2l6ZSAvIDIpICR3aWR0aFNpemU7XHJcbiAgICAgICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwiZG93bi1yaWdodFwiIHtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkY29sb3I7XHJcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMCAwICR3aWR0aFNpemUgJHdpZHRoU2l6ZTtcclxuICAgICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJkb3duXCIge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0U2l6ZSAoJHdpZHRoU2l6ZSAvIDIpIDA7XHJcbiAgICAgICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwiZG93bi1sZWZ0XCIge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRjb2xvcjtcclxuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAkd2lkdGhTaXplIDAgMCAkd2lkdGhTaXplO1xyXG4gICAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcImxlZnRcIiB7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJGNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBib3JkZXItd2lkdGg6ICgkaGVpZ2h0U2l6ZSAvIDIpICR3aWR0aFNpemUgKCRoZWlnaHRTaXplIC8gMikgMDtcclxuICAgICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJ1cC1sZWZ0XCIge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAkd2lkdGhTaXplICR3aWR0aFNpemUgMCAwO1xyXG4gICAgICAgIH1cclxuICAgIH1AZWxzZSB7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkY29sb3IgJGNvbG9yIHRyYW5zcGFyZW50O1xyXG4gICAgICAgIGJvcmRlci13aWR0aDogMCAkd2lkdGhTaXplICRoZWlnaHRTaXplIDA7XHJcbiAgICAgICAgQGlmICRkaXJlY3Rpb24gPT0gXCJ1cFwiIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTtcclxuICAgICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJ1cC1yaWdodFwiIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO1xyXG4gICAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcInJpZ2h0XCIge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7XHJcbiAgICAgICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwiZG93bi1yaWdodFwiIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTtcclxuICAgICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJkb3duXCIge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuICAgICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJkb3duLWxlZnRcIiB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO1xyXG4gICAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcImxlZnRcIiB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuICAgICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJ1cC1sZWZ0XCIge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLy8gLmVsZW1lbnQge1xyXG4vLyAgICAgcG9zaXRpb246cmVsYXRpdmU7XHJcbi8vICAgICAmOjpiZWZvcmUge1xyXG4vLyAgICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKFwidXAtbGVmdFwiLCAwLDAsMTBweCwxMHB4LCAjYjI1YzljKTtcclxuLy8gICAgIH1cclxuLy8gfVxyXG4vLyAuZWxlbWVudDIge1xyXG4vLyAgICAgbGVmdDoyMHB4O1xyXG4vLyAgICAgcG9zaXRpb246cmVsYXRpdmU7XHJcbi8vICAgICAmOjpiZWZvcmUge1xyXG4vLyAgICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKFwidXAtbGVmdFwiLCA4cHgsOHB4LDJweCwycHgsICNiMjVjOWMpO1xyXG4vLyAgICAgfVxyXG4vLyB9XHJcblxyXG4vLyBjc3NcclxuLy8gLmVsZW1lbnQyIHtcclxuLy8gICAgIGNvbnRlbnQ6IFwiXCI7XHJcbi8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4vLyAgICAgaGVpZ2h0OiA4cHg7XHJcbi8vICAgICB3aWR0aDogOHB4O1xyXG4vLyAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjYjI1YzljICNiMjVjOWMgdHJhbnNwYXJlbnQ7XHJcbi8vICAgICBib3JkZXItd2lkdGg6IDAgMnB4IDJweCAwO1xyXG4vLyAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxuLy8gfVxyXG4iLCIvLyBCdXR0b24gdmFyaWFudHNcclxuLy8g67KE7Yq8IOyCrOydtOymiOuzhCDsg53shLFcclxuQG1peGluIGJ1dHRvbi1zaXplLXB4KCRidG4tc2l6ZSA6ICRnX2J0bi1zaXplKSB7XHJcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAoJGJ0bi1zaXplKXtcclxuICAgIEBpZiAoJGtleSA9PSBkZWZhdWx0X3ZhbHVlKSB7XHJcbiAgICAgICVkZWZhdWx0X3ZhbHVlIHtcclxuICAgICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbCB7XHJcbiAgICAgICAgICAjeyRrZXkyfTogI3skdmFsMn07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgLmJ0bi0jeyRrZXl9IHtcclxuICAgICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbCB7XHJcbiAgICAgICAgICBAaWYgKCRrZXkyID09IG1lZGlhKSB7XHJcbiAgICAgICAgICAgIEBlYWNoICRrZXkzLCAkdmFsMyBpbiAkdmFsMiB7XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKCRrZXkzKSB7XHJcbiAgICAgICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWwzKTtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gQGVsc2V7XHJcbiAgICAgICAgICAgIEBpZiAoIHR5cGUtb2YoJHZhbDIpID09IG1hcCApIHsgLy8gb25lIGRlcHRoIGNsYXNzIOyViOyXkCDstpTqsIAgY2xhc3Mg7IOd7ISxXHJcbiAgICAgICAgICAgICAgLiN7JGtleTJ9IHtcclxuICAgICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDIpO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBAZWxzZSB7IC8vIG9uZSBkZXB0aCBjbGFzcyDrsoTtirxcclxuICAgICAgICAgICAgICAjeyRrZXkyfTogI3skdmFsMn07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBidG4tZGlzYWJsZWQoKSB7XHJcbiAgJi5kaXNhYmxlZCB7XHJcbiAgICBAY29udGVudDtcclxuICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyDrsoTtirwg7Iqk7YOA7J28IOyEpOygle2VtOyjvOq4sFxyXG5AbWl4aW4gYnV0dG9uLXN0eWxlKCRidG4tZ3JvdXAgOiAkZ19idG4tZ3JvdXApe1xyXG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGJ0bi1ncm91cCB7XHJcbiAgICAuYnRuLSN7JGtleX0sXHJcbiAgICAuYnRuLSN7JGtleX06dmlzaXRlZCB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHZhbCwgdGhlbWUtY29sb3IpO1xyXG4gICAgICBjb2xvcjogbWFwLWdldCgkdmFsLCBmb250LWNvbG9yKTtcclxuICAgICAgYm9yZGVyOiBtYXAtZ2V0KCR2YWwsIGJvcmRlcik7XHJcbiAgICAgIGJvcmRlci1yYWRpdXMgOiBtYXAtZ2V0KCR2YWwsIGJvcmRlci1yYWRpdXMpO1xyXG5cclxuICAgICAgQGluY2x1ZGUgaG92ZXItb24ge1xyXG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkdmFsLCBob3Zlci10aGVtZS1jb2xvcikge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOm1hcC1nZXQoJHZhbCwgaG92ZXItdGhlbWUtY29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOmRhcmtlbiggbWFwLWdldCgkdmFsLCB0aGVtZS1jb2xvciksIDE1JSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkdmFsLCBob3Zlci1jb2xvcikge1xyXG4gICAgICAgICAgY29sb3I6bWFwLWdldCgkdmFsLCBob3Zlci1jb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgIGNvbG9yOm1hcC1nZXQoJHZhbCwgZm9udC1jb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJvcmRlcjogbWFwLWdldCgkdmFsLCBob3Zlci1ib3JkZXIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAaW5jbHVkZSBidG4tZGlzYWJsZWQge1xyXG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkdmFsLCBkaXNhYmxlZC1ncm91cCkge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldChtYXAtZ2V0KCR2YWwsIGRpc2FibGVkLWdyb3VwKSxkaW0tdGhlbWUtY29sb3IpO1xyXG4gICAgICAgICAgY29sb3I6IG1hcC1nZXQobWFwLWdldCgkdmFsLCBkaXNhYmxlZC1ncm91cCksIGRpbS1jb2xvcik7XHJcbiAgICAgICAgICBvcGFjaXR5OiBtYXAtZ2V0KG1hcC1nZXQoJHZhbCwgZGlzYWJsZWQtZ3JvdXApLCBkaW0tb3BhY2l0eSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgIG9wYWNpdHk6LjY1O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gbWFrZS1jYXJkLXNldCgkY2FyZC1pbmZvKSB7XHJcbiAgJWNhcmQtd3JhcHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuICBAZWFjaCAka2V5LCAkdmFsIGluICRjYXJkLWluZm8ge1xyXG4gICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwge1xyXG4gICAgICBAaWYgJGtleTIgPT0gXCJ3cmFwXCIge1xyXG4gICAgICAgIC5jYXJkLSN7JGtleTJ9LSN7JGtleX0ge1xyXG4gICAgICAgICAgQGV4dGVuZCAlY2FyZC13cmFwO1xyXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogbWFwLWdldCgkdmFsMiwgbWFyZ2luLWJvdHRvbSk7XHJcbiAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCR2YWwyLCBwYWRkaW5nKTtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHZhbDIsIGJhY2tncm91bmQtY29sb3IpO1xyXG4gICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICBtYXAtZ2V0KCR2YWwyLCBib3JkZXItc3R5bGUpIHtcclxuICAgICAgICAgICAgI3ska2V5M306ICN7JHZhbDN9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogbWFwLWdldCgkdmFsMiwgYm9yZGVyLXJhZGl1cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIGlmICRrZXkyID09IFwiaGVhZGVyXCIge1xyXG4gICAgICAgIC5jYXJkLXdyYXAtI3ska2V5fXtcclxuICAgICAgICAgIC5jYXJkLSN7JGtleTJ9IHtcclxuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkdmFsMiwgcGFkZGluZyk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHZhbDIsIGJhY2tncm91bmQtY29sb3IpO1xyXG4gICAgICAgICAgICBAZWFjaCAka2V5MywgJHZhbDMgaW4gIG1hcC1nZXQoJHZhbDIsIGJvcmRlci1zdHlsZSkge1xyXG4gICAgICAgICAgICAgICN7JGtleTN9OiAjeyR2YWwzfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHZhbDIsIGZvbnQtc2l6ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAuY2FyZC13cmFwLSN7JGtleX17XHJcbiAgICAgICAgICAuY2FyZC0jeyRrZXkyfSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHZhbDIsIHBhZGRpbmcpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCR2YWwyLCBiYWNrZ3JvdW5kLWNvbG9yKTtcclxuICAgICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICBtYXAtZ2V0KCR2YWwyLCBib3JkZXItc3R5bGUpIHtcclxuICAgICAgICAgICAgICAjeyRrZXkzfTogI3skdmFsM307XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuLy8g64ukIOuCmOuIhOqzoCDtlZjrgpjroZwg7ZWp7LmY64qU6rKMIOyii+yngCDslYrsnYTquYw/Pz8/Pz8/XHJcbi8vIOyDgeyGjeydmCDqs4TrhZDsnYQg7KCB7Jqp7ZW07JW8IO2VmOuKlOqwgD8/XHJcbi8vIOyDgeyGjeydhCDsoIHsmqntlZjrqbQg7L2U65Oc6rCAIOyhsOq4iCDrs7XsnqHtlbTsp4jrk69cclxuLy8g7JWE7JiIIHdyYXAsIGhlYWRlciwgYm9keSwgZm9vdGVyIOuCmOuIhOuKlOuNmOyngCwg7KeA6riI7LKY65+8IOyymOumrO2VmOuKlOqyjCDrgpjsnYTrk69cclxuIiwiLy8gUGFnaW5hdGlvblxyXG5AbWl4aW4gcGFnaW5hdGlvbi1saW5rcygkcGFnZS1pdGVtKXtcclxuICB3aWR0aDptYXAtZ2V0KCRwYWdlLWl0ZW0sIHdpZHRoKTtcclxuICBoZWlnaHQ6bWFwLWdldCgkcGFnZS1pdGVtLCBoZWlnaHQpO1xyXG4gIGxpbmUtaGVpZ2h0Om1hcC1nZXQoJHBhZ2UtaXRlbSwgaGVpZ2h0KTsgLy8gaGVpZ2h06rCS6rO8IOuPmeydvFxyXG5cclxuICAvL3BhZGRpbmc6bWFwLWdldCgkcGFnZS1pdGVtLCBwYWRkaW5nKTsgLT4g7IKt7KCc7JiI7KCVIOuztOulmC4uXHJcbiAgbWFyZ2luOm1hcC1nZXQoJHBhZ2UtaXRlbSwgbWFyZ2luKTtcclxuXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkcGFnZS1pdGVtLCB0aGVtZS1jb2xvcik7XHJcbiAgYm9yZGVyOiBtYXAtZ2V0KCRwYWdlLWl0ZW0sIGJvcmRlcik7XHJcbiAgYm9yZGVyLXJpZ2h0Om1hcC1nZXQoJHBhZ2UtaXRlbSwgYm9yZGVyLXJpZ2h0KTtcclxuXHJcbiAgYm9yZGVyLXJhZGl1czptYXAtZ2V0KCRwYWdlLWl0ZW0sIGJvcmRlci1yYWRpdXMpO1xyXG4gIGZvbnQtc2l6ZTptYXAtZ2V0KCRwYWdlLWl0ZW0sIGZvbnQtc2l6ZSk7XHJcbiAgZm9udC13ZWlnaHQ6bWFwLWdldCgkcGFnZS1pdGVtLCBmb250LXdlaWdodCk7XHJcbiAgbGV0dGVyLXNwYWNpbmc6bWFwLWdldCgkcGFnZS1pdGVtLCBsZXR0ZXItc3BhY2luZyk7XHJcbiAgY29sb3I6bWFwLWdldCgkcGFnZS1pdGVtLCBmb250LWNvbG9yKTtcclxuXHJcbiAgQGluY2x1ZGUgaG92ZXIge1xyXG4gICAgQGlmIG1hcC1oYXMta2V5KCRwYWdlLWl0ZW0sIGhvdmVyLXRoZW1lLWNvbG9yKSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6bWFwLWdldCgkcGFnZS1pdGVtLGhvdmVyLXRoZW1lLWNvbG9yKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjpkYXJrZW4oIG1hcC1nZXQoJHBhZ2UtaXRlbSwgdGhlbWUtY29sb3IpLCAxNSUpO1xyXG4gICAgfVxyXG4gICAgY29sb3I6bWFwLWdldCgkcGFnZS1pdGVtLCBob3Zlci1jb2xvcik7XHJcbiAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHBhZ2UtaXRlbSwgaG92ZXItYm9yZGVyLWNvbG9yKTtcclxuICB9XHJcblxyXG59XHJcbi8vIOyVoe2LsOu4jCDrkKDsi5xcclxuQG1peGluIHBhZ2luYXRpb24tYWN0aXZlKCRwYWdlLWFjdGl2ZS1pdGVtKXtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOm1hcC1nZXQoJHBhZ2UtYWN0aXZlLWl0ZW0sIGFjdGl2ZS10aGVtZSk7XHJcbiAgY29sb3I6bWFwLWdldCgkcGFnZS1hY3RpdmUtaXRlbSxhY3RpdmUtY29sb3IpO1xyXG4gIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAobWFwLWdldCgkcGFnZS1hY3RpdmUtaXRlbSxhY3RpdmUtc3R5bGUpKXtcclxuICAgICN7JGtleTJ9OiAjeyR2YWwyfTtcclxuICB9XHJcbn1cclxuLy8g65SkIOuQoOyLnFxyXG5AbWl4aW4gcGFnaW5hdGlvbi1kaXNhYmxlZCgkcGFnZS1kaXNhYmxlZC1pdGVtKXtcclxuICBvcGFjaXR5Om1hcC1nZXQoJHBhZ2UtZGlzYWJsZWQtaXRlbSwgZGltLW9wYWNpdHkpO1xyXG4gIHBvaW50ZXItZXZlbnRzOm5vbmU7XHJcbiAgQGVhY2ggJGtleTIsICR2YWwyIGluIChtYXAtZ2V0KCRwYWdlLWRpc2FibGVkLWl0ZW0sZGlzYWJsZWQtc3R5bGUpKXtcclxuICAgICN7JGtleTJ9OiAjeyR2YWwyfTtcclxuICB9XHJcbn1cclxuXHJcbi8vIOyymOydjCDsnbTsoIQg64uk7J2MIOuBnSBhcnJvdyDqtIDroKgg7Luk7Iqk7YWAXHJcbkBtaXhpbiBwYWdpbmF0aW9uLWFycm93cygkcGFnZS1hcnJvdy1zdHlsZSkge1xyXG4gIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAkcGFnZS1hcnJvdy1zdHlsZSB7XHJcbiAgICAjeyRrZXkyfTogI3skdmFsMn07XHJcbiAgfVxyXG59IiwiQG1peGluIG1ha2UtZm9ybS13cmFwKCAkZm9ybS13cmFwLWluZm8gOiAkZ19mb3JtLXdyYXAgKSB7XHJcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAoJGZvcm0td3JhcC1pbmZvKXtcclxuICAgIEBpZiAoJGtleSA9PSBkZWZhdWx0X3ZhbHVlKSB7XHJcbiAgICAgICVkZWZhdWx0X3ZhbHVlIHtcclxuICAgICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbCB7XHJcbiAgICAgICAgICAjeyRrZXkyfTogI3skdmFsMn07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgLmZvcm0td3JhcC0jeyRrZXl9IHtcclxuICAgICAgICBAaWYgKG1hcC1oYXMta2V5KCRmb3JtLXdyYXAtaW5mbywgZGVmYXVsdF92YWx1ZSkpIHtcclxuICAgICAgICAgIEBleHRlbmQgJWRlZmF1bHRfdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAobWFwLWhhcy1rZXkoJHZhbCwgbWVkaWEpKSB7XHJcbiAgICAgICAgICAkbWVkaWE6IG1hcF9nZXQoJHZhbCwgbWVkaWEpO1xyXG4gICAgICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICRtZWRpYSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbigka2V5Mikge1xyXG4gICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDIpO1xyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICR2YWwge1xyXG4gICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCRrZXkzKTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gLyrthY3siqTtirgg67CV7IqkKi9cclxuQG1peGluIG1ha2UtZmllbGQtZGVmYXVsdCgpIHtcclxuICAlZmllbGQtYmFzZSB7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gIH1cclxuICBAZWFjaCAka2V5LCAkdmFsIGluICgkZ19maWVsZC1zdHlsZSkge1xyXG4gICAgLmZpZWxkLSN7JGtleX0gaW5wdXRbdHlwZT1cInRleHRcIl0sXHJcbiAgICAuZmllbGQtI3ska2V5fSBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXHJcbiAgICAuZmllbGQtI3ska2V5fSBpbnB1dFt0eXBlPVwidGVsXCJdLFxyXG4gICAgLmZpZWxkLSN7JGtleX0gaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxyXG4gICAgLmZpZWxkLSN7JGtleX0gc2VsZWN0LFxyXG4gICAgLmZpZWxkLSN7JGtleX0gdGV4dGFyZWF7XHJcbiAgICAgIEBleHRlbmQgJWZpZWxkLWJhc2U7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBtYXgtd2lkdGg6IG1hcC1nZXQoJHZhbCwgbWF4LXdpZHRoKTtcclxuICAgICAgaGVpZ2h0OiBtYXAtZ2V0KCR2YWwsIGlucHV0LWhlaWdodCk7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHZhbCwgbWFyZ2luLWJvdHRvbSk7XHJcbiAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHZhbCwgaW5wdXQtcGFkZGluZyk7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJHZhbCwgaW5wdXQtYmcpO1xyXG4gICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gbWFwLWdldCgkdmFsLCBib3JkZXItc3R5bGUpIHtcclxuICAgICAgICAjeyRrZXkyfTogI3skdmFsMn07XHJcbiAgICAgIH1cclxuICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCR2YWwsIGZvbnQtc2l6ZSk7XHJcbiAgICAgIGxldHRlci1zcGFjaW5nOiBtYXAtZ2V0KCR2YWwsIGxldHRlci1zcGFjaW5nKTtcclxuICAgICAgY29sb3I6IG1hcC1nZXQoJHZhbCwgZm9udC1jb2xvcik7XHJcbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkdmFsLCBmb2N1cy1zdHlsZSkge1xyXG4gICAgICAgICRmb2N1cy1zdHlsZTogbWFwLWdldCgkdmFsLCBmb2N1cy1zdHlsZSk7XHJcbiAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICRmb2N1cy1zdHlsZSB7XHJcbiAgICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgI3ska2V5M30gOiAjeyR2YWwzfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5maWVsZC0jeyRrZXl9IGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxyXG4gICAgLmZpZWxkLSN7JGtleX0gaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcclxuICAgIC5maWVsZC0jeyRrZXl9IGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcclxuICAgIC5maWVsZC0jeyRrZXl9IGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcclxuICAgIC5maWVsZC0jeyRrZXl9IHRleHRhcmVhe1xyXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XHJcbiAgICAgICAgY29sb3I6IG1hcC1nZXQoJHZhbCwgcGxhY2Vob2xkZXItY29sb3IpO1xyXG4gICAgICB9XHJcbiAgICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICAgICAgICBjb2xvcjogbWFwLWdldCgkdmFsLCBwbGFjZWhvbGRlci1jb2xvcik7XHJcbiAgICAgIH1cclxuICAgICAgJjo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICAgICAgICBjb2xvcjogbWFwLWdldCgkdmFsLCBwbGFjZWhvbGRlci1jb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZmllbGQtI3ska2V5fS5uby11bmRlcmxpbmUge1xyXG4gICAgICBib3JkZXItYm90dG9tOiB0cmFuc3BhcmVudDtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIG1ha2UtdGV4dC1hcmVhKCRrZXkpO1xyXG4gICAgQGluY2x1ZGUgbWFrZS1zZWxlY3Rib3goJGtleSk7XHJcblxyXG4gIH1cclxufVxyXG5AbWl4aW4gbWFrZS10ZXh0LWFyZWEoJHN0eWxlKSB7XHJcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAoJGdfdGV4dC1hcmVhLXN0eWxlKSB7XHJcbiAgICBAaWYgKCRzdHlsZSA9PSAka2V5KSB7XHJcbiAgICAgIC5maWVsZC0jeyRzdHlsZX0gdGV4dGFyZWF7XHJcbiAgICAgICAgaGVpZ2h0OiBtYXAtZ2V0KCR2YWwsIHRleHQtYXJlYS1oZWlnaHQpO1xyXG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHZhbCwgdGV4dC1hcmVhLXBhZGRpbmcpO1xyXG4gICAgICAgIHJlc2l6ZTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gLyrshYDroIntirgg67CV7IqkKi9cclxuQG1peGluIG1ha2Utc2VsZWN0Ym94KCRzdHlsZSkge1xyXG4gIEBlYWNoICRrZXksICR2YWwgaW4gKCRnX3NlbGVjdC1zdHlsZSkge1xyXG4gICAgQGlmICgkc3R5bGUgPT0gJGtleSkge1xyXG4gICAgICAuZmllbGQtI3skc3R5bGV9IHNlbGVjdHtcclxuICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCR2YWwpO1xyXG4gICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBpbml0aWFsO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyAvKuydtOuvuOyngCDssrTtgawgJiDrnbzrlJTsmKQqL1xyXG5AbWl4aW4gbWFrZS1jaGVja2JveC1pbWcoICRjaGVjay1ib3gtaW5mbzogJGdfY2hlY2stYm94LWltZyApIHtcclxuICBAZWFjaCAka2V5LCAkdmFsIGluICgkY2hlY2stYm94LWluZm8pIHtcclxuICAgIC5ja2J4LSN7JGtleX17XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCR2YWwsIG1hcmdpbi1yaWdodCk7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgLmN1c3RvbS1jaGVja2VkIHtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB3aWR0aDogbWFwLWdldCgkdmFsLCB3aWR0aCk7XHJcbiAgICAgICAgaGVpZ2h0OiBtYXAtZ2V0KCR2YWwsIGhlaWdodCk7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCR2YWwsIGJveC1tYXJnaW4tcmlnaHQpO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG1hcC1nZXQoJHZhbCwgYm94LWltZyk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblxyXG4gICAgICB9XHJcbiAgICAgIC50ZXh0IHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCR2YWwsIGZvbnQtc2l6ZSk7XHJcbiAgICAgIH1cclxuICAgICAgaW5wdXQge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgJlt0eXBlPXJhZGlvXTpjaGVja2VkIH4gLmN1c3RvbS1jaGVja2VkLFxyXG4gICAgICAgICZbdHlwZT1jaGVja2JveF06Y2hlY2tlZCB+IC5jdXN0b20tY2hlY2tlZCB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBtYXAtZ2V0KCR2YWwsIGJveC1pbWctb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgfVxyXG4gICAgICAmLmRpc2FibGVkIHtcclxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICBjb2xvcjogI2VlZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4vLyAvKu2DnOq3uCDssrTtgawmIOudvOuUlOyYpCovXHJcbkBtaXhpbiBtYWtlLWNoZWNrYm94LXRhZyggJGNoZWNrLWJveC1pbmZvOiAkZ19jaGVjay1ib3gtdGFnICkge1xyXG4gIEBlYWNoICRrZXksICR2YWwgaW4gKCRjaGVjay1ib3gtaW5mbykge1xyXG4gICAgLy/rs4DsiJhcclxuICAgICR3aWR0aDogbWFwLWdldCgkdmFsLCB3aWR0aCk7XHJcbiAgICAkaGVpZ2h0OiBtYXAtZ2V0KCR2YWwsIGhlaWdodCk7XHJcbiAgICAkYm94LW1hcmdpbi1yaWdodDogMDtcclxuICAgICRjaGVjay13aWR0aDogJHdpZHRoIC8gMjtcclxuICAgICRjaGVjay1oZWlnaHQ6ICRoZWlnaHQgLyAyO1xyXG5cclxuICAgIC8v7ZW064u56rCS7J20IOyeiOuKlOyngCDssrTtgaxcclxuICAgIEBpZiBtYXAtaGFzLWtleSgkdmFsLCBib3gtbWFyZ2luLXJpZ2h0KSB7XHJcbiAgICAgICRib3gtbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCR2YWwsIGJveC1tYXJnaW4tcmlnaHQpXHJcbiAgICB9XHJcbiAgICBAaWYgbWFwLWhhcy1rZXkoJHZhbCwgY2hlY2tlZC13aWR0aCkge1xyXG4gICAgICAkY2hlY2std2lkdGg6IG1hcC1nZXQoJHZhbCwgY2hlY2tlZC13aWR0aClcclxuICAgIH1cclxuICAgIEBpZiBtYXAtaGFzLWtleSgkdmFsLCBjaGVja2VkLWhlaWdodCkge1xyXG4gICAgICAkY2hlY2staGVpZ2h0OiBtYXAtZ2V0KCR2YWwsIGNoZWNrZWQtaGVpZ2h0KVxyXG4gICAgfVxyXG4gICAgLmNrYngtI3ska2V5fXtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHZhbCwgbWFyZ2luLXJpZ2h0KTtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBtaW4td2lkdGg6ICR3aWR0aDtcclxuICAgICAgbWluLWhlaWdodDogJGhlaWdodDtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgd2lkdGg6ICR3aWR0aDtcclxuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkdmFsLCBib3gtYmcpO1xyXG4gICAgICAgIGJvcmRlcjogbWFwLWdldCgkdmFsLCBib3gtb3V0bGluZSk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogbWFwLWdldCgkdmFsLCBib3gtcmFkaXVzKTtcclxuICAgICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoLTUwJSksIHdlYmtpdCk7XHJcbiAgICAgIH1cclxuICAgICAgPiAqIHtcclxuICAgICAgICAvLyB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7IOqyjOyLnO2MkCDquIDsk7DquLAg67mE67CA6riA7JeQ7IScIOq5qOyguOyEnCDsmrDshKAg7KO87ISd7LKY66asXHJcbiAgICAgIH1cclxuICAgICAgLnRleHQge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHZhbCwgZm9udC1zaXplKSA7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkYm94LW1hcmdpbi1yaWdodCArICR3aWR0aDtcclxuICAgICAgfVxyXG4gICAgICBpbnB1dCB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAmW3R5cGU9cmFkaW9dOmNoZWNrZWQgfiAuY3VzdG9tLWNoZWNrZWQsXHJcbiAgICAgICAgJlt0eXBlPWNoZWNrYm94XTpjaGVja2VkIH4gLmN1c3RvbS1jaGVja2VkIHtcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgbGVmdDogKCR3aWR0aCAtICRjaGVjay13aWR0aCkgLyAyIDtcclxuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICB3aWR0aDogJGNoZWNrLXdpZHRoO1xyXG4gICAgICAgICAgaGVpZ2h0OiAkY2hlY2staGVpZ2h0O1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkdmFsLCBjaGVja2VkLWNvbG9yKTtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IG1hcC1nZXQoJHZhbCwgYm94LXJhZGl1cyk7XHJcbiAgICAgICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoLTUwJSksIHdlYmtpdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICB9XHJcbiAgICAgICYuZGlzYWJsZWR7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgY29sb3I6ICNlZWU7XHJcbiAgICAgICAgbGFiZWw6YmVmb3Jle1xyXG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZWVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAmLmNpcmNsZTpiZWZvcmUge1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgfVxyXG4gICAgICAmLmNpcmNsZSBpbnB1dCB7XHJcbiAgICAgICAgJlt0eXBlPXJhZGlvXTpjaGVja2VkIH4gLmN1c3RvbS1jaGVja2VkLFxyXG4gICAgICAgICZbdHlwZT1jaGVja2JveF06Y2hlY2tlZCB+IC5jdXN0b20tY2hlY2tlZCB7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiLy9ycC10YWJsZVxyXG5AbWl4aW4gbWFrZS1ycC10YWJsZSgkcnAtdGFibGUtaW5mbykge1xyXG4gIEBlYWNoICRrZXksICR2YWwgaW4gKCRycC10YWJsZS1pbmZvKXtcclxuICAgIEBpZiAoJGtleSA9PSBkZWZhdWx0X3ZhbHVlKSB7XHJcbiAgICAgICVkZWZhdWx0X3ZhbHVlIHtcclxuICAgICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbCB7XHJcbiAgICAgICAgICAjeyRrZXkyfTogI3skdmFsMn07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgLnJwLXRhYmxlLSN7JGtleX0ge1xyXG4gICAgICAgIEBpZiAobWFwLWhhcy1rZXkoJHZhbCwgbWVkaWEpKSB7XHJcbiAgICAgICAgICAkbWVkaWE6IG1hcF9nZXQoJHZhbCwgbWVkaWEpO1xyXG4gICAgICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICRtZWRpYSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbigka2V5Mikge1xyXG4gICAgICAgICAgICAgICRjb2RlczogbWFrZU1hcFRvQ29kZXMoJHZhbDIpO1xyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIHByaW50Q29kZXMoJGNvZGVzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICR2YWwge1xyXG4gICAgICAgICAgICAkY29kZXM6IG1ha2VNYXBUb0NvZGVzKCRrZXkzKTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgcHJpbnRDb2RlcygkY29kZXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiIsIi8vLyogdGFiICovXHJcbkBtaXhpbiB0YWItaXRlbXMoJHRhYi1ncm91cCkge1xyXG4gICAgLnRhYi13cmFwIHtcclxuICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcclxuICAgICAgICAmIC50YWItbGlzdCB7XHJcbiAgICAgICAgICAgIC8vZmxvYXQ6bWFwLWdldCgkdGFiLWdyb3VwLCBmbG9hdCk7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6bWFwLWdldCgkdGFiLWdyb3VwLCBkaXNwbGF5KTtcclxuICAgICAgICAgICAgd2lkdGg6IG1hcC1nZXQoJHRhYi1ncm91cCwgd2lkdGgpO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCR0YWItZ3JvdXAsIHBhZGRpbmcpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOm1hcC1nZXQoJHRhYi1ncm91cCwgdGhlbWUtY29sb3IpO1xyXG4gICAgICAgICAgICBmb250LXNpemU6bWFwLWdldCgkdGFiLWdyb3VwLCBmb250LXNpemUpO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDptYXAtZ2V0KCR0YWItZ3JvdXAsIGZvbnQtd2VpZ2h0KTtcclxuICAgICAgICAgICAgY29sb3I6bWFwLWdldCgkdGFiLWdyb3VwLCBmb250LWNvbG9yKTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjptYXAtZ2V0KCR0YWItZ3JvdXAsIHRleHQtYWxpZ24pO1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzptYXAtZ2V0KCR0YWItZ3JvdXAsIGxldHRlci1zcGFjaW5nKTtcclxuXHJcbiAgICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkdGFiLWdyb3VwLCBtZWRpYSkge1xyXG4gICAgICAgICAgICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluIG1hcF9nZXQoJHRhYi1ncm91cCwgbWVkaWEpIHtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4oJGtleTIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwye1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI3ska2V5Mn06ICN7JHZhbDJ9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAobWFwLWdldCgkdGFiLWdyb3VwLCBzdWItY2xhc3NpbmcpKXtcclxuICAgICAgICAgICAgJi4jeyRrZXl9IC50YWItbGlzdHtcclxuICAgICAgICAgICAgICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAkdmFsdWV7XHJcbiAgICAgICAgICAgICAgICAgICAgI3ska2V5Mn06ICN7JHZhbDJ9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmIC50YWItbGlzdC5vbiB7XHJcbiAgICAgICAgICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAobWFwLWdldCgkdGFiLWdyb3VwLGFjdGl2ZSkpe1xyXG4gICAgICAgICAgICAgICAgI3ska2V5Mn06ICN7JHZhbDJ9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkZ190YWItZ3JvdXAsZmxvYXQpe1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn0iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsQUFBQSxrQkFBa0IsQ0FBQTtFQUNoQixjQUFjLEVBQUMsSUFBSTtDQUlwQjs7QUdPSyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0VIWnpDLEFBQUEsa0JBQWtCLENBQUE7SUFHZCxjQUFjLEVBQUMsSUFBSTtHQUV0Qjs7O0FBRUQsQUFDRSxhQURXLENBQ1gsVUFBVSxDQUFBO0VBQ1IsT0FBTyxFQUFDLE1BQU07Q0FpQ2Y7O0FBbkNILEFBR0ksYUFIUyxDQUNYLFVBQVUsQ0FFUixFQUFFLENBQUE7RUFDQSxLQUFLLEVBQUMsVUFBVTtFQUNoQixLQUFLLEVBQUMsSUFBSTtFQUNWLFlBQVksRUFBQyxjQUFjO0VBQzNCLFVBQVUsRUFBRSxNQUFNO0NBMkJuQjs7QUFsQ0wsQUFRTSxhQVJPLENBQ1gsVUFBVSxDQUVSLEVBQUUsQUFLQyxXQUFXLENBQUE7RUFDVixNQUFNLEVBQUMsSUFBSTtDQUNaOztBQVZQLEFBV00sYUFYTyxDQUNYLFVBQVUsQ0FFUixFQUFFLENBUUEsRUFBRSxDQUFBO0VBQ0EsV0FBVyxFQUFDLElBQUk7RUFDaEIsVUFBVSxFQUFDLElBQUk7RUFDZixpQkFBaUIsRUFBRSxTQUFTO0VBQzVCLG1CQUFtQixFQUFFLE9BQU87RUFDNUIsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsR0FBRztDQVdqQjs7QUE1QlAsQUFrQlEsYUFsQkssQ0FDWCxVQUFVLENBRVIsRUFBRSxDQVFBLEVBQUUsQ0FPQSxJQUFJLENBQUE7RUFDRixPQUFPLEVBQUUsWUFBWTtFQUNyQixXQUFXLEVBQUMsS0FBSztFQUNqQixhQUFhLEVBQUMsSUFBSTtFQUNsQixXQUFXLEVBQUMsQ0FBQztFQUNiLFNBQVMsRUFBRSxJQUFJO0VBQ2YsY0FBYyxFQUFFLE1BQU07RUFDdEIsS0FBSyxFQUFFLE9BQU87RUFDZCxjQUFjLEVBQUUsV0FBVztDQUM1Qjs7QUEzQlQsQUE2Qk0sYUE3Qk8sQ0FDWCxVQUFVLENBRVIsRUFBRSxDQTBCQSxFQUFFLENBQUE7RUFDQSxVQUFVLEVBQUMsR0FBRztFQUNkLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLFNBQVMsRUFBRSxJQUFJO0NBQ2hCOztBQWpDUCxBQW9DRSxhQXBDVyxDQW9DWCxVQUFVLENBQUE7RUFDUixnQkFBZ0IsRUFBRSxPQUFPO0VBQ3pCLFVBQVUsRUFBQyxJQUFJO0VBQ2YsT0FBTyxFQUFDLFNBQVM7Q0FzQmxCOztBQTdESCxBQXdDSSxhQXhDUyxDQW9DWCxVQUFVLENBSVIsRUFBRSxDQUFBO0VBQ0EsUUFBUSxFQUFFLFFBQVE7RUFDbEIsV0FBVyxFQUFFLElBQUk7RUFDakIsVUFBVSxFQUFDLElBQUk7RUFDZixZQUFZLEVBQUMsSUFBSTtFQUNqQixTQUFTLEVBQUUsSUFBSTtFQUNmLEtBQUssRUFBRSxJQUFJO0NBY1o7O0FBNURMLEFBK0NNLGFBL0NPLENBb0NYLFVBQVUsQ0FJUixFQUFFLEFBT0MsWUFBWSxDQUFBO0VBQ1gsTUFBTSxFQUFDLENBQUM7Q0FDVDs7QUFqRFAsQUFrRE0sYUFsRE8sQ0FvQ1gsVUFBVSxDQUlSLEVBQUUsQUFVQyxPQUFPLENBQUE7RUFDTixPQUFPLEVBQUMsRUFBRTtFQUNWLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBQyxHQUFHO0VBQ1AsSUFBSSxFQUFDLENBQUM7RUFDTixLQUFLLEVBQUMsR0FBRztFQUNULE1BQU0sRUFBQyxHQUFHO0VBQ1YsYUFBYSxFQUFDLEdBQUc7RUFDakIsZ0JBQWdCLEVDL0RILE9BQU87Q0RnRXJCIn0= */
