@charset "UTF-8";
/*=================================================
    컬러
=================================================*/
/*=================================================
    폰트
=================================================*/
/*=================================================
    미디어쿼리
=================================================*/
/*=================================================
    레이아웃
=================================================*/
/*=================================================
    컴포넌트
=================================================*/
.img {
  display: block;
  width: 100%;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0L3BhZ2UvbWVudV9pbmZvL2luZm8uY3NzIiwic291cmNlcyI6WyJsYXlvdXQvcGFnZS9tZW51X2luZm8vaW5mby5zY3NzIiwicmVzL3Njc3MvX192YXJpYWJsZXMuc2NzcyIsInJlcy9zY3NzL19fbWl4aW5zLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX21lZGlhLXF1ZXJ5LnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX21hcC5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19jbGVhci5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19mbG9hdC5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19ob3Zlci5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19zY3JlZW5yZWFkZXIuc2NzcyIsInJlcy9zY3NzL21peGlucy9fcmVzZXQtdGV4dC5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19wcmVmaXhlci5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19wbGFjZWhvbGRlci5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19kaXZpc2lvbi5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19ib3JkZXItcmFkaXVzLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX2NhbGN2dy5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19lbGxpcHNpcy5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19rZXlmcmFtZS5zY3NzIiwicmVzL3Njc3MvbWl4aW5zL19hcmVhLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX2dyaWQuc2NzcyIsInJlcy9zY3NzL21peGlucy9fZ3V0dGVyLnNjc3MiLCJyZXMvc2Nzcy9taXhpbnMvX3RyaWFuZ2xlLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29yZSB2YXJpYWJsZXNcclxuQGltcG9ydCBcInJlcy9zY3NzL19fdmFyaWFibGVzLnNjc3NcIjtcclxuQGltcG9ydCBcInJlcy9zY3NzL19fbWl4aW5zLnNjc3NcIjtcclxuXHJcbi5pbWd7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn0iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgIOy7rOufrFxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuJGF6dXJlOiAjMDBhZGVmO1xyXG4kd2hpdGU6IHJnYmEoMjU1LDI1MjUsMjU1LDAuOSk7XHJcbiRnX3BvaW50LXRoZW1lLWNvbG9yOiAkYXp1cmU7XHJcbiRnX3BvaW50LWZvbnQtY29sb3I6ICRnX3BvaW50LXRoZW1lLWNvbG9yO1xyXG5cclxuJGdfYm9yZGVyLWNvbG9yIDogcmdiKDMsIDMsIDMpO1xyXG4kZ19wbGFjZWhvbGRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xyXG4kZ19mb3JtLWludmFsaWQtY29sb3IgOiAjZmYwMDBhO1xyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICDtj7DtirhcclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcbiRnX2ZvbnQtZmFtaWx5OiAoXHJcbiAgc3lzdGVtOiAnIFwi66eR7J2AIOqzoOuUlVwiLCBcIk1hbGd1biBHb3RoaWNcIiwgXCLslaDtlIwgU0Qg7IKw64+M6rOg65SVIE5lb1wiLCBcIkFwcGxlIFNEIEdvdGhpYyBOZW9cIiwgc2Fucy1zZXJpZiAnLFxyXG4gIG5vdG86ICdcIk5vdG8gU2FucyBDSktLUlwiLCBzYW5zLXNlcmlmJyxcclxuICBNQkNvcnBvQTogJ1wiTUJDb3Jwb0FcIixcIk5vdG8gU2FucyBDSktLUlwiLCBzYW5zLXNlcmlmJyxcclxuICBNQkNvcnBvUzogJ1wiTUJDb3Jwb1NcIixcIk5vdG8gU2FucyBDSktLUlwiLCBzYW5zLXNlcmlmJ1xyXG4pO1xyXG5cclxuJGZvbnQtc3lzdGVtOiAje21hcC1nZXQoJGdfZm9udC1mYW1pbHksIHN5c3RlbSl9O1xyXG4kZm9udC1ub3RvOiAje21hcC1nZXQoJGdfZm9udC1mYW1pbHksIG5vdG8pfTtcclxuJGZvbnQtTUJDb3Jwb0E6ICN7bWFwLWdldCgkZ19mb250LWZhbWlseSwgTUJDb3Jwb0EpfTtcclxuJGZvbnQtTUJDb3Jwb1M6ICN7bWFwLWdldCgkZ19mb250LWZhbWlseSwgTUJDb3Jwb1MpfTtcclxuXHJcbi8vIGRlZmF1bHQgZm9udCDshKTsoJVcclxuJGZvbnQtMzAwIDogJGZvbnQtTUJDb3Jwb1M7XHJcbiRmb250LTQwMCA6ICRmb250LU1CQ29ycG9TO1xyXG4kZm9udC01MDAgOiAkZm9udC1NQkNvcnBvUztcclxuJGZvbnQtNzAwIDogJGZvbnQtTUJDb3Jwb1M7XHJcbiRmb250LTgwMCA6ICRmb250LU1CQ29ycG9TO1xyXG5cclxuLy8gZm9udC1zaXplXHJcbiRnX2ZvbnQtc2l6ZTooXHJcbiAgeHM6IDEwcHgsXHJcbiAgc206IDEycHgsXHJcbiAgbWQ6IDE1cHgsXHJcbiAgbGc6IDE4cHgsXHJcbiAgeGw6IDI0cHgsXHJcbik7XHJcblxyXG4vLyBmb250LXdlaWdodFxyXG4kZ19mb250LXdlaWdodHM6IDEwMCwgMjAwLCAzMDAsIDQwMCwgNTAwLCA2MDAsIDcwMCwgODAwLCA5MDA7XHJcblxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICDrr7jrlJTslrTsv7zrpqxcclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcbiRnX21lZGlhLWJyZWFrcG9pbnRzOiAoXHJcbiAgeHM6IDAsXHJcbiAgc206IDU0NHB4LFxyXG4gIG1kOiA3NjhweCxcclxuICBsZzogOTkycHgsXHJcbiAgeGw6IDEyMDBweCxcclxuICB4eGw6IDE1MDBweCxcclxuICBmdWxsOiAxOTIwcHhcclxuKTtcclxuXHJcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICAg66CI7J207JWE7JuDXHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xyXG4vLyBhcmVhXHJcbiRnX21heC13aWR0aDogMTUxNnB4OyAvLyDquLDrs7ggYXJlYVxyXG4kZ19ndXR0ZXItd2lkdGg6IDIwcHg7XHJcbiRnX2d1dHRlci13aWR0aC1tZDogNjBweDtcclxuXHJcbiRnX2FyZWFfaW5mbzogKFxyXG4gIGRlZmF1bHQ6IChcclxuICAgIG1heC13aWR0aDogJGdfbWF4LXdpZHRoICsgJGdfZ3V0dGVyLXdpZHRoKjIsXHJcbiAgICBndXR0ZXItd2lkdGg6ICRnX2d1dHRlci13aWR0aCxcclxuICAgIG1lZGlhIDogKFxyXG4gICAgICBtZCA6IChcclxuICAgICAgICBtYXgtd2lkdGg6ICRnX21heC13aWR0aCArICRnX2d1dHRlci13aWR0aC1tZCoyLFxyXG4gICAgICAgIGd1dHRlci13aWR0aDogJGdfZ3V0dGVyLXdpZHRoLW1kLFxyXG4gICAgICApXHJcbiAgICApXHJcbiAgKSxcclxuICBmdWxsOiAoXHJcbiAgICBtYXgtd2lkdGg6IDE5MjBweCxcclxuICAgIGd1dHRlci13aWR0aDogJGdfZ3V0dGVyLXdpZHRoLFxyXG4gICAgbWVkaWEgOiAoXHJcbiAgICAgIG1kIDogKFxyXG4gICAgICAgIG1heC13aWR0aDogMTkyMHB4LFxyXG4gICAgICAgIGd1dHRlci13aWR0aDogJGdfZ3V0dGVyLXdpZHRoLW1kLFxyXG4gICAgICApXHJcbiAgICApXHJcbiAgKSxcclxuICBub2d1dHRlciA6IChcclxuICAgIG1heC13aWR0aDogJGdfbWF4LXdpZHRoLFxyXG4gIClcclxuKTtcclxuXHJcbi8vIGdyaWRcclxuJGdfZ3V0dGVyLXNpemVyIDogKFxyXG4gIHBlcmNlbnQgOiAoIC8vLmd1dHRlci1wZXItMVxyXG4gICAgMSA6IDElLFxyXG4gICksXHJcbiAgcGl4ZWwgOiAoIC8vLmd1dHRlci0xMFxyXG4gICAgMiA6IDJweCxcclxuICAgIDMgOiAzcHgsXHJcbiAgICA1IDogNXB4LFxyXG4gICAgNyA6IDdweCxcclxuICAgIDggOiA4cHgsXHJcbiAgICAxMCA6IDEwcHgsXHJcbiAgICAxMiA6IDEycHgsXHJcbiAgICAxNCA6IDE0cHgsXHJcbiAgICAxNSA6IDE1cHgsXHJcbiAgICAxOCA6IDE4cHgsXHJcbiAgICAyMCA6IDIwcHgsXHJcbiAgICAzMCA6IDMwcHgsXHJcbiAgKSxcclxuKTtcclxuXHJcbiRnX2dyaWQtY29sLXNldDogKFxyXG4gIGRlZmF1bHQgOiAxMiwgLy8uY29sLTEyXHJcbiAgdGVuLTogMTAsIC8vLmZpdmUtY29sLTVcclxuICBmaXZlLTogNSwgLy8uZml2ZS1jb2wtNVxyXG4pO1xyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICDsu7Ttj6zrhIztirhcclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcbi8vIGVsbGlwc2lzLCDrp5DspITsnoTtkZxcclxuJGdfZWxsLXNldDogKFxyXG4gIG5vbmU6IG5vbmUsIC8vIC5lbGwtbm9uZVxyXG4gIDEgOiAxLCAvLyAuZWxsLTFcclxuICAyIDogMixcclxuICAzIDogMyxcclxuICA0IDogNCxcclxuICA1IDogNSxcclxuKVxyXG4iLCIvLyBUb2dnbGVzXHJcbi8vXHJcbi8vIFVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBnbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBjZXJ0YWluIHRoZW1lIGZlYXR1cmVzLlxyXG5cclxuQGltcG9ydCBcIm1peGlucy9fbWVkaWEtcXVlcnlcIjtcclxuQGltcG9ydCBcIm1peGlucy9fbWFwXCI7XHJcblxyXG4vLyBVdGlsaXRpZXNcclxuLy9AaW1wb3J0IFwibWl4aW5zL2JyZWFrcG9pbnRzXCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX2NsZWFyXCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX2Zsb2F0XCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX2hvdmVyXCI7XHJcbi8vQGltcG9ydCBcIm1peGlucy9pbWFnZVwiO1xyXG4vL0BpbXBvcnQgXCJtaXhpbnMvYmFkZ2VcIjtcclxuLy9AaW1wb3J0IFwibWl4aW5zL3Jlc2l6ZVwiO1xyXG5AaW1wb3J0IFwibWl4aW5zL19zY3JlZW5yZWFkZXJcIjtcclxuLy9AaW1wb3J0IFwibWl4aW5zL3NpemVcIjtcclxuQGltcG9ydCBcIm1peGlucy9fcmVzZXQtdGV4dFwiO1xyXG5AaW1wb3J0IFwibWl4aW5zL19wcmVmaXhlclwiO1xyXG5AaW1wb3J0IFwibWl4aW5zL19wbGFjZWhvbGRlclwiO1xyXG5AaW1wb3J0IFwibWl4aW5zL19kaXZpc2lvblwiO1xyXG4vL0BpbXBvcnQgXCJtaXhpbnMvdGV4dC1lbXBoYXNpc1wiO1xyXG4vL0BpbXBvcnQgXCJtaXhpbnMvdGV4dC1oaWRlXCI7XHJcbi8vQGltcG9ydCBcIm1peGlucy90ZXh0LXRydW5jYXRlXCI7XHJcbi8vQGltcG9ydCBcIm1peGlucy90cmFuc2Zvcm1zXCI7XHJcbi8vQGltcG9ydCBcIm1peGlucy92aXNpYmlsaXR5XCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX2JvcmRlci1yYWRpdXNcIjtcclxuQGltcG9ydCBcIm1peGlucy9fY2FsY3Z3XCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX2VsbGlwc2lzXCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX2tleWZyYW1lXCI7XHJcblxyXG4vLyAvLyBMYXlvdXRcclxuLy8gQGltcG9ydCBcIm1peGlucy9uYXZiYXItYWxpZ25cIjtcclxuLy9AaW1wb3J0IFwibWl4aW5zL2dyaWQtZnJhbWV3b3JrXCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX2FyZWFcIjtcclxuQGltcG9ydCBcIm1peGlucy9fZ3JpZFwiO1xyXG5AaW1wb3J0IFwibWl4aW5zL19ndXR0ZXJcIjtcclxuXHJcbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS8vL1xyXG5cclxuXHJcbi8vIC8vIENvbXBvbmVudHNcclxuLy9AaW1wb3J0IFwibWl4aW5zL2FsZXJ0XCI7XHJcbkBpbXBvcnQgXCJtaXhpbnMvX3RyaWFuZ2xlXCI7XHJcbi8vQGltcG9ydCBcIm1peGlucy9saXN0c1wiO1xyXG4vL0BpbXBvcnQgXCJtaXhpbnMvbGlzdC1ncm91cFwiO1xyXG4vL0BpbXBvcnQgXCJtaXhpbnMvbmF2LWRpdmlkZXJcIjtcclxuLy9AaW1wb3J0IFwibWl4aW5zL3RhYmxlLXJvd1wiO1xyXG5cclxuIiwiLy8gbWVkaWEtcXVlcnktbWluIOuvueyKpOyduFxyXG4vLyBb66ek6rCc67OA7IiYXVxyXG4vLyAkYnJlYWtwb2ludCDquLDrs7jqsJI6IOyXhuydjFxyXG4vLyAkYnJlYWtwb2ludCDsl5Ag6rCA7Jqp6rCA64ql7ZWcIOqwklxyXG4vLyAoMSkgJG1lZGlhLWJyZWFrcG9pbnRzIOydmCDtgqQg6rCSICh4cywgc20sIG1kLCBsZywgeGwgKeykkSDtlZjrgphcclxuLy8gKDIpIOqzoOyglSBweOqwklxyXG4vLyAkYnJlYWtwb2ludCDsoITri6zrkJwg6rCS7JeQIOuUsOudvOyEnCBAbWVkaWEobWluLXdpZHRoOiBcIuunpOqwnOuzgOyImOyXkCDtlbTri7ntlZjripQg6rCSXCIpIOyFi+2Mhe2VtOykjeuLiOuLpC5cclxuLy8gJGJyZWFrcG9pbnQg6rCS7J2EIO2UveyFgOuhnCDrhKPripTri6TrqbQg7ZW064u5IO2UveyFgOqwkuydmCDrr7jrlJTslrTsv7zrpqzrpbwg66eM65Ok7Ja0IOykjeuLiOuLpC5cclxuLy8gZXgpIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbihsZykgeyBAY29udGVudCB9XHJcbi8vIGV4KSBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4oNTAwcHgpIHsgQGNvbnRlbnQgfVxyXG5AbWl4aW4gbWVkaWEtcXVlcnktbWluKCAkYnJlYWtwb2ludCApIHtcclxuICBAaWYgbWFwX2hhc19rZXkoICRnX21lZGlhLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCApe1xyXG4gICAgQGlmICAkYnJlYWtwb2ludCA9PSBcInhzXCIge1xyXG4gICAgICBAY29udGVudFxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBtYXBfZ2V0KCRnX21lZGlhLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIHtcclxuICAgICAgICBAY29udGVudFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmIHVuaXQoJGJyZWFrcG9pbnQpID09IFwicHhcIiB7XHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtwb2ludCl7ICBAY29udGVudCAgfVxyXG4gIH1cclxufVxyXG5AbWl4aW4gbWVkaWEtcXVlcnktbWF4KCAkYnJlYWtwb2ludCApIHtcclxuICBAaWYgbWFwX2hhc19rZXkoICRnX21lZGlhLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCApe1xyXG4gICAgQGlmICAkYnJlYWtwb2ludCA9PSBcInhzXCIge1xyXG4gICAgICBAY29udGVudFxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAobWFwX2dldCgkZ19tZWRpYS1icmVha3BvaW50cywgJGJyZWFrcG9pbnQpKS0wLjAycHgpIHtcclxuICAgICAgICBAY29udGVudFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmIHVuaXQoJGJyZWFrcG9pbnQpID09IFwicHhcIiB7XHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtwb2ludCl7ICBAY29udGVudCAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIG1lZGlhLXF1ZXJ5LW1pbi12YWwg7ZWo7IiYXHJcbi8vIOyghOyXreuzgOyImCAkbWVkaWEtYnJlYWtwb2ludHMgbWFw7J2YIHZhbHVl66W8IOuwmO2ZmO2VtCDspI3ri4jri6QuXHJcbi8vIOyjvOuhnCBlYWNoIOusuOqzvCDqsJnsnYAgbG9vcCDrrLjsl5DshJwg7Zmc7Jqp65Cp64uI64ukLlxyXG4vLyBleClcclxuLy8gQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwX2tleXMoJG1lZGlhLWJyZWFrcG9pbnRzKSB7XHJcbi8vICAgJHBvaW50OiBtZWRpYS1xdWVyeS1taW4tdmFsKCRicmVha3BvaW50KTtcclxuLy8gICBAbWVkaWEgKCBtaW4td2lkdGg6ICN7JHBvaW50fSApe1xyXG4vLyAgICAgLiN7JGJyZWFrcG9pbnR9LWYtbCB7IEBpbmNsdWRlIGZsb2F0LWxlZnQgfVxyXG4vLyAgICAgLiN7JGJyZWFrcG9pbnR9LWYtciB7IEBpbmNsdWRlIGZsb2F0LXJpZ2h0IH1cclxuLy8gICAgIC4jeyRicmVha3BvaW50fS1mLW4geyBAaW5jbHVkZSBmbG9hdC1ub25lIH1cclxuLy8gICB9XHJcbi8vIH1cclxuQGZ1bmN0aW9uIG1lZGlhLXF1ZXJ5LW1pbi12YWwoICRicmVha3BvaW50ICl7XHJcbiAgQHJldHVybiBtYXBfZ2V0KCRnX21lZGlhLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCk7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuIiwiQGZ1bmN0aW9uIG1hcC1zZXQoJG1hcCwgJGtleSwgJHZhbHVlKSB7XHJcbiAgJG5ldzogKCRrZXk6ICR2YWx1ZSk7XHJcbiAgQHJldHVybiBtYXAtbWVyZ2UoJG1hcCwgJG5ldyk7XHJcbn1cclxuXHJcblxyXG4vL3ByZWZpeCDsoJzqsbBcclxuLy/tg5zqt7jsnbTrpoQsIOyGjeyEsSwg7JWE7J2065SUIOuTsSAg7IWA66CJ7YSwIOqwgOuKpeuPhOuhnVxyXG5AZnVuY3Rpb24gbWFrZU1hcFRvQ29kZXMoJG1hcCwgJHByZWZpeDogXCJcIiwgJHNlbGY6IGZhbHNlKSB7XHJcbiAgJGNvZGVzIDogKCk7XHJcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkbWFwIHtcclxuICAgIEBpZiAoIHR5cGUtb2YoJHZhbCkgPT0gbWFwICkge1xyXG5cclxuICAgICAgQGlmICgka2V5ID09IFwiJlwiKSB7XHJcbiAgICAgICAgJG1ha2U6IG1ha2VNYXBUb0NvZGVzKCR2YWwsIFwiXCIsIHRydWUpO1xyXG4gICAgICAgICRjb2RlczogbWFwLW1lcmdlKCRjb2RlcywgJG1ha2UpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkc2VsZWN0b3I6IFwiLiN7JHByZWZpeH0jeyRrZXl9XCI7XHJcblxyXG4gICAgICAgIEBpZiAoJHNlbGYpIHtcclxuICAgICAgICAgICRzZWxlY3RvciA6IFwiJiN7JHByZWZpeH0jeyRrZXl9XCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICRtYWtlOiBtYWtlTWFwVG9Db2RlcygkdmFsLCAkcHJlZml4KTtcclxuICAgICAgICAkY29kZXM6IG1hcC1zZXQoJGNvZGVzLCAkc2VsZWN0b3IsICRtYWtlKTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkY29kZXM6IG1hcC1zZXQoJGNvZGVzLCAka2V5LCAkdmFsKTtcclxuICAgIH1cclxuICB9XHJcbiAgQHJldHVybiAkY29kZXM7XHJcbn07XHJcblxyXG5cclxuQG1peGluIHByaW50Q29kZXMoJG1hcCkge1xyXG5cclxuICBAZWFjaCAka2V5LCAkdmFsIGluICRtYXAge1xyXG4gICBcclxuICAgIEBpZiAoIHR5cGUtb2YoJHZhbCkgPT0gbWFwICkge1xyXG4gICAgICAjeyRrZXl9IHtcclxuICAgICAgICBAaW5jbHVkZSBwcmludENvZGVzKCR2YWwpO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgI3ska2V5fSA6ICN7JHZhbH07XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcbn1cclxuXHJcbi8vIGlzTWFwIO2VqOyImFxyXG4vLyAje2tleX0gOiAje3ZhbHVlfeydmCDtmJXtg5zrpbwg66as7YS07ZW07KO864qUIO2VqOyImFxyXG4vLyBpc01hcCgkdmFsLCAka2V5KTtcclxuLy8gaXNNYXAg7ZWo7IiY7JeQ7IScIOyduOyekOuhnCDrhJjslrTsmKggJyR2YWwn7JeQIO2VoOuLueuQnCDqsJLsnbQgbWFw7J20652866m0IGlzbWFw7ZWo7IiY66W8IOyerOq3gO2YuOy2nCDtlZzri6QuXHJcbi8vIOyYiOyZuOyggeycvOuhnCDtgqTqsJLsnbQgXCJfXCIg652866m0IGlzUHNldWRv66W8IO2YuOy2nO2VnOuLpC5cclxuLy8g7LWc7KKF7KCB7Jy866GcICN7a2V5fSA6ICN7dmFsdWV97J2YIOqwkuydhCDrpqzthLTtlZjrj4TroZ0g66eM65Og64ukLlxyXG5cclxuLy9pc1BzZXVkbyDtlajsiJhcclxuLy/qsIDsg4Eg7ISg7YOd7J6Q66W8IOunjOuTpOyWtCDrpqzthLTtlbTso7zripQg7ZWo7IiYXHJcbi8vXHJcblxyXG5cclxuLy9AZnVuY3Rpb24gaXNNYXAgKCR2YWwsICRrZXkpIHtcclxuLy8gICRyZXN1bHQgOiAoKTtcclxuLy9cclxuLy8gIEBpZiAodHlwZS1vZigkdmFsKSA9PSBtYXApIHtcclxuLy8gICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwge1xyXG4vLyAgICAgIEBpZiAodHlwZS1vZigkdmFsMikgPT0gbWFwIGFuZCAka2V5ID09IG51bGwpIHtcclxuLy8gICAgICAgICRtYXAgOiBpc01hcCgkdmFsMiwgJGtleTIpO1xyXG4vLyAgICAgICAgJG1hcGtleSA6IG1hcC1rZXlzKCRtYXApO1xyXG4vLyAgICAgICAgJHJlc3VsdDogbWFwLXNldCgkcmVzdWx0LCAkbWFwa2V5LCBtYXAtZ2V0KCRtYXAsICN7JG1hcGtleX0pKTtcclxuLy8gICAgICB9IEBlbHNlIGlmICh0eXBlLW9mKCR2YWwyKSA9PSBtYXAgYW5kICRrZXkgPT0gXCJfXCIpe1xyXG4vLyAgICAgICAgJHJlc3VsdDogbWFwLXNldCgkcmVzdWx0LCAka2V5MiwgaXNNYXAoJHZhbDIsICRrZXkyKSk7XHJcbi8vICAgICAgfSBAZWxzZSB7XHJcbi8vICAgICAgICAkcmVzdWx0OiBtYXAtc2V0KCRyZXN1bHQsICRrZXkyLCAkdmFsMik7XHJcbi8vICAgICAgfVxyXG4vLyAgICB9XHJcbi8vICB9IEBlbHNlIHtcclxuLy8gICAgJHJlc3VsdDogbWFwLXNldCgkcmVzdWx0LCAkdmFsLCAka2V5KTtcclxuLy8gIH1cclxuLy9cclxuLy8gIEByZXR1cm4gJHJlc3VsdDtcclxuLy99O1xyXG5cclxuXHJcbi8vQGZ1bmN0aW9uIGlzUHNldWRvICgka2V5LCAkdmFsKSB7XHJcbi8vICAkcmVzdWx0OiBudWxsO1xyXG4vLyAgQGlmICgka2V5ID09IFwiX1wiKSB7XHJcbi8vICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAkdmFsIHtcclxuLy8gICAgICAkcmVzdWx0OiBpc01hcCgka2V5MiwgJHZhbDIpO1xyXG4vLyAgICAgIEByZXR1cm4gaXNNYXAoJGtleTIsICR2YWwyKTtcclxuLy8gICAgfVxyXG4vLyAgfSBAZWxzZSAge1xyXG4vLyAgICAkcmVzdWx0OiBpc01hcCgka2V5LCAkdmFsKTtcclxuLy8gICAgQHJldHVybiAkcmVzdWx0O1xyXG4vLyAgfVxyXG4vL307XHJcblxyXG5cclxuIiwiQG1peGluIGNsZWFyKCkge1xyXG4gICY6OmFmdGVyIHtcclxuICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgIGNsZWFyOiBib3RoO1xyXG4gICB9XHJcbn1cclxuXHJcblxyXG5cclxuIiwiQG1peGluIGZsb2F0LWxlZnQge1xyXG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XHJcbn1cclxuQG1peGluIGZsb2F0LXJpZ2h0IHtcclxuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcclxufVxyXG5AbWl4aW4gZmxvYXQtbm9uZSB7XHJcbiAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG4iLCJAbWl4aW4gaG92ZXItb257XHJcbiAgJjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUsICYub257IEBjb250ZW50OyB9XHJcbn1cclxuXHJcbkBtaXhpbiBob3ZlcntcclxuICAmOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSB7IEBjb250ZW50OyB9XHJcbn1cclxuIiwiLy8gVXNlIGluIGNvbmp1bmN0aW9uIHdpdGggLnNyLW9ubHkgdG8gb25seSBkaXNwbGF5IGNvbnRlbnQgd2hlbiBpdCdzIGZvY3VzZWQuXHJcbi8vIFNlZTogaHR0cDovL2ExMXlwcm9qZWN0LmNvbS9wb3N0cy9ob3ctdG8taGlkZS1jb250ZW50L1xyXG4vLyBTZWU6IGh0dHBzOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xyXG5AbWl4aW4gc3Itb25seSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxcHg7XHJcbiAgaGVpZ2h0OiAxcHg7XHJcbiAgcGFkZGluZzogMDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XHJcbiAgYm9yZGVyOiAwO1xyXG59XHJcbkBtaXhpbiB0ZXh0LWhpZGUge1xyXG4gIGZvbnQ6IDAvMCBhICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIHRleHQtc2hhZG93OiBub25lO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogMDtcclxufVxyXG5cclxuIiwiQG1peGluIHJlc2V0LXRleHQge1xyXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcclxuICAvLyBXZSBkZWxpYmVyYXRlbHkgZG8gTk9UIHJlc2V0IGZvbnQtc2l6ZSBvciB3b3JkLXdyYXAuXHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xyXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgbGluZS1icmVhazogYXV0bztcclxuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDsgLy8gRmFsbGJhY2sgZm9yIHdoZXJlIGBzdGFydGAgaXMgbm90IHN1cHBvcnRlZFxyXG4gIHRleHQtYWxpZ246IHN0YXJ0O1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0ZXh0LXNoYWRvdzogbm9uZTtcclxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcclxuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcclxufVxyXG4iLCIvLyAvKiBwcmVmaXggKi9cclxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXM6KCkpe1xyXG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVze1xyXG4gICAgI3snLScrJHByZWZpeCsnLScrJHByb3BlcnR5fTokdmFsdWU7XHJcbiAgfVxyXG4gICN7JHByb3BlcnR5fSA6ICR2YWx1ZTtcclxufVxyXG5cclxuICAvLyBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sIHJvdGF0ZSg0NWRlZyksIHdlYmtpdCBtcyk7IG9yIChcIndlYmtpdFwiLCBcIm1velwiKVxyXG5cclxuIC8vY3NzXHJcbiAgLy8gLnNlbGVjdG9yIHtcclxuICAvLyAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIC8vICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAvLyAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAvLyB9XHJcblxyXG4iLCIvL0Ag6rCA7J2065OcXHJcbi8vLSBwbGFjZWhvbGRlciDsiqTtg4DsnbzsnZgg7YGs66Gc7Iqk67iM65287Jqw7KeV7J2EIOychO2VnCDtjIzsnbzsnoXri4jri6QuXHJcbi8vLSDtlYTsmpTtlZwg7YyM7J287JeQ7IScIGluY2x1ZGXtlZjsl6wg7IKs7Jqp7ZWY7IS47JqULlxyXG4vL1xyXG4vL0Ag7IKs7Jqp67KVXHJcbi8vLSBAaW5jbHVkZSBwbGFjZWhvbGRlcijsu6zrn6zrqoUpO1xyXG5cclxuQG1peGluIHBsYWNlaG9sZGVyKCRjb2xvciwgJHNpemU6aW5oZXJpdCkge1xyXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgLy8gSUVcclxuICAgIGNvbG9yOiAkY29sb3I7XHJcbiAgfVxyXG4gICY6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IC8vIEVkZ2VcclxuICAgIGNvbG9yOiAkY29sb3I7XHJcbiAgICBmb250LXNpemU6ICRzaXplO1xyXG4gIH1cclxuICAmOi1tb3otcGxhY2Vob2xkZXIgeyAvLyBGaXJlZm94IDE4LVxyXG4gICAgY29sb3I6ICRjb2xvcjtcclxuICAgIGZvbnQtc2l6ZTogJHNpemU7XHJcbiAgfVxyXG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgeyAvLyBGaXJlZm94IDE5K1xyXG4gICAgY29sb3I6ICRjb2xvcjtcclxuICAgIGZvbnQtc2l6ZTogJHNpemU7XHJcbiAgfVxyXG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7IC8vIO2BrOuhrCwg7IKs7YyM66asLCDsmKTtjpjrnbxcclxuICAgIGNvbG9yOiAkY29sb3I7XHJcbiAgICBmb250LXNpemU6ICRzaXplO1xyXG4gIH1cclxuICAmOjpwbGFjZWhvbGRlcnsgLy8g7YGs66GsXHJcbiAgICBjb2xvcjogJGNvbG9yO1xyXG4gICAgZm9udC1zaXplOiAkc2l6ZTtcclxuICB9XHJcbn0iLCJAbWl4aW4gZGl2aXNpb24oJGNvbG9yOiAjNTU1LCAkZ3V0dGVyOjEwcHgsICRzaXplOjEwcHgpIHtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICA+ICoge1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICY6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgd2lkdGg6IDFweDtcclxuICAgICAgaGVpZ2h0OiAkc2l6ZTtcclxuICAgICAgbWFyZ2luOiAwICRndXR0ZXI7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcclxuICAgIH1cclxuICB9XHJcbn0iLCIvLyBTaW5nbGUgc2lkZSBib3JkZXItcmFkaXVzXHJcbkBtaXhpbiBib3JkZXItcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XHJcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcclxufVxyXG5cclxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpdXMpIHtcclxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcclxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaXVzKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XHJcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaXVzKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcclxufVxyXG5cclxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaXVzKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcclxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xyXG59XHJcbiIsIkBmdW5jdGlvbiByZW1vdmUtdW5pdCgkdmFsdWUpIHtcclxuICBAcmV0dXJuICgkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpKTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIHZ3KCRicmVha3BvaW50LCAkc2l6ZV9weCl7XHJcbiAgJHRlbXBfYnJlYWtwb2ludCA6IDA7XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRicmVha3BvaW50KSA9PSBzdHJpbmcge1xyXG4gICAgQGlmIG1hcF9oYXNfa2V5KCAkZ19tZWRpYS1icmVha3BvaW50cywgI3skYnJlYWtwb2ludH0gKXtcclxuICAgICAgJHRlbXBfYnJlYWtwb2ludCA6IG1hcF9nZXQoJGdfbWVkaWEtYnJlYWtwb2ludHMsICN7JGJyZWFrcG9pbnR9KTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAZXJyb3IgXCLshKTsoJXrkJjsp4Ag7JWK7J2AIGJyZWFrcG9pbnTqsJIg7J6F64uI64ukXCI7XHJcbiAgICB9XHJcbiAgXHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkdGVtcF9icmVha3BvaW50IDogJGJyZWFrcG9pbnQgKiAxcHg7XHJcbiAgfVxyXG5cclxuICAkdGVtcF9icmVha3BvaW50IDogcmVtb3ZlLXVuaXQoJHRlbXBfYnJlYWtwb2ludCk7XHJcbiAgXHJcbiAgJHRlbXBfYnJlYWtwb2ludDogKCR0ZW1wX2JyZWFrcG9pbnQgLSAxKSAqIDAuMDEgKiAxcHg7XHJcbiAgQHJldHVybiAoJHNpemVfcHggLyAkdGVtcF9icmVha3BvaW50KSAqIDF2dztcclxufVxyXG5cclxuXHJcbkBtaXhpbiBmb250c2l6ZS12dyggJHN0YXJ0ICwgJGVuZCwgJHZhbHVlX3B4ICl7XHJcbiAgJHN0YXJ0X2JyZWFrcG9pbnQgOiAwO1xyXG4gICRlbmRfYnJlYWtwb2ludCA6IDA7XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRzdGFydCkgPT0gc3RyaW5nIHtcclxuICAgIEBpZiBtYXBfaGFzX2tleSggJGdfbWVkaWEtYnJlYWtwb2ludHMsICN7JHN0YXJ0fSApe1xyXG4gICAgICAkc3RhcnRfYnJlYWtwb2ludCA6IG1hcF9nZXQoJGdfbWVkaWEtYnJlYWtwb2ludHMsICN7JHN0YXJ0fSk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQGVycm9yIFwi7ISk7KCV65CY7KeAIOyViuydgCBicmVha3BvaW506rCSIOyeheuLiOuLpFwiO1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgJHN0YXJ0X2JyZWFrcG9pbnQgOiAkc3RhcnQgKjFweDtcclxuICB9XHJcbiAgQGlmIHR5cGUtb2YoJGVuZCkgPT0gc3RyaW5nIHtcclxuICAgIEBpZiBtYXBfaGFzX2tleSggJGdfbWVkaWEtYnJlYWtwb2ludHMsICN7JGVuZH0gKXtcclxuICAgICAgJGVuZF9icmVha3BvaW50IDogbWFwX2dldCgkZ19tZWRpYS1icmVha3BvaW50cywgI3skZW5kfSkgO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBlcnJvciBcIuyEpOygleuQmOyngCDslYrsnYAgYnJlYWtwb2ludOqwkiDsnoXri4jri6RcIjtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgICRlbmRfYnJlYWtwb2ludCA6ICRlbmQgKjFweDtcclxuICB9XHJcblxyXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICggJHN0YXJ0X2JyZWFrcG9pbnQgKSkge1xyXG4gICAgZm9udC1zaXplOiB2dygkZW5kLCAkdmFsdWVfcHgpO1xyXG4gIH1cclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAoICRlbmRfYnJlYWtwb2ludCApKSB7XHJcbiAgICBmb250LXNpemU6ICR2YWx1ZV9weDtcclxuICB9XHJcbn1cclxuIiwiLy8gZWxsaXBzaXMgbWl4aW5cclxuQG1peGluIG1ha2UtZWxsLXNldCgkZWxsLXNldCA6ICRnX2VsbC1zZXQpIHtcclxuICBAZWFjaCAka2V5LCAkdmFsIGluICRlbGwtc2V0IHtcclxuICAgIEBpZiAka2V5ID09IG5vbmUge1xyXG4gICAgICAuZWxsLSN7JHZhbH0ge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogaW5pdGlhbDtcclxuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IGluaXRpYWw7XHJcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgLmVsbC0jeyR2YWx9IHtcclxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveCAhaW1wb3J0YW50O1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO1xyXG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogJHZhbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1ha2UtZWxsKCRlbGwtc2V0IDogJGdfZWxsLXNldCkge1xyXG4gIEBlYWNoICRicmVha3BvaW50LCAkcG9pbnQgaW4gJGdfbWVkaWEtYnJlYWtwb2ludHMge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICN7JHBvaW50fSkge1xyXG4gICAgICBAZWFjaCAka2V5LCAkdmFsIGluICRlbGwtc2V0IHtcclxuICAgICAgICBAaWYoJGtleSA9PSAnbm9uZScpIHtcclxuICAgICAgICAgIC5lbGwtI3skdmFsfS0jeyRicmVha3BvaW50fSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBpbml0aWFsO1xyXG4gICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IGluaXRpYWw7XHJcbiAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogbm9uZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgIC5lbGwtI3skdmFsfS0jeyRicmVha3BvaW50fSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7XHJcbiAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogJHZhbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0iLCJAbWl4aW4ga2V5ZnJhbWUgKCRhbmltYXRpb25fbmFtZSkge1xyXG4gIEAtd2Via2l0LWtleWZyYW1lcyAjeyRhbmltYXRpb25fbmFtZX0ge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG4gIEAtbW96LWtleWZyYW1lcyAjeyRhbmltYXRpb25fbmFtZX0ge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG4gIEAtby1rZXlmcmFtZXMgI3skYW5pbWF0aW9uX25hbWV9IHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxuICBAa2V5ZnJhbWVzICN7JGFuaW1hdGlvbl9uYW1lfSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn0iLCIvLyBtYWtlLWFyZWEg66+57Iqk7J24XHJcbi8vIOq4sOuzuOqwkuydtCBudWxs66GcIOyFi+2MheuQmOyWtCDsnojripQg7JqU7IaM64qUIOyduOyekOqwgCDsoITri6zrkJjsp4Ag7JWK7J2EIOyLnCDsu7TtjIzsnbwg65CY7KeAIOyViuyKteuLiOuLpC5cclxuLy8gW+unpOqwnOuzgOyImF1cclxuLy8gJG1heC13aWR0aCDquLDrs7jqsJI6IG51bGxcclxuLy8gJGd1dHRlci13aWR0aCDquLDrs7jqsJI6IG51bGxcclxuLy8gJHdpZHRoIOq4sOuzuOqwkjogMTAwJVxyXG5cclxuQG1peGluIG1ha2UtYXJlYSggJGFyZWEtaW5mbzogJGdfYXJlYV9pbmZvICkge1xyXG4gICVhcmVhIHtcclxuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgfVxyXG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGFyZWEtaW5mbyB7XHJcbiAgICAkYXJlYS1uYW1lIDogaWYoJGtleSA9PSBcImRlZmF1bHRcIiwgXCJcIiwgXCItXCIgKyAka2V5KTtcclxuICAgIC5hcmVhI3skYXJlYS1uYW1lfSB7XHJcbiAgICAgIEBleHRlbmQgJWFyZWE7XHJcbiAgICAgICR3aWR0aDogMTAwJTtcclxuICAgICAgICAgIFxyXG4gICAgICAgIEBpZiAgbWFwLWhhcy1rZXkoJHZhbCwgd2lkdGgpIHtcclxuICAgICAgICAgICR3aWR0aCA6IG1hcC1nZXQoJHZhbCwgd2lkdGgpLFxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgJHdpZHRoIDogMTAwJVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIHdpZHRoOiAkd2lkdGg7XHJcbiAgICAgIG1heC13aWR0aDogbWFwLWdldCgkdmFsLCBtYXgtd2lkdGgpO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCR2YWwsIGd1dHRlci13aWR0aCk7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogbWFwLWdldCgkdmFsLCBndXR0ZXItd2lkdGgpO1xyXG5cclxuICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwge1xyXG4gICAgICAgIEBpZiAoJGtleTIgPT0gbWVkaWEpIHtcclxuICAgICAgICAgIEBlYWNoICRrZXkzLCAkdmFsMyBpbiAkdmFsMiB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbigka2V5Mykge1xyXG4gICAgICAgICAgICAgICR3aWR0aCA6IG1hcC1nZXQoJHZhbDMsIHdpZHRoKTtcclxuICAgICAgICAgICAgICBtYXgtd2lkdGg6IG1hcC1nZXQoJHZhbDMsIG1heC13aWR0aCk7XHJcbiAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkdmFsMywgZ3V0dGVyLXdpZHRoKTtcclxuICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hcC1nZXQoJHZhbDMsIGd1dHRlci13aWR0aCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYXJlYS1pbmZvIHtcclxuICAgICRhcmVhLW5hbWUgOiBpZigka2V5ID09IFwiZGVmYXVsdFwiLCBcIlwiLCBcIi1cIiArICRrZXkpO1xyXG4gICAgLmFyZWEjeyRhcmVhLW5hbWV9LWJyZWFrLWxlZnQge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXAtZ2V0KCR2YWwsIGd1dHRlci13aWR0aCk7XHJcblxyXG4gICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbCB7XHJcbiAgICAgICAgQGlmICgka2V5MiA9PSBtZWRpYSkge1xyXG4gICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICR2YWwyIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKCRrZXkzKSB7XHJcbiAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbWFwLWdldCgkdmFsMywgZ3V0dGVyLXdpZHRoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeS1taW4oIG1hcC1nZXQoJHZhbDMsIG1heC13aWR0aCkgKSB7XHJcbiAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygoMTAwJSAtICgje21hcC1nZXQoJHZhbDMsIG1heC13aWR0aCl9IC0gI3ttYXAtZ2V0KCR2YWwzLCBndXR0ZXItd2lkdGgpKjJ9KSApIC8gMik7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmFyZWEjeyRhcmVhLW5hbWV9LWJyZWFrLXJpZ2h0IHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCR2YWwsIGd1dHRlci13aWR0aCk7XHJcblxyXG4gICAgICBAZWFjaCAka2V5MiwgJHZhbDIgaW4gJHZhbCB7XHJcbiAgICAgICAgQGlmICgka2V5MiA9PSBtZWRpYSkge1xyXG4gICAgICAgICAgQGVhY2ggJGtleTMsICR2YWwzIGluICR2YWwyIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtcXVlcnktbWluKCRrZXkzKSB7XHJcbiAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXAtZ2V0KCR2YWwzLCBndXR0ZXItd2lkdGgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5LW1pbiggbWFwLWdldCgkdmFsMywgbWF4LXdpZHRoKSApIHtcclxuICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoKDEwMCUgLSAoI3ttYXAtZ2V0KCR2YWwzLCBtYXgtd2lkdGgpfSAtICN7bWFwLWdldCgkdmFsMywgZ3V0dGVyLXdpZHRoKSoyfSkgKSAvIDIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4iLCIvLyBtYWtlLXJvdyDrr7nsiqTsnbhcclxuLy8gW+unpOqwnOuzgOyImF1cclxuLy8gJGdyaWQtZ3V0dGVyIOq4sOuzuOqwkjogJGdyaWQtZ3V0dGVyLXdpZHRoXHJcbi8vICRncmlkLWd1dHRlciDsoITri6zrkJwg6rCS7JeQIOuUsOudvOyEnCBtYXJnaW4tcmlnaHQsIG1hcmdpbi1sZWZ0IOqwkuydhCDshYvtjIXtlbQg7KSN64uI64ukLlxyXG4vLyBleCkgQGluY2x1ZGUgbWFrZS1yb3coICRncmlkLWd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKTtcclxuQG1peGluIG1ha2Utcm93KCkge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIEBpbmNsdWRlIGNsZWFyKCk7XHJcbn1cclxuXHJcbkBtaXhpbiBtYWtlLWZsZXgtcm93KCkge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOndyYXA7XHJcbn1cclxuXHJcbi8vIG1ha2UtY29sLXNldCDrr7nsiqTsnbhcclxuLy8gW+unpOqwnOuzgOyImF1cclxuLy8gJGdyaWQtY29sLWNudCDquLDrs7jqsJI6ICRncmlkLWNvbHVtbnNcclxuLy8gZXgpIEBpbmNsdWRlIG1ha2UtY29sLXNldCgpO1xyXG4vLyBleCkgQGluY2x1ZGUgbWFrZS1jb2wtc2V0KCRncmlkLWNvbC1jbnQ6IDUpO1xyXG5AbWl4aW4gbWFrZS1jb2wtc2V0KCAkZ3JpZC1jb2wtc2V0OiAkZ19ncmlkLWNvbC1zZXQgKSB7XHJcbiAgJGdyaWQtY29sLW5hbWUgOiBudWxsO1xyXG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGdyaWQtY29sLXNldCB7XHJcbiAgICBAaWYoJGtleSA9PSBkZWZhdWx0KXtcclxuICAgICAgJGdyaWQtY29sLW5hbWUgOiBudWxsO1xyXG4gICAgfUBlbHNlIHtcclxuICAgICAgJGdyaWQtY29sLW5hbWUgOiAka2V5O1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgbWFrZS1jb2woJHZhbCwgJGdyaWQtY29sLW5hbWUgKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIGZsZXggXHJcbkBtaXhpbiBtYWtlLWZsZXgtY29sLXNldCggJGdyaWQtY29sLXNldDogJGdfZ3JpZC1jb2wtc2V0KSB7XHJcbiAgJGdyaWQtY29sLW5hbWU6IG51bGw7XHJcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkZ3JpZC1jb2wtc2V0IHtcclxuICAgIEBpZigka2V5ID09IGRlZmF1bHQpe1xyXG4gICAgICAkZ3JpZC1jb2wtbmFtZSA6IG51bGw7XHJcbiAgICB9QGVsc2Uge1xyXG4gICAgICAkZ3JpZC1jb2wtbmFtZSA6ICRrZXk7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtYWtlLWZsZXgtY29sKCAkdmFsLCAkZ3JpZC1jb2wtbmFtZSApO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1ha2UtY29sKCAkZ3JpZC1jb2wtY250OiAkZ3JpZC1jb2wtY250LCAkY29sLW5hbWU6ICRjb2wtbmFtZSApIHtcclxuICBAZWFjaCAkYnJlYWtwb2ludCwgJHBvaW50IGluICRnX21lZGlhLWJyZWFrcG9pbnRzIHtcclxuICAgIEBpZiAkYnJlYWtwb2ludCA9PSB4cyB7XHJcbiAgICAgIC4jeyRjb2wtbmFtZX1jb2wge1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgICAuI3skY29sLW5hbWV9Y29sLWF1dG8ge1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICB9O1xyXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbC1jbnQge1xyXG4gICAgICAgIC4jeyRjb2wtbmFtZX1jb2wtI3skaX0ge1xyXG4gICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoJGkgLyAkZ3JpZC1jb2wtY250KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogI3skcG9pbnR9KSB7XHJcbiAgICAgICAgLiN7JGNvbC1uYW1lfWNvbC0jeyRicmVha3BvaW50fSB7XHJcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC4jeyRjb2wtbmFtZX1jb2wtYXV0by0jeyRicmVha3BvaW50fSB7XHJcbiAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICB9O1xyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sLWNudCB7XHJcbiAgICAgICAgICAuI3skY29sLW5hbWV9Y29sLSN7JGl9LSN7JGJyZWFrcG9pbnR9IHtcclxuICAgICAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoJGkgLyAkZ3JpZC1jb2wtY250KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtYWtlLWZsZXgtY29sKCAkZ3JpZC1jb2wtY250OiAkZ3JpZC1jb2wtY250LCAkY29sLW5hbWU6ICRjb2wtbmFtZSApIHtcclxuICBAZWFjaCAkYnJlYWtwb2ludCwgJHBvaW50IGluICRnX21lZGlhLWJyZWFrcG9pbnRzIHtcclxuICAgIEBpZiAkYnJlYWtwb2ludCA9PSB4cyB7XHJcbiAgICAgIC4jeyRjb2wtbmFtZX1jb2wge1xyXG4gICAgICAgIGZsZXgtYmFzaXM6IDA7XHJcbiAgICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgICAuI3skY29sLW5hbWV9Y29sLWF1dG8ge1xyXG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgfTtcclxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2wtY250IHtcclxuICAgICAgICAuI3skY29sLW5hbWV9Y29sLSN7JGl9IHtcclxuICAgICAgICAgIGZsZXg6IDAgMCBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XHJcbiAgICAgICAgICBtYXgtd2lkdGggOiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICN7JHBvaW50fSkge1xyXG4gICAgICAgIC4jeyRjb2wtbmFtZX1jb2wtI3skYnJlYWtwb2ludH0ge1xyXG4gICAgICAgICAgZmxleC1iYXNpczogMDtcclxuICAgICAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLiN7JGNvbC1uYW1lfWNvbC1hdXRvLSN7JGJyZWFrcG9pbnR9IHtcclxuICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xyXG4gICAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbC1jbnQge1xyXG4gICAgICAgICAgLiN7JGNvbC1uYW1lfWNvbC0jeyRpfS0jeyRicmVha3BvaW50fSB7XHJcbiAgICAgICAgICAgIGZsZXg6IDAgMCBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XHJcbiAgICAgICAgICAgIG1heC13aWR0aCA6IHBlcmNlbnRhZ2UoJGkgLyAkZ3JpZC1jb2wtY250KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIHB1bGwsIHB1c2gsIG9mZnNldCBzZXR0aW5nIFxyXG5AbWl4aW4gbWFrZS1wdWxsUHVzaE9mZnNldC1zZXQoICRncmlkLWNvbC1zZXQ6ICRnX2dyaWQtY29sLXNldCkge1xyXG4gICRncmlkLWNvbC1uYW1lIDogbnVsbDtcclxuICBAZWFjaCAka2V5LCAkdmFsIGluICRncmlkLWNvbC1zZXQge1xyXG4gICAgQGlmKCRrZXkgPT0gZGVmYXVsdCl7XHJcbiAgICAgICRncmlkLWNvbC1uYW1lIDogbnVsbDtcclxuICAgIH1AZWxzZSB7XHJcbiAgICAgICRncmlkLWNvbC1uYW1lIDogJGtleTtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIG1ha2UtcHVsbCggJHZhbCwgJGdyaWQtY29sLW5hbWUgKTtcclxuICAgIEBpbmNsdWRlIG1ha2UtcHVzaCggJHZhbCwgJGdyaWQtY29sLW5hbWUgKTtcclxuICAgIEBpbmNsdWRlIG1ha2Utb2Zmc2V0KCAkdmFsLCAkZ3JpZC1jb2wtbmFtZSApO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1ha2UtcHVsbCggJGdyaWQtY29sLWNudDogJGdyaWQtY29sLWNudCwgJGNvbC1uYW1lOiAkY29sLW5hbWUgKSB7XHJcbiAgQGVhY2ggJGJyZWFrcG9pbnQsICRwb2ludCBpbiAkZ19tZWRpYS1icmVha3BvaW50cyB7XHJcbiAgICBAaWYgJGJyZWFrcG9pbnQgPT0geHMge1xyXG4gICAgICAuI3skY29sLW5hbWV9cHVsbC0wIHtcclxuICAgICAgICByaWdodDogYXV0bztcclxuICAgICAgfVxyXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbC1jbnQge1xyXG4gICAgICAgIC4jeyRjb2wtbmFtZX1wdWxsLSN7JGl9IHtcclxuICAgICAgICAgIHJpZ2h0OiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICN7JHBvaW50fSkge1xyXG4gICAgICAgIC4jeyRjb2wtbmFtZX1wdWxsLTAtI3skYnJlYWtwb2ludH0ge1xyXG4gICAgICAgICAgcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sLWNudCB7XHJcbiAgICAgICAgICAuI3skY29sLW5hbWV9cHVsbC0jeyRpfS0jeyRicmVha3BvaW50fSB7XHJcbiAgICAgICAgICAgIHJpZ2h0OiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWFrZS1wdXNoKCAkZ3JpZC1jb2wtY250OiAkZ3JpZC1jb2wtY250LCAkY29sLW5hbWU6ICRjb2wtbmFtZSApIHtcclxuICBAZWFjaCAkYnJlYWtwb2ludCwgJHBvaW50IGluICRnX21lZGlhLWJyZWFrcG9pbnRzIHtcclxuICAgIEBpZiAkYnJlYWtwb2ludCA9PSB4cyB7XHJcbiAgICAgIC4jeyRjb2wtbmFtZX1wdXNoLTAge1xyXG4gICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgIH1cclxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2wtY250IHtcclxuICAgICAgICAuI3skY29sLW5hbWV9cHVzaC0jeyRpfSB7XHJcbiAgICAgICAgICBsZWZ0OiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICN7JHBvaW50fSkge1xyXG4gICAgICAgIC4jeyRjb2wtbmFtZX1wdXNoLTAtI3skYnJlYWtwb2ludH0ge1xyXG4gICAgICAgICAgbGVmdDogYXV0bztcclxuICAgICAgICB9XHJcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2wtY250IHtcclxuICAgICAgICAgIC4jeyRjb2wtbmFtZX1wdXNoLSN7JGl9LSN7JGJyZWFrcG9pbnR9IHtcclxuICAgICAgICAgICAgbGVmdDogcGVyY2VudGFnZSgkaSAvICRncmlkLWNvbC1jbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1ha2Utb2Zmc2V0KCAkZ3JpZC1jb2wtY250OiAkZ3JpZC1jb2wtY250LCAkY29sLW5hbWU6ICRjb2wtbmFtZSApIHtcclxuICBAZWFjaCAkYnJlYWtwb2ludCwgJHBvaW50IGluICRnX21lZGlhLWJyZWFrcG9pbnRzIHtcclxuICAgICRwb2ludDogbWVkaWEtcXVlcnktbWluLXZhbCgkYnJlYWtwb2ludCk7XHJcbiAgICBAaWYgJGJyZWFrcG9pbnQgPT0geHMge1xyXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbC1jbnQgLSAxIHtcclxuICAgICAgICAuI3skY29sLW5hbWV9b2Zmc2V0LSN7JGl9IHtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICN7JHBvaW50fSkge1xyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sLWNudCAtIDEge1xyXG4gICAgICAgICAgLiN7JGNvbC1uYW1lfW9mZnNldC0jeyRpfS0jeyRicmVha3BvaW50fSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKCRpIC8gJGdyaWQtY29sLWNudCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4iLCIvLyBndXR0ZXIgbWl4aW5cclxuQG1peGluIG1ha2UtZ3V0dGVyKCRndXR0ZXItc2l6ZSA6ICRnX2d1dHRlci1zaXplcil7XHJcbiAgQGVhY2ggJGJyZWFrcG9pbnQsICRwb2ludCBpbiAkZ19tZWRpYS1icmVha3BvaW50cyB7XHJcbiAgICBAaWYgJGJyZWFrcG9pbnQgPT0geHMge1xyXG4gICAgICBAZWFjaCAka2V5LCAkdmFsIGluICRndXR0ZXItc2l6ZSB7XHJcbiAgICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwge1xyXG4gICAgICAgICAgQGlmKCRrZXkgPT0gXCJwZXJjZW50XCIpe1xyXG4gICAgICAgICAgICAuZ3V0dGVyLXBlci0jeyRrZXkyfSB7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHZhbDI7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kdmFsMjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfUBlbHNlIHtcclxuICAgICAgICAgICAgLmd1dHRlci0jeyRrZXkyfSB7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHZhbDI7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kdmFsMjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfUBlbHNlIHtcclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICN7JHBvaW50fSkge1xyXG4gICAgICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGd1dHRlci1zaXplIHtcclxuICAgICAgICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAkdmFsIHtcclxuICAgICAgICAgICAgQGlmKCRrZXkgPT0gXCJwZXJjZW50XCIpe1xyXG4gICAgICAgICAgICAgIC5ndXR0ZXItcGVyLSN7JGtleTJ9LSN7JGJyZWFrcG9pbnR9IHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSR2YWwyO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kdmFsMjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgLmd1dHRlci0jeyRrZXkyfS0jeyRicmVha3BvaW50fSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kdmFsMjtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHZhbDI7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gY29sLWdyaWQgZ3V0dGVyIOyEpOyglVxyXG5AbWl4aW4gbWFrZS1jb2wtZ3V0dGVyKCRndXR0ZXItc2l6ZSA6ICRnX2d1dHRlci1zaXplcil7XHJcbiAgQGVhY2ggJGJyZWFrcG9pbnQsICRwb2ludCBpbiAkZ19tZWRpYS1icmVha3BvaW50cyB7XHJcbiAgICBAaWYgJGJyZWFrcG9pbnQgPT0geHMge1xyXG4gICAgICBAZWFjaCAka2V5LCAkdmFsIGluICRndXR0ZXItc2l6ZSB7XHJcbiAgICAgICAgQGVhY2ggJGtleTIsICR2YWwyIGluICR2YWwge1xyXG4gICAgICAgICAgQGlmKCRrZXkgPT0gXCJwZXJjZW50XCIpe1xyXG4gICAgICAgICAgICAuZ3V0dGVyLXBlci0jeyRrZXkyfSB7XHJcbiAgICAgICAgICAgICAgJiA+ICoge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHZhbDI7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICR2YWwyO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfUBlbHNlIHtcclxuICAgICAgICAgICAgLmd1dHRlci0jeyRrZXkyfSB7XHJcbiAgICAgICAgICAgICAgJiA+ICoge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHZhbDI7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICR2YWwyO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfUBlbHNlIHtcclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICN7JHBvaW50fSkge1xyXG4gICAgICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGd1dHRlci1zaXplIHtcclxuICAgICAgICAgIEBlYWNoICRrZXkyLCAkdmFsMiBpbiAkdmFsIHtcclxuICAgICAgICAgICAgQGlmKCRrZXkgPT0gXCJwZXJjZW50XCIpe1xyXG4gICAgICAgICAgICAgIC5ndXR0ZXItcGVyLSN7JGtleTJ9LSN7JGJyZWFrcG9pbnR9IHtcclxuICAgICAgICAgICAgICAgICYgPiAqIHtcclxuICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHZhbDI7XHJcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHZhbDI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICAgIC5ndXR0ZXItI3ska2V5Mn0tI3skYnJlYWtwb2ludH0ge1xyXG4gICAgICAgICAgICAgICAgJiA+ICoge1xyXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkdmFsMjtcclxuICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkdmFsMjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0iLCIvLyB0cmlhbmdsZSjilrYpLCBhcnJvdyg+KSDsgqzsmqnrspVcclxuLy8gLSDrsKntlqUgOiB0b3AsIGJvdHRvbSwgbGVmdCwgcmlnaHRcclxuLy8gKHRyaWFuZ2xlKOKWtinsnYAgdG9wLWxlZnQvcmlnaHQsIGJvdHRvbS1sZWZ0L3JpZ2h0IOuwqe2WpeuPhCDqsIDriqUpXHJcbi8vIEBpbmNsdWRlIHRyaWFuZ2xlKFwi7IK86rCB7ZiV67Cp7ZalXCIsIOqwgOuhnHB4LCDshLjroZxweCwgI+y7rOufrCk7XHJcbi8vIEBpbmNsdWRlIGFycm93KFwi7ZmU7IK07ZGc67Cp7ZalXCIsIOqwgOuhnHB4LCDshLjroZxweCwg7ISg6rW16riwLCAj7Lus65+sKTtcclxuLy8g7LC46rOgIHVybCA6IGh0dHA6Ly9hcHBzLmVreS5oay9jc3MtdHJpYW5nbGUtZ2VuZXJhdG9yL1xyXG5cclxuLy8g7IK86rCB7ZiVIOKWtlxyXG5AbWl4aW4gdHJpYW5nbGUoJGRpcmVjdGlvbiwgJHdpZHRoU2l6ZSwgJGhlaWdodFNpemUsICRjb2xvcikge1xyXG4gIGNvbnRlbnQ6IFwiXCI7XHJcbiAgZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcbiAgaGVpZ2h0OiAwO1xyXG4gIHdpZHRoOiAwO1xyXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBAaWYgJGRpcmVjdGlvbj09XCJ0b3BcIiB7XHJcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvcjtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwICgkd2lkdGhTaXplIC8gMikgJGhlaWdodFNpemU7XHJcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwidG9wLXJpZ2h0XCIge1xyXG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRjb2xvcjtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAwICR3aWR0aFNpemUgJGhlaWdodFNpemUgMDtcclxuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJyaWdodFwiIHtcclxuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRjb2xvcjtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAoJGhlaWdodFNpemUgLyAyKSAwICgkaGVpZ2h0U2l6ZSAvIDIpICR3aWR0aFNpemU7XHJcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwiYm90dG9tLXJpZ2h0XCIge1xyXG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkY29sb3I7XHJcbiAgICAgIGJvcmRlci13aWR0aDogMCAwICR3aWR0aFNpemUgJHdpZHRoU2l6ZTtcclxuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJib3R0b21cIiB7XHJcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0U2l6ZSAoJHdpZHRoU2l6ZSAvIDIpIDA7XHJcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwiYm90dG9tLWxlZnRcIiB7XHJcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkY29sb3I7XHJcbiAgICAgIGJvcmRlci13aWR0aDogJHdpZHRoU2l6ZSAwIDAgJHdpZHRoU2l6ZTtcclxuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJsZWZ0XCIge1xyXG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRjb2xvcjtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAoJGhlaWdodFNpemUgLyAyKSAkd2lkdGhTaXplICgkaGVpZ2h0U2l6ZSAvIDIpIDA7XHJcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwidG9wLWxlZnRcIiB7XHJcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAkd2lkdGhTaXplICR3aWR0aFNpemUgMCAwO1xyXG4gIH1cclxufVxyXG4vLyDtmZTsgrTtkZwgPlxyXG5AbWl4aW4gYXJyb3coJGRpcmVjdGlvbiwgJHdpZHRoLCAkaGVpZ2h0LCAkYm9yZGVyLCAkY29sb3IpIHtcclxuICBjb250ZW50OlwiXCI7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiBmbG9vcigkd2lkdGggLyAxLjQxNCk7XHJcbiAgaGVpZ2h0OiBmbG9vcigkaGVpZ2h0Kigkd2lkdGgvJGhlaWdodCkgLyAxLjQxNCk7XHJcbiAgYm9yZGVyLXRvcDogJGJvcmRlciBzb2xpZCAkY29sb3I7XHJcbiAgYm9yZGVyLXJpZ2h0OiAkYm9yZGVyIHNvbGlkICRjb2xvcjtcclxuICBAaWYgJGRpcmVjdGlvbiA9PSBcInRvcFwiIHtcclxuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxuICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJyaWdodFwie1xyXG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uPT1cImxlZnRcIiB7XHJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xyXG4gIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcImJvdHRvbVwiIHtcclxuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbi8v7KCB7JqpIO2bhCwgbWFyZ2lu7J2064KYIHRyYXNuZm9ybeycvOuhnCDsnITsuZgg7KGw7KCILiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FDQUE7O21EQUVtRDtBQVVuRDs7bURBRW1EO0FBaUNuRDs7bURBRW1EO0FBV25EOzttREFFbUQ7QUEyRG5EOzttREFFbUQ7QUR2SG5ELEFBQUEsSUFBSSxDQUFBO0VBQ0YsT0FBTyxFQUFFLEtBQUs7RUFDZCxLQUFLLEVBQUUsSUFBSTtDQUNaIn0= */
