@charset "UTF-8";
/***
 * Color variables:
 */
/**
 * Main color:
 * `@action-color`
 * The main action color.
 *
 * 	@example
 * 	div(style='width:50px;height:50px;background-color:#376491')
 */
/**
 * Info color:
 * `@info-color`
 * The color for infomations
 *
 * 	@example
 * 	div(style='width:50px;height:50px;background-color:#FE6321')
 */
/**
 * Bright color:
 * `@bright-color`
 * A bright color 
 *
 * 	@example
 * 	div(style='width:50px;height:50px;background-color:#EFEFE7')
 */
/**
 * Dark color:
 * `@dark-color`
 * A dark color 
 *
 * 	@example
 * 	div(style='width:50px;height:50px;background-color:#3B4344')
 */
/**
 * Error color:
 * `@error-color`
 * A error like color 
 *
 * 	@example
 * 	div(style='width:50px;height:50px;background-color:#ED3F40')
 */
/**
 * Correct color:
 * `@correct-color`
 * A success/correct color 
 *
 * 	@example
 * 	div(style='width:50px;height:50px;background-color:#1CA52D')
 */
/***
 * Less variables:
 */
/**
 * Responsive breakpoint:
 * `@breakpoint` - The responsive break point when the content should be listed vertically.
 */
/**
 * Border radius:
 * `@border-radius` - The commonly used border radius
 * 
 * 	@example
 * 	div(style='width:50px;height:50px;border-radius:3px;background-color:#666')
 */
/***
 * Less functions:
 */
/**
 * Cleafix:
 * `.clearfix()` - Adds a clearfix to an element
 */
/**
 * Columns:
 * `.columns` - Setups a style for floating columns
 */
@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:700,400,300);
@font-face {
  font-family: "dateneditor";
  src: url("fonts/dateneditor.eot");
  src: url("fonts/dateneditor.eot?#iefix") format("embedded-opentype"), url("fonts/dateneditor.woff") format("woff"), url("fonts/dateneditor.ttf") format("truetype"), url("fonts/dateneditor.svg#dateneditor") format("svg");
  font-weight: normal;
  font-style: normal;
}
[data-icon]:before {
  font-family: "dateneditor" !important;
  content: attr(data-icon);
  font-style: normal !important;
  font-weight: normal !important;
  font-variant: normal !important;
  text-transform: none !important;
  speak: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
[class^="icon-"]:before,
[class*=" icon-"]:before {
  font-family: "dateneditor" !important;
  font-style: normal !important;
  font-weight: normal !important;
  font-variant: normal !important;
  text-transform: none !important;
  speak: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.icon-plus:before {
  content: "\63";
}
.icon-close:before {
  content: "\61";
}
.icon-erase:before {
  content: "\62";
}
.icon-italic:before {
  content: "\65";
}
.icon-underline:before {
  content: "\66";
}
.icon-group:before {
  content: "\6b";
}
.icon-bold:before {
  content: "\64";
}
.icon-page-copy:before {
  content: "\6c";
}
.icon-pencil:before {
  content: "\6d";
}
.icon-external-link:before {
  content: "\6e";
}
.icon-success:before {
  content: "\68";
}
.icon-error:before {
  content: "\69";
}
.icon-import:before {
  content: "\67";
}
.icon-list-number:before {
  content: "\6a";
}
.icon-list-bullet:before {
  content: "\6f";
}
.icon-file-symlink-file:before {
  content: "\70";
}
.icon-strikethrough:before {
  content: "\71";
}
.icon-superscript:before {
  content: "\72";
}
.icon-subscript:before {
  content: "\73";
}
.icon-link:before {
  content: "\74";
}
.icon-quote:before {
  content: "\76";
}
.icon-align-center:before {
  content: "\77";
}
.icon-align-justify:before {
  content: "\78";
}
.icon-align-left:before {
  content: "\79";
}
.icon-align-right:before {
  content: "\7a";
}
.icon-code:before {
  content: "\41";
}
/***
 * Buttons:
 */
/**
 * Regular Button:
 * `.btn` - A regular button
 * 
 * 	@example
 * 	button.btn Button
 */
.btn {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font: inherit;
  background-color: #369BFF;
  padding: 7px 12px;
  line-height: 1.3em;
  color: #fff;
  border: none;
  font-size: 1em;
  font-weight: 200;
  cursor: pointer;
  border-radius: 4px;
  outline: none;
  -webkit-transition: background-color 0.3s;
          transition: background-color 0.3s;
  /**
	 * Disabled button:
	 * `.disabled` - A style for a disabled button
	 * 
	 * 	@example
	 * 	button.btn.disabled Disabled
	 */
  /**
	 * Back Button:
	 * `.back` - Turns the button into a back button with an arrow on the left side
	 * 
	 * 	@example
	 * 	button.btn.back Back
	 */
  /**
	 * Secondary Button:
	 * `.second` - Turns the button into a secondary button
	 * 
	 * 	@example
	 * 	button.btn.second Secondary button
	 */
}
.btn:hover {
  background-color: #9cceff;
}
.btn.disabled {
  background-color: #e2e7ec;
  cursor: default;
  color: #869baf;
}
.btn.back {
  position: relative;
}
.btn.back:hover:before {
  background-color: #9cceff;
}
.btn.back:before {
  content: '';
  position: absolute;
  height: 24px;
  width: 24px;
  background-color: #369BFF;
  left: -11px;
  top: 5px;
  border-radius: 4px;
  -webkit-transition: background-color 0.3s;
          transition: background-color 0.3s;
  -webkit-transform: scaleX(0.7) rotate(45deg);
  transform: scaleX(0.7) rotate(45deg);
}
.btn.second {
  padding: 7px 12px;
  line-height: 1.1em;
  font-size: 0.8em;
  background-color: #5e9bd7;
}
.btn.second:hover {
  background-color: #369BFF;
}
.btn.icon {
  background: none;
  padding: 0;
  line-height: 1em;
  border: 1px solid #369BFF;
  -webkit-transition: all 0.3s;
          transition: all 0.3s;
}
.btn.icon:hover {
  border: 1px solid #9cceff;
}
.btn.icon:hover > .icon {
  background-color: #9cceff;
}
.btn.icon > .icon {
  -webkit-transition: all 0.3s;
          transition: all 0.3s;
  line-height: 1em;
  font-size: 18px;
  padding: 3px 5px;
  background-color: #369BFF;
  vertical-align: middle;
}
.btn.icon > .icon-button--text {
  color: #3B4344;
  font-size: 0.7em;
  line-height: 1em;
  padding: 4px 10px;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
/***
 * Text styles:
 */
/**
 * H1:
 * `h1` - The h1 style
 * 
 * 	@example
 * 	h1 A demo h1 header
 */
h1 {
  font-weight: normal;
  font-size: 2.2em;
  margin-top: 41px;
  padding-bottom: 8px;
  border-bottom: 1px solid #EFEFE7;
  color: #3B4344;
}
/**
 * H2:
 * `h2` - The h2 style
 * 
 * 	@example
 * 	h2 A demo h2 header
 */
h2 {
  font-weight: bold;
  font-size: 1.6em;
  margin-top: 20px;
  margin-bottom: 5px;
  color: #3B4344;
}
/**
 * Body:
 * `body` - A body style for font.
 * 
 * 	@example
 * 	div My Test Font
 */
body {
  font-family: 'Source Sans Pro', sans-serif;
}
/**
 * Label:
 * `.label` - A styling for a label
 * 
 * 	@example
 * 	div.label My label
 */
.label {
  font-size: 0.7em;
  font-weight: normal;
  text-transform: uppercase;
  color: #369BFF;
  margin-bottom: 4px;
}
/**
 * Icon:
 * `.icon` - Default icon size 
 * 
 * 	@example
 * 	div.icon
 * 		div.icon(data-icon="b")
 */
.icon {
  font-size: 22px;
  display: inline-block;
  padding: 6px 0 0 0;
  /**
	 * Button icon:
	 * `.icon.icon--btn` - A styling for a icon button
	 * 
	 * 	@example
	 * 	div.icon.icon--btn(data-icon="b")
	 */
}
.icon.icon--btn {
  color: #369BFF;
  cursor: pointer;
  -webkit-transition: color 0.3s;
          transition: color 0.3s;
  /**
		 * Inverted button icon:
		 * `.icon.icon--btn.icon--inv` - A styling for an inverted icon button
		 * 
		 * 	@example
		 * 	div.icon.icon--btn.icon--inv(data-icon="b")
		 */
}
.icon.icon--btn:hover {
  color: #9cceff;
}
.icon.icon--btn.icon--inv {
  color: #FFF;
}
.icon.icon--btn.icon--inv:hover {
  color: #cccccc;
}
/**
 * info:
 * `.info-text` - A small info text
 * 
 * 	@example
 * 	div.info-text Info message
 */
.info-text {
  color: #9faaac;
  padding: 5px 0;
  font-style: italic;
}
/***
 * Reponsive:
 */
/**
 * Container:
 * `.container` - A main website container that centers the container and has the corresponing responsive jumps
 * 
 * 	@example
 * 	div.container(style='background-color:#AAA;height:50px;') 
 */
.container {
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 768px) {
  .container {
    width: 750px;
  }
}
@media (min-width: 992px) {
  .container {
    width: 970px;
  }
}
@media (min-width: 1200px) {
  .container {
    width: 1170px;
  }
}
/**
 * Columns:
 * `.col` - A base styling for any number of columns
 * 
 * 	@example
 * 	div.col
 */
@media (min-width: 768px) {
  .col {
    margin-left: -15px;
    margin-right: -15px;
  }
  .col:before,
  .col:after {
    content: " ";
    display: table;
  }
  .col:after {
    clear: both;
  }
  .col > * {
    box-sizing: border-box;
    padding-left: 15px;
    padding-right: 15px;
    position: relative;
    float: left;
  }
}
/**
 * Half column width modifier:
 * `.half` - A style that defines the width to 50%.
 * 
 * 	@example
 * 	div.col
 * 		div.half(style="background-color:#ccc") One side
 * 		div.half(style="background-color:#aaa") Other side
 */
@media (min-width: 768px) {
  .half {
    width: 50%;
  }
}
/**
 * Third column width modifier:
 * `.third` - A style that defines the width to 100/3 %.
 * 
 * 	@example
 * 	div.col
 * 		div.third(style="background-color:#ccc") One side
 * 		div.third(style="background-color:#aaa") Other side
 * 		div.third(style="background-color:#bbb") Third side
 */
@media (min-width: 768px) {
  .third {
    width: 33.33333333%;
  }
}
/**
 * Full column width modifier:
 * `.full` - A style that defines the width to 100%.
 * 
 * 	@example
 * 	div.col
 * 		div.full(style="background-color:#ccc") Full content
 */
.full {
  width: 100%;
}
/**
 * 80% / 20% column width modifier:
 * `.col-80, .col-20` - Two styles that defines the width to 80% or 20%.
 * 
 * 	@example
 * 	div.col
 * 		div.col-80(style="background-color:#ccc") One side
 * 		div.col-20(style="background-color:#aaa") Other side
 */
@media (min-width: 768px) {
  .col-20 {
    width: 20%;
  }
}
@media (min-width: 768px) {
  .col-80 {
    width: 80%;
  }
}
/**
 * Responsive image container:
 * `.responsive-img` - A style that makes the image scaling to its max width.
 * 
 * 	@example
 * 	img.responsive-img(src='http://www.byui.edu/images/agriculture-life-sciences/flower.jpg')
 */
.responsive-img {
  max-width: 100%;
  height: auto;
}
/**
 * Responsive 4:3/16:9 media container:
 * `.responsive-media .media-4-3, .responsive-media .media-16-9` - This makes a div a container for any media element (iframe, video, ... ) that responsive scales with a fix ratio.
 * The media element needs the class `.media`. The `.responsive-media` container can have one of the following classes: `.media-4-3`, `.media-16-9` to define the fix ratio.
 * 
 * 	@example
 * 	div.responsive-media.media-4-3
 * 		iframe.media(src='//www.youtube.com/embed/HhZaHf8RP6g',frameborder='0')
 */
.responsive-media {
  width: 100%;
  position: relative;
  padding-bottom: 50%;
}
.responsive-media > .media {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.responsive-media.media-4-3 {
  padding-bottom: 75%;
}
.responsive-media.media-16-9 {
  padding-bottom: 56.26%;
}
/***
 * Form definitions:
 */
/**
 * form:
 * `.form` - A style for all types of forms. 
 * 
 * 	@example
 * 	input.form(value="Text")
 */
.form {
  font: inherit;
  display: block;
  width: 100%;
  padding: 6px 12px;
  line-height: 1.3em;
  min-height: 34px;
  font-size: 1em;
  color: #555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
          transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
  box-sizing: border-box;
  position: relative;
  /**
	 * Form with icon:
	 * `.form > .icon` - A form with an overlying icon on the right side
	 * 
	 * 	@example
	 * 	div.form Text
	 * 		div.icon(data-icon="b")
	 */
}
.form > .icon {
  position: absolute;
  top: 0;
  right: 6px;
}
.form:focus {
  border-color: #369BFF;
  outline: none;
  box-shadow: inset 0 1px 1px #cfe7ff;
}
select.form {
  height: 34px;
}
/***
 * Tabs:
 */
/**
 * tabs:
 * `.tabs` - A basic styling for all tabs forms
 * 
 * 	@example
 * 	ol.tabs
 * 		li Tab1
 * 		li Tab2 with very long text.
 * 		li Tab3
 */
.tabs {
  list-style: none;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  /**
	 * Top tabs:
	 * `.tabs.top` - Styles the tabs for horizontal aligment on the top
	 * 
	 * 	@example
	 * 	ol.tabs.top
	 * 		li Tab1
	 * 		li.active Tab2
	 * 		li Tab3
	 */
  /**
	 * Left tabs:
	 * `.tabs.left` - Styles the tabs for vertical alignment on the left side
	 * 
	 * 	@example
	 * 	ol.tabs.left
	 * 		li Tab1
	 * 		li.active Tab2
	 * 		li Tab3
	 */
  /**
	 * Right tabs:
	 * `.tabs.right` - Styles the tabs for vertical alignment on the right side
	 * 
	 * 	@example
	 * 	ol.tabs.right
	 * 		li Tab1
	 * 		li.active Tab2
	 * 		li Tab3
	 */
}
.tabs > li {
  cursor: pointer;
  padding: 6px 10px;
  border: 1px solid #369BFF;
  border-radius: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
  min-height: 34px;
  vertical-align: bottom;
}
.tabs > li:hover {
  background-color: #369BFF;
  border-color: #369BFF;
  color: #FFF;
}
.tabs > li.selected {
  border-color: #369BFF;
  background-color: #369BFF;
  color: #FFF;
  font-weight: lighter;
}
.tabs.top {
  border-bottom: 2px solid #369BFF;
  padding: 0 2px;
}
.tabs.top > li {
  border-bottom: 1px solid #369BFF;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  margin-bottom: -1px;
  margin-right: 2px;
  display: inline-block;
  max-width: 10%;
}
.tabs.left {
  border-right: 2px solid #369BFF;
  padding: 2px 0;
}
.tabs.left > li {
  border-right: 1px solid #369BFF;
  margin-bottom: 2px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  margin-right: -2px;
}
.tabs.left > li:hover {
  border-right-color: #369BFF;
  border-right: 2px solid #369BFF;
}
.tabs.right {
  border-left: 2px solid #369BFF;
  padding: 2px 0;
}
.tabs.right > li {
  border-left: 1px solid #369BFF;
  margin-bottom: 2px;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  margin-left: -1px;
}
/***
 * Table:
 */
/**
 * Table:
 * `.table` - The main table with header and rows inside
 * 
 * 	@example
 * 	div.table.col-2
 * 		div.row.header
 * 			div.cell Column1
 * 			div.cell Column2
 * 		div.row.even
 * 			div.cell Data11
 * 			div.cell Data12
 * 		div.row.odd
 * 			div.cell Data11
 * 			div.cell Data12
 * 		div.row.even
 * 			div.cell Data11
 * 			div.cell Data12
 * 		div.row.odd.active
 * 			div.cell Data11
 * 			div.cell Data12
 */
.table {
  width: 100%;
}
.table.col-10 > .row > .cell {
  width: 10%;
}
.table.col-9 > .row > .cell {
  width: 11.11111111%;
}
.table.col-8 > .row > .cell {
  width: 12.5%;
}
.table.col-7 > .row > .cell {
  width: 14.28571429%;
}
.table.col-6 > .row > .cell {
  width: 16.66666667%;
}
.table.col-5 > .row > .cell {
  width: 20%;
}
.table.col-4 > .row > .cell {
  width: 25%;
}
.table.col-3 > .row > .cell {
  width: 33.33333333%;
}
.table.col-2 > .row > .cell {
  width: 50%;
}
.table.col-1 > .row > .cell {
  width: 100%;
}
.table > .row {
  display: table;
  table-layout: fixed;
  width: 100%;
  border-left: 1px solid #dbdbc8;
  border-right: 1px solid #dbdbc8;
  border-bottom: 1px solid #EFEFE7;
}
.table > .row:last-child {
  border-bottom-color: #dbdbc8;
}
.table > .row.odd {
  background-color: #f7f7f7;
}
.table > .row > .cell {
  display: table-cell;
  padding: 5px 8px;
  font-weight: lighter;
  vertical-align: middle;
  word-wrap: break-word;
}
.table > .row.selected {
  background-color: #369BFF;
  color: #FFF;
  border-left-color: #369BFF;
  border-right-color: #369BFF;
}
.table > .row.header {
  color: #3B4344;
  font-size: 1em;
  text-align: left;
  border: 1px solid #dbdbc8;
  background-color: #EFEFE7;
}
.table > .row.header > .cell {
  font-weight: normal;
}
/***
 * Messages:
 */
/**
 * Popup message:
 * `.popup-msg` - A styling for a popup message
 * 
 * 	@example
 * 	div.popup-msg The popup message
 */
.popup-msg {
  border: 1px solid #EFEFE7;
  border-radius: 8px;
  padding: 10px 15px;
  box-shadow: 2px 2px 5px 0px rgba(50, 50, 50, 0.1);
  background-color: #FFF;
  /**
	  * Error pop message:
	  * `.error` - Error styling for the popup message
	  * 
	  * 	@example
	  * 	div.popup-msg.error The error popup message
	  */
}
.popup-msg.error {
  border-color: #ED3F40;
}
.popup-msg .close-but {
  float: right;
  cursor: pointer;
}
.popup-msg p {
  margin: 0;
}
.popup-msg .btn {
  margin: 0 10px;
}
/**
 * Float:
 * `.float` - A float style that makes the popup message float over the content
 */
.float {
  position: fixed;
  top: 5px;
  width: 100%;
  left: 0;
  z-index: 10000;
}
/***
 * Helpers:
 */
/**
 * Remove:
 * `.remove` - Removes a div.
 * 
 * 	@example
 * 	div.remove Test
 */
.remove {
  display: none;
}
/***
 * Layout:
 */
/**
 * One side fixed layout:
 * `.layout-anchor` - Base for a layout where one side is fixed
 * 
 * 	@example
 * 	div.layout-anchor
 */
.layout-anchor {
  display: table;
  /**
	 * Left anchored:
	 * `.layout-anchor.left` - Left anchor layout
	 * 
	 * 	@example
	 * 	div.layout-anchor.left
	 * 		div(style="background-color:#ccc") Left
	 * 		div(style="background-color:#aaa") Right
	 */
  /**
	 * Right anchored:
	 * `.layout-anchor.right` - Right anchor layout
	 * 
	 * 	@example
	 * 	div.layout-anchor.right
	 * 		div(style="background-color:#ccc") Left
	 * 		div(style="background-color:#aaa") Right
	 */
  /**
	 * Bottom anchored:
	 * `.layout-anchor.bottom` - Bottom anchor layout
	 * 
	 * 	@example
	 * 	div.layout-anchor.bottom(style="height:120px")
	 * 		div(style="background-color:#ccc") Top
	 * 		div(style="background-color:#aaa") Bottom
	 */
  /**
	 * Top anchored:
	 * `.layout-anchor.top` - Top anchor layout
	 * 
	 * 	@example
	 * 	div.layout-anchor.top(style="height:120px")
	 * 		div(style="background-color:#ccc") Top
	 * 		div(style="background-color:#aaa") Bottom
	 */
}
.layout-anchor.left {
  border-spacing: 15px 0;
  margin: 0 -15px;
}
.layout-anchor.left > * {
  display: table-cell;
}
.layout-anchor.left > :first-child {
  width: auto;
}
.layout-anchor.left > :last-child {
  width: 100%;
}
.layout-anchor.right {
  border-spacing: 15px 0;
  margin: 0 -15px;
}
.layout-anchor.right > * {
  display: table-cell;
}
.layout-anchor.right > :first-child {
  width: 100%;
}
.layout-anchor.right > :last-child {
  width: auto;
}
.layout-anchor.bottom {
  border-spacing: 0 15px;
  margin: -15px 0;
}
.layout-anchor.bottom > * {
  display: table-row;
}
.layout-anchor.bottom > :first-child {
  height: 100%;
}
.layout-anchor.bottom > :last-child {
  height: auto;
}
.layout-anchor.top {
  border-spacing: 0 15px;
  margin: -15px 0;
}
.layout-anchor.top > * {
  display: table-row;
}
.layout-anchor.top > :first-child {
  height: auto;
}
.layout-anchor.top > :last-child {
  height: 100%;
}
/**
 * Old panel should be replaced with a responsive one.
 */
.overlay-content {
  padding: 10px;
  background-color: #FFF;
  position: relative;
  box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.2);
}
.overlay-content .close {
  position: absolute;
  top: 10px;
  right: 10px;
}
.overlay-mask {
  background-color: rgba(0, 0, 0, 0.5);
}
/**
 * Dropdown:
 * `.dropdown` - Styling for a html dropdown
 * 
 * 	@example
 * 	div.dropdown
 * 		div.dropdown--button Add
 * 		div.dropdown--menu
 */
.dropdown {
  position: relative;
}
.dropdown > .dropdown--menu {
  position: absolute;
  top: 33px;
  left: 0;
  background-color: #FFF;
  color: #3B4344;
  list-style: none;
  margin: 0;
  padding: 0;
  z-index: 1000;
  box-shadow: 0px 2px 3px 3px rgba(50, 50, 50, 0.1);
  border-radius: 4px;
  border-top-left-radius: 0;
}
.dropdown > .dropdown--menu > li {
  padding: 4px 12px;
  -webkit-transition: background-color 0.3s, color 0.4s;
          transition: background-color 0.3s, color 0.4s;
  cursor: pointer;
}
.dropdown > .dropdown--menu > li:hover {
  background-color: #369BFF;
  color: #FFF;
}
/***
 * Inputs:
 */
/**
 * Input:
 * `.input` - The base styling for an dateneditor input
 * 
 * 	@example
 * 	div.input
 * 		div.label The label
 *		div.value The value
 */
.input {
  margin-top: 12px;
  font-size: 1em;
}
.input > .hint {
  cursor: help;
}
.input.attribute .validation-error {
  display: none;
}
.input.attribute.error .validation-error {
  display: block;
}
.input.attribute.error .status-icon.icon-error {
  display: block;
  color: #ED3F40;
}
.input.attribute.success .status-icon.icon-success {
  display: block;
  color: #1CA52D;
}
.input.attribute .status-icon {
  position: absolute;
  top: 15px;
  right: 17px;
  z-index: 10;
  font-size: 14px;
  display: none;
}
.input.error .form {
  border-color: #ED3F40;
}
.input.success .form {
  border-color: #1CA52D;
}
.validation-error {
  font-size: 0.9em;
  font-weight: bold;
  padding: 2px;
  color: #b51112;
}
/**
 * Infoinput:
 * `.input.info` - The style for a info input
 * 
 * 	@example
 * 	div.input.info
 * 		div.label My Attribute
 * 		div.value My Value
 */
.info.input .value {
  background-color: #EFEFE7;
  border-radius: 4px;
  padding: 6px 12px;
  box-sizing: border-box;
}
/**
 * Array input:
 * `.input.array` - The style for an array input
 *
 * 	@example
 * 	div.input.array
 * 		div.label My Attribute
 * 		div.tags
 * 			div.tag
 * 				div.tag-name First Tag
 * 				span.remove x
 * 			div.tag
 * 				div.tag-name Second Tag
 * 				span.remove x
 */
/**
 * Code input:
 * `.input.code` - The style for the code input
 */
.input.code .ace {
  border-radius: 4px;
}
/**
 * Group input:
 * `.input.group` - The style for grouped inputs
 * 
 * 	@example
 * 	div.input.group.open
 * 		div.label My Group
 * 		div.group-content My Value
 */
.input.group {
  width: 100%;
}
.input.group > .label {
  color: #3B4344;
  font-weight: bold;
  cursor: pointer;
}
.input.group > .label .icon {
  font-size: 12px;
  padding: 0;
  margin-right: 3px;
  vertical-align: middle;
  -webkit-transition: all 0.2s;
          transition: all 0.2s;
}
.input.group > .group-content {
  display: none;
  padding: 0 10px 10px 10px;
  -webkit-transition: all 0.3s;
          transition: all 0.3s;
}
.input.group.open > .label {
  border-bottom: 1px solid #EFEFE7;
}
.input.group.open > .label .icon {
  -webkit-transform: rotate(90deg) translateX(-1px);
          transform: rotate(90deg) translateX(-1px);
  margin-right: 5px;
}
.input.group.open > .group-content {
  margin-top: 0;
  display: block;
}
/**
 * Boolean input:
 * `.input.boolean` - The boolean switch
 * 
 * 	@example
 * 	div.input.boolean
 * 		div.label My Boolean
 * 		div.switch.form
 * 			div.state On
 * 			div.state Off
 * 			div.handle
 */
.input.boolean .switch {
  position: relative;
  display: table;
  background-color: #585858;
  color: #FFF;
  border-radius: 4px;
  padding: 0;
  cursor: pointer;
}
.input.boolean .switch .state {
  width: 50%;
  display: table-cell;
  text-align: center;
  padding: 6px 12px;
}
.input.boolean .switch .handle {
  position: absolute;
  width: 50%;
  height: 100%;
  background-color: #FFF;
  border-radius: 3px;
  box-shadow: inset 0px 2px 3px #fff;
  background-color: #f7f7f7;
  background-image: -webkit-gradient(linear, left top, left bottom, from(#f7f7f7), to(#e7e7e7));
  background-image: -webkit-linear-gradient(top, #f7f7f7, #e7e7e7);
  background-image: -o-linear-gradient(top, #f7f7f7, #e7e7e7);
  top: 0;
  left: 0;
  -webkit-transition: all 0.4s ease-in-out;
  transition: all 0.4s ease-in-out;
}
.input.boolean .switch.on .handle {
  left: 50%;
}
/**
 * Image input:
 * `.input.image` - The style for the image input
 */
.input.image .form {
  text-align: center;
}
.medium-editor-toolbar {
  left: 0;
  top: 0;
  position: absolute;
  visibility: hidden;
  box-shadow: rgba(0, 0, 0, 0.3) 1px 1px 2px;
  border-radius: 4px;
  border: 1px solid #585858;
  background-color: #585858;
}
.medium-editor-toolbar li {
  display: inline-block;
}
.medium-editor-toolbar.medium-editor-toolbar-active {
  visibility: visible;
}
.medium-editor-toolbar-form {
  display: none;
  background-color: #585858;
  color: #FFF;
  padding: 0 5px;
}
.medium-editor-toolbar-form.medium-editor-toolbar-form-active {
  display: block;
}
.medium-editor-toolbar-form input {
  border: none;
  background: none;
  font-size: 14px;
  margin: 0;
  padding: 6px;
  width: 316px;
  display: inline-block;
  outline: none;
  color: #FFF;
}
.medium-editor-toolbar-form a {
  color: #FFF;
  text-decoration: none;
  padding: 0 5px;
}
.medium-editor-toolbar-actions {
  margin: 0;
  padding: 0;
}
.medium-editor-toolbar-actions button {
  background: none;
  border: none;
  cursor: pointer;
  display: inline-block;
  outline: none;
  color: #FFF;
}
.medium-editor-toolbar-actions button:hover {
  background-color: #656565;
}
.medium-editor-toolbar-actions button .icon {
  font-size: 20px;
}
.medium-toolbar-arrow-under:after {
  content: '';
  position: absolute;
  height: 11px;
  width: 11px;
  background-color: #585858;
  left: 50%;
  bottom: 0;
  -webkit-transform: translate(-50%, 50%) rotate(45deg);
          transform: translate(-50%, 50%) rotate(45deg);
}
.richtext .editor p {
  margin: 0;
}
.richtext .editor p + p {
  margin-top: 7px;
}
.model-editor {
  position: relative;
}
.model-editor > .mod-container {
  position: absolute;
  top: 10px;
  right: 10px;
}
/***
 * Tabeditor:
 */
.tab-editor {
  /**
	 * Left oriented tab-editor:
	 * `.tab-editor.left` - Styles the tab editor to show the tabs on the left side
	 * 
	 * 	@example
	 * 	div.tab-editor.left
	 * 		ol.tabs.left
	 * 			li Tab1
	 * 			li Tab2
	 * 			li.active Tab3
	 * 		div.model-editor The content of the tab editor.
	 */
  /**
	 * Right oriented tab-editor:
	 * `.tab-editor.right` - Styles the tab editor to show the tabs on the right side
	 * 
	 * 	@example
	 * 	div.tab-editor.right
	 * 		ol.tabs.right
	 * 			li Tab1
	 * 			li Tab2
	 * 			li.active Tab3
	 * 		div.model-editor The content of the tab editor.
	 */
}
.tab-editor.left {
  margin-left: -15px;
  margin-right: -15px;
}
.tab-editor.left:before,
.tab-editor.left:after {
  content: " ";
  display: table;
}
.tab-editor.left:after {
  clear: both;
}
.tab-editor.left > * {
  box-sizing: border-box;
  padding-left: 15px;
  padding-right: 15px;
  position: relative;
  float: left;
}
.tab-editor.left > .tabs {
  padding-right: 0;
  width: 20%;
}
.tab-editor.left > .model-editor {
  width: 80%;
  border-left: 2px solid #369BFF;
  margin-left: -2px;
}
.tab-editor.right {
  margin-left: -15px;
  margin-right: -15px;
}
.tab-editor.right:before,
.tab-editor.right:after {
  content: " ";
  display: table;
}
.tab-editor.right:after {
  clear: both;
}
.tab-editor.right > * {
  box-sizing: border-box;
  padding-left: 15px;
  padding-right: 15px;
  position: relative;
  float: left;
}
.tab-editor.right > .tabs {
  padding-left: 0;
  padding-right: 13px;
  width: 20%;
  left: 80%;
  margin-left: -2px;
}
.tab-editor.right > .model-editor {
  width: 80%;
  border-right: 2px solid #369BFF;
  right: 20%;
  margin-left: 2px;
}
.tab-editor.right > .model-editor h2 {
  margin-top: 0;
}
.tab-editor > .tabs > li {
  position: relative;
  -webkit-transition: padding 0.3s;
          transition: padding 0.3s;
}
.tab-editor > .tabs > li .mod-container {
  display: none;
  right: 3px;
  top: 0px;
}
.tab-editor > .tabs > li:hover {
  padding-right: 30px;
}
.tab-editor > .tabs > li:hover .mod-container {
  display: inline-block;
}
/***
 * Table Editor:
 */
.table-editor {
  /**
	 * Table editor:
	 * `.table-editor` - Styles a table editor with a model editor inside
	 *
	 * 	@example
	 * 	div.table-editor
	 * 		div.table.col-2
	 * 			div.row.header
	 * 				div.cell Column1
	 * 				div.cell Column2
	 * 			div.row.odd
	 * 				div.cell Data11
	 * 				div.cell Data12
	 * 				div.mod.delete
	 * 					div.icon.icon-close.delete-but
	 * 			div.row.active.even
	 * 				div.cell Data21
	 * 				div.cell Data22
	 * 				div.mod.delete
	 * 					div.icon.icon-close.delete-but
	 * 			div.model-editor
	 * 				h2 Model
	 * 				div.inputs.col.col-1-1
	 * 					div.string.input
	 * 						div.label Input
	 * 						div.value.form
	 * 			div.row.odd
	 * 				div.cell Data31
	 * 				div.cell Data32
	 * 				div.mod.delete
	 * 					div.icon.icon-close.delete-but
	 * 			div.row.even
	 * 				div.cell Data41
	 * 				div.cell Data42
	 * 				div.mod.delete
	 * 					div.icon.icon-close.delete-but
	 */
}
.table-editor > .table.content > .row {
  cursor: pointer;
  position: relative;
  -webkit-transition: all 0.3s;
          transition: all 0.3s;
}
.table-editor > .table.content > .row > .mod-container {
  display: none;
  right: 3px;
  top: -2px;
}
.table-editor > .table.content > .row:hover {
  background-color: #369BFF;
  color: #FFF;
}
.table-editor > .table.content > .row:hover > .mod-container {
  display: inline-block;
}
.table-editor > .table.content > .model-editor {
  padding: 10px;
  border: 1px solid #69b4ff;
  border-top: none;
}
.table-editor > .table.content > .model-editor > h2 {
  margin-top: 0;
  font-size: 1.2em;
}
/* Overwrite the 100% width of the general .table class */
.table.half {
  width: 50%;
}
/***
 * Preview Editor:
 */
.preview-editor {
  /**
	 * Preview editor:
	 * `.preview-editor` - Styles a preview editor with a model editor inside
	 * 
	 * 	@example
	 * 	div.preview-editor
	 * 		div.previews
	 * 			div.proxy Template1
	 * 			div.proxy.active Template2
	 * 			div.model-editor
	 * 				h2 Model
	 * 				div.inputs.col.col-1-1
	 * 					div.string.input
	 * 						div.label Input
	 * 						div.value.form
	 */
}
.preview-editor > .previews > .proxy {
  cursor: pointer;
  border-left: 0px solid #369BFF;
  padding: 5px 10px;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
  position: relative;
}
.preview-editor > .previews > .proxy.selected {
  border-left: 8px solid #369BFF;
  margin-top: 20px;
}
.preview-editor > .previews > .proxy:hover {
  background-color: #e8f4ff;
}
.preview-editor > .previews > .proxy:hover > .mod-container {
  opacity: 1;
}
.preview-editor > .previews > .proxy > .mod-container {
  opacity: 0;
  -webkit-transition: all 0.5s;
          transition: all 0.5s;
}
.preview-editor > .previews > .proxy > .mod-container .icon--btn {
  color: #369BFF;
}
.preview-editor > .previews > .edit > .model-editor {
  padding: 10px;
  margin-bottom: 20px;
}
.preview-editor > .previews > .edit > .model-editor > h2 {
  margin-top: 0;
  font-size: 1.2em;
}
.preview-editor > .previews > .edit > .model-editor.active {
  -webkit-animation: border-fade 0.5s;
  animation: border-fade 0.5s;
  border-left: 8px solid #369BFF;
}
/**
 * Fix for animate the border of the newly placed model editor
 */
@-webkit-keyframes border-fade {
  from {
    border-left: 0px solid #369BFF;
  }
  to {
    border-left: 8px solid #369BFF;
  }
}
@keyframes border-fade {
  from {
    border-left: 0px solid #369BFF;
  }
  to {
    border-left: 8px solid #369BFF;
  }
}
.imagemap-editor .imagemap {
  position: relative;
  display: inline-block;
  max-width: 100%;
}
.imagemap-editor .maps {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.imagemap-editor .map {
  position: absolute;
  background-color: rgba(0, 0, 0, 0.4);
  border: 1px dashed #FFF;
  cursor: pointer;
}
.imagemap-editor .map .icon {
  position: absolute;
  top: 0px;
  right: 5px;
  cursor: pointer;
}
.imagemap-editor .map.active {
  background-color: rgba(255, 255, 255, 0.5);
  border: 1px solid #369BFF;
}
.imagemap-editor .image {
  max-width: 100%;
}
.file-selector .controls {
  text-align: right;
  border-top: 1px solid #ccc;
  padding-top: 20px;
}
.file-selector .progress {
  width: 0;
  background-color: #FFF;
  height: 2px;
}
.file-selector h2 {
  margin-bottom: 14px;
}
.file-list .header {
  margin-top: 10px;
}
.file-list .row {
  cursor: pointer;
}
.file-list .upload {
  width: auto !important;
  height: auto !important;
}
.file-list .cell.thumb {
  width: 20%;
}
.file-list .cell.thumb img {
  max-width: 40px;
  max-height: 40px;
}
.file-list .cell.name {
  width: 40%;
}
.file-list .cell.tags {
  width: 40%;
}
.file-details .del-but,
.file-details .dl-but {
  text-align: center;
  display: block;
  text-decoration: none;
}
.file-details .inputs {
  margin-bottom: 20px;
}
.file-details .buttons {
  margin-bottom: 12px;
}
.model-selector .controls {
  padding: 15px;
}
.mod {
  margin: 5px 0;
}
.mod.inline {
  display: inline-block;
  padding-right: 10px;
}
.mod-container.floating .mod {
  margin: 0px;
}
.mod-container {
  position: absolute;
  right: 10px;
  top: 10px;
}
.mod-container .mod {
  display: inline-block;
}
/***
 * Mods:
 */
/**
 * Tab add mod:
 * `.tab-editor .mod.add` - Styles the add mod in a tab list.
 * 
 * 	@example
 * 	div.tab-editor
 * 		ol.list.tabs.top
 * 			li.proxy Entry 1
 * 			li.mod.add
 * 				div.dropdown
 * 					button.btn.add-but.add-button Add
 */
.tab-editor > .tabs > .mod.add {
  padding: 0;
  overflow: visible;
}
.tab-editor > .tabs > .mod.add .icon-button--text {
  display: none;
}
.tab-editor > .tabs > .mod.add .btn.icon {
  border: none;
}
.tab-editor > .tabs > .mod.add .btn.icon > .icon {
  padding: 6px 8px 5px 8px;
}
.tabs.left > .mod.add > .dropdown > .dropdown--button,
.tabs.right > .mod.add > .dropdown > .dropdown--button {
  display: block;
}
.tabs.left > .mod.add > .dropdown > .dropdown--button .icon,
.tabs.right > .mod.add > .dropdown > .dropdown--button .icon {
  display: block;
}
.tabs.left > li > .mod.delete,
.tabs.right > li > .mod.delete {
  position: absolute;
  right: 9px;
}
.mod.filter .reset-but {
  margin: 10px 0;
}
.mod.filter .filter-selector {
  width: 33.33333333%;
}
.mod.link a {
  color: #369BFF;
}
/***
 * Mods:
 */
/**
 * Tab import mod:
 * `.tab-editor .mod.import` - Styles the import mod in a tab list.
 * 
 * 	@example
 * 	div.tab-editor
 * 		ol.list.tabs.top
 * 			li.proxy Entry 1
 * 			li.mod.import
 * 				button.btn.add-but.add-button Add
 */
.tab-editor > .tabs > .mod.import {
  padding: 0;
  overflow: visible;
}
.tab-editor > .tabs > .mod.import .icon-button--text {
  display: none;
}
.tab-editor > .tabs > .mod.import .btn.icon {
  border: none;
}
.tab-editor > .tabs > .mod.import .btn.icon > .icon {
  padding: 6px 8px 5px 8px;
}
.viewport-resize {
  overflow: hidden;
  -ms-overflow-y: auto;
  /* IE8 */
  overflow-y: auto;
}
.login-form {
  padding: 30px 0;
}
.login-form input[type="submit"] {
  margin: 20px 0;
  text-align: right;
}
.login-form .error {
  margin-bottom: 23px;
}
.inplace-editor {
  border: 0px;
  background-color: #FFF;
  font: inherit;
  width: 100%;
}
.inplace-editor:focus {
  outline: 0;
}
/**
 * Tags:
 * `.tags` - The style for a tag area
 * `.tag` - The style for a tag
 *
 * 	@example
 *	div.tags
 *		div.tag
 *			div.tag-name First Tag
 *			span.remove
 *		div.tag
 *			div.tag-name Second Tag
 *			span.remove
 */
.tags {
  display: inline-block;
}
.tags .tag {
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 4px;
  margin-right: 6px;
  margin-bottom: 6px;
}
.tags .tag > span.input {
  padding: 6px 2px 6px 12px ;
  margin: 0px;
  display: inline-block;
}
.tags .remove {
  display: inline-block;
  font-weight: bold;
  padding: 6px;
  margin-top: -1px;
  font-size: 16px;
}
.textlist-editor > div.items .item {
  display: table;
  width: 100%;
  margin-bottom: 6px;
}
.textlist-editor > div.items .item .textarea-col {
  width: 100%;
  display: table-cell;
}
.textlist-editor > div.items .item .remove-col {
  width: auto;
  display: table-cell;
  opacity: 0.2;
  -webkit-transition: opacity 300ms linear;
          transition: opacity 300ms linear;
  vertical-align: top;
  cursor: default;
}
.textlist-editor > div.items .item .handler-col {
  display: table-cell;
  min-width: 20px;
  background-color: #ccc;
  border-radius: 4px 0px 0px 4px;
  opacity: 0.2;
  -webkit-transition: opacity 300ms linear;
          transition: opacity 300ms linear;
}
.textlist-editor > div.items .item .input {
  margin: 0px;
}
.textlist-editor > div.items .item textarea {
  border-radius: 0px 4px 4px 0px;
  resize: none;
  min-height: 60px;
  overflow: hidden;
}
.textlist-editor > div.items .item.draggable .handler-col {
  cursor: move;
  opacity: 1;
}
.textlist-editor > div.items .item.draggable .remove-col {
  cursor: pointer;
  opacity: 1;
}
.textlist-editor > div.items .remove {
  display: inline-block;
  font-weight: bold;
  padding: 6px;
  margin-top: -1px;
}
body,
html {
  margin: 0;
}
* {
  box-sizing: border-box;
}
#editor {
  padding-bottom: 30px;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvbnRzLmxlc3MiLCJtYWluLmNzcyIsImdsb2JhbC9idXR0b24ubGVzcyIsImdsb2JhbC90ZXh0Lmxlc3MiLCJnbG9iYWwvcmVzcG9uc2l2ZS5sZXNzIiwiZnVuY3Rpb25zLmxlc3MiLCJnbG9iYWwvZm9ybXMubGVzcyIsImdsb2JhbC90YWJzLmxlc3MiLCJnbG9iYWwvdGFibGUubGVzcyIsImdsb2JhbC9tZXNzYWdlLmxlc3MiLCJnbG9iYWwvdXRpbC5sZXNzIiwiZ2xvYmFsL2xheW91dC5sZXNzIiwiZ2xvYmFsL3BhbmVsLmxlc3MiLCJnbG9iYWwvZHJvcGRvd24ubGVzcyIsImlucHV0cy9iYXNlLmxlc3MiLCJpbnB1dHMvaW5mby5sZXNzIiwiaW5wdXRzL2NvZGUubGVzcyIsImlucHV0cy9ncm91cC5sZXNzIiwiaW5wdXRzL2Jvb2xlYW4ubGVzcyIsImlucHV0cy9pbWFnZS5sZXNzIiwiaW5wdXRzL3JpY2h0ZXh0Lmxlc3MiLCJlZGl0b3JzL21vZGVsLmxlc3MiLCJlZGl0b3JzL3RhYi5sZXNzIiwiZWRpdG9ycy90YWJsZS5sZXNzIiwiZWRpdG9ycy9wcmV2aWV3Lmxlc3MiLCJlZGl0b3JzL2ltYWdlbWFwLmxlc3MiLCJwYW5lbC9maWxlLXNlbGVjdG9yLmxlc3MiLCJwYW5lbC9tb2RlbC1zZWxlY3Rvci5sZXNzIiwibW9kcy9nZW5lcmFsLmxlc3MiLCJtb2RzL2NvbnRhaW5lci5sZXNzIiwibW9kcy9hZGQubGVzcyIsIm1vZHMvZmlsdGVyLmxlc3MiLCJtb2RzL2xpbmsubGVzcyIsIm1vZHMvaW1wb3J0Lmxlc3MiLCJtb2RzL3Jlc2l6ZS5sZXNzIiwibG9naW4vbG9naW4ubGVzcyIsImhlbHBlcnMvaW5wbGFjZS5sZXNzIiwiaGVscGVycy90YWcubGVzcyIsImhlbHBlcnMvdGV4dGxpc3QubGVzcyIsIm1haW4ubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBUztBQ0NUOztHQUVHO0FBQ0g7Ozs7Ozs7R0FPRztBQUNIOzs7Ozs7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QGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiZGF0ZW5lZGl0b3JcIjtcbiAgc3JjOnVybChcImZvbnRzL2RhdGVuZWRpdG9yLmVvdFwiKTtcbiAgc3JjOnVybChcImZvbnRzL2RhdGVuZWRpdG9yLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgdXJsKFwiZm9udHMvZGF0ZW5lZGl0b3Iud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHVybChcImZvbnRzL2RhdGVuZWRpdG9yLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgICB1cmwoXCJmb250cy9kYXRlbmVkaXRvci5zdmcjZGF0ZW5lZGl0b3JcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG5cbn1cblxuW2RhdGEtaWNvbl06YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFwiZGF0ZW5lZGl0b3JcIiAhaW1wb3J0YW50O1xuICBjb250ZW50OiBhdHRyKGRhdGEtaWNvbik7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbltjbGFzc149XCJpY29uLVwiXTpiZWZvcmUsXG5bY2xhc3MqPVwiIGljb24tXCJdOmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBcImRhdGVuZWRpdG9yXCIgIWltcG9ydGFudDtcbiAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcbiAgZm9udC12YXJpYW50OiBub3JtYWwgIWltcG9ydGFudDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgc3BlYWs6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLmljb24tcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNjNcIjtcbn1cbi5pY29uLWNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2MVwiO1xufVxuLmljb24tZXJhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDYyXCI7XG59XG4uaWNvbi1pdGFsaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDY1XCI7XG59XG4uaWNvbi11bmRlcmxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDY2XCI7XG59XG4uaWNvbi1ncm91cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNmJcIjtcbn1cbi5pY29uLWJvbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDY0XCI7XG59XG4uaWNvbi1wYWdlLWNvcHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDZjXCI7XG59XG4uaWNvbi1wZW5jaWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDZkXCI7XG59XG4uaWNvbi1leHRlcm5hbC1saW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2ZVwiO1xufVxuLmljb24tc3VjY2VzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNjhcIjtcbn1cbi5pY29uLWVycm9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2OVwiO1xufVxuLmljb24taW1wb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2N1wiO1xufVxuLmljb24tbGlzdC1udW1iZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDZhXCI7XG59XG4uaWNvbi1saXN0LWJ1bGxldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNmZcIjtcbn1cbi5pY29uLWZpbGUtc3ltbGluay1maWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw3MFwiO1xufVxuLmljb24tc3RyaWtldGhyb3VnaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNzFcIjtcbn1cbi5pY29uLXN1cGVyc2NyaXB0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw3MlwiO1xufVxuLmljb24tc3Vic2NyaXB0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw3M1wiO1xufVxuLmljb24tbGluazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNzRcIjtcbn1cbi5pY29uLXF1b3RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw3NlwiO1xufVxuLmljb24tYWxpZ24tY2VudGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw3N1wiO1xufVxuLmljb24tYWxpZ24tanVzdGlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNzhcIjtcbn1cbi5pY29uLWFsaWduLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDc5XCI7XG59XG4uaWNvbi1hbGlnbi1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcN2FcIjtcbn1cbi5pY29uLWNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDQxXCI7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vKioqXG4gKiBDb2xvciB2YXJpYWJsZXM6XG4gKi9cbi8qKlxuICogTWFpbiBjb2xvcjpcbiAqIGBAYWN0aW9uLWNvbG9yYFxuICogVGhlIG1haW4gYWN0aW9uIGNvbG9yLlxuICpcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2KHN0eWxlPSd3aWR0aDo1MHB4O2hlaWdodDo1MHB4O2JhY2tncm91bmQtY29sb3I6IzM3NjQ5MScpXG4gKi9cbi8qKlxuICogSW5mbyBjb2xvcjpcbiAqIGBAaW5mby1jb2xvcmBcbiAqIFRoZSBjb2xvciBmb3IgaW5mb21hdGlvbnNcbiAqXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdihzdHlsZT0nd2lkdGg6NTBweDtoZWlnaHQ6NTBweDtiYWNrZ3JvdW5kLWNvbG9yOiNGRTYzMjEnKVxuICovXG4vKipcbiAqIEJyaWdodCBjb2xvcjpcbiAqIGBAYnJpZ2h0LWNvbG9yYFxuICogQSBicmlnaHQgY29sb3IgXG4gKlxuICogXHRAZXhhbXBsZVxuICogXHRkaXYoc3R5bGU9J3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7YmFja2dyb3VuZC1jb2xvcjojRUZFRkU3JylcbiAqL1xuLyoqXG4gKiBEYXJrIGNvbG9yOlxuICogYEBkYXJrLWNvbG9yYFxuICogQSBkYXJrIGNvbG9yIFxuICpcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2KHN0eWxlPSd3aWR0aDo1MHB4O2hlaWdodDo1MHB4O2JhY2tncm91bmQtY29sb3I6IzNCNDM0NCcpXG4gKi9cbi8qKlxuICogRXJyb3IgY29sb3I6XG4gKiBgQGVycm9yLWNvbG9yYFxuICogQSBlcnJvciBsaWtlIGNvbG9yIFxuICpcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2KHN0eWxlPSd3aWR0aDo1MHB4O2hlaWdodDo1MHB4O2JhY2tncm91bmQtY29sb3I6I0VEM0Y0MCcpXG4gKi9cbi8qKlxuICogQ29ycmVjdCBjb2xvcjpcbiAqIGBAY29ycmVjdC1jb2xvcmBcbiAqIEEgc3VjY2Vzcy9jb3JyZWN0IGNvbG9yIFxuICpcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2KHN0eWxlPSd3aWR0aDo1MHB4O2hlaWdodDo1MHB4O2JhY2tncm91bmQtY29sb3I6IzFDQTUyRCcpXG4gKi9cbi8qKipcbiAqIExlc3MgdmFyaWFibGVzOlxuICovXG4vKipcbiAqIFJlc3BvbnNpdmUgYnJlYWtwb2ludDpcbiAqIGBAYnJlYWtwb2ludGAgLSBUaGUgcmVzcG9uc2l2ZSBicmVhayBwb2ludCB3aGVuIHRoZSBjb250ZW50IHNob3VsZCBiZSBsaXN0ZWQgdmVydGljYWxseS5cbiAqL1xuLyoqXG4gKiBCb3JkZXIgcmFkaXVzOlxuICogYEBib3JkZXItcmFkaXVzYCAtIFRoZSBjb21tb25seSB1c2VkIGJvcmRlciByYWRpdXNcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYoc3R5bGU9J3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7Ym9yZGVyLXJhZGl1czozcHg7YmFja2dyb3VuZC1jb2xvcjojNjY2JylcbiAqL1xuLyoqKlxuICogTGVzcyBmdW5jdGlvbnM6XG4gKi9cbi8qKlxuICogQ2xlYWZpeDpcbiAqIGAuY2xlYXJmaXgoKWAgLSBBZGRzIGEgY2xlYXJmaXggdG8gYW4gZWxlbWVudFxuICovXG4vKipcbiAqIENvbHVtbnM6XG4gKiBgLmNvbHVtbnNgIC0gU2V0dXBzIGEgc3R5bGUgZm9yIGZsb2F0aW5nIGNvbHVtbnNcbiAqL1xuQGltcG9ydCB1cmwoaHR0cDovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9U291cmNlK1NhbnMrUHJvOjcwMCw0MDAsMzAwKTtcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJkYXRlbmVkaXRvclwiO1xuICBzcmM6IHVybChcImZvbnRzL2RhdGVuZWRpdG9yLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCJmb250cy9kYXRlbmVkaXRvci5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9kYXRlbmVkaXRvci53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImZvbnRzL2RhdGVuZWRpdG9yLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiZm9udHMvZGF0ZW5lZGl0b3Iuc3ZnI2RhdGVuZWRpdG9yXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuW2RhdGEtaWNvbl06YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFwiZGF0ZW5lZGl0b3JcIiAhaW1wb3J0YW50O1xuICBjb250ZW50OiBhdHRyKGRhdGEtaWNvbik7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5bY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlLFxuW2NsYXNzKj1cIiBpY29uLVwiXTpiZWZvcmUge1xuICBmb250LWZhbWlseTogXCJkYXRlbmVkaXRvclwiICFpbXBvcnRhbnQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG4uaWNvbi1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2M1wiO1xufVxuLmljb24tY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDYxXCI7XG59XG4uaWNvbi1lcmFzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNjJcIjtcbn1cbi5pY29uLWl0YWxpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNjVcIjtcbn1cbi5pY29uLXVuZGVybGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNjZcIjtcbn1cbi5pY29uLWdyb3VwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2YlwiO1xufVxuLmljb24tYm9sZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNjRcIjtcbn1cbi5pY29uLXBhZ2UtY29weTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNmNcIjtcbn1cbi5pY29uLXBlbmNpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNmRcIjtcbn1cbi5pY29uLWV4dGVybmFsLWxpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDZlXCI7XG59XG4uaWNvbi1zdWNjZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2OFwiO1xufVxuLmljb24tZXJyb3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDY5XCI7XG59XG4uaWNvbi1pbXBvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDY3XCI7XG59XG4uaWNvbi1saXN0LW51bWJlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNmFcIjtcbn1cbi5pY29uLWxpc3QtYnVsbGV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2ZlwiO1xufVxuLmljb24tZmlsZS1zeW1saW5rLWZpbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDcwXCI7XG59XG4uaWNvbi1zdHJpa2V0aHJvdWdoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw3MVwiO1xufVxuLmljb24tc3VwZXJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDcyXCI7XG59XG4uaWNvbi1zdWJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDczXCI7XG59XG4uaWNvbi1saW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw3NFwiO1xufVxuLmljb24tcXVvdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDc2XCI7XG59XG4uaWNvbi1hbGlnbi1jZW50ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDc3XCI7XG59XG4uaWNvbi1hbGlnbi1qdXN0aWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw3OFwiO1xufVxuLmljb24tYWxpZ24tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNzlcIjtcbn1cbi5pY29uLWFsaWduLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw3YVwiO1xufVxuLmljb24tY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNDFcIjtcbn1cbi8qKipcbiAqIEJ1dHRvbnM6XG4gKi9cbi8qKlxuICogUmVndWxhciBCdXR0b246XG4gKiBgLmJ0bmAgLSBBIHJlZ3VsYXIgYnV0dG9uXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0YnV0dG9uLmJ0biBCdXR0b25cbiAqL1xuLmJ0biB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBmb250OiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzY5QkZGO1xuICBwYWRkaW5nOiA3cHggMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuM2VtO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LXNpemU6IDFlbTtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcbiAgLyoqXG5cdCAqIERpc2FibGVkIGJ1dHRvbjpcblx0ICogYC5kaXNhYmxlZGAgLSBBIHN0eWxlIGZvciBhIGRpc2FibGVkIGJ1dHRvblxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGJ1dHRvbi5idG4uZGlzYWJsZWQgRGlzYWJsZWRcblx0ICovXG4gIC8qKlxuXHQgKiBCYWNrIEJ1dHRvbjpcblx0ICogYC5iYWNrYCAtIFR1cm5zIHRoZSBidXR0b24gaW50byBhIGJhY2sgYnV0dG9uIHdpdGggYW4gYXJyb3cgb24gdGhlIGxlZnQgc2lkZVxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGJ1dHRvbi5idG4uYmFjayBCYWNrXG5cdCAqL1xuICAvKipcblx0ICogU2Vjb25kYXJ5IEJ1dHRvbjpcblx0ICogYC5zZWNvbmRgIC0gVHVybnMgdGhlIGJ1dHRvbiBpbnRvIGEgc2Vjb25kYXJ5IGJ1dHRvblxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGJ1dHRvbi5idG4uc2Vjb25kIFNlY29uZGFyeSBidXR0b25cblx0ICovXG59XG4uYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzljY2VmZjtcbn1cbi5idG4uZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTJlN2VjO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGNvbG9yOiAjODY5YmFmO1xufVxuLmJ0bi5iYWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmJ0bi5iYWNrOmhvdmVyOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5Y2NlZmY7XG59XG4uYnRuLmJhY2s6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAyNHB4O1xuICB3aWR0aDogMjRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM2OUJGRjtcbiAgbGVmdDogLTExcHg7XG4gIHRvcDogNXB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwLjcpIHJvdGF0ZSg0NWRlZyk7XG4gIC1tb3otdHJhbnNmb3JtOiBzY2FsZVgoMC43KSByb3RhdGUoNDVkZWcpO1xuICAtby10cmFuc2Zvcm06IHNjYWxlWCgwLjcpIHJvdGF0ZSg0NWRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlWCgwLjcpIHJvdGF0ZSg0NWRlZyk7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDAuNykgcm90YXRlKDQ1ZGVnKTtcbn1cbi5idG4uc2Vjb25kIHtcbiAgcGFkZGluZzogN3B4IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjFlbTtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVlOWJkNztcbn1cbi5idG4uc2Vjb25kOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM2OUJGRjtcbn1cbi5idG4uaWNvbiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzNjlCRkY7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xufVxuLmJ0bi5pY29uOmhvdmVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzljY2VmZjtcbn1cbi5idG4uaWNvbjpob3ZlciA+IC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzljY2VmZjtcbn1cbi5idG4uaWNvbiA+IC5pY29uIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgcGFkZGluZzogM3B4IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM2OUJGRjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5idG4uaWNvbiA+IC5pY29uLWJ1dHRvbi0tdGV4dCB7XG4gIGNvbG9yOiAjM0I0MzQ0O1xuICBmb250LXNpemU6IDAuN2VtO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBwYWRkaW5nOiA0cHggMTBweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xufVxuLyoqKlxuICogVGV4dCBzdHlsZXM6XG4gKi9cbi8qKlxuICogSDE6XG4gKiBgaDFgIC0gVGhlIGgxIHN0eWxlXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0aDEgQSBkZW1vIGgxIGhlYWRlclxuICovXG5oMSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMi4yZW07XG4gIG1hcmdpbi10b3A6IDQxcHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUZFRkU3O1xuICBjb2xvcjogIzNCNDM0NDtcbn1cbi8qKlxuICogSDI6XG4gKiBgaDJgIC0gVGhlIGgyIHN0eWxlXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0aDIgQSBkZW1vIGgyIGhlYWRlclxuICovXG5oMiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuNmVtO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGNvbG9yOiAjM0I0MzQ0O1xufVxuLyoqXG4gKiBCb2R5OlxuICogYGJvZHlgIC0gQSBib2R5IHN0eWxlIGZvciBmb250LlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdiBNeSBUZXN0IEZvbnRcbiAqL1xuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMgUHJvJywgc2Fucy1zZXJpZjtcbn1cbi8qKlxuICogTGFiZWw6XG4gKiBgLmxhYmVsYCAtIEEgc3R5bGluZyBmb3IgYSBsYWJlbFxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5sYWJlbCBNeSBsYWJlbFxuICovXG4ubGFiZWwge1xuICBmb250LXNpemU6IDAuN2VtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogIzM2OUJGRjtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuLyoqXG4gKiBJY29uOlxuICogYC5pY29uYCAtIERlZmF1bHQgaWNvbiBzaXplIFxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5pY29uXG4gKiBcdFx0ZGl2Lmljb24oZGF0YS1pY29uPVwiYlwiKVxuICovXG4uaWNvbiB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiA2cHggMCAwIDA7XG4gIC8qKlxuXHQgKiBCdXR0b24gaWNvbjpcblx0ICogYC5pY29uLmljb24tLWJ0bmAgLSBBIHN0eWxpbmcgZm9yIGEgaWNvbiBidXR0b25cblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYuaWNvbi5pY29uLS1idG4oZGF0YS1pY29uPVwiYlwiKVxuXHQgKi9cbn1cbi5pY29uLmljb24tLWJ0biB7XG4gIGNvbG9yOiAjMzY5QkZGO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7XG4gIC8qKlxuXHRcdCAqIEludmVydGVkIGJ1dHRvbiBpY29uOlxuXHRcdCAqIGAuaWNvbi5pY29uLS1idG4uaWNvbi0taW52YCAtIEEgc3R5bGluZyBmb3IgYW4gaW52ZXJ0ZWQgaWNvbiBidXR0b25cblx0XHQgKiBcblx0XHQgKiBcdEBleGFtcGxlXG5cdFx0ICogXHRkaXYuaWNvbi5pY29uLS1idG4uaWNvbi0taW52KGRhdGEtaWNvbj1cImJcIilcblx0XHQgKi9cbn1cbi5pY29uLmljb24tLWJ0bjpob3ZlciB7XG4gIGNvbG9yOiAjOWNjZWZmO1xufVxuLmljb24uaWNvbi0tYnRuLmljb24tLWludiB7XG4gIGNvbG9yOiAjRkZGO1xufVxuLmljb24uaWNvbi0tYnRuLmljb24tLWludjpob3ZlciB7XG4gIGNvbG9yOiAjY2NjY2NjO1xufVxuLyoqXG4gKiBpbmZvOlxuICogYC5pbmZvLXRleHRgIC0gQSBzbWFsbCBpbmZvIHRleHRcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuaW5mby10ZXh0IEluZm8gbWVzc2FnZVxuICovXG4uaW5mby10ZXh0IHtcbiAgY29sb3I6ICM5ZmFhYWM7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG4vKioqXG4gKiBSZXBvbnNpdmU6XG4gKi9cbi8qKlxuICogQ29udGFpbmVyOlxuICogYC5jb250YWluZXJgIC0gQSBtYWluIHdlYnNpdGUgY29udGFpbmVyIHRoYXQgY2VudGVycyB0aGUgY29udGFpbmVyIGFuZCBoYXMgdGhlIGNvcnJlc3BvbmluZyByZXNwb25zaXZlIGp1bXBzXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmNvbnRhaW5lcihzdHlsZT0nYmFja2dyb3VuZC1jb2xvcjojQUFBO2hlaWdodDo1MHB4OycpIFxuICovXG4uY29udGFpbmVyIHtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiA3NTBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiA5NzBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTE3MHB4O1xuICB9XG59XG4vKipcbiAqIENvbHVtbnM6XG4gKiBgLmNvbGAgLSBBIGJhc2Ugc3R5bGluZyBmb3IgYW55IG51bWJlciBvZiBjb2x1bW5zXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmNvbFxuICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gIH1cbiAgLmNvbDpiZWZvcmUsXG4gIC5jb2w6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG4gIC5jb2w6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG4gIC5jb2wgPiAqIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxufVxuLyoqXG4gKiBIYWxmIGNvbHVtbiB3aWR0aCBtb2RpZmllcjpcbiAqIGAuaGFsZmAgLSBBIHN0eWxlIHRoYXQgZGVmaW5lcyB0aGUgd2lkdGggdG8gNTAlLlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5jb2xcbiAqIFx0XHRkaXYuaGFsZihzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2NjY1wiKSBPbmUgc2lkZVxuICogXHRcdGRpdi5oYWxmKHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojYWFhXCIpIE90aGVyIHNpZGVcbiAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oYWxmIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG59XG4vKipcbiAqIFRoaXJkIGNvbHVtbiB3aWR0aCBtb2RpZmllcjpcbiAqIGAudGhpcmRgIC0gQSBzdHlsZSB0aGF0IGRlZmluZXMgdGhlIHdpZHRoIHRvIDEwMC8zICUuXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmNvbFxuICogXHRcdGRpdi50aGlyZChzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2NjY1wiKSBPbmUgc2lkZVxuICogXHRcdGRpdi50aGlyZChzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2FhYVwiKSBPdGhlciBzaWRlXG4gKiBcdFx0ZGl2LnRoaXJkKHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojYmJiXCIpIFRoaXJkIHNpZGVcbiAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC50aGlyZCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxufVxuLyoqXG4gKiBGdWxsIGNvbHVtbiB3aWR0aCBtb2RpZmllcjpcbiAqIGAuZnVsbGAgLSBBIHN0eWxlIHRoYXQgZGVmaW5lcyB0aGUgd2lkdGggdG8gMTAwJS5cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuY29sXG4gKiBcdFx0ZGl2LmZ1bGwoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNjY2NcIikgRnVsbCBjb250ZW50XG4gKi9cbi5mdWxsIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKipcbiAqIDgwJSAvIDIwJSBjb2x1bW4gd2lkdGggbW9kaWZpZXI6XG4gKiBgLmNvbC04MCwgLmNvbC0yMGAgLSBUd28gc3R5bGVzIHRoYXQgZGVmaW5lcyB0aGUgd2lkdGggdG8gODAlIG9yIDIwJS5cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuY29sXG4gKiBcdFx0ZGl2LmNvbC04MChzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2NjY1wiKSBPbmUgc2lkZVxuICogXHRcdGRpdi5jb2wtMjAoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNhYWFcIikgT3RoZXIgc2lkZVxuICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbC0yMCB7XG4gICAgd2lkdGg6IDIwJTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2wtODAge1xuICAgIHdpZHRoOiA4MCU7XG4gIH1cbn1cbi8qKlxuICogUmVzcG9uc2l2ZSBpbWFnZSBjb250YWluZXI6XG4gKiBgLnJlc3BvbnNpdmUtaW1nYCAtIEEgc3R5bGUgdGhhdCBtYWtlcyB0aGUgaW1hZ2Ugc2NhbGluZyB0byBpdHMgbWF4IHdpZHRoLlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGltZy5yZXNwb25zaXZlLWltZyhzcmM9J2h0dHA6Ly93d3cuYnl1aS5lZHUvaW1hZ2VzL2FncmljdWx0dXJlLWxpZmUtc2NpZW5jZXMvZmxvd2VyLmpwZycpXG4gKi9cbi5yZXNwb25zaXZlLWltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLyoqXG4gKiBSZXNwb25zaXZlIDQ6My8xNjo5IG1lZGlhIGNvbnRhaW5lcjpcbiAqIGAucmVzcG9uc2l2ZS1tZWRpYSAubWVkaWEtNC0zLCAucmVzcG9uc2l2ZS1tZWRpYSAubWVkaWEtMTYtOWAgLSBUaGlzIG1ha2VzIGEgZGl2IGEgY29udGFpbmVyIGZvciBhbnkgbWVkaWEgZWxlbWVudCAoaWZyYW1lLCB2aWRlbywgLi4uICkgdGhhdCByZXNwb25zaXZlIHNjYWxlcyB3aXRoIGEgZml4IHJhdGlvLlxuICogVGhlIG1lZGlhIGVsZW1lbnQgbmVlZHMgdGhlIGNsYXNzIGAubWVkaWFgLiBUaGUgYC5yZXNwb25zaXZlLW1lZGlhYCBjb250YWluZXIgY2FuIGhhdmUgb25lIG9mIHRoZSBmb2xsb3dpbmcgY2xhc3NlczogYC5tZWRpYS00LTNgLCBgLm1lZGlhLTE2LTlgIHRvIGRlZmluZSB0aGUgZml4IHJhdGlvLlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5yZXNwb25zaXZlLW1lZGlhLm1lZGlhLTQtM1xuICogXHRcdGlmcmFtZS5tZWRpYShzcmM9Jy8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL0hoWmFIZjhSUDZnJyxmcmFtZWJvcmRlcj0nMCcpXG4gKi9cbi5yZXNwb25zaXZlLW1lZGlhIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IDUwJTtcbn1cbi5yZXNwb25zaXZlLW1lZGlhID4gLm1lZGlhIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4ucmVzcG9uc2l2ZS1tZWRpYS5tZWRpYS00LTMge1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xufVxuLnJlc3BvbnNpdmUtbWVkaWEubWVkaWEtMTYtOSB7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNiU7XG59XG4vKioqXG4gKiBGb3JtIGRlZmluaXRpb25zOlxuICovXG4vKipcbiAqIGZvcm06XG4gKiBgLmZvcm1gIC0gQSBzdHlsZSBmb3IgYWxsIHR5cGVzIG9mIGZvcm1zLiBcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRpbnB1dC5mb3JtKHZhbHVlPVwiVGV4dFwiKVxuICovXG4uZm9ybSB7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjNlbTtcbiAgbWluLWhlaWdodDogMzRweDtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiAjNTU1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IDAuMTVzLCAtd2Via2l0LWJveC1zaGFkb3cgZWFzZS1pbi1vdXQgMC4xNXM7XG4gIC1vLXRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAwLjE1cywgYm94LXNoYWRvdyBlYXNlLWluLW91dCAwLjE1cztcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IDAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IDAuMTVzO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qKlxuXHQgKiBGb3JtIHdpdGggaWNvbjpcblx0ICogYC5mb3JtID4gLmljb25gIC0gQSBmb3JtIHdpdGggYW4gb3Zlcmx5aW5nIGljb24gb24gdGhlIHJpZ2h0IHNpZGVcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYuZm9ybSBUZXh0XG5cdCAqIFx0XHRkaXYuaWNvbihkYXRhLWljb249XCJiXCIpXG5cdCAqL1xufVxuLmZvcm0gPiAuaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogNnB4O1xufVxuLmZvcm06Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICMzNjlCRkY7XG4gIG91dGxpbmU6IG5vbmU7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4ICNjZmU3ZmY7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCAjY2ZlN2ZmO1xufVxuc2VsZWN0LmZvcm0ge1xuICBoZWlnaHQ6IDM0cHg7XG59XG4vKioqXG4gKiBUYWJzOlxuICovXG4vKipcbiAqIHRhYnM6XG4gKiBgLnRhYnNgIC0gQSBiYXNpYyBzdHlsaW5nIGZvciBhbGwgdGFicyBmb3Jtc1xuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdG9sLnRhYnNcbiAqIFx0XHRsaSBUYWIxXG4gKiBcdFx0bGkgVGFiMiB3aXRoIHZlcnkgbG9uZyB0ZXh0LlxuICogXHRcdGxpIFRhYjNcbiAqL1xuLnRhYnMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qKlxuXHQgKiBUb3AgdGFiczpcblx0ICogYC50YWJzLnRvcGAgLSBTdHlsZXMgdGhlIHRhYnMgZm9yIGhvcml6b250YWwgYWxpZ21lbnQgb24gdGhlIHRvcFxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdG9sLnRhYnMudG9wXG5cdCAqIFx0XHRsaSBUYWIxXG5cdCAqIFx0XHRsaS5hY3RpdmUgVGFiMlxuXHQgKiBcdFx0bGkgVGFiM1xuXHQgKi9cbiAgLyoqXG5cdCAqIExlZnQgdGFiczpcblx0ICogYC50YWJzLmxlZnRgIC0gU3R5bGVzIHRoZSB0YWJzIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQgb24gdGhlIGxlZnQgc2lkZVxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdG9sLnRhYnMubGVmdFxuXHQgKiBcdFx0bGkgVGFiMVxuXHQgKiBcdFx0bGkuYWN0aXZlIFRhYjJcblx0ICogXHRcdGxpIFRhYjNcblx0ICovXG4gIC8qKlxuXHQgKiBSaWdodCB0YWJzOlxuXHQgKiBgLnRhYnMucmlnaHRgIC0gU3R5bGVzIHRoZSB0YWJzIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQgb24gdGhlIHJpZ2h0IHNpZGVcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRvbC50YWJzLnJpZ2h0XG5cdCAqIFx0XHRsaSBUYWIxXG5cdCAqIFx0XHRsaS5hY3RpdmUgVGFiMlxuXHQgKiBcdFx0bGkgVGFiM1xuXHQgKi9cbn1cbi50YWJzID4gbGkge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMzY5QkZGO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiAzNHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuLnRhYnMgPiBsaTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNjlCRkY7XG4gIGJvcmRlci1jb2xvcjogIzM2OUJGRjtcbiAgY29sb3I6ICNGRkY7XG59XG4udGFicyA+IGxpLnNlbGVjdGVkIHtcbiAgYm9yZGVyLWNvbG9yOiAjMzY5QkZGO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzY5QkZGO1xuICBjb2xvcjogI0ZGRjtcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG59XG4udGFicy50b3Age1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzM2OUJGRjtcbiAgcGFkZGluZzogMCAycHg7XG59XG4udGFicy50b3AgPiBsaSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMzY5QkZGO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMCU7XG59XG4udGFicy5sZWZ0IHtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgIzM2OUJGRjtcbiAgcGFkZGluZzogMnB4IDA7XG59XG4udGFicy5sZWZ0ID4gbGkge1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjMzY5QkZGO1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgbWFyZ2luLXJpZ2h0OiAtMnB4O1xufVxuLnRhYnMubGVmdCA+IGxpOmhvdmVyIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjMzY5QkZGO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjMzY5QkZGO1xufVxuLnRhYnMucmlnaHQge1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkICMzNjlCRkY7XG4gIHBhZGRpbmc6IDJweCAwO1xufVxuLnRhYnMucmlnaHQgPiBsaSB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzM2OUJGRjtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qKipcbiAqIFRhYmxlOlxuICovXG4vKipcbiAqIFRhYmxlOlxuICogYC50YWJsZWAgLSBUaGUgbWFpbiB0YWJsZSB3aXRoIGhlYWRlciBhbmQgcm93cyBpbnNpZGVcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYudGFibGUuY29sLTJcbiAqIFx0XHRkaXYucm93LmhlYWRlclxuICogXHRcdFx0ZGl2LmNlbGwgQ29sdW1uMVxuICogXHRcdFx0ZGl2LmNlbGwgQ29sdW1uMlxuICogXHRcdGRpdi5yb3cuZXZlblxuICogXHRcdFx0ZGl2LmNlbGwgRGF0YTExXG4gKiBcdFx0XHRkaXYuY2VsbCBEYXRhMTJcbiAqIFx0XHRkaXYucm93Lm9kZFxuICogXHRcdFx0ZGl2LmNlbGwgRGF0YTExXG4gKiBcdFx0XHRkaXYuY2VsbCBEYXRhMTJcbiAqIFx0XHRkaXYucm93LmV2ZW5cbiAqIFx0XHRcdGRpdi5jZWxsIERhdGExMVxuICogXHRcdFx0ZGl2LmNlbGwgRGF0YTEyXG4gKiBcdFx0ZGl2LnJvdy5vZGQuYWN0aXZlXG4gKiBcdFx0XHRkaXYuY2VsbCBEYXRhMTFcbiAqIFx0XHRcdGRpdi5jZWxsIERhdGExMlxuICovXG4udGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cbi50YWJsZS5jb2wtMTAgPiAucm93ID4gLmNlbGwge1xuICB3aWR0aDogMTAlO1xufVxuLnRhYmxlLmNvbC05ID4gLnJvdyA+IC5jZWxsIHtcbiAgd2lkdGg6IDExLjExMTExMTExJTtcbn1cbi50YWJsZS5jb2wtOCA+IC5yb3cgPiAuY2VsbCB7XG4gIHdpZHRoOiAxMi41JTtcbn1cbi50YWJsZS5jb2wtNyA+IC5yb3cgPiAuY2VsbCB7XG4gIHdpZHRoOiAxNC4yODU3MTQyOSU7XG59XG4udGFibGUuY29sLTYgPiAucm93ID4gLmNlbGwge1xuICB3aWR0aDogMTYuNjY2NjY2NjclO1xufVxuLnRhYmxlLmNvbC01ID4gLnJvdyA+IC5jZWxsIHtcbiAgd2lkdGg6IDIwJTtcbn1cbi50YWJsZS5jb2wtNCA+IC5yb3cgPiAuY2VsbCB7XG4gIHdpZHRoOiAyNSU7XG59XG4udGFibGUuY29sLTMgPiAucm93ID4gLmNlbGwge1xuICB3aWR0aDogMzMuMzMzMzMzMzMlO1xufVxuLnRhYmxlLmNvbC0yID4gLnJvdyA+IC5jZWxsIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi50YWJsZS5jb2wtMSA+IC5yb3cgPiAuY2VsbCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnRhYmxlID4gLnJvdyB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGJkYmM4O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGJkYmM4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VGRUZFNztcbn1cbi50YWJsZSA+IC5yb3c6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNkYmRiYzg7XG59XG4udGFibGUgPiAucm93Lm9kZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG59XG4udGFibGUgPiAucm93ID4gLmNlbGwge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nOiA1cHggOHB4O1xuICBmb250LXdlaWdodDogbGlnaHRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuLnRhYmxlID4gLnJvdy5zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNjlCRkY7XG4gIGNvbG9yOiAjRkZGO1xuICBib3JkZXItbGVmdC1jb2xvcjogIzM2OUJGRjtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjMzY5QkZGO1xufVxuLnRhYmxlID4gLnJvdy5oZWFkZXIge1xuICBjb2xvcjogIzNCNDM0NDtcbiAgZm9udC1zaXplOiAxZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkYmRiYzg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFRkVGRTc7XG59XG4udGFibGUgPiAucm93LmhlYWRlciA+IC5jZWxsIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi8qKipcbiAqIE1lc3NhZ2VzOlxuICovXG4vKipcbiAqIFBvcHVwIG1lc3NhZ2U6XG4gKiBgLnBvcHVwLW1zZ2AgLSBBIHN0eWxpbmcgZm9yIGEgcG9wdXAgbWVzc2FnZVxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5wb3B1cC1tc2cgVGhlIHBvcHVwIG1lc3NhZ2VcbiAqL1xuLnBvcHVwLW1zZyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFRkVGRTc7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDJweCAycHggNXB4IDBweCByZ2JhKDUwLCA1MCwgNTAsIDAuMSk7XG4gIC1tb3otYm94LXNoYWRvdzogMnB4IDJweCA1cHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC4xKTtcbiAgYm94LXNoYWRvdzogMnB4IDJweCA1cHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC4xKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgLyoqXG5cdCAgKiBFcnJvciBwb3AgbWVzc2FnZTpcblx0ICAqIGAuZXJyb3JgIC0gRXJyb3Igc3R5bGluZyBmb3IgdGhlIHBvcHVwIG1lc3NhZ2Vcblx0ICAqIFxuXHQgICogXHRAZXhhbXBsZVxuXHQgICogXHRkaXYucG9wdXAtbXNnLmVycm9yIFRoZSBlcnJvciBwb3B1cCBtZXNzYWdlXG5cdCAgKi9cbn1cbi5wb3B1cC1tc2cuZXJyb3Ige1xuICBib3JkZXItY29sb3I6ICNFRDNGNDA7XG59XG4ucG9wdXAtbXNnIC5jbG9zZS1idXQge1xuICBmbG9hdDogcmlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5wb3B1cC1tc2cgcCB7XG4gIG1hcmdpbjogMDtcbn1cbi5wb3B1cC1tc2cgLmJ0biB7XG4gIG1hcmdpbjogMCAxMHB4O1xufVxuLyoqXG4gKiBGbG9hdDpcbiAqIGAuZmxvYXRgIC0gQSBmbG9hdCBzdHlsZSB0aGF0IG1ha2VzIHRoZSBwb3B1cCBtZXNzYWdlIGZsb2F0IG92ZXIgdGhlIGNvbnRlbnRcbiAqL1xuLmZsb2F0IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDVweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDAwO1xufVxuLyoqKlxuICogSGVscGVyczpcbiAqL1xuLyoqXG4gKiBSZW1vdmU6XG4gKiBgLnJlbW92ZWAgLSBSZW1vdmVzIGEgZGl2LlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5yZW1vdmUgVGVzdFxuICovXG4ucmVtb3ZlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qKipcbiAqIExheW91dDpcbiAqL1xuLyoqXG4gKiBPbmUgc2lkZSBmaXhlZCBsYXlvdXQ6XG4gKiBgLmxheW91dC1hbmNob3JgIC0gQmFzZSBmb3IgYSBsYXlvdXQgd2hlcmUgb25lIHNpZGUgaXMgZml4ZWRcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYubGF5b3V0LWFuY2hvclxuICovXG4ubGF5b3V0LWFuY2hvciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKipcblx0ICogTGVmdCBhbmNob3JlZDpcblx0ICogYC5sYXlvdXQtYW5jaG9yLmxlZnRgIC0gTGVmdCBhbmNob3IgbGF5b3V0XG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2LmxheW91dC1hbmNob3IubGVmdFxuXHQgKiBcdFx0ZGl2KHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojY2NjXCIpIExlZnRcblx0ICogXHRcdGRpdihzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2FhYVwiKSBSaWdodFxuXHQgKi9cbiAgLyoqXG5cdCAqIFJpZ2h0IGFuY2hvcmVkOlxuXHQgKiBgLmxheW91dC1hbmNob3IucmlnaHRgIC0gUmlnaHQgYW5jaG9yIGxheW91dFxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGRpdi5sYXlvdXQtYW5jaG9yLnJpZ2h0XG5cdCAqIFx0XHRkaXYoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNjY2NcIikgTGVmdFxuXHQgKiBcdFx0ZGl2KHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojYWFhXCIpIFJpZ2h0XG5cdCAqL1xuICAvKipcblx0ICogQm90dG9tIGFuY2hvcmVkOlxuXHQgKiBgLmxheW91dC1hbmNob3IuYm90dG9tYCAtIEJvdHRvbSBhbmNob3IgbGF5b3V0XG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2LmxheW91dC1hbmNob3IuYm90dG9tKHN0eWxlPVwiaGVpZ2h0OjEyMHB4XCIpXG5cdCAqIFx0XHRkaXYoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNjY2NcIikgVG9wXG5cdCAqIFx0XHRkaXYoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNhYWFcIikgQm90dG9tXG5cdCAqL1xuICAvKipcblx0ICogVG9wIGFuY2hvcmVkOlxuXHQgKiBgLmxheW91dC1hbmNob3IudG9wYCAtIFRvcCBhbmNob3IgbGF5b3V0XG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2LmxheW91dC1hbmNob3IudG9wKHN0eWxlPVwiaGVpZ2h0OjEyMHB4XCIpXG5cdCAqIFx0XHRkaXYoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNjY2NcIikgVG9wXG5cdCAqIFx0XHRkaXYoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNhYWFcIikgQm90dG9tXG5cdCAqL1xufVxuLmxheW91dC1hbmNob3IubGVmdCB7XG4gIGJvcmRlci1zcGFjaW5nOiAxNXB4IDA7XG4gIG1hcmdpbjogMCAtMTVweDtcbn1cbi5sYXlvdXQtYW5jaG9yLmxlZnQgPiAqIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cbi5sYXlvdXQtYW5jaG9yLmxlZnQgPiA6Zmlyc3QtY2hpbGQge1xuICB3aWR0aDogYXV0bztcbn1cbi5sYXlvdXQtYW5jaG9yLmxlZnQgPiA6bGFzdC1jaGlsZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmxheW91dC1hbmNob3IucmlnaHQge1xuICBib3JkZXItc3BhY2luZzogMTVweCAwO1xuICBtYXJnaW46IDAgLTE1cHg7XG59XG4ubGF5b3V0LWFuY2hvci5yaWdodCA+ICoge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLmxheW91dC1hbmNob3IucmlnaHQgPiA6Zmlyc3QtY2hpbGQge1xuICB3aWR0aDogMTAwJTtcbn1cbi5sYXlvdXQtYW5jaG9yLnJpZ2h0ID4gOmxhc3QtY2hpbGQge1xuICB3aWR0aDogYXV0bztcbn1cbi5sYXlvdXQtYW5jaG9yLmJvdHRvbSB7XG4gIGJvcmRlci1zcGFjaW5nOiAwIDE1cHg7XG4gIG1hcmdpbjogLTE1cHggMDtcbn1cbi5sYXlvdXQtYW5jaG9yLmJvdHRvbSA+ICoge1xuICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG4ubGF5b3V0LWFuY2hvci5ib3R0b20gPiA6Zmlyc3QtY2hpbGQge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4ubGF5b3V0LWFuY2hvci5ib3R0b20gPiA6bGFzdC1jaGlsZCB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5sYXlvdXQtYW5jaG9yLnRvcCB7XG4gIGJvcmRlci1zcGFjaW5nOiAwIDE1cHg7XG4gIG1hcmdpbjogLTE1cHggMDtcbn1cbi5sYXlvdXQtYW5jaG9yLnRvcCA+ICoge1xuICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG4ubGF5b3V0LWFuY2hvci50b3AgPiA6Zmlyc3QtY2hpbGQge1xuICBoZWlnaHQ6IGF1dG87XG59XG4ubGF5b3V0LWFuY2hvci50b3AgPiA6bGFzdC1jaGlsZCB7XG4gIGhlaWdodDogMTAwJTtcbn1cbi8qKlxuICogT2xkIHBhbmVsIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoIGEgcmVzcG9uc2l2ZSBvbmUuXG4gKi9cbi5vdmVybGF5LWNvbnRlbnQge1xuICBwYWRkaW5nOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMnB4IDJweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgYm94LXNoYWRvdzogMnB4IDJweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cbi5vdmVybGF5LWNvbnRlbnQgLmNsb3NlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwcHg7XG4gIHJpZ2h0OiAxMHB4O1xufVxuLm92ZXJsYXktbWFzayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cbi8qKlxuICogRHJvcGRvd246XG4gKiBgLmRyb3Bkb3duYCAtIFN0eWxpbmcgZm9yIGEgaHRtbCBkcm9wZG93blxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5kcm9wZG93blxuICogXHRcdGRpdi5kcm9wZG93bi0tYnV0dG9uIEFkZFxuICogXHRcdGRpdi5kcm9wZG93bi0tbWVudVxuICovXG4uZHJvcGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZHJvcGRvd24gPiAuZHJvcGRvd24tLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzNweDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgY29sb3I6ICMzQjQzNDQ7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgei1pbmRleDogMTAwMDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMnB4IDNweCAzcHggcmdiYSg1MCwgNTAsIDUwLCAwLjEpO1xuICAtbW96LWJveC1zaGFkb3c6IDBweCAycHggM3B4IDNweCByZ2JhKDUwLCA1MCwgNTAsIDAuMSk7XG4gIGJveC1zaGFkb3c6IDBweCAycHggM3B4IDNweCByZ2JhKDUwLCA1MCwgNTAsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cbi5kcm9wZG93biA+IC5kcm9wZG93bi0tbWVudSA+IGxpIHtcbiAgcGFkZGluZzogNHB4IDEycHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcywgY29sb3IgMC40cztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmRyb3Bkb3duID4gLmRyb3Bkb3duLS1tZW51ID4gbGk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzY5QkZGO1xuICBjb2xvcjogI0ZGRjtcbn1cbi8qKipcbiAqIElucHV0czpcbiAqL1xuLyoqXG4gKiBJbnB1dDpcbiAqIGAuaW5wdXRgIC0gVGhlIGJhc2Ugc3R5bGluZyBmb3IgYW4gZGF0ZW5lZGl0b3IgaW5wdXRcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuaW5wdXRcbiAqIFx0XHRkaXYubGFiZWwgVGhlIGxhYmVsXG4gKlx0XHRkaXYudmFsdWUgVGhlIHZhbHVlXG4gKi9cbi5pbnB1dCB7XG4gIG1hcmdpbi10b3A6IDEycHg7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLmlucHV0ID4gLmhpbnQge1xuICBjdXJzb3I6IGhlbHA7XG59XG4uaW5wdXQuYXR0cmlidXRlIC52YWxpZGF0aW9uLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5pbnB1dC5hdHRyaWJ1dGUuZXJyb3IgLnZhbGlkYXRpb24tZXJyb3Ige1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5pbnB1dC5hdHRyaWJ1dGUuZXJyb3IgLnN0YXR1cy1pY29uLmljb24tZXJyb3Ige1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICNFRDNGNDA7XG59XG4uaW5wdXQuYXR0cmlidXRlLnN1Y2Nlc3MgLnN0YXR1cy1pY29uLmljb24tc3VjY2VzcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogIzFDQTUyRDtcbn1cbi5pbnB1dC5hdHRyaWJ1dGUgLnN0YXR1cy1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE1cHg7XG4gIHJpZ2h0OiAxN3B4O1xuICB6LWluZGV4OiAxMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBkaXNwbGF5OiBub25lO1xufVxuLmlucHV0LmVycm9yIC5mb3JtIHtcbiAgYm9yZGVyLWNvbG9yOiAjRUQzRjQwO1xufVxuLmlucHV0LnN1Y2Nlc3MgLmZvcm0ge1xuICBib3JkZXItY29sb3I6ICMxQ0E1MkQ7XG59XG4udmFsaWRhdGlvbi1lcnJvciB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAycHg7XG4gIGNvbG9yOiAjYjUxMTEyO1xufVxuLyoqXG4gKiBJbmZvaW5wdXQ6XG4gKiBgLmlucHV0LmluZm9gIC0gVGhlIHN0eWxlIGZvciBhIGluZm8gaW5wdXRcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuaW5wdXQuaW5mb1xuICogXHRcdGRpdi5sYWJlbCBNeSBBdHRyaWJ1dGVcbiAqIFx0XHRkaXYudmFsdWUgTXkgVmFsdWVcbiAqL1xuLmluZm8uaW5wdXQgLnZhbHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VGRUZFNztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi8qKlxuICogQXJyYXkgaW5wdXQ6XG4gKiBgLmlucHV0LmFycmF5YCAtIFRoZSBzdHlsZSBmb3IgYW4gYXJyYXkgaW5wdXRcbiAqXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5pbnB1dC5hcnJheVxuICogXHRcdGRpdi5sYWJlbCBNeSBBdHRyaWJ1dGVcbiAqIFx0XHRkaXYudGFnc1xuICogXHRcdFx0ZGl2LnRhZ1xuICogXHRcdFx0XHRkaXYudGFnLW5hbWUgRmlyc3QgVGFnXG4gKiBcdFx0XHRcdHNwYW4ucmVtb3ZlIHhcbiAqIFx0XHRcdGRpdi50YWdcbiAqIFx0XHRcdFx0ZGl2LnRhZy1uYW1lIFNlY29uZCBUYWdcbiAqIFx0XHRcdFx0c3Bhbi5yZW1vdmUgeFxuICovXG4vKipcbiAqIENvZGUgaW5wdXQ6XG4gKiBgLmlucHV0LmNvZGVgIC0gVGhlIHN0eWxlIGZvciB0aGUgY29kZSBpbnB1dFxuICovXG4uaW5wdXQuY29kZSAuYWNlIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLyoqXG4gKiBHcm91cCBpbnB1dDpcbiAqIGAuaW5wdXQuZ3JvdXBgIC0gVGhlIHN0eWxlIGZvciBncm91cGVkIGlucHV0c1xuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5pbnB1dC5ncm91cC5vcGVuXG4gKiBcdFx0ZGl2LmxhYmVsIE15IEdyb3VwXG4gKiBcdFx0ZGl2Lmdyb3VwLWNvbnRlbnQgTXkgVmFsdWVcbiAqL1xuLmlucHV0Lmdyb3VwIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uaW5wdXQuZ3JvdXAgPiAubGFiZWwge1xuICBjb2xvcjogIzNCNDM0NDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5pbnB1dC5ncm91cCA+IC5sYWJlbCAuaWNvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xufVxuLmlucHV0Lmdyb3VwID4gLmdyb3VwLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAwIDEwcHggMTBweCAxMHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbn1cbi5pbnB1dC5ncm91cC5vcGVuID4gLmxhYmVsIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFRkVGRTc7XG59XG4uaW5wdXQuZ3JvdXAub3BlbiA+IC5sYWJlbCAuaWNvbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSB0cmFuc2xhdGVYKC0xcHgpO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5pbnB1dC5ncm91cC5vcGVuID4gLmdyb3VwLWNvbnRlbnQge1xuICBtYXJnaW4tdG9wOiAwO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qKlxuICogQm9vbGVhbiBpbnB1dDpcbiAqIGAuaW5wdXQuYm9vbGVhbmAgLSBUaGUgYm9vbGVhbiBzd2l0Y2hcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuaW5wdXQuYm9vbGVhblxuICogXHRcdGRpdi5sYWJlbCBNeSBCb29sZWFuXG4gKiBcdFx0ZGl2LnN3aXRjaC5mb3JtXG4gKiBcdFx0XHRkaXYuc3RhdGUgT25cbiAqIFx0XHRcdGRpdi5zdGF0ZSBPZmZcbiAqIFx0XHRcdGRpdi5oYW5kbGVcbiAqL1xuLmlucHV0LmJvb2xlYW4gLnN3aXRjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogdGFibGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1ODU4NTg7XG4gIGNvbG9yOiAjRkZGO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5pbnB1dC5ib29sZWFuIC5zd2l0Y2ggLnN0YXRlIHtcbiAgd2lkdGg6IDUwJTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA2cHggMTJweDtcbn1cbi5pbnB1dC5ib29sZWFuIC5zd2l0Y2ggLmhhbmRsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDUwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDBweCAycHggM3B4ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20oI2Y3ZjdmNyksIHRvKCNlN2U3ZTcpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZjdmN2Y3LCAjZTdlN2U3KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZjdmN2Y3LCAjZTdlN2U3KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICNmN2Y3ZjcsICNlN2U3ZTcpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAjZjdmN2Y3LCAjZTdlN2U3KTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2UtaW4tb3V0O1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2UtaW4tb3V0O1xuICAtby10cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZS1pbi1vdXQ7XG59XG4uaW5wdXQuYm9vbGVhbiAuc3dpdGNoLm9uIC5oYW5kbGUge1xuICBsZWZ0OiA1MCU7XG59XG4vKipcbiAqIEltYWdlIGlucHV0OlxuICogYC5pbnB1dC5pbWFnZWAgLSBUaGUgc3R5bGUgZm9yIHRoZSBpbWFnZSBpbnB1dFxuICovXG4uaW5wdXQuaW1hZ2UgLmZvcm0ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ubWVkaXVtLWVkaXRvci10b29sYmFyIHtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjMpIDFweCAxcHggMnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM1ODU4NTg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1ODU4NTg7XG59XG4ubWVkaXVtLWVkaXRvci10b29sYmFyIGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLm1lZGl1bS1lZGl0b3ItdG9vbGJhci5tZWRpdW0tZWRpdG9yLXRvb2xiYXItYWN0aXZlIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5tZWRpdW0tZWRpdG9yLXRvb2xiYXItZm9ybSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1ODU4NTg7XG4gIGNvbG9yOiAjRkZGO1xuICBwYWRkaW5nOiAwIDVweDtcbn1cbi5tZWRpdW0tZWRpdG9yLXRvb2xiYXItZm9ybS5tZWRpdW0tZWRpdG9yLXRvb2xiYXItZm9ybS1hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5tZWRpdW0tZWRpdG9yLXRvb2xiYXItZm9ybSBpbnB1dCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDZweDtcbiAgd2lkdGg6IDMxNnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGNvbG9yOiAjRkZGO1xufVxuLm1lZGl1bS1lZGl0b3ItdG9vbGJhci1mb3JtIGEge1xuICBjb2xvcjogI0ZGRjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiAwIDVweDtcbn1cbi5tZWRpdW0tZWRpdG9yLXRvb2xiYXItYWN0aW9ucyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbi5tZWRpdW0tZWRpdG9yLXRvb2xiYXItYWN0aW9ucyBidXR0b24ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdXRsaW5lOiBub25lO1xuICBjb2xvcjogI0ZGRjtcbn1cbi5tZWRpdW0tZWRpdG9yLXRvb2xiYXItYWN0aW9ucyBidXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjU2NTY1O1xufVxuLm1lZGl1bS1lZGl0b3ItdG9vbGJhci1hY3Rpb25zIGJ1dHRvbiAuaWNvbiB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cbi5tZWRpdW0tdG9vbGJhci1hcnJvdy11bmRlcjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMTFweDtcbiAgd2lkdGg6IDExcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1ODU4NTg7XG4gIGxlZnQ6IDUwJTtcbiAgYm90dG9tOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA1MCUpIHJvdGF0ZSg0NWRlZyk7XG59XG4ucmljaHRleHQgLmVkaXRvciBwIHtcbiAgbWFyZ2luOiAwO1xufVxuLnJpY2h0ZXh0IC5lZGl0b3IgcCArIHAge1xuICBtYXJnaW4tdG9wOiA3cHg7XG59XG4ubW9kZWwtZWRpdG9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm1vZGVsLWVkaXRvciA+IC5tb2QtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwcHg7XG4gIHJpZ2h0OiAxMHB4O1xufVxuLyoqKlxuICogVGFiZWRpdG9yOlxuICovXG4udGFiLWVkaXRvciB7XG4gIC8qKlxuXHQgKiBMZWZ0IG9yaWVudGVkIHRhYi1lZGl0b3I6XG5cdCAqIGAudGFiLWVkaXRvci5sZWZ0YCAtIFN0eWxlcyB0aGUgdGFiIGVkaXRvciB0byBzaG93IHRoZSB0YWJzIG9uIHRoZSBsZWZ0IHNpZGVcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYudGFiLWVkaXRvci5sZWZ0XG5cdCAqIFx0XHRvbC50YWJzLmxlZnRcblx0ICogXHRcdFx0bGkgVGFiMVxuXHQgKiBcdFx0XHRsaSBUYWIyXG5cdCAqIFx0XHRcdGxpLmFjdGl2ZSBUYWIzXG5cdCAqIFx0XHRkaXYubW9kZWwtZWRpdG9yIFRoZSBjb250ZW50IG9mIHRoZSB0YWIgZWRpdG9yLlxuXHQgKi9cbiAgLyoqXG5cdCAqIFJpZ2h0IG9yaWVudGVkIHRhYi1lZGl0b3I6XG5cdCAqIGAudGFiLWVkaXRvci5yaWdodGAgLSBTdHlsZXMgdGhlIHRhYiBlZGl0b3IgdG8gc2hvdyB0aGUgdGFicyBvbiB0aGUgcmlnaHQgc2lkZVxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGRpdi50YWItZWRpdG9yLnJpZ2h0XG5cdCAqIFx0XHRvbC50YWJzLnJpZ2h0XG5cdCAqIFx0XHRcdGxpIFRhYjFcblx0ICogXHRcdFx0bGkgVGFiMlxuXHQgKiBcdFx0XHRsaS5hY3RpdmUgVGFiM1xuXHQgKiBcdFx0ZGl2Lm1vZGVsLWVkaXRvciBUaGUgY29udGVudCBvZiB0aGUgdGFiIGVkaXRvci5cblx0ICovXG59XG4udGFiLWVkaXRvci5sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xufVxuLnRhYi1lZGl0b3IubGVmdDpiZWZvcmUsXG4udGFiLWVkaXRvci5sZWZ0OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuLnRhYi1lZGl0b3IubGVmdDphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuLnRhYi1lZGl0b3IubGVmdCA+ICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4udGFiLWVkaXRvci5sZWZ0ID4gLnRhYnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB3aWR0aDogMjAlO1xufVxuLnRhYi1lZGl0b3IubGVmdCA+IC5tb2RlbC1lZGl0b3Ige1xuICB3aWR0aDogODAlO1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkICMzNjlCRkY7XG4gIG1hcmdpbi1sZWZ0OiAtMnB4O1xufVxuLnRhYi1lZGl0b3IucmlnaHQge1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7XG59XG4udGFiLWVkaXRvci5yaWdodDpiZWZvcmUsXG4udGFiLWVkaXRvci5yaWdodDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cbi50YWItZWRpdG9yLnJpZ2h0OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG4udGFiLWVkaXRvci5yaWdodCA+ICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4udGFiLWVkaXRvci5yaWdodCA+IC50YWJzIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAxM3B4O1xuICB3aWR0aDogMjAlO1xuICBsZWZ0OiA4MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMnB4O1xufVxuLnRhYi1lZGl0b3IucmlnaHQgPiAubW9kZWwtZWRpdG9yIHtcbiAgd2lkdGg6IDgwJTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgIzM2OUJGRjtcbiAgcmlnaHQ6IDIwJTtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cbi50YWItZWRpdG9yLnJpZ2h0ID4gLm1vZGVsLWVkaXRvciBoMiB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4udGFiLWVkaXRvciA+IC50YWJzID4gbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMC4zcztcbn1cbi50YWItZWRpdG9yID4gLnRhYnMgPiBsaSAubW9kLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHJpZ2h0OiAzcHg7XG4gIHRvcDogMHB4O1xufVxuLnRhYi1lZGl0b3IgPiAudGFicyA+IGxpOmhvdmVyIHtcbiAgcGFkZGluZy1yaWdodDogMzBweDtcbn1cbi50YWItZWRpdG9yID4gLnRhYnMgPiBsaTpob3ZlciAubW9kLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qKipcbiAqIFRhYmxlIEVkaXRvcjpcbiAqL1xuLnRhYmxlLWVkaXRvciB7XG4gIC8qKlxuXHQgKiBUYWJsZSBlZGl0b3I6XG5cdCAqIGAudGFibGUtZWRpdG9yYCAtIFN0eWxlcyBhIHRhYmxlIGVkaXRvciB3aXRoIGEgbW9kZWwgZWRpdG9yIGluc2lkZVxuXHQgKlxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2LnRhYmxlLWVkaXRvclxuXHQgKiBcdFx0ZGl2LnRhYmxlLmNvbC0yXG5cdCAqIFx0XHRcdGRpdi5yb3cuaGVhZGVyXG5cdCAqIFx0XHRcdFx0ZGl2LmNlbGwgQ29sdW1uMVxuXHQgKiBcdFx0XHRcdGRpdi5jZWxsIENvbHVtbjJcblx0ICogXHRcdFx0ZGl2LnJvdy5vZGRcblx0ICogXHRcdFx0XHRkaXYuY2VsbCBEYXRhMTFcblx0ICogXHRcdFx0XHRkaXYuY2VsbCBEYXRhMTJcblx0ICogXHRcdFx0XHRkaXYubW9kLmRlbGV0ZVxuXHQgKiBcdFx0XHRcdFx0ZGl2Lmljb24uaWNvbi1jbG9zZS5kZWxldGUtYnV0XG5cdCAqIFx0XHRcdGRpdi5yb3cuYWN0aXZlLmV2ZW5cblx0ICogXHRcdFx0XHRkaXYuY2VsbCBEYXRhMjFcblx0ICogXHRcdFx0XHRkaXYuY2VsbCBEYXRhMjJcblx0ICogXHRcdFx0XHRkaXYubW9kLmRlbGV0ZVxuXHQgKiBcdFx0XHRcdFx0ZGl2Lmljb24uaWNvbi1jbG9zZS5kZWxldGUtYnV0XG5cdCAqIFx0XHRcdGRpdi5tb2RlbC1lZGl0b3Jcblx0ICogXHRcdFx0XHRoMiBNb2RlbFxuXHQgKiBcdFx0XHRcdGRpdi5pbnB1dHMuY29sLmNvbC0xLTFcblx0ICogXHRcdFx0XHRcdGRpdi5zdHJpbmcuaW5wdXRcblx0ICogXHRcdFx0XHRcdFx0ZGl2LmxhYmVsIElucHV0XG5cdCAqIFx0XHRcdFx0XHRcdGRpdi52YWx1ZS5mb3JtXG5cdCAqIFx0XHRcdGRpdi5yb3cub2RkXG5cdCAqIFx0XHRcdFx0ZGl2LmNlbGwgRGF0YTMxXG5cdCAqIFx0XHRcdFx0ZGl2LmNlbGwgRGF0YTMyXG5cdCAqIFx0XHRcdFx0ZGl2Lm1vZC5kZWxldGVcblx0ICogXHRcdFx0XHRcdGRpdi5pY29uLmljb24tY2xvc2UuZGVsZXRlLWJ1dFxuXHQgKiBcdFx0XHRkaXYucm93LmV2ZW5cblx0ICogXHRcdFx0XHRkaXYuY2VsbCBEYXRhNDFcblx0ICogXHRcdFx0XHRkaXYuY2VsbCBEYXRhNDJcblx0ICogXHRcdFx0XHRkaXYubW9kLmRlbGV0ZVxuXHQgKiBcdFx0XHRcdFx0ZGl2Lmljb24uaWNvbi1jbG9zZS5kZWxldGUtYnV0XG5cdCAqL1xufVxuLnRhYmxlLWVkaXRvciA+IC50YWJsZS5jb250ZW50ID4gLnJvdyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbn1cbi50YWJsZS1lZGl0b3IgPiAudGFibGUuY29udGVudCA+IC5yb3cgPiAubW9kLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHJpZ2h0OiAzcHg7XG4gIHRvcDogLTJweDtcbn1cbi50YWJsZS1lZGl0b3IgPiAudGFibGUuY29udGVudCA+IC5yb3c6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzY5QkZGO1xuICBjb2xvcjogI0ZGRjtcbn1cbi50YWJsZS1lZGl0b3IgPiAudGFibGUuY29udGVudCA+IC5yb3c6aG92ZXIgPiAubW9kLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi50YWJsZS1lZGl0b3IgPiAudGFibGUuY29udGVudCA+IC5tb2RlbC1lZGl0b3Ige1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjNjliNGZmO1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnRhYmxlLWVkaXRvciA+IC50YWJsZS5jb250ZW50ID4gLm1vZGVsLWVkaXRvciA+IGgyIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgZm9udC1zaXplOiAxLjJlbTtcbn1cbi8qIE92ZXJ3cml0ZSB0aGUgMTAwJSB3aWR0aCBvZiB0aGUgZ2VuZXJhbCAudGFibGUgY2xhc3MgKi9cbi50YWJsZS5oYWxmIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi8qKipcbiAqIFByZXZpZXcgRWRpdG9yOlxuICovXG4ucHJldmlldy1lZGl0b3Ige1xuICAvKipcblx0ICogUHJldmlldyBlZGl0b3I6XG5cdCAqIGAucHJldmlldy1lZGl0b3JgIC0gU3R5bGVzIGEgcHJldmlldyBlZGl0b3Igd2l0aCBhIG1vZGVsIGVkaXRvciBpbnNpZGVcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYucHJldmlldy1lZGl0b3Jcblx0ICogXHRcdGRpdi5wcmV2aWV3c1xuXHQgKiBcdFx0XHRkaXYucHJveHkgVGVtcGxhdGUxXG5cdCAqIFx0XHRcdGRpdi5wcm94eS5hY3RpdmUgVGVtcGxhdGUyXG5cdCAqIFx0XHRcdGRpdi5tb2RlbC1lZGl0b3Jcblx0ICogXHRcdFx0XHRoMiBNb2RlbFxuXHQgKiBcdFx0XHRcdGRpdi5pbnB1dHMuY29sLmNvbC0xLTFcblx0ICogXHRcdFx0XHRcdGRpdi5zdHJpbmcuaW5wdXRcblx0ICogXHRcdFx0XHRcdFx0ZGl2LmxhYmVsIElucHV0XG5cdCAqIFx0XHRcdFx0XHRcdGRpdi52YWx1ZS5mb3JtXG5cdCAqL1xufVxuLnByZXZpZXctZWRpdG9yID4gLnByZXZpZXdzID4gLnByb3h5IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItbGVmdDogMHB4IHNvbGlkICMzNjlCRkY7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjVzO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnByZXZpZXctZWRpdG9yID4gLnByZXZpZXdzID4gLnByb3h5LnNlbGVjdGVkIHtcbiAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCAjMzY5QkZGO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuLnByZXZpZXctZWRpdG9yID4gLnByZXZpZXdzID4gLnByb3h5OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZjRmZjtcbn1cbi5wcmV2aWV3LWVkaXRvciA+IC5wcmV2aWV3cyA+IC5wcm94eTpob3ZlciA+IC5tb2QtY29udGFpbmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5wcmV2aWV3LWVkaXRvciA+IC5wcmV2aWV3cyA+IC5wcm94eSA+IC5tb2QtY29udGFpbmVyIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG59XG4ucHJldmlldy1lZGl0b3IgPiAucHJldmlld3MgPiAucHJveHkgPiAubW9kLWNvbnRhaW5lciAuaWNvbi0tYnRuIHtcbiAgY29sb3I6ICMzNjlCRkY7XG59XG4ucHJldmlldy1lZGl0b3IgPiAucHJldmlld3MgPiAuZWRpdCA+IC5tb2RlbC1lZGl0b3Ige1xuICBwYWRkaW5nOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuLnByZXZpZXctZWRpdG9yID4gLnByZXZpZXdzID4gLmVkaXQgPiAubW9kZWwtZWRpdG9yID4gaDIge1xuICBtYXJnaW4tdG9wOiAwO1xuICBmb250LXNpemU6IDEuMmVtO1xufVxuLnByZXZpZXctZWRpdG9yID4gLnByZXZpZXdzID4gLmVkaXQgPiAubW9kZWwtZWRpdG9yLmFjdGl2ZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBib3JkZXItZmFkZSAwLjVzO1xuICBhbmltYXRpb246IGJvcmRlci1mYWRlIDAuNXM7XG4gIGJvcmRlci1sZWZ0OiA4cHggc29saWQgIzM2OUJGRjtcbn1cbi8qKlxuICogRml4IGZvciBhbmltYXRlIHRoZSBib3JkZXIgb2YgdGhlIG5ld2x5IHBsYWNlZCBtb2RlbCBlZGl0b3JcbiAqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGJvcmRlci1mYWRlIHtcbiAgZnJvbSB7XG4gICAgYm9yZGVyLWxlZnQ6IDBweCBzb2xpZCAjMzY5QkZGO1xuICB9XG4gIHRvIHtcbiAgICBib3JkZXItbGVmdDogOHB4IHNvbGlkICMzNjlCRkY7XG4gIH1cbn1cbkBrZXlmcmFtZXMgYm9yZGVyLWZhZGUge1xuICBmcm9tIHtcbiAgICBib3JkZXItbGVmdDogMHB4IHNvbGlkICMzNjlCRkY7XG4gIH1cbiAgdG8ge1xuICAgIGJvcmRlci1sZWZ0OiA4cHggc29saWQgIzM2OUJGRjtcbiAgfVxufVxuLmltYWdlbWFwLWVkaXRvciAuaW1hZ2VtYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLmltYWdlbWFwLWVkaXRvciAubWFwcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLmltYWdlbWFwLWVkaXRvciAubWFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGJvcmRlcjogMXB4IGRhc2hlZCAjRkZGO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uaW1hZ2VtYXAtZWRpdG9yIC5tYXAgLmljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICByaWdodDogNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uaW1hZ2VtYXAtZWRpdG9yIC5tYXAuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMzY5QkZGO1xufVxuLmltYWdlbWFwLWVkaXRvciAuaW1hZ2Uge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4uZmlsZS1zZWxlY3RvciAuY29udHJvbHMge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xufVxuLmZpbGUtc2VsZWN0b3IgLnByb2dyZXNzIHtcbiAgd2lkdGg6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG4gIGhlaWdodDogMnB4O1xufVxuLmZpbGUtc2VsZWN0b3IgaDIge1xuICBtYXJnaW4tYm90dG9tOiAxNHB4O1xufVxuLmZpbGUtbGlzdCAuaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cbi5maWxlLWxpc3QgLnJvdyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5maWxlLWxpc3QgLnVwbG9hZCB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLmZpbGUtbGlzdCAuY2VsbC50aHVtYiB7XG4gIHdpZHRoOiAyMCU7XG59XG4uZmlsZS1saXN0IC5jZWxsLnRodW1iIGltZyB7XG4gIG1heC13aWR0aDogNDBweDtcbiAgbWF4LWhlaWdodDogNDBweDtcbn1cbi5maWxlLWxpc3QgLmNlbGwubmFtZSB7XG4gIHdpZHRoOiA0MCU7XG59XG4uZmlsZS1saXN0IC5jZWxsLnRhZ3Mge1xuICB3aWR0aDogNDAlO1xufVxuLmZpbGUtZGV0YWlscyAuZGVsLWJ1dCxcbi5maWxlLWRldGFpbHMgLmRsLWJ1dCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5maWxlLWRldGFpbHMgLmlucHV0cyB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4uZmlsZS1kZXRhaWxzIC5idXR0b25zIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cbi5tb2RlbC1zZWxlY3RvciAuY29udHJvbHMge1xuICBwYWRkaW5nOiAxNXB4O1xufVxuLm1vZCB7XG4gIG1hcmdpbjogNXB4IDA7XG59XG4ubW9kLmlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbn1cbi5tb2QtY29udGFpbmVyLmZsb2F0aW5nIC5tb2Qge1xuICBtYXJnaW46IDBweDtcbn1cbi5tb2QtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTBweDtcbiAgdG9wOiAxMHB4O1xufVxuLm1vZC1jb250YWluZXIgLm1vZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qKipcbiAqIE1vZHM6XG4gKi9cbi8qKlxuICogVGFiIGFkZCBtb2Q6XG4gKiBgLnRhYi1lZGl0b3IgLm1vZC5hZGRgIC0gU3R5bGVzIHRoZSBhZGQgbW9kIGluIGEgdGFiIGxpc3QuXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LnRhYi1lZGl0b3JcbiAqIFx0XHRvbC5saXN0LnRhYnMudG9wXG4gKiBcdFx0XHRsaS5wcm94eSBFbnRyeSAxXG4gKiBcdFx0XHRsaS5tb2QuYWRkXG4gKiBcdFx0XHRcdGRpdi5kcm9wZG93blxuICogXHRcdFx0XHRcdGJ1dHRvbi5idG4uYWRkLWJ1dC5hZGQtYnV0dG9uIEFkZFxuICovXG4udGFiLWVkaXRvciA+IC50YWJzID4gLm1vZC5hZGQge1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi50YWItZWRpdG9yID4gLnRhYnMgPiAubW9kLmFkZCAuaWNvbi1idXR0b24tLXRleHQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnRhYi1lZGl0b3IgPiAudGFicyA+IC5tb2QuYWRkIC5idG4uaWNvbiB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi50YWItZWRpdG9yID4gLnRhYnMgPiAubW9kLmFkZCAuYnRuLmljb24gPiAuaWNvbiB7XG4gIHBhZGRpbmc6IDZweCA4cHggNXB4IDhweDtcbn1cbi50YWJzLmxlZnQgPiAubW9kLmFkZCA+IC5kcm9wZG93biA+IC5kcm9wZG93bi0tYnV0dG9uLFxuLnRhYnMucmlnaHQgPiAubW9kLmFkZCA+IC5kcm9wZG93biA+IC5kcm9wZG93bi0tYnV0dG9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udGFicy5sZWZ0ID4gLm1vZC5hZGQgPiAuZHJvcGRvd24gPiAuZHJvcGRvd24tLWJ1dHRvbiAuaWNvbixcbi50YWJzLnJpZ2h0ID4gLm1vZC5hZGQgPiAuZHJvcGRvd24gPiAuZHJvcGRvd24tLWJ1dHRvbiAuaWNvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnRhYnMubGVmdCA+IGxpID4gLm1vZC5kZWxldGUsXG4udGFicy5yaWdodCA+IGxpID4gLm1vZC5kZWxldGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA5cHg7XG59XG4ubW9kLmZpbHRlciAucmVzZXQtYnV0IHtcbiAgbWFyZ2luOiAxMHB4IDA7XG59XG4ubW9kLmZpbHRlciAuZmlsdGVyLXNlbGVjdG9yIHtcbiAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbn1cbi5tb2QubGluayBhIHtcbiAgY29sb3I6ICMzNjlCRkY7XG59XG4vKioqXG4gKiBNb2RzOlxuICovXG4vKipcbiAqIFRhYiBpbXBvcnQgbW9kOlxuICogYC50YWItZWRpdG9yIC5tb2QuaW1wb3J0YCAtIFN0eWxlcyB0aGUgaW1wb3J0IG1vZCBpbiBhIHRhYiBsaXN0LlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi50YWItZWRpdG9yXG4gKiBcdFx0b2wubGlzdC50YWJzLnRvcFxuICogXHRcdFx0bGkucHJveHkgRW50cnkgMVxuICogXHRcdFx0bGkubW9kLmltcG9ydFxuICogXHRcdFx0XHRidXR0b24uYnRuLmFkZC1idXQuYWRkLWJ1dHRvbiBBZGRcbiAqL1xuLnRhYi1lZGl0b3IgPiAudGFicyA+IC5tb2QuaW1wb3J0IHtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4udGFiLWVkaXRvciA+IC50YWJzID4gLm1vZC5pbXBvcnQgLmljb24tYnV0dG9uLS10ZXh0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50YWItZWRpdG9yID4gLnRhYnMgPiAubW9kLmltcG9ydCAuYnRuLmljb24ge1xuICBib3JkZXI6IG5vbmU7XG59XG4udGFiLWVkaXRvciA+IC50YWJzID4gLm1vZC5pbXBvcnQgLmJ0bi5pY29uID4gLmljb24ge1xuICBwYWRkaW5nOiA2cHggOHB4IDVweCA4cHg7XG59XG4udmlld3BvcnQtcmVzaXplIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLW1zLW92ZXJmbG93LXk6IGF1dG87XG4gIC8qIElFOCAqL1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLmxvZ2luLWZvcm0ge1xuICBwYWRkaW5nOiAzMHB4IDA7XG59XG4ubG9naW4tZm9ybSBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgbWFyZ2luOiAyMHB4IDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmxvZ2luLWZvcm0gLmVycm9yIHtcbiAgbWFyZ2luLWJvdHRvbTogMjNweDtcbn1cbi5pbnBsYWNlLWVkaXRvciB7XG4gIGJvcmRlcjogMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICBmb250OiBpbmhlcml0O1xuICB3aWR0aDogMTAwJTtcbn1cbi5pbnBsYWNlLWVkaXRvcjpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG4vKipcbiAqIFRhZ3M6XG4gKiBgLnRhZ3NgIC0gVGhlIHN0eWxlIGZvciBhIHRhZyBhcmVhXG4gKiBgLnRhZ2AgLSBUaGUgc3R5bGUgZm9yIGEgdGFnXG4gKlxuICogXHRAZXhhbXBsZVxuICpcdGRpdi50YWdzXG4gKlx0XHRkaXYudGFnXG4gKlx0XHRcdGRpdi50YWctbmFtZSBGaXJzdCBUYWdcbiAqXHRcdFx0c3Bhbi5yZW1vdmVcbiAqXHRcdGRpdi50YWdcbiAqXHRcdFx0ZGl2LnRhZy1uYW1lIFNlY29uZCBUYWdcbiAqXHRcdFx0c3Bhbi5yZW1vdmVcbiAqL1xuLnRhZ3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4udGFncyAudGFnIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG1hcmdpbi1yaWdodDogNnB4O1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG59XG4udGFncyAudGFnID4gc3Bhbi5pbnB1dCB7XG4gIHBhZGRpbmc6IDZweCAycHggNnB4IDEycHggO1xuICBtYXJnaW46IDBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnRhZ3MgLnJlbW92ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDZweDtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLnRleHRsaXN0LWVkaXRvciA+IGRpdi5pdGVtcyAuaXRlbSB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuLnRleHRsaXN0LWVkaXRvciA+IGRpdi5pdGVtcyAuaXRlbSAudGV4dGFyZWEtY29sIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4udGV4dGxpc3QtZWRpdG9yID4gZGl2Lml0ZW1zIC5pdGVtIC5yZW1vdmUtY29sIHtcbiAgd2lkdGg6IGF1dG87XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIG9wYWNpdHk6IDAuMjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyBsaW5lYXI7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi50ZXh0bGlzdC1lZGl0b3IgPiBkaXYuaXRlbXMgLml0ZW0gLmhhbmRsZXItY29sIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgbWluLXdpZHRoOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHggMHB4IDBweCA0cHg7XG4gIG9wYWNpdHk6IDAuMjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyBsaW5lYXI7XG59XG4udGV4dGxpc3QtZWRpdG9yID4gZGl2Lml0ZW1zIC5pdGVtIC5pbnB1dCB7XG4gIG1hcmdpbjogMHB4O1xufVxuLnRleHRsaXN0LWVkaXRvciA+IGRpdi5pdGVtcyAuaXRlbSB0ZXh0YXJlYSB7XG4gIGJvcmRlci1yYWRpdXM6IDBweCA0cHggNHB4IDBweDtcbiAgcmVzaXplOiBub25lO1xuICBtaW4taGVpZ2h0OiA2MHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnRleHRsaXN0LWVkaXRvciA+IGRpdi5pdGVtcyAuaXRlbS5kcmFnZ2FibGUgLmhhbmRsZXItY29sIHtcbiAgY3Vyc29yOiBtb3ZlO1xuICBvcGFjaXR5OiAxO1xufVxuLnRleHRsaXN0LWVkaXRvciA+IGRpdi5pdGVtcyAuaXRlbS5kcmFnZ2FibGUgLnJlbW92ZS1jb2wge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDE7XG59XG4udGV4dGxpc3QtZWRpdG9yID4gZGl2Lml0ZW1zIC5yZW1vdmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiA2cHg7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG59XG5ib2R5LFxuaHRtbCB7XG4gIG1hcmdpbjogMDtcbn1cbioge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuI2VkaXRvciB7XG4gIHBhZGRpbmctYm90dG9tOiAzMHB4O1xufVxuIiwiLyoqKlxuICogQnV0dG9uczpcbiAqL1xuXG4vKipcbiAqIFJlZ3VsYXIgQnV0dG9uOlxuICogYC5idG5gIC0gQSByZWd1bGFyIGJ1dHRvblxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGJ1dHRvbi5idG4gQnV0dG9uXG4gKi9cbi5idG4ge1xuXG5cdC13ZWJraXQtYXBwZWFyYW5jZTpub25lO1xuXHQtbW96LWFwcGVhcmFuY2U6bm9uZTtcblx0YXBwZWFyYW5jZTpub25lO1xuXG5cdGZvbnQ6IGluaGVyaXQ7XG5cdGJhY2tncm91bmQtY29sb3I6IEBhY3Rpb24tY29sb3I7XG5cdHBhZGRpbmc6IDdweCAxMnB4O1xuXHRsaW5lLWhlaWdodDogMS4zZW07XG5cdGNvbG9yOiNmZmY7XG5cdGJvcmRlcjogbm9uZTtcblx0Zm9udC1zaXplOiAxZW07XG5cdGZvbnQtd2VpZ2h0OiAyMDA7XG5cblx0Y3Vyc29yOnBvaW50ZXI7XG5cdGJvcmRlci1yYWRpdXM6QGJvcmRlci1yYWRpdXM7XG5cdG91dGxpbmU6bm9uZTtcblx0XG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcblxuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCBAYWN0aW9uLWNvbG9yLCAyMCUgKTtcblx0fVxuXHRcblxuXHQvKipcblx0ICogRGlzYWJsZWQgYnV0dG9uOlxuXHQgKiBgLmRpc2FibGVkYCAtIEEgc3R5bGUgZm9yIGEgZGlzYWJsZWQgYnV0dG9uXG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0YnV0dG9uLmJ0bi5kaXNhYmxlZCBEaXNhYmxlZFxuXHQgKi9cblx0Ji5kaXNhYmxlZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbiggZGVzYXR1cmF0ZSggQGFjdGlvbi1jb2xvciwgODAlICksIDMwJSApO1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRjb2xvcjogZGVzYXR1cmF0ZSggQGFjdGlvbi1jb2xvciwgODAlICk7XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBCYWNrIEJ1dHRvbjpcblx0ICogYC5iYWNrYCAtIFR1cm5zIHRoZSBidXR0b24gaW50byBhIGJhY2sgYnV0dG9uIHdpdGggYW4gYXJyb3cgb24gdGhlIGxlZnQgc2lkZVxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGJ1dHRvbi5idG4uYmFjayBCYWNrXG5cdCAqL1xuXHQmLmJhY2sge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcblx0XHQmOmhvdmVyOmJlZm9yZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCBAYWN0aW9uLWNvbG9yLCAyMCUgKTtcblx0XHR9XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRoZWlnaHQ6IDI0cHg7XG5cdFx0XHR3aWR0aDogMjRweDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IEBhY3Rpb24tY29sb3I7XG5cdFx0XHRsZWZ0OiAtMTFweDtcblx0XHRcdHRvcDogNXB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXM7XG5cdFx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7XG5cdFx0XHRcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoIDAuNyApIHJvdGF0ZSggNDVkZWcgKTtcblx0XHRcdC1tb3otdHJhbnNmb3JtOiBzY2FsZVgoIDAuNyApIHJvdGF0ZSggNDVkZWcgKTtcblx0XHRcdC1vLXRyYW5zZm9ybTogc2NhbGVYKCAwLjcgKSByb3RhdGUoIDQ1ZGVnICk7XG5cdFx0XHQtbXMtdHJhbnNmb3JtOiBzY2FsZVgoIDAuNyApIHJvdGF0ZSggNDVkZWcgKTtcblx0XHRcdHRyYW5zZm9ybTogc2NhbGVYKCAwLjcgKSByb3RhdGUoIDQ1ZGVnICk7XG5cdFx0fVxuXHR9XG5cdFxuXHQvKipcblx0ICogU2Vjb25kYXJ5IEJ1dHRvbjpcblx0ICogYC5zZWNvbmRgIC0gVHVybnMgdGhlIGJ1dHRvbiBpbnRvIGEgc2Vjb25kYXJ5IGJ1dHRvblxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGJ1dHRvbi5idG4uc2Vjb25kIFNlY29uZGFyeSBidXR0b25cblx0ICovXG5cdCYuc2Vjb25kIHtcblx0XHRwYWRkaW5nOiA3cHggMTJweDtcblx0XHRsaW5lLWhlaWdodDogMS4xZW07XG5cdFx0Zm9udC1zaXplOiAwLjhlbTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkZXNhdHVyYXRlKCBAYWN0aW9uLWNvbG9yLCA0MCUgKTtcblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IEBhY3Rpb24tY29sb3I7XG5cdFx0fVxuXHR9XG5cdFxuXHRcblx0Ji5pY29uIHtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bGluZS1oZWlnaHQ6MWVtO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIEBhY3Rpb24tY29sb3I7XG5cdFx0dHJhbnNpdGlvbjogYWxsIDAuM3M7XG5cdFx0XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHQ+Lmljb24ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCBAYWN0aW9uLWNvbG9yLCAyMCUgKTtcblx0XHRcdH1cblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oIEBhY3Rpb24tY29sb3IsIDIwJSApO1xuXHRcdH1cblx0XHRcblx0XHQ+Lmljb24ge1xuXHRcdFx0dHJhbnNpdGlvbjogYWxsIDAuM3M7XG5cdFx0XHRsaW5lLWhlaWdodDoxZW07XG5cdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0XHRwYWRkaW5nOiAzcHggNXB4O1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogQGFjdGlvbi1jb2xvcjtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0fVxuXHRcdFxuXHRcdD4uaWNvbi1idXR0b24tLXRleHQge1xuXHRcdFx0Y29sb3I6IEBkYXJrLWNvbG9yO1xuXHRcdFx0Zm9udC1zaXplOiAwLjdlbTtcblx0XHRcdGxpbmUtaGVpZ2h0OjFlbTtcblx0XHRcdHBhZGRpbmc6IDRweCAxMHB4O1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKioqXG4gKiBUZXh0IHN0eWxlczpcbiAqL1xuXG4vKipcbiAqIEgxOlxuICogYGgxYCAtIFRoZSBoMSBzdHlsZVxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGgxIEEgZGVtbyBoMSBoZWFkZXJcbiAqL1xuaDEge1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LXNpemU6IDIuMmVtO1xuXHRtYXJnaW4tdG9wOiA0MXB4O1xuXHRwYWRkaW5nLWJvdHRvbTogOHB4O1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgQGJyaWdodC1jb2xvcjtcblx0Y29sb3I6IEBkYXJrLWNvbG9yO1xufVxuXG4vKipcbiAqIEgyOlxuICogYGgyYCAtIFRoZSBoMiBzdHlsZVxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGgyIEEgZGVtbyBoMiBoZWFkZXJcbiAqL1xuaDIge1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0Zm9udC1zaXplOiAxLjZlbTtcblx0bWFyZ2luLXRvcDogMjBweDtcblx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXHRjb2xvcjogQGRhcmstY29sb3I7XG59XG5cbi8qKlxuICogQm9keTpcbiAqIGBib2R5YCAtIEEgYm9keSBzdHlsZSBmb3IgZm9udC5cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYgTXkgVGVzdCBGb250XG4gKi9cbkBpbXBvcnQgdXJsKGh0dHA6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVNvdXJjZStTYW5zK1Bybzo3MDAsNDAwLDMwMCk7XG5cbmJvZHkge1xuXHRmb250LWZhbWlseTogJ1NvdXJjZSBTYW5zIFBybycsIHNhbnMtc2VyaWY7XG59XG5cbi8qKlxuICogTGFiZWw6XG4gKiBgLmxhYmVsYCAtIEEgc3R5bGluZyBmb3IgYSBsYWJlbFxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5sYWJlbCBNeSBsYWJlbFxuICovXG4ubGFiZWwge1xuXHRmb250LXNpemU6IDAuN2VtO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRjb2xvcjogQGluZm8tY29sb3I7XG5cdG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLyoqXG4gKiBJY29uOlxuICogYC5pY29uYCAtIERlZmF1bHQgaWNvbiBzaXplIFxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5pY29uXG4gKiBcdFx0ZGl2Lmljb24oZGF0YS1pY29uPVwiYlwiKVxuICovXG4uaWNvbiB7XG5cdGZvbnQtc2l6ZTogMjJweDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwYWRkaW5nOiA2cHggMCAwIDA7XG5cdFxuXHQvKipcblx0ICogQnV0dG9uIGljb246XG5cdCAqIGAuaWNvbi5pY29uLS1idG5gIC0gQSBzdHlsaW5nIGZvciBhIGljb24gYnV0dG9uXG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2Lmljb24uaWNvbi0tYnRuKGRhdGEtaWNvbj1cImJcIilcblx0ICovXG5cdCYuaWNvbi0tYnRuIHtcblx0XHRjb2xvcjogQGFjdGlvbi1jb2xvcjtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0dHJhbnNpdGlvbjogY29sb3IgMC4zcztcblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiBsaWdodGVuKCBAYWN0aW9uLWNvbG9yLCAyMCUgKTtcblx0XHR9XG5cdFx0XG5cdFx0LyoqXG5cdFx0ICogSW52ZXJ0ZWQgYnV0dG9uIGljb246XG5cdFx0ICogYC5pY29uLmljb24tLWJ0bi5pY29uLS1pbnZgIC0gQSBzdHlsaW5nIGZvciBhbiBpbnZlcnRlZCBpY29uIGJ1dHRvblxuXHRcdCAqIFxuXHRcdCAqIFx0QGV4YW1wbGVcblx0XHQgKiBcdGRpdi5pY29uLmljb24tLWJ0bi5pY29uLS1pbnYoZGF0YS1pY29uPVwiYlwiKVxuXHRcdCAqL1xuXHRcdCYuaWNvbi0taW52IHtcblx0XHRcdGNvbG9yOiAjRkZGO1xuXHRcdFxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiBkYXJrZW4oICNGRkYsIDIwJSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcbn1cblxuLyoqXG4gKiBpbmZvOlxuICogYC5pbmZvLXRleHRgIC0gQSBzbWFsbCBpbmZvIHRleHRcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuaW5mby10ZXh0IEluZm8gbWVzc2FnZVxuICovXG4uaW5mby10ZXh0IHtcblx0Y29sb3I6IGxpZ2h0ZW4oIEBkYXJrLWNvbG9yLCA0MCUgKTtcblx0cGFkZGluZzogNXB4IDA7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcbn0iLCIvKioqXG4gKiBSZXBvbnNpdmU6XG4gKi9cblxuLyoqXG4gKiBDb250YWluZXI6XG4gKiBgLmNvbnRhaW5lcmAgLSBBIG1haW4gd2Vic2l0ZSBjb250YWluZXIgdGhhdCBjZW50ZXJzIHRoZSBjb250YWluZXIgYW5kIGhhcyB0aGUgY29ycmVzcG9uaW5nIHJlc3BvbnNpdmUganVtcHNcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuY29udGFpbmVyKHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOiNBQUE7aGVpZ2h0OjUwcHg7JykgXG4gKi9cbi5jb250YWluZXIge1xuXHRwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuXHRwYWRkaW5nLWxlZnQ6IDE1cHg7XG5cdG1hcmdpbi1yaWdodDogYXV0bztcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFxuXHRAbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQgKSB7XG5cdFx0d2lkdGg6IDc1MHB4O1xuXHR9XG5cdEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCApIHtcblx0XHR3aWR0aDogOTcwcHg7XG5cdH1cblx0QG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCApIHtcblx0XHR3aWR0aDogMTE3MHB4O1xuXHR9XG59XG5cbi8qKlxuICogQ29sdW1uczpcbiAqIGAuY29sYCAtIEEgYmFzZSBzdHlsaW5nIGZvciBhbnkgbnVtYmVyIG9mIGNvbHVtbnNcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuY29sXG4gKi9cbi5jb2wge1xuXHRcblx0QG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50ICkge1xuXHRcdC5jb2x1bW5zKCk7XG5cdH1cbn1cblxuLyoqXG4gKiBIYWxmIGNvbHVtbiB3aWR0aCBtb2RpZmllcjpcbiAqIGAuaGFsZmAgLSBBIHN0eWxlIHRoYXQgZGVmaW5lcyB0aGUgd2lkdGggdG8gNTAlLlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5jb2xcbiAqIFx0XHRkaXYuaGFsZihzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2NjY1wiKSBPbmUgc2lkZVxuICogXHRcdGRpdi5oYWxmKHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojYWFhXCIpIE90aGVyIHNpZGVcbiAqL1xuLmhhbGYge1xuXHRcblx0QG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50ICkge1xuXHRcdHdpZHRoOiAxMDAlIC8gMjtcblx0fVxufVxuXG4vKipcbiAqIFRoaXJkIGNvbHVtbiB3aWR0aCBtb2RpZmllcjpcbiAqIGAudGhpcmRgIC0gQSBzdHlsZSB0aGF0IGRlZmluZXMgdGhlIHdpZHRoIHRvIDEwMC8zICUuXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmNvbFxuICogXHRcdGRpdi50aGlyZChzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2NjY1wiKSBPbmUgc2lkZVxuICogXHRcdGRpdi50aGlyZChzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2FhYVwiKSBPdGhlciBzaWRlXG4gKiBcdFx0ZGl2LnRoaXJkKHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojYmJiXCIpIFRoaXJkIHNpZGVcbiAqL1xuLnRoaXJkIHtcblx0XG5cdEBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludCApIHtcblx0XHR3aWR0aDogMTAwJSAvIDM7XG5cdH1cbn1cblxuLyoqXG4gKiBGdWxsIGNvbHVtbiB3aWR0aCBtb2RpZmllcjpcbiAqIGAuZnVsbGAgLSBBIHN0eWxlIHRoYXQgZGVmaW5lcyB0aGUgd2lkdGggdG8gMTAwJS5cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuY29sXG4gKiBcdFx0ZGl2LmZ1bGwoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNjY2NcIikgRnVsbCBjb250ZW50XG4gKi9cbi5mdWxsIHtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi8qKlxuICogODAlIC8gMjAlIGNvbHVtbiB3aWR0aCBtb2RpZmllcjpcbiAqIGAuY29sLTgwLCAuY29sLTIwYCAtIFR3byBzdHlsZXMgdGhhdCBkZWZpbmVzIHRoZSB3aWR0aCB0byA4MCUgb3IgMjAlLlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5jb2xcbiAqIFx0XHRkaXYuY29sLTgwKHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojY2NjXCIpIE9uZSBzaWRlXG4gKiBcdFx0ZGl2LmNvbC0yMChzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2FhYVwiKSBPdGhlciBzaWRlXG4gKi9cbi5jb2wtMjAge1xuXHRcblx0QG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50ICkge1xuXHRcdHdpZHRoOiAyMCU7XG5cdH1cbn1cbi5jb2wtODAge1xuXHRcblx0QG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50ICkge1xuXHRcdHdpZHRoOiA4MCU7XG5cdH1cbn1cblxuLyoqXG4gKiBSZXNwb25zaXZlIGltYWdlIGNvbnRhaW5lcjpcbiAqIGAucmVzcG9uc2l2ZS1pbWdgIC0gQSBzdHlsZSB0aGF0IG1ha2VzIHRoZSBpbWFnZSBzY2FsaW5nIHRvIGl0cyBtYXggd2lkdGguXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0aW1nLnJlc3BvbnNpdmUtaW1nKHNyYz0naHR0cDovL3d3dy5ieXVpLmVkdS9pbWFnZXMvYWdyaWN1bHR1cmUtbGlmZS1zY2llbmNlcy9mbG93ZXIuanBnJylcbiAqL1xuLnJlc3BvbnNpdmUtaW1nIHtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogUmVzcG9uc2l2ZSA0OjMvMTY6OSBtZWRpYSBjb250YWluZXI6XG4gKiBgLnJlc3BvbnNpdmUtbWVkaWEgLm1lZGlhLTQtMywgLnJlc3BvbnNpdmUtbWVkaWEgLm1lZGlhLTE2LTlgIC0gVGhpcyBtYWtlcyBhIGRpdiBhIGNvbnRhaW5lciBmb3IgYW55IG1lZGlhIGVsZW1lbnQgKGlmcmFtZSwgdmlkZW8sIC4uLiApIHRoYXQgcmVzcG9uc2l2ZSBzY2FsZXMgd2l0aCBhIGZpeCByYXRpby5cbiAqIFRoZSBtZWRpYSBlbGVtZW50IG5lZWRzIHRoZSBjbGFzcyBgLm1lZGlhYC4gVGhlIGAucmVzcG9uc2l2ZS1tZWRpYWAgY29udGFpbmVyIGNhbiBoYXZlIG9uZSBvZiB0aGUgZm9sbG93aW5nIGNsYXNzZXM6IGAubWVkaWEtNC0zYCwgYC5tZWRpYS0xNi05YCB0byBkZWZpbmUgdGhlIGZpeCByYXRpby5cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYucmVzcG9uc2l2ZS1tZWRpYS5tZWRpYS00LTNcbiAqIFx0XHRpZnJhbWUubWVkaWEoc3JjPScvL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9IaFphSGY4UlA2ZycsZnJhbWVib3JkZXI9JzAnKVxuICovXG4ucmVzcG9uc2l2ZS1tZWRpYSB7XG5cdHdpZHRoOiAxMDAlO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmctYm90dG9tOiA1MCU7XG5cdFxuXHQmID4gLm1lZGlhIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cdFxuXHQmLm1lZGlhLTQtMyB7XG5cdFx0cGFkZGluZy1ib3R0b206IDc1JTtcblx0fVxuXHRcblx0Ji5tZWRpYS0xNi05IHtcblx0XHRwYWRkaW5nLWJvdHRvbTogNTYuMjYlXG5cdH1cbn1cblxuIiwiLyoqKlxuICogTGVzcyBmdW5jdGlvbnM6XG4gKi9cbiBcbi8qKlxuICogQ2xlYWZpeDpcbiAqIGAuY2xlYXJmaXgoKWAgLSBBZGRzIGEgY2xlYXJmaXggdG8gYW4gZWxlbWVudFxuICovXG4uY2xlYXJmaXgoKSB7XG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjsgLy8gMVxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAyXG4gIH1cbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLyoqXG4gKiBDb2x1bW5zOlxuICogYC5jb2x1bW5zYCAtIFNldHVwcyBhIHN0eWxlIGZvciBmbG9hdGluZyBjb2x1bW5zXG4gKi9cbi5jb2x1bW5zKCkge1xuXHRtYXJnaW4tbGVmdDogLTE1cHg7XG5cdG1hcmdpbi1yaWdodDogLTE1cHg7XG5cdFx0XG5cdC5jbGVhcmZpeCgpO1xuXHRcblx0JiA+ICoge1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0cGFkZGluZy1sZWZ0OiAxNXB4O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDE1cHg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHR9XG59IiwiLyoqKlxuICogRm9ybSBkZWZpbml0aW9uczpcbiAqL1xuXG4vKipcbiAqIGZvcm06XG4gKiBgLmZvcm1gIC0gQSBzdHlsZSBmb3IgYWxsIHR5cGVzIG9mIGZvcm1zLiBcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRpbnB1dC5mb3JtKHZhbHVlPVwiVGV4dFwiKVxuICovXG4uZm9ybSB7XG5cdGZvbnQ6IGluaGVyaXQ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZzogNnB4IDEycHg7XG5cdGxpbmUtaGVpZ2h0OiAxLjNlbTtcblx0bWluLWhlaWdodDogMzRweDtcblx0Zm9udC1zaXplOiAxZW07XG5cdGNvbG9yOiAjNTU1O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuXHRib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuXHRib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cztcblx0LXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KTtcblx0Ym94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSk7XG5cdC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsLXdlYmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7XG5cdC1vLXRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1cztcblx0dHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0LyoqXG5cdCAqIEZvcm0gd2l0aCBpY29uOlxuXHQgKiBgLmZvcm0gPiAuaWNvbmAgLSBBIGZvcm0gd2l0aCBhbiBvdmVybHlpbmcgaWNvbiBvbiB0aGUgcmlnaHQgc2lkZVxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGRpdi5mb3JtIFRleHRcblx0ICogXHRcdGRpdi5pY29uKGRhdGEtaWNvbj1cImJcIilcblx0ICovXG5cdD4gLmljb24ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0cmlnaHQ6IDZweDtcblx0fVxuXHRcblx0Jjpmb2N1cyB7XG5cdFx0Ym9yZGVyLWNvbG9yOiBAaW5mby1jb2xvcjtcblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IGxpZ2h0ZW4oIEBpbmZvLWNvbG9yLCAzMCUgKTtcblx0XHRib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggbGlnaHRlbiggQGluZm8tY29sb3IsIDMwJSApO1xuXHR9XG59XG5cbnNlbGVjdC5mb3JtIHtcblx0aGVpZ2h0OiAzNHB4O1xufVxuIiwiLyoqKlxuICogVGFiczpcbiAqL1xuXG4vKipcbiAqIHRhYnM6XG4gKiBgLnRhYnNgIC0gQSBiYXNpYyBzdHlsaW5nIGZvciBhbGwgdGFicyBmb3Jtc1xuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdG9sLnRhYnNcbiAqIFx0XHRsaSBUYWIxXG4gKiBcdFx0bGkgVGFiMiB3aXRoIHZlcnkgbG9uZyB0ZXh0LlxuICogXHRcdGxpIFRhYjNcbiAqL1xuLnRhYnMge1xuXHRcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcblx0PiBsaSB7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHBhZGRpbmc6IDZweCAxMHB4O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIEBpbmZvLWNvbG9yO1xuXHRcdGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzO1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdG1pbi1oZWlnaHQ6IDM0cHg7XG5cdFx0dmVydGljYWwtYWxpZ246IGJvdHRvbTtcblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IEBhY3Rpb24tY29sb3I7XG5cdFx0XHRib3JkZXItY29sb3I6IEBhY3Rpb24tY29sb3I7XG5cdFx0XHRjb2xvcjogI0ZGRjtcblx0XHR9XG5cdFx0XG5cdFx0Ji5zZWxlY3RlZCB7XG5cdFx0XHRib3JkZXItY29sb3I6IEBpbmZvLWNvbG9yO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogQGluZm8tY29sb3I7XG5cdFx0XHRjb2xvcjogI0ZGRjtcblx0XHRcdGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xuXHRcdH1cblx0fVxuXHRcblxuXHQvKipcblx0ICogVG9wIHRhYnM6XG5cdCAqIGAudGFicy50b3BgIC0gU3R5bGVzIHRoZSB0YWJzIGZvciBob3Jpem9udGFsIGFsaWdtZW50IG9uIHRoZSB0b3Bcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRvbC50YWJzLnRvcFxuXHQgKiBcdFx0bGkgVGFiMVxuXHQgKiBcdFx0bGkuYWN0aXZlIFRhYjJcblx0ICogXHRcdGxpIFRhYjNcblx0ICovXG5cdCYudG9wIHtcblx0XG5cdFx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIEBpbmZvLWNvbG9yO1xuXHRcdHBhZGRpbmc6IDAgMnB4O1xuXHRcdFxuXHRcdD4gbGkge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBpbmZvLWNvbG9yO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogLTFweDtcblx0XHRcdG1hcmdpbi1yaWdodDogMnB4O1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlIC8gMTA7XG5cdFx0XHRcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogTGVmdCB0YWJzOlxuXHQgKiBgLnRhYnMubGVmdGAgLSBTdHlsZXMgdGhlIHRhYnMgZm9yIHZlcnRpY2FsIGFsaWdubWVudCBvbiB0aGUgbGVmdCBzaWRlXG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0b2wudGFicy5sZWZ0XG5cdCAqIFx0XHRsaSBUYWIxXG5cdCAqIFx0XHRsaS5hY3RpdmUgVGFiMlxuXHQgKiBcdFx0bGkgVGFiM1xuXHQgKi9cblx0Ji5sZWZ0IHtcblx0XHRcblx0XHRib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBAaW5mby1jb2xvcjtcblx0XHRwYWRkaW5nOiAycHggMDtcblx0XHRcblx0XHQ+IGxpIHtcblx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIEBpbmZvLWNvbG9yO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMnB4O1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdG1hcmdpbi1yaWdodDogLTJweDtcblx0XHRcdFxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJvcmRlci1yaWdodC1jb2xvcjogQGluZm8tY29sb3I7XG5cdFx0XHRcdGJvcmRlci1yaWdodDogMnB4IHNvbGlkIEBpbmZvLWNvbG9yO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0fVxuXG5cdC8qKlxuXHQgKiBSaWdodCB0YWJzOlxuXHQgKiBgLnRhYnMucmlnaHRgIC0gU3R5bGVzIHRoZSB0YWJzIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQgb24gdGhlIHJpZ2h0IHNpZGVcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRvbC50YWJzLnJpZ2h0XG5cdCAqIFx0XHRsaSBUYWIxXG5cdCAqIFx0XHRsaS5hY3RpdmUgVGFiMlxuXHQgKiBcdFx0bGkgVGFiM1xuXHQgKi9cblx0Ji5yaWdodCB7XG5cdFx0XG5cdFx0Ym9yZGVyLWxlZnQ6IDJweCBzb2xpZCBAaW5mby1jb2xvcjtcblx0XHRwYWRkaW5nOiAycHggMDtcblx0XHRcblx0XHQ+IGxpIHtcblx0XHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgQGluZm8tY29sb3I7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAycHg7XG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdG1hcmdpbi1sZWZ0OiAtMXB4O1xuXHRcdFx0XG5cdFx0fVxuXHR9XG59IiwiLyoqKlxuICogVGFibGU6XG4gKi9cblxuLmdlbmVyYXRlLWNvbHVtbnMoIEBpICkgd2hlbiAoIEBpID4gMCApIHtcblxuXHQmLmNvbC1Ae2l9IHtcblx0XHQmID4ucm93ID4uY2VsbCB7XG5cdFx0XHR3aWR0aDogMTAwJSAvIEBpXG5cdFx0fVxuXHR9XG5cdC5nZW5lcmF0ZS1jb2x1bW5zKCBAaSAtIDEgKTtcbn1cbi8qKlxuICogVGFibGU6XG4gKiBgLnRhYmxlYCAtIFRoZSBtYWluIHRhYmxlIHdpdGggaGVhZGVyIGFuZCByb3dzIGluc2lkZVxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi50YWJsZS5jb2wtMlxuICogXHRcdGRpdi5yb3cuaGVhZGVyXG4gKiBcdFx0XHRkaXYuY2VsbCBDb2x1bW4xXG4gKiBcdFx0XHRkaXYuY2VsbCBDb2x1bW4yXG4gKiBcdFx0ZGl2LnJvdy5ldmVuXG4gKiBcdFx0XHRkaXYuY2VsbCBEYXRhMTFcbiAqIFx0XHRcdGRpdi5jZWxsIERhdGExMlxuICogXHRcdGRpdi5yb3cub2RkXG4gKiBcdFx0XHRkaXYuY2VsbCBEYXRhMTFcbiAqIFx0XHRcdGRpdi5jZWxsIERhdGExMlxuICogXHRcdGRpdi5yb3cuZXZlblxuICogXHRcdFx0ZGl2LmNlbGwgRGF0YTExXG4gKiBcdFx0XHRkaXYuY2VsbCBEYXRhMTJcbiAqIFx0XHRkaXYucm93Lm9kZC5hY3RpdmVcbiAqIFx0XHRcdGRpdi5jZWxsIERhdGExMVxuICogXHRcdFx0ZGl2LmNlbGwgRGF0YTEyXG4gKi9cbi50YWJsZSB7XG5cdFxuXHR3aWR0aDogMTAwJTtcblx0XG5cdC5nZW5lcmF0ZS1jb2x1bW5zKCAxMCApO1xuXHRcblx0JiA+IC5yb3cge1xuXHRcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHR0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgZGFya2VuKCBAYnJpZ2h0LWNvbG9yLCAxMCUgKTtcblx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBkYXJrZW4oIEBicmlnaHQtY29sb3IsIDEwJSApO1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAYnJpZ2h0LWNvbG9yO1xuXHRcdFxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItYm90dG9tLWNvbG9yOiBkYXJrZW4oIEBicmlnaHQtY29sb3IsIDEwJSApO1xuXHRcdH1cblx0XHRcblx0XHQmLm9kZCB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuXHRcdH1cblx0XHRcblx0XHQmID4gLmNlbGwge1xuXHRcdFx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0XHRcdHBhZGRpbmc6IDVweCA4cHg7XG5cdFx0XHRmb250LXdlaWdodDogbGlnaHRlcjtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHR3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG5cdFx0fVxuXHRcdFxuXHRcdCYuc2VsZWN0ZWQge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogQGluZm8tY29sb3I7XG5cdFx0XHRjb2xvcjogI0ZGRjtcblx0XHRcdGJvcmRlci1sZWZ0LWNvbG9yOiBAaW5mby1jb2xvcjtcblx0XHRcdGJvcmRlci1yaWdodC1jb2xvcjogQGluZm8tY29sb3I7XG5cdFx0fVxuXHR9XG5cdFxuXHQmID4gLnJvdy5oZWFkZXIge1xuXHRcblx0XHQmID4gLmNlbGwge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHR9XG5cdFx0XG5cdFx0Y29sb3I6IEBkYXJrLWNvbG9yO1xuXHRcdGZvbnQtc2l6ZTogMWVtO1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgZGFya2VuKCBAYnJpZ2h0LWNvbG9yLCAxMCUgKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBAYnJpZ2h0LWNvbG9yO1xuXHR9XG59XG5cblxuXG5cbiIsIi8qKipcbiAqIE1lc3NhZ2VzOlxuICovXG5cbi8qKlxuICogUG9wdXAgbWVzc2FnZTpcbiAqIGAucG9wdXAtbXNnYCAtIEEgc3R5bGluZyBmb3IgYSBwb3B1cCBtZXNzYWdlXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LnBvcHVwLW1zZyBUaGUgcG9wdXAgbWVzc2FnZVxuICovXG4ucG9wdXAtbXNnIHtcblx0XG5cdGJvcmRlcjogMXB4IHNvbGlkIEBicmlnaHQtY29sb3I7XG5cdGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzICogMjtcblx0cGFkZGluZzogMTBweCAxNXB4O1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IDJweCAycHggNXB4IDBweCByZ2JhKDUwLCA1MCwgNTAsIDAuMSk7XG5cdC1tb3otYm94LXNoYWRvdzogICAgMnB4IDJweCA1cHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC4xKTtcblx0Ym94LXNoYWRvdzogICAgICAgICAycHggMnB4IDVweCAwcHggcmdiYSg1MCwgNTAsIDUwLCAwLjEpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuXHRcblx0IFxuXHQgLyoqXG5cdCAgKiBFcnJvciBwb3AgbWVzc2FnZTpcblx0ICAqIGAuZXJyb3JgIC0gRXJyb3Igc3R5bGluZyBmb3IgdGhlIHBvcHVwIG1lc3NhZ2Vcblx0ICAqIFxuXHQgICogXHRAZXhhbXBsZVxuXHQgICogXHRkaXYucG9wdXAtbXNnLmVycm9yIFRoZSBlcnJvciBwb3B1cCBtZXNzYWdlXG5cdCAgKi9cblx0Ji5lcnJvciB7XG5cdFx0Ym9yZGVyLWNvbG9yOiBAZXJyb3ItY29sb3I7XG5cdH1cblx0XG5cdC5jbG9zZS1idXQge1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cblx0XG5cdHAge1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXHRcblx0LmJ0biB7XG5cdFx0bWFyZ2luOiAwIDEwcHg7XG5cdH1cbn1cblxuLyoqXG4gKiBGbG9hdDpcbiAqIGAuZmxvYXRgIC0gQSBmbG9hdCBzdHlsZSB0aGF0IG1ha2VzIHRoZSBwb3B1cCBtZXNzYWdlIGZsb2F0IG92ZXIgdGhlIGNvbnRlbnRcbiAqL1xuLmZsb2F0IHtcblxuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogNXB4O1xuXHR3aWR0aDoxMDAlO1xuXHRsZWZ0OiAwO1xuXHR6LWluZGV4OiAxMDAwMDtcbn1cblxuXG4iLCIvKioqXG4gKiBIZWxwZXJzOlxuICovXG5cbi8qKlxuICogUmVtb3ZlOlxuICogYC5yZW1vdmVgIC0gUmVtb3ZlcyBhIGRpdi5cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYucmVtb3ZlIFRlc3RcbiAqL1xuLnJlbW92ZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59IiwiLyoqKlxuICogTGF5b3V0OlxuICovXG5cbi8qKlxuICogT25lIHNpZGUgZml4ZWQgbGF5b3V0OlxuICogYC5sYXlvdXQtYW5jaG9yYCAtIEJhc2UgZm9yIGEgbGF5b3V0IHdoZXJlIG9uZSBzaWRlIGlzIGZpeGVkXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmxheW91dC1hbmNob3JcbiAqL1xuLmxheW91dC1hbmNob3Ige1xuXHRkaXNwbGF5OiB0YWJsZTtcblx0XG5cdFxuXHQvKipcblx0ICogTGVmdCBhbmNob3JlZDpcblx0ICogYC5sYXlvdXQtYW5jaG9yLmxlZnRgIC0gTGVmdCBhbmNob3IgbGF5b3V0XG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2LmxheW91dC1hbmNob3IubGVmdFxuXHQgKiBcdFx0ZGl2KHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojY2NjXCIpIExlZnRcblx0ICogXHRcdGRpdihzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2FhYVwiKSBSaWdodFxuXHQgKi9cblx0Ji5sZWZ0IHtcblx0XHRcblx0XHRib3JkZXItc3BhY2luZzogMTVweCAwO1xuXHRcdG1hcmdpbjogMCAtMTVweDtcblx0XHRcblx0XHQmID4gKiB7XG5cdFx0XHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHRcdH1cblx0XHRcblx0XHQmID4gOmZpcnN0LWNoaWxkIHtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdH1cblx0XHQmID4gOmxhc3QtY2hpbGQge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG5cdFxuXHQvKipcblx0ICogUmlnaHQgYW5jaG9yZWQ6XG5cdCAqIGAubGF5b3V0LWFuY2hvci5yaWdodGAgLSBSaWdodCBhbmNob3IgbGF5b3V0XG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2LmxheW91dC1hbmNob3IucmlnaHRcblx0ICogXHRcdGRpdihzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2NjY1wiKSBMZWZ0XG5cdCAqIFx0XHRkaXYoc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNhYWFcIikgUmlnaHRcblx0ICovXG5cdCYucmlnaHQge1xuXHRcdFxuXHRcdGJvcmRlci1zcGFjaW5nOiAxNXB4IDA7XG5cdFx0bWFyZ2luOiAwIC0xNXB4O1xuXHRcdFxuXHRcdCYgPiAqIHtcblx0XHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdFx0fVxuXHRcdFxuXHRcdCYgPiA6Zmlyc3QtY2hpbGQge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHRcdCYgPiA6bGFzdC1jaGlsZCB7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHR9XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBCb3R0b20gYW5jaG9yZWQ6XG5cdCAqIGAubGF5b3V0LWFuY2hvci5ib3R0b21gIC0gQm90dG9tIGFuY2hvciBsYXlvdXRcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYubGF5b3V0LWFuY2hvci5ib3R0b20oc3R5bGU9XCJoZWlnaHQ6MTIwcHhcIilcblx0ICogXHRcdGRpdihzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2NjY1wiKSBUb3Bcblx0ICogXHRcdGRpdihzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2FhYVwiKSBCb3R0b21cblx0ICovXG5cdCYuYm90dG9tIHtcblx0XHRcblx0XHRib3JkZXItc3BhY2luZzogMCAxNXB4O1xuXHRcdG1hcmdpbjogLTE1cHggMDtcblx0XHRcblx0XHQmID4gKiB7XG5cdFx0XHRkaXNwbGF5OiB0YWJsZS1yb3c7XG5cdFx0fVxuXHRcdFxuXHRcdCYgPiA6Zmlyc3QtY2hpbGQge1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdH1cblx0XHQmID4gOmxhc3QtY2hpbGQge1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdH1cblx0fVxuXHRcblx0LyoqXG5cdCAqIFRvcCBhbmNob3JlZDpcblx0ICogYC5sYXlvdXQtYW5jaG9yLnRvcGAgLSBUb3AgYW5jaG9yIGxheW91dFxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGRpdi5sYXlvdXQtYW5jaG9yLnRvcChzdHlsZT1cImhlaWdodDoxMjBweFwiKVxuXHQgKiBcdFx0ZGl2KHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojY2NjXCIpIFRvcFxuXHQgKiBcdFx0ZGl2KHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojYWFhXCIpIEJvdHRvbVxuXHQgKi9cblx0Ji50b3Age1xuXHRcdFxuXHRcdGJvcmRlci1zcGFjaW5nOiAwIDE1cHg7XG5cdFx0bWFyZ2luOiAtMTVweCAwO1xuXHRcdFxuXHRcdCYgPiAqIHtcblx0XHRcdGRpc3BsYXk6IHRhYmxlLXJvdztcblx0XHR9XG5cdFx0XG5cdFx0JiA+IDpmaXJzdC1jaGlsZCB7XG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0fVxuXHRcdCYgPiA6bGFzdC1jaGlsZCB7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0fVxuXHR9XG4gXG59IiwiLyoqXG4gKiBPbGQgcGFuZWwgc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGggYSByZXNwb25zaXZlIG9uZS5cbiAqL1xuLm92ZXJsYXktY29udGVudCB7XG5cdHBhZGRpbmc6IDEwcHg7XG5cdGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0LXdlYmtpdC1ib3gtc2hhZG93OiAycHggMnB4IDEwcHggcmdiYSggMCwgMCwgMCwgMC4yICk7XG5cdGJveC1zaGFkb3c6IDJweCAycHggMTBweCByZ2JhKCAwLCAwLCAwLCAwLjIgKTtcblx0XG5cdC5jbG9zZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMTBweDtcblx0XHRyaWdodDogMTBweDtcblx0fVxufVxuXG4ub3ZlcmxheS1tYXNrIHtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSggMCwgMCwgMCwgMC41ICk7XG59IiwiLyoqXG4gKiBEcm9wZG93bjpcbiAqIGAuZHJvcGRvd25gIC0gU3R5bGluZyBmb3IgYSBodG1sIGRyb3Bkb3duXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmRyb3Bkb3duXG4gKiBcdFx0ZGl2LmRyb3Bkb3duLS1idXR0b24gQWRkXG4gKiBcdFx0ZGl2LmRyb3Bkb3duLS1tZW51XG4gKi9cbi5kcm9wZG93biB7XG5cdFxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFxuXHQ+IC5kcm9wZG93bi0tbWVudSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMzNweDtcblx0XHRsZWZ0OiAwO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG5cdFx0Y29sb3I6IEBkYXJrLWNvbG9yO1xuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0ei1pbmRleDogMTAwMDtcblx0XHQtd2Via2l0LWJveC1zaGFkb3c6IDBweCAycHggM3B4IDNweCByZ2JhKDUwLCA1MCwgNTAsIDAuMSk7XG5cdFx0LW1vei1ib3gtc2hhZG93OiAgICAwcHggMnB4IDNweCAzcHggcmdiYSg1MCwgNTAsIDUwLCAwLjEpO1xuXHRcdGJveC1zaGFkb3c6ICAgICAgICAgMHB4IDJweCAzcHggM3B4IHJnYmEoNTAsIDUwLCA1MCwgMC4xKTtcblx0XHRib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cztcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFxuXHRcdD4gbGkge1xuXHRcdFx0cGFkZGluZzogNHB4IDEycHg7XG5cdFx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIGNvbG9yIDAuNHM7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBAYWN0aW9uLWNvbG9yO1xuXHRcdFx0XHRjb2xvcjogI0ZGRjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0iLCIvKioqXG4gKiBJbnB1dHM6XG4gKi9cblxuLyoqXG4gKiBJbnB1dDpcbiAqIGAuaW5wdXRgIC0gVGhlIGJhc2Ugc3R5bGluZyBmb3IgYW4gZGF0ZW5lZGl0b3IgaW5wdXRcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuaW5wdXRcbiAqIFx0XHRkaXYubGFiZWwgVGhlIGxhYmVsXG4gKlx0XHRkaXYudmFsdWUgVGhlIHZhbHVlXG4gKi9cbi5pbnB1dCB7XG5cdFxuXHRtYXJnaW4tdG9wOiAxMnB4O1xuXHRmb250LXNpemU6IDFlbTtcblx0XG5cdCYgPiAuaGludCB7XG5cdFx0Y3Vyc29yOiBoZWxwO1xuXHR9XG5cdFxuXHQmLmF0dHJpYnV0ZSB7XG5cdFx0XG5cdFx0LnZhbGlkYXRpb24tZXJyb3Ige1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdFx0XG5cdFx0Ji5lcnJvciB7XG5cdFx0XHQudmFsaWRhdGlvbi1lcnJvciB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuc3RhdHVzLWljb24uaWNvbi1lcnJvciB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRjb2xvcjogQGVycm9yLWNvbG9yO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQmLnN1Y2Nlc3Mge1xuXHRcdFx0LnN0YXR1cy1pY29uLmljb24tc3VjY2VzcyB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRjb2xvcjogQHN1Y2Nlc3MtY29sb3I7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5zdGF0dXMtaWNvbiB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDE1cHg7XG5cdFx0XHRyaWdodDogMTdweDtcblx0XHRcdHotaW5kZXg6IDEwO1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblx0XG5cdCYuZXJyb3Ige1xuXHRcdC5mb3JtIHtcblx0XHRcdGJvcmRlci1jb2xvcjogQGVycm9yLWNvbG9yO1xuXHRcdH1cblx0fVxuXHRcblx0Ji5zdWNjZXNzIHtcblx0XHQuZm9ybSB7XG5cdFx0XHRib3JkZXItY29sb3I6IEBzdWNjZXNzLWNvbG9yO1xuXHRcdH1cblx0fVxufVxuXG5cbi52YWxpZGF0aW9uLWVycm9yIHtcblx0Zm9udC1zaXplOiAwLjllbTtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdHBhZGRpbmc6IDJweDtcblx0Y29sb3I6IGRhcmtlbiggQGVycm9yLWNvbG9yLCAyMCUgKTtcbn0iLCIvKipcbiAqIEluZm9pbnB1dDpcbiAqIGAuaW5wdXQuaW5mb2AgLSBUaGUgc3R5bGUgZm9yIGEgaW5mbyBpbnB1dFxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5pbnB1dC5pbmZvXG4gKiBcdFx0ZGl2LmxhYmVsIE15IEF0dHJpYnV0ZVxuICogXHRcdGRpdi52YWx1ZSBNeSBWYWx1ZVxuICovXG4uaW5mby5pbnB1dCB7XG5cdFxuXHQudmFsdWUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IEBicmlnaHQtY29sb3I7XG5cdFx0Ym9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXM7XG5cdFx0cGFkZGluZzogNnB4IDEycHg7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxufSIsIi8qKlxuICogQ29kZSBpbnB1dDpcbiAqIGAuaW5wdXQuY29kZWAgLSBUaGUgc3R5bGUgZm9yIHRoZSBjb2RlIGlucHV0XG4gKi9cbi5pbnB1dC5jb2RlIHtcblx0XG5cdC5hY2Uge1xuXHRcdGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzO1xuXHR9XG59IiwiLyoqXG4gKiBHcm91cCBpbnB1dDpcbiAqIGAuaW5wdXQuZ3JvdXBgIC0gVGhlIHN0eWxlIGZvciBncm91cGVkIGlucHV0c1xuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5pbnB1dC5ncm91cC5vcGVuXG4gKiBcdFx0ZGl2LmxhYmVsIE15IEdyb3VwXG4gKiBcdFx0ZGl2Lmdyb3VwLWNvbnRlbnQgTXkgVmFsdWVcbiAqL1xuLmlucHV0Lmdyb3VwIHtcblx0XG5cdHdpZHRoOiAxMDAlO1xuXHRcblx0PiAubGFiZWwge1xuXHRcdGNvbG9yOiBAZGFyay1jb2xvcjtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XG5cdFx0Lmljb24ge1xuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdG1hcmdpbi1yaWdodDogM3B4O1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdHRyYW5zaXRpb246IGFsbCAwLjJzO1xuXHRcdH1cblx0fVxuXHRcblx0PiAuZ3JvdXAtY29udGVudCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHRwYWRkaW5nOiAwIDEwcHggMTBweCAxMHB4O1xuXHRcdHRyYW5zaXRpb246IGFsbCAwLjNzO1xuXHR9XG5cdFxuXHQmLm9wZW4ge1xuXG5cdFx0PiAubGFiZWwge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBicmlnaHQtY29sb3I7XG5cdFx0XHRcblx0XHRcdC5pY29uIHtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZVgoLTFweCk7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogNXB4O1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQ+IC5ncm91cC1jb250ZW50IHtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdH1cblx0XG5cdFxufSIsIi8qKlxuICogQm9vbGVhbiBpbnB1dDpcbiAqIGAuaW5wdXQuYm9vbGVhbmAgLSBUaGUgYm9vbGVhbiBzd2l0Y2hcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuaW5wdXQuYm9vbGVhblxuICogXHRcdGRpdi5sYWJlbCBNeSBCb29sZWFuXG4gKiBcdFx0ZGl2LnN3aXRjaC5mb3JtXG4gKiBcdFx0XHRkaXYuc3RhdGUgT25cbiAqIFx0XHRcdGRpdi5zdGF0ZSBPZmZcbiAqIFx0XHRcdGRpdi5oYW5kbGVcbiAqL1xuLmlucHV0LmJvb2xlYW4ge1xuXHRcblx0LnN3aXRjaCB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICM1ODU4NTg7XG5cdFx0Y29sb3I6ICNGRkY7XG5cdFx0Ym9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXM7XG5cdFx0cGFkZGluZzogMDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XG5cdFx0LnN0YXRlIHtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0cGFkZGluZzogNnB4IDEycHg7XG5cdFx0fVxuXHRcdFxuXHRcdC5oYW5kbGUge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG5cdFx0XHRib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cyAtIDE7XG5cdFx0XHRib3gtc2hhZG93OiBpbnNldCAwcHggMnB4IDNweCAjZmZmO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20oI2Y3ZjdmNyksIHRvKCNlN2U3ZTcpKTtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2Y3ZjdmNywgI2U3ZTdlNyk7IFxuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZjdmN2Y3LCAjZTdlN2U3KTsgXG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgI2Y3ZjdmNywgI2U3ZTdlNyk7IFxuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgI2Y3ZjdmNywgI2U3ZTdlNyk7IFxuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZS1pbi1vdXQ7XG5cdFx0XHQtbW96LXRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2UtaW4tb3V0O1xuXHRcdFx0LW8tdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZS1pbi1vdXQ7XG5cdFx0XHR0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlLWluLW91dDtcblx0XHR9XG5cdFx0XG5cdFx0Ji5vbiAuaGFuZGxlIHtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHR9XG5cdH1cbn0iLCIvKipcbiAqIEltYWdlIGlucHV0OlxuICogYC5pbnB1dC5pbWFnZWAgLSBUaGUgc3R5bGUgZm9yIHRoZSBpbWFnZSBpbnB1dFxuICovXG4uaW5wdXQuaW1hZ2Uge1xuXHRcblx0LmZvcm0ge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxufSIsIi5tZWRpdW0tZWRpdG9yLXRvb2xiYXIge1xuXG5cdGxlZnQ6IDA7XG5cdHRvcDogMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdGJveC1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4zKSAxcHggMXB4IDJweDtcblx0Ym9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXM7XG5cdGJvcmRlcjogMXB4IHNvbGlkICM1ODU4NTg7XG5cdGJhY2tncm91bmQtY29sb3I6ICM1ODU4NTg7XG5cblx0bGkge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXG5cdCYubWVkaXVtLWVkaXRvci10b29sYmFyLWFjdGl2ZSB7XG5cdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0fVxufVxuXG4ubWVkaXVtLWVkaXRvci10b29sYmFyLWZvcm0ge1xuXHRkaXNwbGF5OiBub25lO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjNTg1ODU4O1xuXHRjb2xvcjogI0ZGRjtcblx0cGFkZGluZzogMCA1cHg7XG5cblx0Ji5tZWRpdW0tZWRpdG9yLXRvb2xiYXItZm9ybS1hY3RpdmUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0aW5wdXQge1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogNnB4O1xuXHRcdHdpZHRoOiAzMTZweDtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRjb2xvcjogI0ZGRjtcblx0fVxuXG5cdGEge1xuXHRcdGNvbG9yOiAjRkZGO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRwYWRkaW5nOiAwIDVweDtcblx0fVxufVxuXG4ubWVkaXVtLWVkaXRvci10b29sYmFyLWFjdGlvbnMge1xuXG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0XG5cblx0YnV0dG9uIHtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0Y29sb3I6ICNGRkY7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oICM1ODU4NTgsIDUlICk7XG5cdFx0fVxuXG5cdFx0Lmljb24ge1xuXHRcdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdH1cblx0fVxufVxuXG4ubWVkaXVtLXRvb2xiYXItYXJyb3ctdW5kZXI6YWZ0ZXIge1xuXHRjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiAxMXB4O1xuICAgIHdpZHRoOiAxMXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1ODU4NTg7XG4gICAgbGVmdDogNTAlO1xuICAgIGJvdHRvbTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA1MCUpIHJvdGF0ZSg0NWRlZyk7XG59XG5cblxuXG4ucmljaHRleHQge1xuXHQuZWRpdG9yIHtcblxuXHRcdHAge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblxuXHRcdHAgKyBwIHtcblx0XHRcdG1hcmdpbi10b3A6IDdweDtcblx0XHR9XG5cdH1cbn0iLCIubW9kZWwtZWRpdG9yIHtcblx0XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XG5cdD4gLm1vZC1jb250YWluZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDEwcHg7XG5cdFx0cmlnaHQ6IDEwcHg7XG5cdH1cbn0iLCIvKioqXG4gKiBUYWJlZGl0b3I6XG4gKi9cblxuLnRhYi1lZGl0b3Ige1xuXHRcblx0LyoqXG5cdCAqIExlZnQgb3JpZW50ZWQgdGFiLWVkaXRvcjpcblx0ICogYC50YWItZWRpdG9yLmxlZnRgIC0gU3R5bGVzIHRoZSB0YWIgZWRpdG9yIHRvIHNob3cgdGhlIHRhYnMgb24gdGhlIGxlZnQgc2lkZVxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGRpdi50YWItZWRpdG9yLmxlZnRcblx0ICogXHRcdG9sLnRhYnMubGVmdFxuXHQgKiBcdFx0XHRsaSBUYWIxXG5cdCAqIFx0XHRcdGxpIFRhYjJcblx0ICogXHRcdFx0bGkuYWN0aXZlIFRhYjNcblx0ICogXHRcdGRpdi5tb2RlbC1lZGl0b3IgVGhlIGNvbnRlbnQgb2YgdGhlIHRhYiBlZGl0b3IuXG5cdCAqL1xuXHQgJi5sZWZ0IHtcblx0IFxuXHQgXHQuY29sdW1ucygpO1xuXHRcdFxuXHRcdD4gLnRhYnMge1xuXHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdHdpZHRoOiAyMCU7XG5cdFx0fVxuXHRcdFxuXHRcdD4gLm1vZGVsLWVkaXRvciB7XG5cdFx0XHR3aWR0aDogODAlO1xuXHRcdFx0Ym9yZGVyLWxlZnQ6IDJweCBzb2xpZCBAaW5mby1jb2xvcjtcblx0XHRcdG1hcmdpbi1sZWZ0OiAtMnB4O1xuXHRcdFx0XG5cdFx0fVxuXHR9XG5cdFxuXHQvKipcblx0ICogUmlnaHQgb3JpZW50ZWQgdGFiLWVkaXRvcjpcblx0ICogYC50YWItZWRpdG9yLnJpZ2h0YCAtIFN0eWxlcyB0aGUgdGFiIGVkaXRvciB0byBzaG93IHRoZSB0YWJzIG9uIHRoZSByaWdodCBzaWRlXG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2LnRhYi1lZGl0b3IucmlnaHRcblx0ICogXHRcdG9sLnRhYnMucmlnaHRcblx0ICogXHRcdFx0bGkgVGFiMVxuXHQgKiBcdFx0XHRsaSBUYWIyXG5cdCAqIFx0XHRcdGxpLmFjdGl2ZSBUYWIzXG5cdCAqIFx0XHRkaXYubW9kZWwtZWRpdG9yIFRoZSBjb250ZW50IG9mIHRoZSB0YWIgZWRpdG9yLlxuXHQgKi9cblx0ICYucmlnaHQge1xuXHQgXG5cdCBcdC5jb2x1bW5zKCk7XG5cdFx0XG5cdFx0PiAudGFicyB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAxM3B4O1xuXHRcdFx0d2lkdGg6IDIwJTtcblx0XHRcdGxlZnQ6IDgwJTtcblx0XHRcdG1hcmdpbi1sZWZ0OiAtMnB4O1xuXHRcdH1cblx0XHRcblx0XHQ+IC5tb2RlbC1lZGl0b3Ige1xuXHRcdFx0d2lkdGg6IDgwJTtcblx0XHRcdGJvcmRlci1yaWdodDogMnB4IHNvbGlkIEBpbmZvLWNvbG9yO1xuXHRcdFx0cmlnaHQ6IDIwJTtcblx0XHRcdG1hcmdpbi1sZWZ0OiAycHg7XG5cdFx0XHRoMiB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHRcblx0PiAudGFicyA+IGxpIHtcblx0XHRcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dHJhbnNpdGlvbjogcGFkZGluZyAwLjNzO1xuXHRcdFxuXHRcdC5tb2QtY29udGFpbmVyIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRyaWdodDogM3B4O1xuXHRcdFx0dG9wOiAwcHg7XG5cdFx0fVxuXHRcdFxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Lm1vZC1jb250YWluZXIge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDMwcHg7XG5cdFx0fVxuXHR9XG5cdFxufSIsIi8qKipcbiAqIFRhYmxlIEVkaXRvcjpcbiAqL1xuXG4udGFibGUtZWRpdG9yIHtcblxuXHQvKipcblx0ICogVGFibGUgZWRpdG9yOlxuXHQgKiBgLnRhYmxlLWVkaXRvcmAgLSBTdHlsZXMgYSB0YWJsZSBlZGl0b3Igd2l0aCBhIG1vZGVsIGVkaXRvciBpbnNpZGVcblx0ICpcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGRpdi50YWJsZS1lZGl0b3Jcblx0ICogXHRcdGRpdi50YWJsZS5jb2wtMlxuXHQgKiBcdFx0XHRkaXYucm93LmhlYWRlclxuXHQgKiBcdFx0XHRcdGRpdi5jZWxsIENvbHVtbjFcblx0ICogXHRcdFx0XHRkaXYuY2VsbCBDb2x1bW4yXG5cdCAqIFx0XHRcdGRpdi5yb3cub2RkXG5cdCAqIFx0XHRcdFx0ZGl2LmNlbGwgRGF0YTExXG5cdCAqIFx0XHRcdFx0ZGl2LmNlbGwgRGF0YTEyXG5cdCAqIFx0XHRcdFx0ZGl2Lm1vZC5kZWxldGVcblx0ICogXHRcdFx0XHRcdGRpdi5pY29uLmljb24tY2xvc2UuZGVsZXRlLWJ1dFxuXHQgKiBcdFx0XHRkaXYucm93LmFjdGl2ZS5ldmVuXG5cdCAqIFx0XHRcdFx0ZGl2LmNlbGwgRGF0YTIxXG5cdCAqIFx0XHRcdFx0ZGl2LmNlbGwgRGF0YTIyXG5cdCAqIFx0XHRcdFx0ZGl2Lm1vZC5kZWxldGVcblx0ICogXHRcdFx0XHRcdGRpdi5pY29uLmljb24tY2xvc2UuZGVsZXRlLWJ1dFxuXHQgKiBcdFx0XHRkaXYubW9kZWwtZWRpdG9yXG5cdCAqIFx0XHRcdFx0aDIgTW9kZWxcblx0ICogXHRcdFx0XHRkaXYuaW5wdXRzLmNvbC5jb2wtMS0xXG5cdCAqIFx0XHRcdFx0XHRkaXYuc3RyaW5nLmlucHV0XG5cdCAqIFx0XHRcdFx0XHRcdGRpdi5sYWJlbCBJbnB1dFxuXHQgKiBcdFx0XHRcdFx0XHRkaXYudmFsdWUuZm9ybVxuXHQgKiBcdFx0XHRkaXYucm93Lm9kZFxuXHQgKiBcdFx0XHRcdGRpdi5jZWxsIERhdGEzMVxuXHQgKiBcdFx0XHRcdGRpdi5jZWxsIERhdGEzMlxuXHQgKiBcdFx0XHRcdGRpdi5tb2QuZGVsZXRlXG5cdCAqIFx0XHRcdFx0XHRkaXYuaWNvbi5pY29uLWNsb3NlLmRlbGV0ZS1idXRcblx0ICogXHRcdFx0ZGl2LnJvdy5ldmVuXG5cdCAqIFx0XHRcdFx0ZGl2LmNlbGwgRGF0YTQxXG5cdCAqIFx0XHRcdFx0ZGl2LmNlbGwgRGF0YTQyXG5cdCAqIFx0XHRcdFx0ZGl2Lm1vZC5kZWxldGVcblx0ICogXHRcdFx0XHRcdGRpdi5pY29uLmljb24tY2xvc2UuZGVsZXRlLWJ1dFxuXHQgKi9cblxuXHQgJiA+IC50YWJsZS5jb250ZW50IHtcblxuXHQgXHQmID4ucm93IHtcblx0IFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0IFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR0cmFuc2l0aW9uOiBhbGwgMC4zcztcblxuXHRcdFx0PiAubW9kLWNvbnRhaW5lciB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdHJpZ2h0OiAzcHg7XG5cdFx0XHRcdHRvcDogLTJweDtcblx0XHRcdH1cblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdD4gLm1vZC1jb250YWluZXIge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IEBhY3Rpb24tY29sb3I7XG5cdFx0XHRcdGNvbG9yOiAjRkZGO1xuXHRcdFx0fVxuXHQgXHR9XG5cblx0IFx0JiA+Lm1vZGVsLWVkaXRvciB7XG5cblx0XHQgXHRwYWRkaW5nOiAxMHB4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgbGlnaHRlbiggQGluZm8tY29sb3IsIDEwJSApO1xuXHRcdFx0Ym9yZGVyLXRvcDogbm9uZTtcblxuXHRcdCBcdCYgPiBoMiB7XG5cdFx0IFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdCBcdFx0Zm9udC1zaXplOiAxLjJlbTtcblx0XHQgXHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qIE92ZXJ3cml0ZSB0aGUgMTAwJSB3aWR0aCBvZiB0aGUgZ2VuZXJhbCAudGFibGUgY2xhc3MgKi9cbi50YWJsZS5oYWxmIHtcblx0d2lkdGg6IDUwJTtcbn1cbiIsIi8qKipcbiAqIFByZXZpZXcgRWRpdG9yOlxuICovXG5cbi5wcmV2aWV3LWVkaXRvciB7XG5cdFxuXHQvKipcblx0ICogUHJldmlldyBlZGl0b3I6XG5cdCAqIGAucHJldmlldy1lZGl0b3JgIC0gU3R5bGVzIGEgcHJldmlldyBlZGl0b3Igd2l0aCBhIG1vZGVsIGVkaXRvciBpbnNpZGVcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYucHJldmlldy1lZGl0b3Jcblx0ICogXHRcdGRpdi5wcmV2aWV3c1xuXHQgKiBcdFx0XHRkaXYucHJveHkgVGVtcGxhdGUxXG5cdCAqIFx0XHRcdGRpdi5wcm94eS5hY3RpdmUgVGVtcGxhdGUyXG5cdCAqIFx0XHRcdGRpdi5tb2RlbC1lZGl0b3Jcblx0ICogXHRcdFx0XHRoMiBNb2RlbFxuXHQgKiBcdFx0XHRcdGRpdi5pbnB1dHMuY29sLmNvbC0xLTFcblx0ICogXHRcdFx0XHRcdGRpdi5zdHJpbmcuaW5wdXRcblx0ICogXHRcdFx0XHRcdFx0ZGl2LmxhYmVsIElucHV0XG5cdCAqIFx0XHRcdFx0XHRcdGRpdi52YWx1ZS5mb3JtXG5cdCAqL1xuXHQgXG5cdCAmID4gLnByZXZpZXdzIHtcblx0IFxuXHQgXHQmID4ucHJveHkge1xuXHQgXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0IFx0XHRib3JkZXItbGVmdDogMHB4IHNvbGlkIEBpbmZvLWNvbG9yO1xuXHQgXHRcdHBhZGRpbmc6IDVweCAxMHB4O1xuXHQgXHRcdC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNXM7XG5cdFx0XHR0cmFuc2l0aW9uOiBhbGwgMC41cztcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFxuXHQgXHRcdFxuXHQgXHRcdCYuc2VsZWN0ZWQge1xuXHRcdFx0XHRib3JkZXItbGVmdDogOHB4IHNvbGlkIEBpbmZvLWNvbG9yO1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbiggQGluZm8tY29sb3IsIDM1JSApO1xuXHRcdFx0XHRcblx0XHRcdFx0JiA+IC5tb2QtY29udGFpbmVyIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCYgPiAubW9kLWNvbnRhaW5lciB7XG5cdFx0XHRcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdFx0dHJhbnNpdGlvbjogYWxsIDAuNXM7XG5cdFx0XHRcdFxuXHRcdFx0XHQuaWNvbi0tYnRuIHtcblx0XHRcdFx0XHRjb2xvcjogQGFjdGlvbi1jb2xvcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHQgXHR9XG5cdCBcblx0IFx0JiA+LmVkaXQgPi5tb2RlbC1lZGl0b3Ige1xuXHQgXG5cdFx0IFx0cGFkZGluZzogMTBweDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0XHRcblx0XHQgXHQ+IGgyIHtcblx0XHQgXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0IFx0XHRmb250LXNpemU6IDEuMmVtO1xuXHRcdCBcdH1cblx0XHQgXHRcblx0XHQgXHQmLmFjdGl2ZSB7XG5cdFx0XHRcdC13ZWJraXQtYW5pbWF0aW9uOiBib3JkZXItZmFkZSAwLjVzO1xuXHRcdFx0XHRhbmltYXRpb246IGJvcmRlci1mYWRlIDAuNXM7XG5cdFx0XHRcdGJvcmRlci1sZWZ0OiA4cHggc29saWQgQGluZm8tY29sb3I7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICogRml4IGZvciBhbmltYXRlIHRoZSBib3JkZXIgb2YgdGhlIG5ld2x5IHBsYWNlZCBtb2RlbCBlZGl0b3JcbiAqL1xuQC13ZWJraXQta2V5ZnJhbWVzIGJvcmRlci1mYWRlIHtcblx0ZnJvbSB7XG5cdFx0Ym9yZGVyLWxlZnQ6IDBweCBzb2xpZCBAaW5mby1jb2xvcjtcblx0fVxuXHR0byB7XG5cdFx0Ym9yZGVyLWxlZnQ6IDhweCBzb2xpZCBAaW5mby1jb2xvcjtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGJvcmRlci1mYWRlIHtcblx0ZnJvbSB7XG5cdFx0Ym9yZGVyLWxlZnQ6IDBweCBzb2xpZCBAaW5mby1jb2xvcjtcblx0fVxuXHR0byB7XG5cdFx0Ym9yZGVyLWxlZnQ6IDhweCBzb2xpZCBAaW5mby1jb2xvcjtcblx0fVxufSIsIi5pbWFnZW1hcC1lZGl0b3Ige1xuXHRcblx0LmltYWdlbWFwIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0fVxuXHRcblx0Lm1hcHMge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdH1cblx0XG5cdC5tYXAge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCAwLCAwLCAwLCAwLjQgKTtcblx0XHRib3JkZXI6IDFweCBkYXNoZWQgI0ZGRjtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XG5cdFx0Lmljb24ge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwcHg7XG5cdFx0XHRyaWdodDogNXB4O1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdH1cblx0XHRcblx0XHQmLmFjdGl2ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCAyNTUsIDI1NSwgMjU1LCAwLjUgKTtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIEBpbmZvLWNvbG9yO1xuXHRcdH1cblx0fVxuXHRcblx0LmltYWdlIHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cblx0XG59IiwiLy8gc3R5bGluZyBmb3IgdGhlIGZpbGUgc2VsZWN0b3Jcbi5maWxlLXNlbGVjdG9yIHtcblx0XG5cdC5jb250cm9scyB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdCAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcblx0ICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuXHR9XG5cdFxuXHQucHJvZ3Jlc3Mge1xuXHRcdHdpZHRoOiAwO1xuIFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuXHRcdGhlaWdodDogMnB4O1xuXHR9XG5cdFxuXHRoMiB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTRweDtcblx0fVxufVxuXG4uZmlsZS1saXN0IHtcblx0XG5cdC5oZWFkZXIge1xuXHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdH1cblx0XG5cdC5yb3cge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0fVxuXHRcblx0LnVwbG9hZCB7XG5cdFx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcblx0XHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0XHRcblx0fVxuXHRcblx0LmNlbGwge1xuXHRcdCYudGh1bWIge1xuXHRcdFx0d2lkdGg6IDIwJTtcblx0XHRcdFxuXHRcdFx0aW1nIHtcblx0XHRcdFx0bWF4LXdpZHRoOiA0MHB4OyBcblx0XHRcdFx0bWF4LWhlaWdodDogNDBweDsgXG5cdFx0XHR9XG5cdFx0fVxuXHRcdCYubmFtZSB7XG5cdFx0XHR3aWR0aDogNDAlO1xuXHRcdH1cblx0XHQmLnRhZ3Mge1xuXHRcdFx0d2lkdGg6IDQwJTtcblx0XHR9XG5cdH1cbn1cblxuLmZpbGUtZGV0YWlscyB7XG5cdC5kZWwtYnV0LCAuZGwtYnV0IHtcblx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdH1cblx0XG5cdC5pbnB1dHMge1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdH1cblx0XG5cdC5idXR0b25zIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXHR9XG59XG4iLCIvLyBzdHlsaW5nIGZvciB0aGUgZmlsZSBzZWxlY3RvclxuLm1vZGVsLXNlbGVjdG9yIHtcblx0XG5cdC5jb250cm9scyB7XG5cdFx0cGFkZGluZzogMTVweDtcblx0fVxufVxuXG4iLCIubW9kIHtcblx0XG5cdG1hcmdpbjogNXB4IDA7XG5cdFxuXHQmLmlubGluZSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdH1cbn1cblxuLm1vZC1jb250YWluZXIuZmxvYXRpbmcge1xuXHQubW9kIHtcblx0XHRtYXJnaW46IDBweDtcblx0fVxufSIsIi5tb2QtY29udGFpbmVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMTBweDtcblx0dG9wOiAxMHB4O1xuXHRcblx0Lm1vZCB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG59IiwiLyoqKlxuICogTW9kczpcbiAqL1xuXG4vKipcbiAqIFRhYiBhZGQgbW9kOlxuICogYC50YWItZWRpdG9yIC5tb2QuYWRkYCAtIFN0eWxlcyB0aGUgYWRkIG1vZCBpbiBhIHRhYiBsaXN0LlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi50YWItZWRpdG9yXG4gKiBcdFx0b2wubGlzdC50YWJzLnRvcFxuICogXHRcdFx0bGkucHJveHkgRW50cnkgMVxuICogXHRcdFx0bGkubW9kLmFkZFxuICogXHRcdFx0XHRkaXYuZHJvcGRvd25cbiAqIFx0XHRcdFx0XHRidXR0b24uYnRuLmFkZC1idXQuYWRkLWJ1dHRvbiBBZGRcbiAqL1xuLnRhYi1lZGl0b3IgPiAudGFicyA+IC5tb2QuYWRkIHtcblx0XG5cdHBhZGRpbmc6IDA7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xuXHRcblx0Lmljb24tYnV0dG9uLS10ZXh0IHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cdFxuXHQuYnRuLmljb24ge1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRcblx0XHQ+IC5pY29uIHtcblx0XHRcdHBhZGRpbmc6IDZweCA4cHggNXB4IDhweDtcblx0XHR9XG5cdH1cbn1cblxuLy8gZml4IGZvciBhZGQgbW9kIGxlZnQvcmlnaHQgdGFiIGVkaXRvclxuLnRhYnMubGVmdCwgLnRhYnMucmlnaHQge1xuXHRcblx0Jj4gLm1vZC5hZGQgPiAuZHJvcGRvd24gPiAuZHJvcGRvd24tLWJ1dHRvbiB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XG5cdFx0Lmljb24geyBkaXNwbGF5OiBibG9jazsgfVxuXHR9XG5cdFxuXHQmPiBsaSA+IC5tb2QuZGVsZXRlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDlweDtcblx0fVxufSIsIi8vIHN0eWxpbmcgZm9yIHRoZSBmaWx0ZXIgbW9kXG4ubW9kLmZpbHRlciB7XG5cdFxuXHQucmVzZXQtYnV0IHtcblx0XHRtYXJnaW46IDEwcHggMDtcblx0fVxuXHRcblx0LmZpbHRlci1zZWxlY3RvciB7XG5cdFx0d2lkdGg6IDEwMCUgLyAzO1xuXHR9XG59IiwiLy8gc3R5bGluZyBmb3IgdGhlIGZpbHRlciBtb2Rcbi5tb2QubGluayBhIHtcblx0XG5cdGNvbG9yOiBAYWN0aW9uLWNvbG9yO1xufSIsIi8qKipcbiAqIE1vZHM6XG4gKi9cblxuLyoqXG4gKiBUYWIgaW1wb3J0IG1vZDpcbiAqIGAudGFiLWVkaXRvciAubW9kLmltcG9ydGAgLSBTdHlsZXMgdGhlIGltcG9ydCBtb2QgaW4gYSB0YWIgbGlzdC5cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYudGFiLWVkaXRvclxuICogXHRcdG9sLmxpc3QudGFicy50b3BcbiAqIFx0XHRcdGxpLnByb3h5IEVudHJ5IDFcbiAqIFx0XHRcdGxpLm1vZC5pbXBvcnRcbiAqIFx0XHRcdFx0YnV0dG9uLmJ0bi5hZGQtYnV0LmFkZC1idXR0b24gQWRkXG4gKi9cbi50YWItZWRpdG9yID4gLnRhYnMgPiAubW9kLmltcG9ydCB7XG5cdFxuXHRwYWRkaW5nOiAwO1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcblx0XG5cdC5pY29uLWJ1dHRvbi0tdGV4dCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXHRcblx0LmJ0bi5pY29uIHtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XG5cdFx0PiAuaWNvbiB7XG5cdFx0XHRwYWRkaW5nOiA2cHggOHB4IDVweCA4cHg7XG5cdFx0fVxuXHR9XG59IiwiLnZpZXdwb3J0LXJlc2l6ZSB7XG4gICBcdG92ZXJmbG93OiBoaWRkZW47XG5cdC1tcy1vdmVyZmxvdy15OiBhdXRvOyAvKiBJRTggKi9cbiAgIFx0b3ZlcmZsb3cteTogYXV0bztcbn0iLCIubG9naW4tZm9ybSB7XG5cdHBhZGRpbmc6IDMwcHggMDtcblx0XG5cdGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRcdG1hcmdpbjogMjBweCAwO1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG5cdFxuXHQuZXJyb3Ige1xuXHRcdG1hcmdpbi1ib3R0b206IDIzcHg7XG5cdH1cbn0iLCIuaW5wbGFjZS1lZGl0b3Ige1xyXG5cdGJvcmRlcjogMHB4O1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICNGRkY7XHJcblx0Zm9udDogaW5oZXJpdDtcclxuXHJcblx0Jjpmb2N1cyB7XHJcblx0XHRvdXRsaW5lOiAwO1xyXG5cdH1cclxuXHRcclxuXHR3aWR0aDogMTAwJTtcclxuXHJcbn1cclxuXHJcbiIsIi8qKlxyXG4gKiBUYWdzOlxyXG4gKiBgLnRhZ3NgIC0gVGhlIHN0eWxlIGZvciBhIHRhZyBhcmVhXHJcbiAqIGAudGFnYCAtIFRoZSBzdHlsZSBmb3IgYSB0YWdcclxuICpcclxuICogXHRAZXhhbXBsZVxyXG4gKlx0ZGl2LnRhZ3NcclxuICpcdFx0ZGl2LnRhZ1xyXG4gKlx0XHRcdGRpdi50YWctbmFtZSBGaXJzdCBUYWdcclxuICpcdFx0XHRzcGFuLnJlbW92ZVxyXG4gKlx0XHRkaXYudGFnXHJcbiAqXHRcdFx0ZGl2LnRhZy1uYW1lIFNlY29uZCBUYWdcclxuICpcdFx0XHRzcGFuLnJlbW92ZVxyXG4gKi9cclxuLnRhZ3Mge1xyXG5cclxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG5cdC50YWcge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcclxuXHRcdGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzO1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiA2cHg7XHJcblx0XHRtYXJnaW4tYm90dG9tOiA2cHg7XHJcblxyXG5cdFx0JiA+IHNwYW4uaW5wdXQge1xyXG5cdFx0XHRwYWRkaW5nOiA2cHggMnB4IDZweCAxMnB4IDtcclxuXHRcdFx0bWFyZ2luOiAwcHg7XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHQucmVtb3ZlIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdFx0cGFkZGluZzogNnB4O1xyXG5cdFx0bWFyZ2luLXRvcDogLTFweDtcclxuXHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHR9XHJcbn0iLCJcclxuLnRleHRsaXN0LWVkaXRvciA+IGRpdi5pdGVtcyB7XHJcblxyXG5cdC5pdGVtIHtcclxuXHRcdGRpc3BsYXk6IHRhYmxlO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRtYXJnaW4tYm90dG9tOiA2cHg7XHRcclxuXHJcblx0XHQudGV4dGFyZWEtY29sIHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcblx0XHR9XHJcblxyXG5cdFx0LnJlbW92ZS1jb2wge1xyXG5cdFx0XHR3aWR0aDogYXV0bztcclxuXHRcdFx0ZGlzcGxheTogdGFibGUtY2VsbDtcclxuXHRcdFx0b3BhY2l0eTogMC4yO1xyXG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIGxpbmVhcjsgXHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcblx0XHRcdGN1cnNvcjogZGVmYXVsdDtcclxuXHRcdH1cclxuXHJcblx0XHQuaGFuZGxlci1jb2wge1xyXG5cdFx0XHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG5cdFx0XHRtaW4td2lkdGg6IDIwcHg7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNjY2M7IFxyXG5cdFx0XHRib3JkZXItcmFkaXVzOiA0cHggMHB4IDBweCA0cHg7XHRcclxuXHRcdFx0b3BhY2l0eTogMC4yO1xyXG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIGxpbmVhcjsgXHJcblx0XHR9XHJcblxyXG5cdFx0LmlucHV0IHtcclxuXHRcdFx0bWFyZ2luOiAwcHg7XHJcblx0XHR9XHJcblxyXG5cdFx0dGV4dGFyZWEge1xyXG5cdFx0XHRib3JkZXItcmFkaXVzOiAwcHggNHB4IDRweCAwcHg7XHJcblx0XHRcdHJlc2l6ZTogbm9uZTtcclxuXHRcdFx0bWluLWhlaWdodDogNjBweDtcclxuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdH1cclxuXHJcblx0XHQmLmRyYWdnYWJsZSB7XHJcblx0XHRcdC5oYW5kbGVyLWNvbCB7XHJcblx0XHRcdFx0Y3Vyc29yOiBtb3ZlO1xyXG5cdFx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHRcdH1cclxuXHRcdFx0LnJlbW92ZS1jb2wge1xyXG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHR9XHJcblxyXG5cdC5yZW1vdmUge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0XHRwYWRkaW5nOiA2cHg7XHJcblx0XHRtYXJnaW4tdG9wOiAtMXB4O1xyXG5cdH1cclxufSIsIkBpbXBvcnQgXCJ2YXJpYWJsZXMubGVzc1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy5sZXNzXCI7XG5AaW1wb3J0IFwiZm9udHMubGVzc1wiO1xuQGltcG9ydCBcImdsb2JhbC9idXR0b24ubGVzc1wiO1xuQGltcG9ydCBcImdsb2JhbC90ZXh0Lmxlc3NcIjtcbkBpbXBvcnQgXCJnbG9iYWwvcmVzcG9uc2l2ZS5sZXNzXCI7XG5AaW1wb3J0IFwiZ2xvYmFsL2Zvcm1zLmxlc3NcIjtcbkBpbXBvcnQgXCJnbG9iYWwvdGFicy5sZXNzXCI7XG5AaW1wb3J0IFwiZ2xvYmFsL3RhYmxlLmxlc3NcIjtcbkBpbXBvcnQgXCJnbG9iYWwvbWVzc2FnZS5sZXNzXCI7XG5AaW1wb3J0IFwiZ2xvYmFsL3V0aWwubGVzc1wiO1xuQGltcG9ydCBcImdsb2JhbC9sYXlvdXQubGVzc1wiO1xuQGltcG9ydCBcImdsb2JhbC9wYW5lbC5sZXNzXCI7XG5AaW1wb3J0IFwiZ2xvYmFsL2Ryb3Bkb3duLmxlc3NcIjtcblxuQGltcG9ydCBcImlucHV0cy9iYXNlLmxlc3NcIjtcbkBpbXBvcnQgXCJpbnB1dHMvaW5mby5sZXNzXCI7XG5AaW1wb3J0IFwiaW5wdXRzL2FycmF5Lmxlc3NcIjtcbkBpbXBvcnQgXCJpbnB1dHMvY29kZS5sZXNzXCI7XG5AaW1wb3J0IFwiaW5wdXRzL2dyb3VwLmxlc3NcIjtcbkBpbXBvcnQgXCJpbnB1dHMvYm9vbGVhbi5sZXNzXCI7XG5AaW1wb3J0IFwiaW5wdXRzL2ltYWdlLmxlc3NcIjtcbkBpbXBvcnQgXCJpbnB1dHMvcmljaHRleHQubGVzc1wiO1xuXG5AaW1wb3J0IFwiZWRpdG9ycy9tb2RlbC5sZXNzXCI7XG5AaW1wb3J0IFwiZWRpdG9ycy90YWIubGVzc1wiO1xuQGltcG9ydCBcImVkaXRvcnMvdGFibGUubGVzc1wiO1xuQGltcG9ydCBcImVkaXRvcnMvcHJldmlldy5sZXNzXCI7XG5AaW1wb3J0IFwiZWRpdG9ycy9pbWFnZW1hcC5sZXNzXCI7XG5cbkBpbXBvcnQgXCJwYW5lbC9maWxlLXNlbGVjdG9yLmxlc3NcIjtcbkBpbXBvcnQgXCJwYW5lbC9tb2RlbC1zZWxlY3Rvci5sZXNzXCI7XG5cbkBpbXBvcnQgXCJtb2RzL2dlbmVyYWwubGVzc1wiO1xuQGltcG9ydCBcIm1vZHMvY29udGFpbmVyLmxlc3NcIjtcbkBpbXBvcnQgXCJtb2RzL2FkZC5sZXNzXCI7XG5AaW1wb3J0IFwibW9kcy9maWx0ZXIubGVzc1wiO1xuQGltcG9ydCBcIm1vZHMvbGluay5sZXNzXCI7XG5AaW1wb3J0IFwibW9kcy9pbXBvcnQubGVzc1wiO1xuQGltcG9ydCBcIm1vZHMvcmVzaXplLmxlc3NcIjtcblxuQGltcG9ydCBcImxvZ2luL2xvZ2luLmxlc3NcIjtcblxuQGltcG9ydCBcImhlbHBlcnMvaW5wbGFjZS5sZXNzXCI7XG5AaW1wb3J0IFwiaGVscGVycy90YWcubGVzc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvdGV4dGxpc3QubGVzc1wiO1xuXG5ib2R5LGh0bWwge1xuXHRtYXJnaW46IDA7XG59XG5cbioge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuI2VkaXRvciB7XG5cdHBhZGRpbmctYm90dG9tOiAzMHB4O1xufVxuXG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
