/********************************************************* {COPYRIGHT-TOP} ***
* Licensed Materials - Property of IBM
* 5725-Z22, 5725-Z63, 5725-U33, 5725-Z63
*
* (C) Copyright IBM Corporation 2017
*
* All Rights Reserved.
* US Government Users Restricted Rights - Use, duplication or disclosure
* restricted by GSA ADP Schedule Contract with IBM Corp.
********************************************************** {COPYRIGHT-END} **/
.apim.bluemix a,
.apim.bluemix select,
.apim.bluemix .highlightText,
.apim.bluemix .highlightTextContainer:hover .hoveredHighlightText,
.apim.bluemix .hoveredHighlightText:hover {
  color: #3d70b2;
}
.apim.bluemix .toc .tocItem .selected:before {
  background-color: #3d70b2;
}
.apim.bluemix .toc a:not(.selected) {
  color: $text-primary-light;
}
.apim.bluemix .secondaryBackground,
.apim.bluemix .minorColumnRight,
.apim.bluemix .unselectedCollectionContent,
.apim.bluemix .tableHeaderBackground,
.apim.bluemix .toc {
  background-color: #f5f7fa;
}
.apim.bluemix .searchCollection .searchInput,
.apim.bluemix .searchCollection .searchIcon {
  background-color: #f5f7fa;
}
.apim.bluemix button.textOnlyButton:not(:disabled) {
  background: rgba(0,0,0,0) none repeat scroll 0 0;
  color: #3d70b2;
}
.apim.bluemix button.textOnlyButton:hover,
.apim.bluemix button.textOnlyButton:focus {
  text-decoration: underline;
}
.apim.bluemix button.buttonAndLabel.propertyRequired,
.apim.bluemix button.iconOnlyButton.propertyRequired {
  background-color: #4278bf;
  border-radius: 50%;
}
.apim.bluemix button.buttonAndLabel:not(:disabled),
.apim.bluemix button.iconOnlyButton:not(:disabled) {
  color: rgba(0,0,0,0.5);
}
.apim.bluemix button.buttonAndLabel:not(:disabled):hover,
.apim.bluemix button.iconOnlyButton:not(:disabled):hover,
.apim.bluemix button.buttonAndLabel:not(:disabled):focus,
.apim.bluemix button.iconOnlyButton:not(:disabled):focus {
  background-color: transparent;
  color: #3d70b2;
}
.apim.bluemix button + button.iconOnlyButton.dropdown-toggle {
  color: #3d70b2;
}
.apim.bluemix .mainBanner md-sidenav h1,
.apim.bluemix .mainBanner md-sidenav header {
  background-color: #263943;
  overflow: visible !important;
}
.apim.bluemix .mainBanner .navigationMenu > li.highlightMenu a h5 {
  background-color: #f0f3f6;
  color: #3d70b2;
  font-weight: bold;
}
.apim.bluemix .mainBanner .navigationMenu .navItem a {
  padding-left: 20px;
}
.apim.bluemix .mainBanner .navigationMenu .navItem a:hover,
.apim.bluemix .mainBanner .navigationMenu .navItem a:focus {
  background-color: #f0f3f6;
  color: #3d70b2;
}
.apim.bluemix .mainBanner .navigationMenu a {
  text-decoration: none;
}
.apim.bluemix .mainBanner .navigationMenu a h5:hover,
.apim.bluemix .mainBanner .navigationMenu a h5:focus {
  background-color: #f0f3f6;
  color: #3d70b2;
}
.apim.bluemix .mainBanner nav.titleBanner {
  background-color: #263943;
  overflow: visible !important;
}
.apim.bluemix .mainBanner .titleBanner .logo a {
  color: #fff;
}
.apim.bluemix .mainBanner .subBanner a.backLink {
  color: #3d70b2;
}
.apim.bluemix .mainBanner .subBanner button span.caret {
  color: #3d70b2;
}
.apim.bluemix .mainBanner .selected md-icon {
  fill: #3d70b2;
}
.apim.bluemix nav.subBanner {
  background-color: #f5f7fa;
  color: #152935;
}
.apim.bluemix nav.subBanner .menuList li.selected {
  border-color: #3d70b2;
  opacity: 1;
  -ms-filter: none;
  filter: none;
}
.apim.bluemix nav.subBanner .menuList li.selected a {
  color: #3d70b2;
}
.apim.bluemix .dropdown-menu li a {
  color: #333;
}
.apim.bluemix .dropdown-menu li a:hover,
.apim.bluemix .dropdown-menu li a:active {
  background-color: #f0f3f6;
  color: #3d70b2;
}
.apim.bluemix md-slider .md-thumb:after {
  border-color: #3d70b2;
}
.apim.bluemix md-slider .md-sign:after {
  border-top-color: #3d70b2;
}
.apim.bluemix md-input-container.md-input-focused label:not(.md-no-float) {
  color: #3d70b2;
}
.apim.bluemix md-input-container:not(.md-input-invalid).md-input-focused .md-input {
  border-color: #3d70b2;
}
.apim.bluemix md-radio-button .md-off {
  border-color: #3d70b2;
}
.apim.bluemix md-radio-button:not([disabled]).md-primary.md-checked .md-off {
  border-color: #3d70b2;
}
.apim.bluemix md-radio-button:not([disabled]).md-primary .md-on {
  background-color: #3d70b2;
}
.apim.bluemix md-slider .md-track.md-track-fill,
.apim.bluemix md-slider .md-thumb:after,
.apim.bluemix md-slider .md-sign {
  background-color: #3d70b2;
}
.apim.bluemix md-switch.md-checked .md-bar {
  background-color: #3d70b2;
}
.apim.bluemix md-checkbox.md-primary.md-checked:not([disabled]) .md-icon {
  background-color: #3d70b2;
}
.apim.bluemix .gettingStarted md-bottom-sheet.md-list {
  background-color: #fff;
  -webkit-box-shadow: 0 0 12px rgba(0,0,0,0.15);
  box-shadow: 0 0 12px rgba(0,0,0,0.15);
}
.apim.bluemix .gettingStarted md-bottom-sheet.md-list .md-subheader {
  background-color: #4178be;
  border-color: #4178be;
  color: #fff;
}
.apim.bluemix .gettingStarted md-bottom-sheet.md-list md-list-item {
  border-bottom: 1px solid rgba(216,216,216,0.25);
}
.apim.bluemix .gettingStarted md-bottom-sheet.md-list md-list-item .md-list-item-content:hover,
.apim.bluemix .gettingStarted md-bottom-sheet.md-list md-list-item .material-icons:hover {
  text-decoration: underline;
}
.apim.bluemix .gettingStarted md-bottom-sheet.md-list md-list-item.disabled {
  cursor: not-allowed;
  pointer-events: none;
}
.apim.bluemix .gettingStarted md-bottom-sheet.md-list md-list-item.disabled .md-list-item-content,
.apim.bluemix .gettingStarted md-bottom-sheet.md-list md-list-item.disabled .material-icons {
  color: #888 !important;
  cursor: not-allowed;
}
.apim.bluemix .gettingStarted md-bottom-sheet.md-list md-list-item.disabled > div {
  cursor: not-allowed;
  pointer-events: none;
}
.apim.bluemix .gettingStarted md-bottom-sheet.md-list md-list-item.completed .md-list-item-content {
  color: #444 !important;
}
.apim.bluemix .gettingStarted md-bottom-sheet.md-list md-list-item.completed .material-icons {
  color: #008000 !important;
}
.apim.bluemix .gettingStarted.secureGatewayTour .wraplist .md-list-item-content:hover {
  color: #3d70b2;
}
.apim.bluemix .gettingStartedMinimized .md-button.md-fab {
  background-color: #3d70b2;
  border: 0;
}
.apim.bluemix .gettingStartedMinimized .md-button.md-fab:hover {
  background-color: #3d70b2;
}
.apim.bluemix .tooltipContainer .tooltip .tooltip-arrow:after {
  color: #3d70b2;
}
.apim.bluemix apim-assembler .assemblerCanvas {
  background-color: #f5f7fa;
}
.apim.bluemix .catalogItem h1 {
  color: #3d70b2;
}
.apim.bluemix .detailsEditor {
  background-color: #f5f7fa;
}
.apim.bluemix .detailsContainer h2 {
  color: #3d70b2;
}
.apim.bluemix .spinner {
  background: #fff;
  background: -webkit-linear-gradient(left, #3d70b2 10%, rgba(255,255,255,0) 42%);
  background: -moz-linear-gradient(left, #3d70b2 10%, rgba(255,255,255,0) 42%);
  background: -o-linear-gradient(left, #3d70b2 10%, rgba(255,255,255,0) 42%);
  background: -ms-linear-gradient(left, #3d70b2 10%, rgba(255,255,255,0) 42%);
  background: linear-gradient(to right, #3d70b2 10%, rgba(255,255,255,0) 42%);
}
.apim.bluemix .spinner:before {
  background-color: #3d70b2;
}
.apim.bluemix .secondaryBackground .spinner {
  background-color: #f5f7fa;
}
.apim.bluemix .secondaryBackground .spinner:after {
  background-color: #f5f7fa;
}
.apim.bluemix .fileSelector:not(.fileSelected) .btn,
.apim.bluemix .fileSelector.fileSelected.showAsIcon .fileSelect {
  border: 1px solid #3d70b2;
  color: #3d70b2;
}
.apim.bluemix .fileSelector:not(.fileSelected) .btn:hover,
.apim.bluemix .fileSelector.fileSelected.showAsIcon .fileSelect:hover {
  background: #3d70b2;
  color: #fff;
}
.apim.bluemix .showAsIcon .fileSelect span {
  color: #3d70b2;
}
.apim.bluemix .environmentDetails .registryMenu button:focus {
  border-bottom: 2px solid #3d70b2;
}
.apim.bluemix .usersCollection a.secondaryText {
  color: #3d70b2;
}
.apim.bluemix .rightArrow:hover,
.apim.bluemix .leftArrow:hover {
  background-color: #3d70b2;
  color: #fff;
}
.apim.bluemix .card .approveComment div:hover {
  color: #3d70b2;
}
.apim.bluemix .feedbackBox .contentArea .ratingBox .selected .material-icons {
  color: #3d70b2;
  font-size: 64px;
}
.apim.bluemix .comboBox input:focus {
  border-color: #3d70b2;
}
.apim.bluemix .comboBox input:focus + .input-group-btn button {
  border-color: #3d70b2;
}
.apim.bluemix .messageArea .INFO {
  color: #3d70b2;
}
.apim.bluemix .pagination > .active a {
  color: #fff;
}
.apim.bluemix .pagination > li[ng-if='boundaryLinks'] a,
.apim.bluemix .pagination > li[ng-if='directionLinks'] a {
  font-size: 19px;
  padding: 0 10px;
}
.apim.bluemix .active > a,
.apim.bluemix .active > a:hover,
.apim.bluemix .active > a:focus,
.apim.bluemix .active > span,
.apim.bluemix .active > span:hover,
.apim.bluemix .active > span:focus {
  background-color: #3d70b2;
  border-color: #3d70b2;
}
.apim.bluemix .active > li > a:hover,
.apim.bluemix .active > li > span:hover,
.apim.bluemix .active > li > a:focus,
.apim.bluemix .active > li > span:focus {
  color: #3d70b2;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy90aGVtZS1ibHVlbWl4LWxpZ2h0LnN0eWwiLCIuLi9ub2RlX21vZHVsZXMvbmliL2xpYi9uaWIvdmVuZG9yLnN0eWwiLCIuLi9ub2RlX21vZHVsZXMvbmliL2xpYi9uaWIvYm9yZGVyLXJhZGl1cy5zdHlsIiwiLi4vbm9kZV9tb2R1bGVzL25pYi9saWIvbmliL292ZXJmbG93LnN0eWwiLCIuLi9ub2RlX21vZHVsZXMvbmliL2xpYi9uaWIvYm9yZGVyLnN0eWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7QUFZRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsT0FBTyxRQUFQOztBQUdBO0VBQ0Usa0JBQWtCLFFBQWxCOztBQUVGO0VBQ0UsT0FBTyxvQkFBUDs7QUFFSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0Usa0JBQWtCLFFBQWxCOztBQUdBO0FBQ0E7RUFDRSxrQkFBa0IsUUFBbEI7O0FBS0E7RUN5Y0YsWUFBVyxxQ0FBWDtFRHZjSSxPQUFPLFFBQVA7O0FBRUY7QUFDQTtFQUNFLGlCQUFpQixVQUFqQjs7QUFJRjs7RUFDRSxrQkFBa0IsUUFBbEI7RUVBTixlQUFjLElBQWQ7O0FGR0k7O0VBQ0UsT0FBTyxnQkFBUDs7QUFFQTtBQUNBOzs7RUFDRSxrQkFBa0IsWUFBbEI7RUFDQSxPQUFPLFFBQVA7O0FBRU47RUFDRSxPQUFPLFFBQVA7O0FBS0E7QUFDQTtFQUNFLGtCQUFrQixRQUFsQjtFR3BESixVQUFVLG1CQUFWOztBSHdERTtFQUNFLGtCQUFrQixRQUFsQjtFQUNBLE9BQU8sUUFBUDtFQUNBLGFBQWEsS0FBYjs7QUFFRjtFQUNFLGNBQWMsS0FBZDs7QUFFQTtBQUNBO0VBQ0Usa0JBQWtCLFFBQWxCO0VBQ0EsT0FBTyxRQUFQOztBQUVKO0VBQ0UsaUJBQWlCLEtBQWpCOztBQUdFO0FBQ0E7RUFDRSxrQkFBa0IsUUFBbEI7RUFDQSxPQUFPLFFBQVA7O0FBRVI7RUFDRSxrQkFBa0IsUUFBbEI7RUcvRUYsVUFBVSxtQkFBVjs7QUhrRkE7RUFDRSxPQUFPLEtBQVA7O0FBRUY7RUFDRSxPQUFPLFFBQVA7O0FBRUY7RUFDRSxPQUFPLFFBQVA7O0FBR0E7RUFDRSxNQUFNLFFBQU47O0FBRU47RUFDRSxrQkFBa0IsUUFBbEI7RUFDQSxPQUFPLFFBQVA7O0FBRUE7RUFDRSxjQUFjLFFBQWQ7RUNxSkosU0FBUyxFQUFUO0VBUU0sWUFBWSxLQUFaO0VBQ0EsUUFBUSxLQUFSOztBRDNKRjtFQUNFLE9BQU8sUUFBUDs7QUFHTjtFQUNFLE9BQU8sS0FBUDs7QUFFQTtBQUNBO0VBQ0Usa0JBQWtCLFFBQWxCO0VBQ0EsT0FBTyxRQUFQOztBQUlGO0VBQ0UsY0FBYyxRQUFkOztBQUVGO0VBQ0Usa0JBQWtCLFFBQWxCOztBQUlBO0VBQ0UsT0FBTyxRQUFQOztBQUVKO0VBQ0UsY0FBYyxRQUFkOztBQUdGO0VBQ0UsY0FBYyxRQUFkOztBQUdBO0VBQ0UsY0FBYyxRQUFkOztBQUVGO0VBQ0Usa0JBQWtCLFFBQWxCOztBQUdKO0FBQ0E7QUFDQTtFQUNFLGtCQUFrQixRQUFsQjs7QUFFSjtFQUNFLGtCQUFrQixRQUFsQjs7QUFFRjtFQUNFLGtCQUFrQixRQUFsQjs7QUFJQTtFQUNFLGtCQUFrQixLQUFsQjtFQ3JJWSxvQkFBRywwQkFBSDtFQVJILFlBQUcsMEJBQUg7O0FEZ0pUO0VBQ0Usa0JBQWtCLFFBQWxCO0VBQ0EsY0FBYyxRQUFkO0VBQ0EsT0FBTyxLQUFQOztBQUVGO0VBQ0UsZUFBZSxpQ0FBZjs7QUFJRTs7RUFDRSxpQkFBaUIsVUFBakI7O0FBRUo7RUM4VEosUUFBTyxZQUFQO0VENVRNLGdCQUFnQixLQUFoQjs7QUFFQTtBQUNBO0VBQ0UsT0FBTyxnQkFBUDtFQ3dUUixRQUFPLFlBQVA7O0FEclRNO0VDcVROLFFBQU8sWUFBUDtFRG5UUSxnQkFBZ0IsS0FBaEI7O0FBSUY7RUFDRSxPQUFPLGdCQUFQOztBQUVGO0VBQ0UsT0FBTyxtQkFBUDs7QUFFUjtFQUNFLE9BQU8sUUFBUDs7QUFHRjtFQUNFLGtCQUFrQixRQUFsQjtFSWpORixRQUFRLEVBQVI7O0FKb05FO0VBQ0Usa0JBQWtCLFFBQWxCOztBQUVOO0VBQ0UsT0FBTyxRQUFQOztBQUdGO0VBQ0Usa0JBQWtCLFFBQWxCOztBQUdGO0VBQ0UsT0FBTyxRQUFQOztBQUdGO0VBQ0Usa0JBQWtCLFFBQWxCOztBQUVGO0VBQ0UsT0FBTyxRQUFQOztBQUdGO0VDK1BFLFlBQVcsS0FBWDtFQXpjYyxZQUFHLG9FQUFIO0VBQUEsWUFBRyxpRUFBSDtFQUFBLFlBQUcsK0RBQUg7RUFBQSxZQUFHLGdFQUFIO0VBUkgsWUFBRyxnRUFBSDs7QURzTlg7RUFDRSxrQkFBa0IsUUFBbEI7O0FBRUo7RUFDRSxrQkFBa0IsUUFBbEI7O0FBRUE7RUFDRSxrQkFBa0IsUUFBbEI7O0FBR0o7QUFDQTtFSXpQRSxRQUFRLGtCQUFSO0VKMlBBLE9BQU8sUUFBUDs7QUFFQTs7RUM0T0EsWUFBVyxRQUFYO0VEMU9FLE9BQU8sS0FBUDs7QUFFSjtFQUNFLE9BQU8sUUFBUDs7QUFFRjtFQUNFLGVBQWUsa0JBQWY7O0FBRUY7RUFDRSxPQUFPLFFBQVA7O0FBRUY7QUFDQTtFQUNFLGtCQUFrQixRQUFsQjtFQUNBLE9BQU8sS0FBUDs7QUFFRjtFQUNFLE9BQU8sUUFBUDs7QUFFRjtFQUNFLE9BQU8sUUFBUDtFQUNBLFdBQVcsS0FBWDs7QUFHQTtFQUNFLGNBQWMsUUFBZDs7QUFFQTtFQUNFLGNBQWMsUUFBZDs7QUFFTjtFQUNFLE9BQU8sUUFBUDs7QUFJRTtFQUNFLE9BQU0sS0FBTjs7QUFHRjs7RUFDRSxXQUFVLEtBQVY7RUFDQSxTQUFTLE9BQVQ7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0Usa0JBQWtCLFFBQWxCO0VBQ0EsY0FBYyxRQUFkOztBQUtFO0FBQ0E7OztFQUNFLE9BQU8sUUFBUCIsImZpbGUiOiJjc3MvdGhlbWUtYmx1ZW1peC1saWdodC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIHtDT1BZUklHSFQtVE9QfSAqKipcbiogTGljZW5zZWQgTWF0ZXJpYWxzIC0gUHJvcGVydHkgb2YgSUJNXG4qIDU3MjUtWjIyLCA1NzI1LVo2MywgNTcyNS1VMzMsIDU3MjUtWjYzXG4qXG4qIChDKSBDb3B5cmlnaHQgSUJNIENvcnBvcmF0aW9uIDIwMTdcbipcbiogQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiogVVMgR292ZXJubWVudCBVc2VycyBSZXN0cmljdGVkIFJpZ2h0cyAtIFVzZSwgZHVwbGljYXRpb24gb3IgZGlzY2xvc3VyZVxuKiByZXN0cmljdGVkIGJ5IEdTQSBBRFAgU2NoZWR1bGUgQ29udHJhY3Qgd2l0aCBJQk0gQ29ycC5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioge0NPUFlSSUdIVC1FTkR9ICoqL1xuLmFwaW0uYmx1ZW1peFxuXG4gIGFcbiAgc2VsZWN0XG4gIC5oaWdobGlnaHRUZXh0XG4gIC5oaWdobGlnaHRUZXh0Q29udGFpbmVyOmhvdmVyIC5ob3ZlcmVkSGlnaGxpZ2h0VGV4dFxuICAuaG92ZXJlZEhpZ2hsaWdodFRleHQ6aG92ZXJcbiAgICBjb2xvcjogJHRleHQtbGluay1saWdodFxuXG4gIC50b2NcbiAgICAudG9jSXRlbSAuc2VsZWN0ZWQ6YmVmb3JlXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGV4dC1saW5rLWxpZ2h0XG5cbiAgICBhOm5vdCguc2VsZWN0ZWQpXG4gICAgICBjb2xvcjogJHRleHQtcHJpbWFyeS1saWdodFxuXG4gIC5zZWNvbmRhcnlCYWNrZ3JvdW5kXG4gIC5taW5vckNvbHVtblJpZ2h0XG4gIC51bnNlbGVjdGVkQ29sbGVjdGlvbkNvbnRlbnRcbiAgLnRhYmxlSGVhZGVyQmFja2dyb3VuZFxuICAudG9jXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtc2Vjb25kYXJ5LWxpZ2h0XG5cbiAgLnNlYXJjaENvbGxlY3Rpb25cbiAgICAuc2VhcmNoSW5wdXRcbiAgICAuc2VhcmNoSWNvblxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtc2Vjb25kYXJ5LWxpZ2h0XG5cbiAgLyoqIGJ1dHRvbnMgKiovXG4gIGJ1dHRvblxuICAgICYudGV4dE9ubHlCdXR0b25cbiAgICAgICY6bm90KDpkaXNhYmxlZClcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwKSBub25lIHJlcGVhdCBzY3JvbGwgMCAwXG4gICAgICAgIGNvbG9yOiAkdGV4dC1saW5rLWxpZ2h0XG5cbiAgICAgICY6aG92ZXJcbiAgICAgICY6Zm9jdXNcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcblxuICAgICYuYnV0dG9uQW5kTGFiZWxcbiAgICAmLmljb25Pbmx5QnV0dG9uXG4gICAgICAmLnByb3BlcnR5UmVxdWlyZWQgLy8gQHN0eWxpbnQgaWdub3JlIGNvbG9uc1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI3OGJmXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJVxuXG4gICAgICAmOm5vdCg6ZGlzYWJsZWQpXG4gICAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC41KVxuXG4gICAgICAgICY6aG92ZXJcbiAgICAgICAgJjpmb2N1c1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50XG4gICAgICAgICAgY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcblxuICAgICsgYnV0dG9uLmljb25Pbmx5QnV0dG9uLmRyb3Bkb3duLXRvZ2dsZVxuICAgICAgY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcblxuICAvKiogbmF2IGJhbm5lciAqKi9cbiAgLm1haW5CYW5uZXJcbiAgICBtZC1zaWRlbmF2XG4gICAgICBoMVxuICAgICAgaGVhZGVyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyNjM5NDNcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudCAvLyBAc3R5bGludCBpZ25vcmUgaW1wb3J0YW50XG5cbiAgICAubmF2aWdhdGlvbk1lbnVcbiAgICAgID4gbGkuaGlnaGxpZ2h0TWVudSBhIGg1XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYzZjZcbiAgICAgICAgY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGRcblxuICAgICAgLm5hdkl0ZW0gYVxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHhcblxuICAgICAgICAmOmhvdmVyXG4gICAgICAgICY6Zm9jdXNcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmM2Y2XG4gICAgICAgICAgY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcblxuICAgICAgYVxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcblxuICAgICAgICBoNVxuICAgICAgICAgICY6aG92ZXJcbiAgICAgICAgICAmOmZvY3VzXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmM2Y2XG4gICAgICAgICAgICBjb2xvcjogJHRleHQtbGluay1saWdodFxuXG4gICAgbmF2LnRpdGxlQmFubmVyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjYzOTQzXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50IC8vIEBzdHlsaW50IGlnbm9yZSBpbXBvcnRhbnRcblxuICAgIC50aXRsZUJhbm5lciAubG9nbyBhXG4gICAgICBjb2xvcjogd2hpdGVcblxuICAgIC5zdWJCYW5uZXIgYS5iYWNrTGlua1xuICAgICAgY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcblxuICAgIC5zdWJCYW5uZXIgYnV0dG9uIHNwYW4uY2FyZXRcbiAgICAgIGNvbG9yOiAkdGV4dC1saW5rLWxpZ2h0XG5cbiAgICAuc2VsZWN0ZWRcbiAgICAgIG1kLWljb25cbiAgICAgICAgZmlsbDogJHRleHQtbGluay1saWdodFxuXG4gIG5hdi5zdWJCYW5uZXJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1zZWNvbmRhcnktbGlnaHRcbiAgICBjb2xvcjogJHRleHQtcHJpbWFyeVxuXG4gICAgLm1lbnVMaXN0IGxpLnNlbGVjdGVkXG4gICAgICBib3JkZXItY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcbiAgICAgIG9wYWNpdHk6IDFcblxuICAgICAgYVxuICAgICAgICBjb2xvcjogJHRleHQtbGluay1saWdodFxuXG4gIC8qKiBkcm9wLWRvd25zICoqL1xuICAuZHJvcGRvd24tbWVudSBsaSBhXG4gICAgY29sb3I6ICMzMzNcblxuICAgICY6aG92ZXJcbiAgICAmOmFjdGl2ZVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjNmNlxuICAgICAgY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcblxuICAvKiogbWF0ZXJpYWwgc3R5bGVzICoqL1xuICBtZC1zbGlkZXJcbiAgICAubWQtdGh1bWI6YWZ0ZXJcbiAgICAgIGJvcmRlci1jb2xvcjogJHRleHQtbGluay1saWdodFxuXG4gICAgLm1kLXNpZ246YWZ0ZXJcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcblxuICBtZC1pbnB1dC1jb250YWluZXJcbiAgICAmLm1kLWlucHV0LWZvY3VzZWRcbiAgICAgIGxhYmVsOm5vdCgubWQtbm8tZmxvYXQpXG4gICAgICAgIGNvbG9yOiAkdGV4dC1saW5rLWxpZ2h0XG5cbiAgICAmOm5vdCgubWQtaW5wdXQtaW52YWxpZCkubWQtaW5wdXQtZm9jdXNlZCAubWQtaW5wdXRcbiAgICAgIGJvcmRlci1jb2xvcjogJHRleHQtbGluay1saWdodFxuXG4gIG1kLXJhZGlvLWJ1dHRvblxuICAgIC5tZC1vZmZcbiAgICAgIGJvcmRlci1jb2xvcjogJHRleHQtbGluay1saWdodFxuXG4gICAgJjpub3QoW2Rpc2FibGVkXSkubWQtcHJpbWFyeVxuICAgICAgJi5tZC1jaGVja2VkIC5tZC1vZmZcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkdGV4dC1saW5rLWxpZ2h0XG5cbiAgICAgIC5tZC1vblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGV4dC1saW5rLWxpZ2h0XG5cbiAgbWQtc2xpZGVyXG4gICAgLm1kLXRyYWNrLm1kLXRyYWNrLWZpbGxcbiAgICAubWQtdGh1bWI6YWZ0ZXJcbiAgICAubWQtc2lnblxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRleHQtbGluay1saWdodFxuXG4gIG1kLXN3aXRjaC5tZC1jaGVja2VkIC5tZC1iYXJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGV4dC1saW5rLWxpZ2h0XG5cbiAgbWQtY2hlY2tib3gubWQtcHJpbWFyeS5tZC1jaGVja2VkOm5vdChbZGlzYWJsZWRdKSAubWQtaWNvblxuICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcblxuICAvKiogZ2V0dGluZyBzdGFydGVkIG1lbnUgKiovXG4gIC5nZXR0aW5nU3RhcnRlZFxuICAgIG1kLWJvdHRvbS1zaGVldC5tZC1saXN0XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZVxuICAgICAgYm94LXNoYWRvdzogMCAwIDEycHggcmdiYSgwLCAwLCAwLCAuMTUpXG5cbiAgICAgIC5tZC1zdWJoZWFkZXJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQxNzhCRVxuICAgICAgICBib3JkZXItY29sb3I6ICM0MTc4QkVcbiAgICAgICAgY29sb3I6IHdoaXRlXG5cbiAgICAgIG1kLWxpc3QtaXRlbVxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyMTYsIDIxNiwgMjE2LCAuMjUpXG5cbiAgICAgICAgLm1kLWxpc3QtaXRlbS1jb250ZW50XG4gICAgICAgIC5tYXRlcmlhbC1pY29uc1xuICAgICAgICAgICY6aG92ZXJcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXG5cbiAgICAgICAgJi5kaXNhYmxlZFxuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWRcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZVxuXG4gICAgICAgICAgLm1kLWxpc3QtaXRlbS1jb250ZW50XG4gICAgICAgICAgLm1hdGVyaWFsLWljb25zXG4gICAgICAgICAgICBjb2xvcjogIzg4OCAhaW1wb3J0YW50IC8vIEBzdHlsaW50IGlnbm9yZSBpbXBvcnRhbnRcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWRcblxuICAgICAgICAgID4gZGl2XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZVxuXG4gICAgICAgICYuY29tcGxldGVkXG5cbiAgICAgICAgICAubWQtbGlzdC1pdGVtLWNvbnRlbnRcbiAgICAgICAgICAgIGNvbG9yOiAjNDQ0ICFpbXBvcnRhbnQgLy8gQHN0eWxpbnQgaWdub3JlIGltcG9ydGFudFxuXG4gICAgICAgICAgLm1hdGVyaWFsLWljb25zXG4gICAgICAgICAgICBjb2xvcjogZ3JlZW4gIWltcG9ydGFudCAvLyBAc3R5bGludCBpZ25vcmUgaW1wb3J0YW50XG5cbiAgICAmLnNlY3VyZUdhdGV3YXlUb3VyIC53cmFwbGlzdCAubWQtbGlzdC1pdGVtLWNvbnRlbnQ6aG92ZXJcbiAgICAgIGNvbG9yOiAkdGV4dC1saW5rLWxpZ2h0XG5cbiAgLmdldHRpbmdTdGFydGVkTWluaW1pemVkXG4gICAgLm1kLWJ1dHRvbi5tZC1mYWJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcbiAgICAgIGJvcmRlcjowXG5cbiAgICAgICY6aG92ZXJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRleHQtbGluay1saWdodFxuXG4gIC50b29sdGlwQ29udGFpbmVyIC50b29sdGlwIC50b29sdGlwLWFycm93OmFmdGVyXG4gICAgY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcblxuICAvKiogYXNzZW1ibHkgKiovXG4gIGFwaW0tYXNzZW1ibGVyIC5hc3NlbWJsZXJDYW52YXNcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1zZWNvbmRhcnktbGlnaHRcblxuICAvKiogY2F0YWxvZyAqKi9cbiAgLmNhdGFsb2dJdGVtIGgxXG4gICAgY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcblxuICAvKiogZGV0YWlscyBwYWdlICoqL1xuICAuZGV0YWlsc0VkaXRvclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLXNlY29uZGFyeS1saWdodFxuXG4gIC5kZXRhaWxzQ29udGFpbmVyIGgyXG4gICAgY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcblxuICAvKiogc3Bpbm5lciBpY29uICoqL1xuICAuc3Bpbm5lclxuICAgIGJhY2tncm91bmQ6ICNmZmZcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQobGVmdCwgJHRleHQtbGluay1saWdodCAxMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgNDIlKVxuXG4gICAgJjpiZWZvcmVcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcblxuICAuc2Vjb25kYXJ5QmFja2dyb3VuZCAuc3Bpbm5lclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLXNlY29uZGFyeS1saWdodFxuXG4gICAgJjphZnRlclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtc2Vjb25kYXJ5LWxpZ2h0XG5cbiAgLyoqIGZpbGUgc2VsZWN0b3IgKiovXG4gIC5maWxlU2VsZWN0b3I6bm90KC5maWxlU2VsZWN0ZWQpIC5idG5cbiAgLmZpbGVTZWxlY3Rvci5maWxlU2VsZWN0ZWQuc2hvd0FzSWNvbiAuZmlsZVNlbGVjdFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICR0ZXh0LWxpbmstbGlnaHRcbiAgICBjb2xvcjogJHRleHQtbGluay1saWdodFxuXG4gICAgJjpob3ZlclxuICAgICAgYmFja2dyb3VuZDogJHRleHQtbGluay1saWdodFxuICAgICAgY29sb3I6IHdoaXRlXG5cbiAgLnNob3dBc0ljb24gLmZpbGVTZWxlY3Qgc3BhblxuICAgIGNvbG9yOiAkdGV4dC1saW5rLWxpZ2h0XG5cbiAgLmVudmlyb25tZW50RGV0YWlscyAucmVnaXN0cnlNZW51IGJ1dHRvbjpmb2N1c1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkdGV4dC1saW5rLWxpZ2h0XG5cbiAgLnVzZXJzQ29sbGVjdGlvbiBhLnNlY29uZGFyeVRleHRcbiAgICBjb2xvcjogJHRleHQtbGluay1saWdodFxuXG4gIC5yaWdodEFycm93OmhvdmVyXG4gIC5sZWZ0QXJyb3c6aG92ZXJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGV4dC1saW5rLWxpZ2h0XG4gICAgY29sb3I6IHdoaXRlXG5cbiAgLmNhcmQgLmFwcHJvdmVDb21tZW50IGRpdjpob3ZlclxuICAgIGNvbG9yOiAkdGV4dC1saW5rLWxpZ2h0XG5cbiAgLmZlZWRiYWNrQm94IC5jb250ZW50QXJlYSAucmF0aW5nQm94IC5zZWxlY3RlZCAubWF0ZXJpYWwtaWNvbnNcbiAgICBjb2xvcjogJHRleHQtbGluay1saWdodFxuICAgIGZvbnQtc2l6ZTogNjRweFxuXG4gIC5jb21ib0JveFxuICAgIGlucHV0OmZvY3VzXG4gICAgICBib3JkZXItY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcblxuICAgICAgKyAuaW5wdXQtZ3JvdXAtYnRuIGJ1dHRvblxuICAgICAgICBib3JkZXItY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcblxuICAubWVzc2FnZUFyZWEgLklORk9cbiAgICBjb2xvcjogJHRleHQtbGluay1saWdodFxuXG4gIC5wYWdpbmF0aW9uID5cbiAgICAuYWN0aXZlXG4gICAgICBhXG4gICAgICAgIGNvbG9yOiNmZmZmZmZcbiAgICBsaVtuZy1pZj0nYm91bmRhcnlMaW5rcyddXG4gICAgbGlbbmctaWY9J2RpcmVjdGlvbkxpbmtzJ11cbiAgICAgIGFcbiAgICAgICAgZm9udC1zaXplOjE5cHhcbiAgICAgICAgcGFkZGluZzogMCAxMHB4XG5cbiAgLmFjdGl2ZSA+XG4gICAgYVxuICAgIGE6aG92ZXJcbiAgICBhOmZvY3VzXG4gICAgc3BhblxuICAgIHNwYW46aG92ZXJcbiAgICBzcGFuOmZvY3VzXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGV4dC1saW5rLWxpZ2h0XG4gICAgICBib3JkZXItY29sb3I6ICR0ZXh0LWxpbmstbGlnaHRcblxuICAgIGxpID4gLy8gQHN0eWxpbnQgaWdub3JlIGNvbG9uc1xuICAgICAgYVxuICAgICAgc3BhblxuICAgICAgICAmOmhvdmVyXG4gICAgICAgICY6Zm9jdXNcbiAgICAgICAgICBjb2xvcjogJHRleHQtbGluay1saWdodFxuICAiLCJ1c2UoJy4uL25vZGVzL3ZlbmRvci1oZWxwZXJzLmpzJylcbkBpbXBvcnQgJ2NvbmZpZydcblxuLypcbiAqIEFsaWFzIFwibm93cmFwXCIgYXMgXCJuby13cmFwXCIuXG4gKi9cblxubm8td3JhcCA9IHVucXVvdGUoJ25vd3JhcCcpXG5cbi8qXG4gKiBIZWxwZXIgdG8gZmluZCBvdXQgaWYgYSBnaXZlbiB2YWx1ZSBpcyBhIHdpZHRoXG4gKi9cblxuaXMtd2lkdGgodmFsKVxuICBpZiBhdXRvID09IHZhbFxuICAgIHJldHVybiB0cnVlXG4gIGVsc2UgaWYgdmFsICYmICd1bml0JyA9PSB0eXBlKHZhbClcbiAgICAvLyBTdHlsdXMgZG9lcyBub3Qgc2hvcnQgY2lyY3VpdCBzbyB3ZSBuZWVkIHRvIHBlcmZvcm0gdGhpcyBhcyBhIGRpc3RpbmN0XG4gICAgLy8gb3BlcmF0aW9uIHRvIHByZXZlbnQgZXJyb3JzXG4gICAgcmV0dXJuICcnICE9IHVuaXQodmFsKVxuICByZXR1cm4gZmFsc2VcblxuLypcbiAqIFZlbmRvciBzdXBwb3J0IGZvciB0aGUgZ2l2ZW4gcHJvcCAvIGFyZ3VtZW50cywgb3B0aW9uYWxseSBzcGVjaWZ5aW5nIHRoZVxuICogb25seSBwcmVmaXhlcyB0byB1dGlsaXplLCBvciB0aG9zZSB3aGljaCBzaG91bGQgYmUgaWdub3JlZC5cbiAqL1xuXG52ZW5kb3IocHJvcCwgYXJncywgb25seSA9IG51bGwsIGlnbm9yZSA9IG51bGwsIHZlbmRvci1wcm9wZXJ0eSA9IHRydWUpXG4gIG5lZWRfbm9ybWFsaXplID0gIXZlbmRvci1wcm9wZXJ0eSBvciBwcm9wIGluICgndHJhbnNpdGlvbicgJ3RyYW5zaXRpb24tcHJvcGVydHknICdib3JkZXItaW1hZ2UnICdib3JkZXItaW1hZ2Utc2xpY2UnKVxuICBmb3IgcHJlZml4IGluIHZlbmRvci1wcmVmaXhlc1xuICAgIHVubGVzcyAob25seSBhbmQgIShwcmVmaXggaW4gb25seSkpIG9yIChpZ25vcmUgYW5kIHByZWZpeCBpbiBpZ25vcmUpXG4gICAgICBpZiBvZmZpY2lhbCA9PSBwcmVmaXhcbiAgICAgICAgaWYgbmVlZF9ub3JtYWxpemVcbiAgICAgICAgICB7cHJvcH06IG5vcm1hbGl6ZShwcm9wLCgnJXMnICUgYXJncykpXG4gICAgICAgIGVsc2VcbiAgICAgICAgICB7cHJvcH06IGFyZ3NcbiAgICAgIGVsc2VcbiAgICAgICAgbmV3cHJvcCA9IHByb3BcbiAgICAgICAgbmV3cHJvcCA9ICctJyArIHByZWZpeCArICctJyArIHByb3AgaWYgdmVuZG9yLXByb3BlcnR5XG5cbiAgICAgICAgaWYgbmVlZF9ub3JtYWxpemVcbiAgICAgICAgICB7bmV3cHJvcH06IG5vcm1hbGl6ZShwcm9wLCgnJXMnICUgYXJncykscHJlZml4KVxuICAgICAgICBlbHNlXG4gICAgICAgICAge25ld3Byb3B9OiBhcmdzXG4vKlxuICogVmVuZG9yaXplIHRoZSBnaXZlbiB2YWx1ZS5cbiAqL1xuXG52ZW5kb3ItdmFsdWUoYXJnLCBvbmx5ID0gbnVsbCwgaWdub3JlID0gbnVsbClcbiAgcHJvcCA9IGN1cnJlbnQtcHJvcGVydHlbMF1cbiAgZm9yIHByZWZpeCBpbiB2ZW5kb3ItcHJlZml4ZXNcbiAgICB1bmxlc3MgKG9ubHkgYW5kICEocHJlZml4IGluIG9ubHkpKSBvciAoaWdub3JlIGFuZCBwcmVmaXggaW4gaWdub3JlKSBvciBvZmZpY2lhbCA9PSBwcmVmaXhcbiAgICAgIGFkZC1wcm9wZXJ0eShwcm9wLCAnLSVzLSVzJyAlIChwcmVmaXggYXJnKSlcbiAgYXJnXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtc2hhZG93XCIgc3VwcG9ydC5cbiAqL1xuXG5ib3gtc2hhZG93KClcbiAgdmVuZG9yKCdib3gtc2hhZG93JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJ1c2VyLXNlbGVjdFwiIHN1cHBvcnQuXG4gKi9cblxudXNlci1zZWxlY3QoKVxuICB2ZW5kb3IoJ3VzZXItc2VsZWN0JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG1zIG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiY29sdW1uLWNvdW50XCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tY291bnQoKVxuICB2ZW5kb3IoJ2NvbHVtbi1jb3VudCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1nYXBcIiBzdXBwb3J0LlxuICovXG5cbmNvbHVtbi1nYXAoKVxuICB2ZW5kb3IoJ2NvbHVtbi1nYXAnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tcnVsZVwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXJ1bGUoKVxuICB2ZW5kb3IoJ2NvbHVtbi1ydWxlJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiY29sdW1uLXJ1bGUtY29sb3JcIiBzdXBwb3J0LlxuICovXG5cbmNvbHVtbi1ydWxlLWNvbG9yKClcbiAgdmVuZG9yKCdjb2x1bW4tcnVsZS1jb2xvcicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1ydWxlLXdpZHRoXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tcnVsZS13aWR0aCgpXG4gIHZlbmRvcignY29sdW1uLXJ1bGUtd2lkdGgnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tcnVsZS1zdHlsZVwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXJ1bGUtc3R5bGUoKVxuICB2ZW5kb3IoJ2NvbHVtbi1ydWxlLXN0eWxlJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiY29sdW1uLXdpZHRoXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4td2lkdGgoKVxuICB2ZW5kb3IoJ2NvbHVtbi13aWR0aCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1zcGFuXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tc3BhbigpXG4gIHZlbmRvcignY29sdW1uLXNwYW4nLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1maWxsXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tZmlsbCgpXG4gIHZlbmRvcignY29sdW1uLWZpbGwnLCBhcmd1bWVudHMsIG9ubHk6IG1veilcblxuLypcbiAqIExlZ2FjeSBzeW50YXggc3VwcG9ydCBmb3IgYmFja2dyb3VuZC1jbGlwIGFuZCBiYWNrZ3JvdW5kLW9yaWdpblxuICovXG5cbmxlZ2FjeS1iZy12YWx1ZXMocHJvcGVydHksIGFyZ3MpXG4gIGxlZ2FjeV9hcmdzID0gKClcbiAgaW1wb3J0YW5jZSA9IHVucXVvdGUoJycpXG4gIGZvciBzdWJhcmdzIGluIGFyZ3NcbiAgICBmb3IgYXJnIGluIHN1YmFyZ3NcbiAgICAgIGlmIGFyZyBpbiAoYm9yZGVyLWJveCBwYWRkaW5nLWJveCBjb250ZW50LWJveClcbiAgICAgICAgYXJnID0gdW5xdW90ZSgnYm9yZGVyJykgIGlmIGFyZyA9PSBib3JkZXItYm94XG4gICAgICAgIGFyZyA9IHVucXVvdGUoJ3BhZGRpbmcnKSBpZiBhcmcgPT0gcGFkZGluZy1ib3hcbiAgICAgICAgYXJnID0gdW5xdW90ZSgnY29udGVudCcpIGlmIGFyZyA9PSBjb250ZW50LWJveFxuICAgICAgaWYgYXJnICE9ICchaW1wb3J0YW50J1xuICAgICAgICBwdXNoKGxlZ2FjeV9hcmdzLGFyZylcbiAgICAgIGVsc2VcbiAgICAgICAgaW1wb3J0YW5jZSA9ICFpbXBvcnRhbnRcbiAgdmVuZG9yKHByb3BlcnR5LCB1bnF1b3RlKGpvaW4oJywgJyxsZWdhY3lfYXJncykpIGltcG9ydGFuY2UsIG9ubHk6IG1veiB3ZWJraXQpXG5cbi8qXG4gKiBWZW5kb3IgXCJiYWNrZ3JvdW5kLWNsaXBcIiBzdXBwb3J0LlxuICovXG5cbmJhY2tncm91bmQtY2xpcCgpXG4gIGlmIGFyZ3VtZW50c1swXSA9PSB0ZXh0XG4gICAgdmVuZG9yKCdiYWNrZ3JvdW5kLWNsaXAnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdClcbiAgZWxzZVxuICAgIGxlZ2FjeS1iZy12YWx1ZXMoJ2JhY2tncm91bmQtY2xpcCcsIGFyZ3VtZW50cylcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IGFyZ3VtZW50c1xuXG4vKlxuICogVmVuZG9yIFwiYmFja2dyb3VuZC1vcmlnaW5cIiBzdXBwb3J0LlxuICovXG5cbmJhY2tncm91bmQtb3JpZ2luKClcbiAgbGVnYWN5LWJnLXZhbHVlcygnYmFja2dyb3VuZC1vcmlnaW4nLCBhcmd1bWVudHMpXG4gIGJhY2tncm91bmQtb3JpZ2luOiBhcmd1bWVudHNcblxuLypcbiAqIFZlbmRvciBcImJhY2tncm91bmQtc2l6ZVwiIHN1cHBvcnQuXG4gKi9cblxuYmFja2dyb3VuZC1zaXplKClcbiAgdmVuZG9yKCdiYWNrZ3JvdW5kLXNpemUnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2Zvcm1cIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zZm9ybSgpXG4gIHZlbmRvcigndHJhbnNmb3JtJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNmb3JtLW9yaWdpblwiIHN1cHBvcnQuXG4gKi9cbnRyYW5zZm9ybS1vcmlnaW4oKVxuICAgIHZlbmRvcigndHJhbnNmb3JtLW9yaWdpbicsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcInRyYW5zZm9ybS1zdHlsZVwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNmb3JtLXN0eWxlKClcbiAgdmVuZG9yKCd0cmFuc2Zvcm0tc3R5bGUnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3JkZXItaW1hZ2VcIiBzdXBwb3J0LlxuICovXG5cbmJvcmRlci1pbWFnZSgpXG4gIHZlbmRvcignYm9yZGVyLWltYWdlJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG8gb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2l0aW9uXCIgc3VwcG9ydC5cbiAqL1xuXG50cmFuc2l0aW9uKClcbiAgdmVuZG9yKCd0cmFuc2l0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNpdGlvbi1wcm9wZXJ0eVwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbi1wcm9wZXJ0eSgpXG4gIHZlbmRvcigndHJhbnNpdGlvbi1wcm9wZXJ0eScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcInRyYW5zaXRpb24tZHVyYXRpb25cIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zaXRpb24tZHVyYXRpb24oKVxuICB2ZW5kb3IoJ3RyYW5zaXRpb24tZHVyYXRpb24nLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvblwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oKVxuICB2ZW5kb3IoJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNpdGlvbi1kZWxheVwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbi1kZWxheSgpXG4gIHZlbmRvcigndHJhbnNpdGlvbi1kZWxheScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImJhY2tmYWNlLXZpc2liaWxpdHlcIiBzdXBwb3J0LlxuICovXG5cbmJhY2tmYWNlLXZpc2liaWxpdHkoKVxuICB2ZW5kb3IoJ2JhY2tmYWNlLXZpc2liaWxpdHknLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJwZXJzcGVjdGl2ZVwiIHN1cHBvcnQuXG4gKi9cblxucGVyc3BlY3RpdmUoKVxuICBpZiBtaXhpblxuICAgIHZlbmRvcigncGVyc3BlY3RpdmUnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG4gIGVsc2VcbiAgICAncGVyc3BlY3RpdmUoJXMpJyAlIGFyZ3VtZW50c1xuXG4vKlxuICogVmVuZG9yIFwicGVyc3BlY3RpdmUtb3JpZ2luXCIgc3VwcG9ydC5cbiAqL1xuXG5wZXJzcGVjdGl2ZS1vcmlnaW4oKVxuICB2ZW5kb3IoJ3BlcnNwZWN0aXZlLW9yaWdpbicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIE9wYWNpdHkgd2l0aCBjb25kaXRpb25hbCBJRSBzdXBwb3J0LlxuICovXG5cbm9wYWNpdHkobiwgYXJncy4uLilcbiAgb3BhY2l0eTogbiBhcmdzXG4gIGlmIHN1cHBvcnQtZm9yLWllXG4gICAgaWYgbiA9PSBpbmhlcml0IG9yIG4gPT0gaW5pdGlhbFxuICAgICAgLW1zLWZpbHRlcjogbiBhcmdzXG4gICAgICBmaWx0ZXI6IG4gYXJnc1xuICAgIGVsc2VcbiAgICAgIHZhbCA9IHJvdW5kKG4gKiAxMDApXG4gICAgICBpZiB2YWwgPT0gMTAwXG4gICAgICAgIC1tcy1maWx0ZXI6IG5vbmUgYXJnc1xuICAgICAgICBmaWx0ZXI6IG5vbmUgYXJnc1xuICAgICAgZWxzZVxuICAgICAgICAtbXMtZmlsdGVyOiAnXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0lcylcIicgJSB2YWwgYXJnc1xuICAgICAgICBmaWx0ZXI6ICdhbHBoYShvcGFjaXR5PSVzKScgJSB2YWwgYXJnc1xuXG4vKlxuICogVmVuZG9yIFwidGV4dC1zaXplLWFkanVzdFwiXG4gKi9cblxudGV4dC1zaXplLWFkanVzdCgpXG4gIHZlbmRvcigndGV4dC1zaXplLWFkanVzdCcsIGFyZ3VtZW50cylcblxuLypcbiAqIEFsaWFzIHRoZSBcIndoaXRlLXNwYWNlXCIgcHJvcGVydHkuXG4gKi9cblxud2hpdGVzcGFjZSgpXG4gIHdoaXRlLXNwYWNlOiBhcmd1bWVudHNcblxuLypcbiAqIFZlbmRvciBcImJveC1zaXppbmdcIiBzdXBwb3J0LlxuICovXG5cbmJveC1zaXppbmcoKVxuICB2ZW5kb3IoJ2JveC1zaXppbmcnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtb3JpZW50XCIgc3VwcG9ydC5cbiAqL1xuXG5ib3gtb3JpZW50KClcbiAgdmVuZG9yKCdib3gtb3JpZW50JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiYm94LWZsZXgtZ3JvdXBcIiBzdXBwb3J0LlxuICovXG5cbmJveC1mbGV4LWdyb3VwKClcbiAgdmVuZG9yKCdib3gtZmxleC1ncm91cCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImJveC1vcmRpbmFsLWdyb3VwXCIgc3VwcG9ydC5cbiAqL1xuXG5ib3gtb3JkaW5hbC1ncm91cCgpXG4gIHZlbmRvcignYm94LW9yZGluYWwtZ3JvdXAnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cblxuLypcbiAqIFZlbmRvciBcImJveC1hbGlnblwiIHN1cHBvcnQuXG4gKi9cblxuYm94LWFsaWduKClcbiAgdmVuZG9yKCdib3gtYWxpZ24nLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtcGFja1wiIHN1cHBvcnQuXG4gKi9cblxuYm94LXBhY2soKVxuICB2ZW5kb3IoJ2JveC1wYWNrJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG1zIG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiYm94LWRpcmVjdGlvblwiIHN1cHBvcnQuXG4gKi9cblxuYm94LWRpcmVjdGlvbigpXG4gIHZlbmRvcignYm94LWRpcmVjdGlvbicsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvblwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uKClcbiAgdmVuZG9yKCdhbmltYXRpb24nLCBhcmd1bWVudHMpXG5cblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1uYW1lXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tbmFtZSgpXG4gIHZlbmRvcignYW5pbWF0aW9uLW5hbWUnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24tZHVyYXRpb25cIiBzdXBwb3J0LlxuICovXG5cbmFuaW1hdGlvbi1kdXJhdGlvbigpXG4gIHZlbmRvcignYW5pbWF0aW9uLWR1cmF0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYW5pbWF0aW9uLWRlbGF5XCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tZGVsYXkoKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi1kZWxheScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1kaXJlY3Rpb25cIiBzdXBwb3J0LlxuICovXG5cbmFuaW1hdGlvbi1kaXJlY3Rpb24oKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi1kaXJlY3Rpb24nLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24taXRlcmF0aW9uLWNvdW50XCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24taXRlcmF0aW9uLWNvdW50KClcbiAgdmVuZG9yKCdhbmltYXRpb24taXRlcmF0aW9uLWNvdW50JywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvblwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigpXG4gIHZlbmRvcignYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbicsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1wbGF5LXN0YXRlXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tcGxheS1zdGF0ZSgpXG4gIHZlbmRvcignYW5pbWF0aW9uLXBsYXktc3RhdGUnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24tZmlsbC1tb2RlXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tZmlsbC1tb2RlKClcbiAgdmVuZG9yKCdhbmltYXRpb24tZmlsbC1tb2RlJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiaHlwaGVuc1wiIHN1cHBvcnQuXG4gKi9cblxuaHlwaGVucygpXG4gIHZlbmRvcignaHlwaGVucycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImFwcGVhcmFuY2VcIiBzdXBwb3J0LlxuICovXG5cbmFwcGVhcmFuY2UoKVxuICB2ZW5kb3IoJ2FwcGVhcmFuY2UnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0YWItc2l6ZVwiIHN1cHBvcnQuXG4gKi9cblxudGFiLXNpemUoKVxuICB2ZW5kb3IoJ3RhYi1zaXplJywgYXJndW1lbnRzLCBvbmx5OiBtb3ogbyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcIm92ZXJmbG93LXNjcm9sbGluZ1wiIHN1cHBvcnQuXG4gKi9cblxub3ZlcmZsb3ctc2Nyb2xsaW5nKClcbiAgdmVuZG9yKCdvdmVyZmxvdy1zY3JvbGxpbmcnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcInRleHQtb3ZlcmZsb3dcIiBzdXBwb3J0LCAsIC1vLSBmb3Igb3BlcmEgOS4qIC0gMTAuKlxuICovXG5cbnRleHQtb3ZlcmZsb3coKVxuICB2ZW5kb3IoJ3RleHQtb3ZlcmZsb3cnLCBhcmd1bWVudHMsIG9ubHk6IG9mZmljaWFsIG8pXG5cbi8qXG4gKiBWZW5kb3IgXCJ0ZXh0LXNpemUtYWRqdXN0XCIgc3VwcG9ydC5cbiAqL1xudGV4dC1zaXplLWFkanVzdCgpXG4gIHZlbmRvcigndGV4dC1zaXplLWFkanVzdCcsIGFyZ3VtZW50cywgb25seTogb2ZmaWNpYWwgd2Via2l0IG1zKVxuXG4vKlxuICogVmVuZG9yIFwiZm9udC1zbW9vdGhpbmdcIiBzdXBwb3J0LCB3ZWJraXQgb25seS5cbiAqL1xuZm9udC1zbW9vdGhpbmcoKVxuICB2ZW5kb3IoJ2ZvbnQtc21vb3RoaW5nJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQpXG5cblxuLyoqXG4gKiBWZW5kb3IgaW5wdXQtcGxhY2Vob2xkZXIvcGxhY2Vob2xkZXIgc3VwcG9ydC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqICAgIC8vIERlZmF1bHQgc3ludGF4XG4gKiAgICBib2R5XG4gKiAgICAgIHBsYWNlaG9sZGVyKGNvbG9yICMzMzMsIGZvbnQtd2VpZ2h0IG5vcm1hbClcbiAqXG4gKiAgICAvLyBUaGUgY29tbWEgaXMgaW1wb3J0YW50XG4gKiAgICAucGxhY2Vob2xkZXItcmVkXG4gKiAgICAgIHBsYWNlaG9sZGVyKGNvbG9yIHJlZCwpXG4gKlxuICogICAgLy8gV2UgY2FuIHBhc3MgYSBmdW5jdGlvblxuICogICAgZ3JlZW4tcGxhY2Vob2xkZXIoKVxuICogICAgICBjb2xvciBncmVlblxuICogICAgLnBsYWNlaG9sZGVyLWdyZWVuXG4gKiAgICAgIHBsYWNlaG9sZGVyKGdyZWVuLXBsYWNlaG9sZGVyKVxuICpcbiAqICAgIC8vIFdlIGNhbiBwYXNzIGEgaGFzaFxuICogICAgdGV4dGFyZWFcbiAqICAgICAgcGxhY2Vob2xkZXIoKGZvbnQtc3R5bGUgaXRhbGljKSAoZm9udC13ZWlnaHQgYm9sZCkgKHBhZGRpbmcgJzRweCAxMHB4JykpXG4gKi9cbnBsYWNlaG9sZGVyKClcbiAgZm9yIHYgaW4gJzotd2Via2l0LWlucHV0JyAnLW1veicgJzotbW96JyAnLW1zLWlucHV0J1xuICAgICY6e3Z9LXBsYWNlaG9sZGVyXG4gICAgICBmb3IgcGFpciBpbiBhcmd1bWVudHNcbiAgICAgICAgaWYgdHlwZW9mKHBhaXIpID09ICdmdW5jdGlvbidcbiAgICAgICAgICBwYWlyKClcbiAgICAgICAgZWxzZSBpZiBwYWlyIGlzIG5vdCBudWxsICYmIHBhaXJbMF0gaXMgbm90IG51bGxcbiAgICAgICAgICB7cGFpclswXX06IHR5cGUocGFpclsxXSkgPT0gJ3N0cmluZycgPyBzKHBhaXJbMV0pIDogcGFpclsxXVxuaW5wdXQtcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlclxuXG4vKlxuICogVmVuZG9yIGJhY2tncm91bmQgc3VwcG9ydCAoZ3JhZGllbnRzKS5cbiAqL1xuXG5iYWNrZ3JvdW5kKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2JhY2tncm91bmQnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBiYWNrZ3JvdW5kIGFyZ3VtZW50c1xuXG5iYWNrZ3JvdW5kLWltYWdlKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2JhY2tncm91bmQtaW1hZ2UnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBiYWNrZ3JvdW5kLWltYWdlIGFyZ3VtZW50c1xuXG5jdXJzb3IoKVxuICBpZiBtYXRjaCgnLWdyYWRpZW50XFwoJywgJycrYXJndW1lbnRzKVxuICAgIHZlbmRvcignY3Vyc29yJywgYXJndW1lbnRzLCB2ZW5kb3ItcHJvcGVydHk6IGZhbHNlKVxuICBlbHNlXG4gICAgY3Vyc29yIGFyZ3VtZW50c1xuXG5saXN0LXN0eWxlKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2xpc3Qtc3R5bGUnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBsaXN0LXN0eWxlIGFyZ3VtZW50c1xuXG5saXN0LXN0eWxlLWltYWdlKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2xpc3Qtc3R5bGUtaW1hZ2UnLCBhcmd1bWVudHMsIHZlbmRvci1wcm9wZXJ0eTogZmFsc2UpXG4gIGVsc2VcbiAgICBsaXN0LXN0eWxlLWltYWdlIGFyZ3VtZW50c1xuIiwiLypcbiAqIEhlbHBlciBmb3IgYm9yZGVyLXJhZGl1cygpLlxuICovXG5cbi1hcHBseS1ib3JkZXItcmFkaXVzKHBvcywgaW1wb3J0YW5jZSlcbiAgaWYgbGVuZ3RoKHBvcykgPT0gM1xuICAgIC8vIGJvcmRlci1yYWRpdXM6IDx0b3AgfCBib3R0b20+IDxsZWZ0IHwgcmlnaHQ+IDxuPlxuICAgIHkgPSBwb3NbMF1cbiAgICB4ID0gcG9zWzFdXG4gICAgLy8gV2UgZG9uJ3QgdXNlIHZlbmRvciBmb3IgYm9kZXItcmFkaXVzIGFueW1vcmVcbiAgICAvLyB2ZW5kb3IoJ2JvcmRlci1yYWRpdXMtJXMlcycgJSBwb3MsIHBvc1syXSwgb25seTogd2Via2l0IG9mZmljaWFsKVxuICAgIHsnYm9yZGVyLSVzLSVzLXJhZGl1cycgJSBwb3N9OiBwb3NbMl0gaW1wb3J0YW5jZVxuICBlbHNlIGlmIHBvc1swXSBpbiAodG9wIGJvdHRvbSlcbiAgICAvLyBib3JkZXItcmFkaXVzOiA8dG9wIHwgYm90dG9tPiA8bj5cbiAgICAtYXBwbHktYm9yZGVyLXJhZGl1cyhwb3NbMF0gbGVmdCBwb3NbMV0sIGltcG9ydGFuY2UpXG4gICAgLWFwcGx5LWJvcmRlci1yYWRpdXMocG9zWzBdIHJpZ2h0IHBvc1sxXSwgaW1wb3J0YW5jZSlcbiAgZWxzZSBpZiBwb3NbMF0gaW4gKGxlZnQgcmlnaHQpXG4gICAgLy8gYm9yZGVyLXJhZGl1czogPGxlZnQgfCByaWdodD4gPG4+XG4gICAgdW5zaGlmdChwb3MsIHRvcCk7XG4gICAgLWFwcGx5LWJvcmRlci1yYWRpdXMocG9zLCBpbXBvcnRhbmNlKVxuICAgIHBvc1swXSA9IGJvdHRvbVxuICAgIC1hcHBseS1ib3JkZXItcmFkaXVzKHBvcywgaW1wb3J0YW5jZSlcblxuLypcbiAqIGJvcmRlci1yYWRpdXMgc3VwcG9ydGluZyBhdWdtZW50ZWQgYmVoYXZpb3IuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgYm9yZGVyLXJhZGl1czogMnB4IDVweFxuICogICAgYm9yZGVyLXJhZGl1czogdG9wIDVweCBib3R0b20gMTBweFxuICogICAgYm9yZGVyLXJhZGl1czogbGVmdCA1cHhcbiAqICAgIGJvcmRlci1yYWRpdXM6IHRvcCBsZWZ0IDVweFxuICogICAgYm9yZGVyLXJhZGl1czogdG9wIGxlZnQgMTBweCBib3R0b20gcmlnaHQgNXB4XG4gKiAgICBib3JkZXItcmFkaXVzOiB0b3AgbGVmdCAxMHB4LCBib3R0b20gcmlnaHQgNXB4XG4gKlxuICovXG5cbmJvcmRlci1yYWRpdXMoKVxuICBwb3MgPSAoKVxuICBhdWdtZW50ZWQgPSBmYWxzZVxuICBpbXBvcnRhbmNlID0gYXJndW1lbnRzW2xlbmd0aChhcmd1bWVudHMpIC0gMV0gPT0gIWltcG9ydGFudCA/ICFpbXBvcnRhbnQgOiB1bnF1b3RlKCcnKVxuXG4gIGZvciBhcmdzIGluIGFyZ3VtZW50c1xuICAgIGZvciBhcmcgaW4gYXJnc1xuICAgICAgaWYgYXJnIGlzIGEgJ2lkZW50J1xuICAgICAgICBhcHBlbmQocG9zLCBhcmcpXG4gICAgICAgIGF1Z21lbnRlZCA9IHRydWVcbiAgICAgIGVsc2VcbiAgICAgICAgYXBwZW5kKHBvcywgYXJnKVxuICAgICAgICBpZiBhdWdtZW50ZWRcbiAgICAgICAgICAtYXBwbHktYm9yZGVyLXJhZGl1cyhwb3MsIGltcG9ydGFuY2UpXG4gICAgICAgICAgcG9zID0gKClcbiAgYm9yZGVyLXJhZGl1cyBwb3MgdW5sZXNzIGF1Z21lbnRlZFxuIiwiLypcbiAqIE92ZXJmbG93IHV0aWxpdHkuIE1hcHMgdG8gcmVndWxhciBvdmVyZmxvdywgYW5kIGFkZHMgYW4gZWxsaXBzaXMgdmFsdWUuXG4gKlxuICogU3lub3BzaXM6XG4gKlxuICogICBvdmVyZmxvdzogPHR5cGU+XG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgIG92ZXJmbG93OiBhdXRvXG4gKiAgICAgb3ZlcmZsb3c6IGhpZGRlblxuICogICAgIG92ZXJmbG93OiBlbGxpcHNpc1xuICpcbiAqL1xuXG5vdmVyZmxvdygpXG4gIGlmIGFyZ3VtZW50c1swXSA9PSBlbGxpcHNpc1xuICAgIGVsbGlwc2lzKClcbiAgZWxzZVxuICAgIG92ZXJmbG93OiBhcmd1bWVudHNcbiIsIi8qXG4gKiBib3JkZXI6IDxjb2xvcj5cbiAqIGJvcmRlcjogLi4uXG4gKi9cblxuYm9yZGVyKGNvbG9yLCBhcmdzLi4uKVxuICBpZiBjb2xvciBpcyBhICdjb2xvcidcbiAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvciBhcmdzXG4gIGVsc2VcbiAgICBib3JkZXI6IGFyZ3VtZW50c1xuIl19 */
