/*
// ----------------------------------------------
// Usage example:
// For IE set $mq-support to false.
// Set the fixed value.
// Then use mixins to test whether styles should be applied.
// ----------------------------------------------

$mq-support: false;
$mq-fixed-value: 1024;

// Renders at fixed value
@include bp (min-width, 300px) { 
    div { color:#000; }
}

// Doesn't render without MQ support
@include bp (min-width, 1200px) { 
    div { color:#FFF; }
}

// Doesn't render without MQ support
@include bp (max-width, 300px) { 
    div { color:#444; }
}

// Renders at fixed value
@include bp (max-width, 1200px) { 
    div { color:#888; }
}

// ----------------------------------------------
*/
@font-face {
  font-family: 'UbuntuTitling-Bold';
  src: url("../fonts/UbuntuTitling-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/UbuntuTitling-Bold.woff") format("woff"), url("../fonts/UbuntuTitling-Bold.ttf") format("truetype"), url("../fonts/UbuntuTitling-Bold.svg#UbuntuTitling-Bold") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'UbuntuTitling-Bold';
  src: url("../fonts/UbuntuTitling-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/UbuntuTitling-Bold.woff") format("woff"), url("../fonts/UbuntuTitling-Bold.ttf") format("truetype"), url("../fonts/UbuntuTitling-Bold.svg#UbuntuTitling-Bold") format("svg");
  font-weight: bold;
  font-style: normal; }

/* ============================================ *
 * Homepage
 * ============================================ */
/* -------------------------------------------- *
 * Primary Banner
 */
body.cms-home .main-container {
  padding-top: 20px;
  display: none; }

body.cms-home .slideshow-container {
  margin-top: 0; }

.slideshow .banner-msg {
  position: absolute;
  text-align: center;
  text-transform: uppercase;
  width: 100%;
  top: 30%;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none; }

.slideshow .banner-msg h2 {
  color: #FFFFFF;
  font-size: 24px; }

.slideshow .banner-msg h2 strong {
  font-weight: bold;
  display: block;
  font-size: 36px; }

@media only screen and (max-width: 770px) {
  .slideshow .banner-msg h2 {
    font-size: 20px; }
  .slideshow .banner-msg h2 strong {
    font-size: 24px; } }

@media only screen and (max-width: 479px) {
  .slideshow .banner-msg {
    top: 20%; }
  .slideshow .banner-msg h2 {
    font-size: 14px; }
  .slideshow .banner-msg h2 strong {
    font-size: 16px; } }

/* -------------------------------------------- *
 * Promotion Banner Section
 */
.promos {
  margin: 0 0 10px 0;
  padding: 0;
  width: 100%; }

.promos:after {
  content: '';
  display: table;
  clear: both; }

/* Specifying the body only in order to override the .std ul li styling */
body .promos > li {
  margin: 0 0 10px 0;
  list-style: none;
  text-align: center;
  position: relative;
  border: 1px solid #CCCCCC;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none; }

.promos > li:last-child {
  margin-bottom: 0; }

.promos img {
  max-width: 100%;
  width: 100%; }

.promos a:hover {
  display: block; }

.promos span {
  color: #FFFFFF;
  text-transform: uppercase;
  position: absolute;
  display: block;
  width: 100%;
  top: 10%;
  font-weight: 500;
  font-size: 20px;
  font-family: "UbuntuTitling-Bold", "Helvetica Neue", Verdana, Arial, sans-serif; }

.promos strong {
  font-weight: 600;
  font-size: 26px;
  display: block; }

@media only screen and (min-width: 771px) {
  .promos span {
    font-size: 16px; }
  .promos strong {
    font-size: 17px; }
  /* Config: Three columns + flexible gutter */
  body .promos > li {
    float: left;
    width: 31.74603%;
    margin-right: 2.38095%; }
  .promos > li:nth-child(3n) {
    margin-right: 0; } }

@media only screen and (min-width: 880px) {
  .promos span {
    font-size: 18px; }
  .promos strong {
    font-size: 24px; } }

/* -------------------------------------------- *
 * New Products Section
 */
/* Hiding the reviews content via CSS because we can't modify the template, */
/* since it may be used in other places where those elements are needed */
.cms-index-index .products-grid .ratings,
.cms-index-index .products-grid .actions,
.cms-index-noroute .products-grid .ratings,
.cms-index-noroute .products-grid .actions {
  display: none; }

.cms-index-index h2.subtitle {
  padding: 6px 0;
  text-align: center;
  color: #003b5f;
  font-weight: 600;
  border-bottom: 1px solid #CCCCCC;
  border-top: 1px solid #CCCCCC; }

.cms-index-noroute h2.subtitle {
  display: none; }

/* -------------------------------------------- *
 * Exhibiton-Lightbox
 */
.exh-lightbox-inner img {
  margin-bottom: 35px; }

.exh-lightbox-inner strong {
  font-weight: bold; }

.exh-lightbox-inner p {
  margin-bottom: 20px; }

.exh-lightbox-inner--right {
  background-size: cover;
  background-position: center; }

@media only screen and (max-width: 599px) {
  .exh-lightbox-inner--right {
    margin-top: 35px; }
    .exh-lightbox-inner--right:after {
      content: '';
      display: block;
      padding-bottom: 40%; } }

@media only screen and (min-width: 600px) {
  .exh-lightbox-inner {
    display: table;
    display: table;
    width: 100%; }
    .exh-lightbox-inner--left {
      padding-right: 30px; }
    .exh-lightbox-inner--left, .exh-lightbox-inner--right {
      display: table-cell;
      width: 50%; }
    .exh-lightbox-inner:after {
      content: '';
      display: table;
      clear: both; }
    .exh-lightbox-inner p {
      margin-bottom: 35px; } }

/* ============================================ *
 * Category Landing Pages
 * ============================================ */
.category-image {
  position: relative; }

.categorylandingMainblock {
  border: 1px solid #E2E2E2;
  padding: 7px; }

.catblocks {
  float: left;
  padding: 0 0 20px 0;
  width: 100%; }

.catblocks li {
  position: relative;
  float: left !important;
  width: 23% !important;
  margin-right: 2.66667% !important;
  margin-bottom: 10px;
  border: 1px solid #CCCCCC;
  padding: 10px; }

.catblocks li:hover {
  border-color: #1f86bd; }

@media only screen and (max-width: 770px) {
  .catblocks li {
    width: 49% !important;
    margin-right: 2% !important; }
  .catblocks li:nth-child(even) {
    margin-right: 0 !important; } }

@media only screen and (max-width: 479px) {
  .catblocks li {
    width: 100% !important;
    margin-right: 0 !important;
    float: none; } }

.catblocks li:last-child {
  margin-right: 0 !important; }

.catblocks li img {
  width: 100%;
  max-width: 100%; }

.catblocks li a span {
  color: #FFFFFF;
  position: absolute;
  background-color: #7B7C7B;
  font-family: raleway;
  font-size: 17px;
  font-weight: bold;
  text-transform: uppercase;
  text-align: center;
  bottom: 0px;
  left: 0px;
  width: 100%;
  padding: 5px 10px;
  margin-right: 10px; }

.catblocklinks a {
  color: #FFFFFF;
  text-decoration: none; }

.catlandingbottomPromoblock {
  float: left;
  width: 100%;
  border: 1px solid #E2E2E2;
  margin-bottom: 100px; }

.catalog-category-view div.categoryland-caption {
  display: block;
  margin: 0;
  position: absolute;
  color: #000000;
  font-size: 30px;
  font-weight: 500;
  line-height: 36px;
  text-align: center; }

.catalog-category-view div.categoryland-caption span.blue-big-text {
  color: #3399CC;
  font-size: 50px;
  font-weight: 800;
  padding: 0 0 0 8px; }

.catalog-category-view div.categoryland-caption span.blue-big-text {
  padding: 0 !important; }

.catalog-category-view div.categoryland-caption span.three-dots {
  background: url(../images/bg_threeDots.png) no-repeat center center;
  display: block;
  height: 20px; }

.catalog-category-view div.categoryland-caption p.desc {
  font: italic 18px/28px Georgia, "Times New Roman", Times, serif;
  color: #656565; }

.cms-home #homepage-main-slides div.slides_control div div.slideshow-caption a.link:hover,
.cms-home #homepage-main-slides div.slides_control div div.slideshow-caption span.link:hover {
  text-decoration: underline;
  color: #1189C5; }

.cms-home #homepage-main-slides div.slides_control div div.slideshow-caption span.blue-big-text,
.catalog-category-view div.categoryland-caption span.blue-big-text {
  color: #3399CC;
  font-size: 50px;
  font-weight: 800;
  padding: 0 0 0 8px; }

.catalog-category-view div.categoryland-caption span.blue-big-text {
  padding: 0 !important; }

.cms-home #homepage-main-slides div.slides_control div div.slideshow-caption span.three-dots,
.catalog-category-view div.categoryland-caption span.three-dots {
  background: url(../images/bg_threeDots.png) no-repeat center center;
  display: block;
  height: 20px; }

.cms-home #homepage-main-slides div.slides_control div div.slideshow-caption p.desc,
.catalog-category-view div.categoryland-caption p.desc {
  font: italic 18px/28px Georgia, "Times New Roman", Times, serif;
  color: #656565; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1peGluL19icmVha3BvaW50LnNjc3MiLCJtaXhpbi9fdHlwb2dyYXBoeS5zY3NzIiwiY29udGVudC9faG9tZS5zY3NzIiwibWl4aW4vX25vdC1zZWxlY3RhYmxlLnNjc3MiLCJtaXhpbi9fY2xlYXJmaXguc2NzcyIsIl92YXIuc2NzcyIsImNvbnRlbnQvX2NhdGVnb3J5LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkRBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWdDRTtBQ2pFRjtFQUNFLGtDQUFpQztFQUNqQywyUUFBNFE7RUFDNVEsb0JBQW1CO0VBQ25CLG1CQUFrQixFQUFBOztBQUlwQjtFQUNFLGtDQUFpQztFQUNqQywyUUFBNFE7RUFDNVEsa0JBQWlCO0VBQ2pCLG1CQUFrQixFQUFBOztBQ2JwQjs7a0RBRWtEO0FBRWxEOztHQUVHO0FBRUg7RUFLUSxrQkFBaUI7RUFDakIsY0FBYSxFQUNoQjs7QUFQTDtFQVVRLGNBQWEsRUFDaEI7O0FBR0w7RUFDSSxtQkFBa0I7RUFDbEIsbUJBQWtCO0VBQ2xCLDBCQUF5QjtFQUN6QixZQUFXO0VBQ1gsU0FBUTtFQ3RCUix1QkFBc0I7RUFDdEIsc0JBQXFCO0VBQ3JCLDBCQUF5QjtFQUN6QixxQkFBb0I7RUFDcEIsa0JBQWlCLEVEb0JwQjs7QUFFRDtFQUNJLGVBQWM7RUFDZCxnQkFBZSxFQUNsQjs7QUFFRDtFQUNJLGtCQUFpQjtFQUNqQixlQUFjO0VBQ2QsZ0JBQWUsRUFDbEI7O0FGMUJPO0VFOEJKO0lBQ0ksZ0JBQWUsRUFDbEI7RUFFRDtJQUNJLGdCQUFlLEVBQ2xCLEVBQUE7O0FGcENHO0VFeUNKO0lBQ0ksU0FBUSxFQUNYO0VBRUQ7SUFDSSxnQkFBZSxFQUNsQjtFQUVEO0lBQ0ksZ0JBQWUsRUFDbEIsRUFBQTs7QUFHTDs7R0FFRztBQUVIO0VBQ0ksbUJBQWtCO0VBQ2xCLFdBQVU7RUFDVixZQUFXLEVBQ2Q7O0FBRUQ7RUVyRUksWUFBVztFQUNYLGVBQWM7RUFDZCxZQUFX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O0VBQ1gsMEJBQXlCO0VBQ3pCLHFCQUFvQixFQUN2Qjs7QUFFRDtFQUNJLGVBQWM7RUFDZCxVQUFTO0VBQ1QsbUJBQWtCO0VBQ2xCLGVBQWM7RUFDZCxnQkFBZTtFQUNmLGlCQUFnQjtFQUNoQixrQkFBaUI7RUFDakIsbUJBQWtCLEVBQ3JCOztBQUVEO0VBQ0ksZUFBYztFQUNkLGdCQUFlO0VBQ2YsaUJBQWdCO0VBQ2hCLG1CQUFrQixFQUNyQjs7QUFFRDtFQUNJLHNCQUNKLEVBQUU7O0FBRUY7RUFDSSxvRUFBbUU7RUFDbkUsZUFBYztFQUNkLGFBQVksRUFDZjs7QUFFRDtFQUNJLGdFQUErRDtFQUMvRCxlQUFjLEVBQ2pCOztBQUVEOztFQUVJLDJCQUEwQjtFQUMxQixlQUFjLEVBQ2pCOztBQUVEOztFQUVJLGVBQWM7RUFDZCxnQkFBZTtFQUNmLGlCQUFnQjtFQUNoQixtQkFBa0IsRUFDckI7O0FBRUQ7RUFDSSxzQkFDSixFQUFFOztBQUVGOztFQUVJLG9FQUFtRTtFQUNuRSxlQUFjO0VBQ2QsYUFBWSxFQUNmOztBQUVEOztFQUVJLGdFQUErRDtFQUMvRCxlQUFjLEVBQ2pCIiwiZmlsZSI6Im1hZGlzb25pc2xhbmQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1peGluIC0gQnJlYWtwb2ludFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRtcS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xuJG1xLWZpeGVkLXZhbHVlOiAxMDI0cHggIWRlZmF1bHQ7XG5cbkBtaXhpbiBicCgkZmVhdHVyZSwgJHZhbHVlKSB7XG4gICAgLy8gU2V0IGdsb2JhbCBkZXZpY2UgcGFyYW1cbiAgICAkbWVkaWE6IG9ubHkgc2NyZWVuO1xuXG4gICAgLy8gTWVkaWEgcXVlcmllcyBzdXBwb3J0ZWRcbiAgICBAaWYgJG1xLXN1cHBvcnQgPT0gdHJ1ZSB7XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGlhfSBhbmQgKCRmZWF0dXJlOiAkdmFsdWUpIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWVkaWEgcXVlcmllcyBub3Qgc3VwcG9ydGVkXG4gICAgfSBAZWxzZSB7XG5cbiAgICAgICAgQGlmICRmZWF0dXJlID09ICdtaW4td2lkdGgnIHtcbiAgICAgICAgICAgIEBpZiAkdmFsdWUgPD0gJG1xLWZpeGVkLXZhbHVlIHtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSBpZiAkZmVhdHVyZSA9PSAnbWF4LXdpZHRoJyB7XG4gICAgICAgICAgICBAaWYgJHZhbHVlID49ICRtcS1maXhlZC12YWx1ZSB7XG4gICAgICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cbn1cblxuLypcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFVzYWdlIGV4YW1wbGU6XG4vLyBGb3IgSUUgc2V0ICRtcS1zdXBwb3J0IHRvIGZhbHNlLlxuLy8gU2V0IHRoZSBmaXhlZCB2YWx1ZS5cbi8vIFRoZW4gdXNlIG1peGlucyB0byB0ZXN0IHdoZXRoZXIgc3R5bGVzIHNob3VsZCBiZSBhcHBsaWVkLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kbXEtc3VwcG9ydDogZmFsc2U7XG4kbXEtZml4ZWQtdmFsdWU6IDEwMjQ7XG5cbi8vIFJlbmRlcnMgYXQgZml4ZWQgdmFsdWVcbkBpbmNsdWRlIGJwIChtaW4td2lkdGgsIDMwMHB4KSB7IFxuICAgIGRpdiB7IGNvbG9yOiMwMDA7IH1cbn1cblxuLy8gRG9lc24ndCByZW5kZXIgd2l0aG91dCBNUSBzdXBwb3J0XG5AaW5jbHVkZSBicCAobWluLXdpZHRoLCAxMjAwcHgpIHsgXG4gICAgZGl2IHsgY29sb3I6I0ZGRjsgfVxufVxuXG4vLyBEb2Vzbid0IHJlbmRlciB3aXRob3V0IE1RIHN1cHBvcnRcbkBpbmNsdWRlIGJwIChtYXgtd2lkdGgsIDMwMHB4KSB7IFxuICAgIGRpdiB7IGNvbG9yOiM0NDQ7IH1cbn1cblxuLy8gUmVuZGVycyBhdCBmaXhlZCB2YWx1ZVxuQGluY2x1ZGUgYnAgKG1heC13aWR0aCwgMTIwMHB4KSB7IFxuICAgIGRpdiB7IGNvbG9yOiM4ODg7IH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cblxuIiwiLy9cbi8vIE1hZ2VudG9cbi8vXG4vLyBOT1RJQ0UgT0YgTElDRU5TRVxuLy9cbi8vIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy8gdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0VfQUZMLnR4dC5cbi8vIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuLy8gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwXG4vLyBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuLy8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuLy8gdG8gbGljZW5zZUBtYWdlbnRvLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuLy9cbi8vIERJU0NMQUlNRVJcbi8vXG4vLyBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgTWFnZW50byB0byBuZXdlclxuLy8gdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIE1hZ2VudG8gZm9yIHlvdXJcbi8vIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwOi8vd3d3Lm1hZ2VudG8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuLy9cbi8vIEBjYXRlZ29yeSAgICBkZXNpZ25cbi8vIEBwYWNrYWdlICAgICByd2RfZGVmYXVsdFxuLy8gQGNvcHlyaWdodCAgIENvcHlyaWdodCAoYykgMjAwNi0yMDE2IFguY29tbWVyY2UsIEluYy4gYW5kIGFmZmlsaWF0ZXMgKGh0dHA6Ly93d3cubWFnZW50by5jb20pXG4vLyBAbGljZW5zZSAgICAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2FmbC0zLjAucGhwICBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vL1xuXG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1VidW50dVRpdGxpbmctQm9sZCc7XG4gIHNyYzogdXJsKCcuLi9mb250cy9VYnVudHVUaXRsaW5nLUJvbGQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgIHVybCgnLi4vZm9udHMvVWJ1bnR1VGl0bGluZy1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCcuLi9mb250cy9VYnVudHVUaXRsaW5nLUJvbGQudHRmJykgIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCcuLi9mb250cy9VYnVudHVUaXRsaW5nLUJvbGQuc3ZnI1VidW50dVRpdGxpbmctQm9sZCcpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdVYnVudHVUaXRsaW5nLUJvbGQnO1xuICBzcmM6IHVybCgnLi4vZm9udHMvVWJ1bnR1VGl0bGluZy1Cb2xkLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksICB1cmwoJy4uL2ZvbnRzL1VidW50dVRpdGxpbmctQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnLi4vZm9udHMvVWJ1bnR1VGl0bGluZy1Cb2xkLnR0ZicpICBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnLi4vZm9udHMvVWJ1bnR1VGl0bGluZy1Cb2xkLnN2ZyNVYnVudHVUaXRsaW5nLUJvbGQnKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1peGluIC0gVHlwb2dyYXBoeVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtaXhpbiBoMSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDAuN2VtO1xuICAgIGNvbG9yOiAkYy1oMTtcbiAgICBmb250LWZhbWlseTogJGYtc3RhY2stc3BlY2lhbDtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcblxufVxuXG5AbWl4aW4gaDIge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgICBjb2xvcjogJGMtaDI7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIC8vdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuXG59XG5cbkBtaXhpbiBoMyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgY29sb3I6ICRjLWgzO1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgIGZvbnQtc2l6ZTogJGYtc2l6ZS14bDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuXG59XG5cbkBtaXhpbiBoNCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgY29sb3I6ICRjLWg0O1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zcGVjaWFsO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuXG59XG5cbkBtaXhpbiBoNSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgY29sb3I6ICRjLWg1O1xuICAgIGZvbnQtZmFtaWx5OiAkZi1zdGFjay1zYW5zO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuXG59XG5cbkBtaXhpbiBoNiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBjb2xvcjogJGMtaDY7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNhbnM7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gXG59XG5cbkBtaXhpbiBwYWdlVGl0bGUoKSB7XG4gICBcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBjb2xvcjogJGMtdGV4dDtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG5cbn1cblxuQG1peGluIHVwcGVyY2FzZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogSG9tZXBhZ2VcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcbiAqIFByaW1hcnkgQmFubmVyXG4gKi9cblxuYm9keS5jbXMtaG9tZSB7XG5cblxuXG4gICAgLm1haW4tY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNsaWRlc2hvdy1jb250YWluZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbn1cblxuLnNsaWRlc2hvdyAuYmFubmVyLW1zZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDogMzAlO1xuICAgIEBpbmNsdWRlIG5vdC1zZWxlY3RhYmxlO1xufVxuXG4uc2xpZGVzaG93IC5iYW5uZXItbXNnIGgyIHtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICBmb250LXNpemU6IDI0cHg7XG59XG5cbi5zbGlkZXNob3cgLmJhbm5lci1tc2cgaDIgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDM2cHg7XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuXG4gICAgLnNsaWRlc2hvdyAuYmFubmVyLW1zZyBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG5cbiAgICAuc2xpZGVzaG93IC5iYW5uZXItbXNnIGgyIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLXhzbWFsbCkge1xuXG4gICAgLnNsaWRlc2hvdyAuYmFubmVyLW1zZyB7XG4gICAgICAgIHRvcDogMjAlO1xuICAgIH1cblxuICAgIC5zbGlkZXNob3cgLmJhbm5lci1tc2cgaDIge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgfVxuXG4gICAgLnNsaWRlc2hvdyAuYmFubmVyLW1zZyBoMiBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBQcm9tb3Rpb24gQmFubmVyIFNlY3Rpb25cbiAqL1xuXG4ucHJvbW9zIHtcbiAgICBtYXJnaW46IDAgMCAkZ2FwIDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnByb21vczphZnRlciB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbi8qIFNwZWNpZnlpbmcgdGhlIGJvZHkgb25seSBpbiBvcmRlciB0byBvdmVycmlkZSB0aGUgLnN0ZCB1bCBsaSBzdHlsaW5nICovXG5cbmJvZHkgLnByb21vcyA+IGxpIHtcbiAgICBtYXJnaW46IDAgMCAxMHB4IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLW1vZHVsZS1ib3JkZXI7XG4gICAgQGluY2x1ZGUgbm90LXNlbGVjdGFibGU7XG59XG5cbi5wcm9tb3MgPiBsaTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ucHJvbW9zIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ucHJvbW9zIGE6aG92ZXIge1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5wcm9tb3Mgc3BhbiB7XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiAxMCU7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC1mYW1pbHk6ICRmLXN0YWNrLXNwZWNpYWw7XG5cbn1cblxuLnByb21vcyBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAyNnB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsICRicC1tZWRpdW0gKyAxKSB7XG5cbiAgICAucHJvbW9zIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgfVxuXG4gICAgLnByb21vcyBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgfVxuXG4gICAgLyogQ29uZmlnOiBUaHJlZSBjb2x1bW5zICsgZmxleGlibGUgZ3V0dGVyICovXG4gICAgLy8gQ29udGFpbmVyOiA0ODAgLSAoMiAqIDMwIHRyaW0gd2lkZSkgPSA0MjBcbiAgICAvLyBNYXRoOiAoNDIwIC0gKDIgKiAxMCBndXR0ZXIpKSAvIDMgaXRlbXMgPSAxMzMuMzMzMzMzMzMzXG4gICAgYm9keSAucHJvbW9zID4gbGkge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMTMzLjMzMzMzMzMzMyAvIDQyMCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogcGVyY2VudGFnZSgxMCAvIDQyMCk7XG4gICAgfVxuXG4gICAgLnByb21vcyA+IGxpOm50aC1jaGlsZCgzbikge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicChtaW4td2lkdGgsIDg4MHB4KSB7XG4gICAgLnByb21vcyBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgIH1cblxuICAgIC5wcm9tb3Mgc3Ryb25nIHtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxuICogTmV3IFByb2R1Y3RzIFNlY3Rpb25cbiAqL1xuXG4vKiBIaWRpbmcgdGhlIHJldmlld3MgY29udGVudCB2aWEgQ1NTIGJlY2F1c2Ugd2UgY2FuJ3QgbW9kaWZ5IHRoZSB0ZW1wbGF0ZSwgKi9cbi8qIHNpbmNlIGl0IG1heSBiZSB1c2VkIGluIG90aGVyIHBsYWNlcyB3aGVyZSB0aG9zZSBlbGVtZW50cyBhcmUgbmVlZGVkICovXG4uY21zLWluZGV4LWluZGV4IC5wcm9kdWN0cy1ncmlkIC5yYXRpbmdzLFxuLmNtcy1pbmRleC1pbmRleCAucHJvZHVjdHMtZ3JpZCAuYWN0aW9ucyxcbi5jbXMtaW5kZXgtbm9yb3V0ZSAucHJvZHVjdHMtZ3JpZCAucmF0aW5ncyxcbi5jbXMtaW5kZXgtbm9yb3V0ZSAucHJvZHVjdHMtZ3JpZCAuYWN0aW9ucyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNtcy1pbmRleC1pbmRleCBoMi5zdWJ0aXRsZSB7XG4gICAgcGFkZGluZzogNnB4IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkYy10ZXh0LXByaW1hcnk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGMtbW9kdWxlLWJvcmRlcjtcbn1cblxuLmNtcy1pbmRleC1ub3JvdXRlIGgyLnN1YnRpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXG4gKiBFeGhpYml0b24tTGlnaHRib3hcbiAqL1xuXG4uZXhoLWxpZ2h0Ym94LWlubmVyIHtcblxuICAgIGltZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICR0cmltO1xuICAgIH1cblxuICAgIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHRyaW0tcztcbiAgICB9XG5cbiAgICAmLS1yaWdodCB7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicChtYXgtd2lkdGgsICRicC1zbWFsbCkge1xuICAgICAgICAmLS1yaWdodCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkdHJpbTtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6Jyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDQwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBcblxuICAgIEBpbmNsdWRlIGJwKG1pbi13aWR0aCwgJGJwLXNtYWxsKzEpIHtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgJi0tbGVmdCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICAgICAgICB9XG4gICAgICAgICYtLWxlZnQsICYtLXJpZ2h0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIH1cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkdHJpbTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWl4aW4gLSBOb3QgU2VsZWN0YWJsZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtaXhpbiBub3Qtc2VsZWN0YWJsZSB7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNaXhpbiAtIENsZWFyZml4XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gVGhpcyBtaXhpbiBpcyBpbnRlbmRlZCB0byBiZSBhcHBsaWVkIHRvIGFuIDphZnRlciBwc2V1ZG8tY2xhc3MuIEV4YW1wbGU6XG4vLyAgJjphZnRlciB7XG4vLyAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuLy8gIH1cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7XG59XG4iLCIvL1xuLy8gTWFnZW50b1xuLy9cbi8vIE5PVElDRSBPRiBMSUNFTlNFXG4vL1xuLy8gVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBBY2FkZW1pYyBGcmVlIExpY2Vuc2UgKEFGTCAzLjApXG4vLyB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRV9BRkwudHh0LlxuLy8gSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4vLyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHBcbi8vIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4vLyBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4vLyB0byBsaWNlbnNlQG1hZ2VudG8uY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4vL1xuLy8gRElTQ0xBSU1FUlxuLy9cbi8vIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBNYWdlbnRvIHRvIG5ld2VyXG4vLyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgTWFnZW50byBmb3IgeW91clxuLy8gbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHA6Ly93d3cubWFnZW50by5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4vL1xuLy8gQGNhdGVnb3J5ICAgIGRlc2lnblxuLy8gQHBhY2thZ2UgICAgIHJ3ZF9kZWZhdWx0XG4vLyBAY29weXJpZ2h0ICAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMTYgWC5jb21tZXJjZSwgSW5jLiBhbmQgYWZmaWxpYXRlcyAoaHR0cDovL3d3dy5tYWdlbnRvLmNvbSlcbi8vIEBsaWNlbnNlICAgICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYWZsLTMuMC5waHAgIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29tcGFzcyBEZWZhdWx0c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEJvcmRlciBSYWRpdXNcblxuJGRlZmF1bHQtYm9yZGVyLXJhZGl1czogNXB4O1xuXG4vLyBUcmFuc2l0aW9uXG5cbiRkZWZhdWx0LXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb246IDIwMG1zO1xuJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbjogbGluZWFyO1xuJGRlZmF1bHQtdHJhbnNpdGlvbi1kZWxheTogMDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQcmltYXJ5IEJyZWFrIFBvaW50c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFRoZXNlIHNob3VsZCBiZSB1c2VkIHdpdGggdGhlIGJwIChtYXgtd2lkdGgsIHh4KSBtaXhpblxuLy8gd2hlcmUgYSBtaW4td2lkdGggaXMgdXNlZCwgcmVtZW1iZXIgdG8gKzEgdG8gYnJlYWsgY29ycmVjdGx5LlxuLy8gSWYgdGhlc2UgYXJlIGNoYW5nZWQsIHRoZXkgbXVzdCBhbHNvIGJlIHVwZGF0ZWQgaW4gYXBwLmpzXG5cblxuJGJwLXh4c21hbGw6IDM3MnB4O1xuJGJwLXhzbWFsbDogNDc5cHg7XG4kYnAtc21hbGw6IDU5OXB4O1xuJGJwLW1lZGl1bTogNzcwcHg7XG4kYnAtbGFyZ2U6IDk3OXB4O1xuJGJwLXhsYXJnZTogMTE5OXB4O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJhc2UgVmFsdWVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gU3BhY2luZ1xuXG4kZ2FwOiAxMHB4O1xuXG4kdHJpbTogMzVweDtcbiR0cmltLXM6IDIwcHg7XG4kdHJpbS14czogMTBweDtcbi8vIFRoaXMgd2lsbCBnZXQgYXBwbGllZCBvbiB2aWV3cG9ydHMgc21hbGxlciB0aGFuIDQ4MHB4XG4kdHJpbS1zbWFsbDogMTVweDtcblxuLy8gUGFkZGluZyB0aGF0IHdpbGwgZ2V0IGFwcGxpZWQgdG8gY29udGVudCBhcmVhc1xuJGJveC1zcGFjaW5nLWxhcmdlOiAyMHB4O1xuXG4vLyBTdGFuZGFyZCBwYWRkaW5nIGFyb3VuZCBib3ggZWxlbWVudHMgc3VjaCBhcyBiYW5uZXIgbWVzc2FnZXMsIGV0Y1xuJGJveC1zcGFjaW5nOiAxMHB4O1xuXG4vLyBTdGFuZGFyZCBzcGFjaW5nIGJldHdlZW4gZWxlbWVudHMgd2l0aGluIGEgYm94LCBzdWNoIGFzIFwiQWRkIHRvIGNhcnRcIiwgXCJQcmljZSBib3hcIiwgZXRjXG4kZWxlbWVudC1zcGFjaW5nOiA3cHg7XG5cbi8vIERpbWVuc2lvbnNcblxuJG1heC1jb250ZW50LXdpZHRoOiA5NjBweDtcbiRtYXgtY29udGFpbmVyLXdpZHRoOiAkbWF4LWNvbnRlbnQtd2lkdGg7XG4kbWF4LXN0ZC1mb3JtYXR0ZWQtd2lkdGg6IDUwZW07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQnJhbmQgQ29sb3JzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gVXN1YWxseSBub3QgdXNlZCBkaXJlY3RseSBpbiBTYXNzIHBhcnRpYWxzLlxuLy8gT25seSB1c2VkIHRvIGRlZmluZSBjb250ZXh0LWJhc2VkIGNvbG9yIHZhcnMgaW4gdGhpcyBmaWxlLlxuXG4vLyBQZXRlciBFbGVjdHJvbmljXG5cbiRjLWRhcmtibHVlOiAjMDAzYjVmO1xuJGMtbGlnaHRibHVlOiAjMDA4YmQyO1xuJGMtYmx1ZTogIzFmODZiZDtcblxuXG4vLyBNYWdlbnRvXG5cbiRjLWdyZWVuOiAjMTFCNDAwO1xuJGMtcGluazogI0Q4NTM3ODtcbiRjLW9yYW5nZTogI0YzNzkzQjtcbiRjLXJlZDogI0NGNTA1MDtcbiRjLXllbGxvdzogI0ZGREQxNTtcbiRjLWJsYWNrOiAjMDAwMDAwO1xuJGMtZ3JheTogIzMzMzMzMztcblxuJGMtYWNjZW50OiAjNmNiMzE1O1xuXG5cblxuXG5cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJhc2UgQ29sb3JzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gVGV4dFxuXG4kYy10ZXh0OiAjMDAzYjVmO1xuJGMtdGV4dC1ncmF5OiAjNWI1YjVhO1xuJGMtdGV4dC1saWdodGdyYXk6ICM4MDdlODI7XG4kYy10ZXh0LXdoaXRlOiAjRTZFNkU2O1xuLy8gUHJpbWFyeSBmb250IGNvbG9yIGZvciBoZWFkaW5ncyBhbmQgb3RoZXIgbm9uLWxpbmsgdGV4dFxuJGMtdGV4dC1wcmltYXJ5OiAkYy10ZXh0O1xuXG5cbi8vIEludGVyYWN0aW9uXG5cbiRjLWFjdGlvbjogJGMtYmx1ZTtcdFxuJGMtc3RpbXVsdXM6IGRhcmtlbigkYy1ibHVlLCAxNSUpO1xuJGMtc3VidGxlOiAjQTBBMEEwO1xuXG4vLyBOb3RpZmljYXRpb25zXG5cbiRjLWRhbmdlcjogI0RGMjgwQTtcbiRjLWRhbmdlci1iYWNrZ3JvdW5kOiAjRkFFQkU3O1xuXG4kYy1zdWNjZXNzOiAkYy1ncmVlbjtcbiRjLXN1Y2Nlc3MtYmFja2dyb3VuZDogI0VGRjVFQTtcblxuJGMtd2FybjogI0UyNjcwMztcbiRjLXdhcm4tYmFja2dyb3VuZDogI0Y5RUJFNjtcblxuJGMtZGFyazogIzY3NjE1NztcblxuLy8gR2xvYmFsIEVsZW1lbnRzXG5cbiRjLWRpdmlkZXItYm9yZGVyOiAjRUNFQ0VDO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEVsZW1lbnQgQ29sb3JzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gQnV0dG9uc1xuXG4kYy1idXR0b246ICRjLWJsdWU7XG4kYy1idXR0b24taG92ZXI6IGRhcmtlbigkYy1ibHVlLCA1JSk7XG4kYy1idXR0b24tYWN0aXZlOiBkYXJrZW4oJGMtYmx1ZSwgMTAlKTtcblxuLy8gU2Vjb25kYXJ5IEJ1dHRvbnNcblxuJGMtYnV0dG9uLXNlY29uZGFyeTogI0RERERERDtcbiRjLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXI6IGRhcmtlbigjRERERERELCA1JSk7XG4kYy1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZTogZGFya2VuKCNEREREREQsIDEwJSk7XG5cbiRjLWJ1dHRvbi1zdWJ0bGU6ICNFQ0VDRUM7XG5cbi8vIEZvcm1zXG5cbiRjLWlucHV0LWJvcmRlcjogI0MwQzBDMDtcbiRjLWlucHV0LWJvcmRlci1mb2N1czogJGMtYmx1ZTtcblxuJGMtaW5wdXQtcGxhY2Vob2xkZXI6ICRjLXRleHQtZ3JheTtcbiRjLWlucHV0LXRleHQ6ICRjLXRleHQ7XG5cbiRjLWZpZWxkc2V0LWJvcmRlcjogI0NDQ0NDQztcbiRjLWZpZWxkc2V0LWJvcmRlci1saWdodDogI0VERURFRDtcblxuLy8gSGVhZGluZ3NcblxuJGMtaDE6ICRjLXRleHQ7XG4kYy1oMjogJGMtdGV4dDtcbiRjLWgzOiAkYy10ZXh0O1xuJGMtaDQ6ICRjLXRleHQ7XG4kYy1oNTogJGMtdGV4dDtcbiRjLWg2OiAkYy10ZXh0O1xuXG4vLyBMaW5rXG4kYy1saW5rOiAkYy1hY3Rpb247XG4kYy1saW5rLWhvdmVyOiBkYXJrZW4oJGMtYWN0aW9uLCA1JSk7XG4kYy1saW5rLWZvY3VzOiAkYy1hY3Rpb247XG4kYy1saW5rLWFjdGl2ZTogZGFya2VuKCRjLWFjdGlvbiwgKDUlIC8gMikpO1xuXG4vLyBNb2R1bGUgKGdlbmVyaWMpXG5cbiRjLW1vZHVsZS1iYWNrZ3JvdW5kOiAjRjRGNEY0O1xuJGMtbW9kdWxlLWJhY2tncm91bmQtaG92ZXI6IHNoYWRlKCRjLW1vZHVsZS1iYWNrZ3JvdW5kLCAzJSk7XG4kYy1tb2R1bGUtYmFja2dyb3VuZC1zZWNvbmRhcnk6ICNFQUY4RkY7XG4kYy1tb2R1bGUtYmFja2dyb3VuZC1kYXJrOiAjQUFBQUFBO1xuLy8gVGhpcyBzaG91bGQgYmUgYXBwbGllZCB3aGVuZXZlciB0aGUgYm9yZGVyIGlzIHN1cnJvdW5kaW5nIGEgd2hpdGUgZWxlbWVudCBhbmQvb3IgaXMgZGlyZWN0bHkgc2hvd2luZyBvbiB3aGl0ZS5cbiRjLW1vZHVsZS1ib3JkZXI6ICNDQ0NDQ0M7XG4vLyBUaGlzIHNob3VsZCBiZSBhcHBsaWVkIHdoZW5ldmVyIHRoZSBib3JkZXIgaXMgd3JhcHBpbmcgYW4gZWxlbWVudCB3aXRoICRjLW1vZHVsZS1iYWNrZ3JvdW5kXG4kYy1tb2R1bGUtYm9yZGVyLWxpZ2h0OiAjRURFREVEO1xuJGMtbW9kdWxlLWJvcmRlci1kYXJrOiAjNzc3Nzc3O1xuJGMtbW9kdWxlLWJvcmRlci1oaWdobGlnaHQ6ICRjLWJsdWU7XG5cblxuLy8gVGFibGVcblxuJGMtdGFibGUtYmFja2dyb3VuZDogI0Y0RjRGNDtcbiRjLXRhYmxlLWJvcmRlcjogI0MwQzBDMDtcblxuJGMtdGFibGUtemVicmEtb2RkOiAjRjhGN0Y1O1xuJGMtdGFibGUtemVicmEtZXZlbjogI0VFRURFRDtcblxuLy8gVGFic1xuXG4kYy10YWJzLWJhY2tncm91bmQ6ICNGMEYwRjA7XG5cbi8vIEVtYWlsXG4kYy1lbWFpbC1iYWNrZ3JvdW5kOiAjRUJFQkVCO1xuJGMtZW1haWwtYmFja2dyb3VuZC1zZWNvbmRhcnk6ICNFMUYwRjg7XG4kYy1lbWFpbC1ib3JkZXI6ICNDM0NFRDQ7XG4kYy1lbWFpbC1hY3Rpb246ICMzNjk2QzI7XG4kYy1lbWFpbC1jZWxsOiAjRjFGMUYxO1xuJGMtZW1haWwtaGlnaGxpZ2h0ZWQtYmFja2dyb3VuZDogI0ZGRkREOTtcbiRjLWVtYWlsLWhpZ2hsaWdodGVkLWJvcmRlcjogI0ZGRjc0QztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUeXBvZ3JhcGh5XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gR29vZ2xlIFdlYiBGb250IHN0eWxlc2hlZXQgaXMgaW5jbHVkZWQgdmlhIGxheW91dCBYTUxcblxuLy8gRm9udCBTdGFja3NcblxuJGYtc3RhY2stc2FuczogQXJpYWwsIHNhbnMtc2VyaWY7XG4kZi1zdGFjay1zZXJpZjogQXJpYWwsIHNhbnMtc2VyaWY7XG4kZi1zdGFjay1zcGVjaWFsOiAnVWJ1bnR1VGl0bGluZy1Cb2xkJywgJ0hlbHZldGljYSBOZXVlJywgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG5cbiRmLXN0YWNrLWRlZmF1bHQ6ICRmLXN0YWNrLXNhbnM7XG5cbi8vIEZvbnQgU2l6ZXNcbiRmLXNpemUteHh4bDogMzJweDtcbiRmLXNpemUteHhsOiAyNHB4O1xuJGYtc2l6ZS14bDogMjBweDtcbiRmLXNpemUtbDogMTdweDtcblxuJGYtc2l6ZTogMTRweDtcblxuJGYtc2l6ZS1zOiAxM3B4O1xuJGYtc2l6ZS14czogMTJweDtcbiRmLXNpemUteHhzOiAxMXB4O1xuXG4vLyBCYXNlIE1lYXN1cmVzXG5cbiRiLWxpbmUtaGVpZ2h0OiAxLjU7XG4kYi1tYXJnaW4tYm90dG9tOiAxLjVlbTtcbiIsIi8vXG4vLyBNYWdlbnRvXG4vL1xuLy8gTk9USUNFIE9GIExJQ0VOU0Vcbi8vXG4vLyBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIEFjYWRlbWljIEZyZWUgTGljZW5zZSAoQUZMIDMuMClcbi8vIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFX0FGTC50eHQuXG4vLyBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbi8vIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocFxuLy8gSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbi8vIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbi8vIHRvIGxpY2Vuc2VAbWFnZW50by5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbi8vXG4vLyBESVNDTEFJTUVSXG4vL1xuLy8gRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIE1hZ2VudG8gdG8gbmV3ZXJcbi8vIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBNYWdlbnRvIGZvciB5b3VyXG4vLyBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cDovL3d3dy5tYWdlbnRvLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAY2F0ZWdvcnkgICAgZGVzaWduXG4vLyBAcGFja2FnZSAgICAgcndkX2RlZmF1bHRcbi8vIEBjb3B5cmlnaHQgICBDb3B5cmlnaHQgKGMpIDIwMDYtMjAxNiBYLmNvbW1lcmNlLCBJbmMuIGFuZCBhZmZpbGlhdGVzIChodHRwOi8vd3d3Lm1hZ2VudG8uY29tKVxuLy8gQGxpY2Vuc2UgICAgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9hZmwtMy4wLnBocCAgQWNhZGVtaWMgRnJlZSBMaWNlbnNlIChBRkwgMy4wKVxuLy9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogQ2F0ZWdvcnkgTGFuZGluZyBQYWdlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNhdGVnb3J5LWltYWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jYXRlZ29yeWxhbmRpbmdNYWluYmxvY2sge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNFMkUyRTI7XG4gICAgcGFkZGluZzogN3B4O1xufVxuXG4uY2F0YmxvY2tzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nOiAwIDAgMjBweCAwO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uY2F0YmxvY2tzIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMjMlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBwZXJjZW50YWdlKDgvMzAwKSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206ICRib3gtc3BhY2luZztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1tb2R1bGUtYm9yZGVyO1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5jYXRibG9ja3MgbGk6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogJGMtbW9kdWxlLWJvcmRlci1oaWdobGlnaHQ7XG59XG5cbkBpbmNsdWRlIGJwKG1heC13aWR0aCwgJGJwLW1lZGl1bSkge1xuICAgIC5jYXRibG9ja3MgbGkge1xuICAgICAgICB3aWR0aDogNDklICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMiUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2F0YmxvY2tzIGxpOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnAobWF4LXdpZHRoLCAkYnAteHNtYWxsKSB7XG4gICAgLmNhdGJsb2NrcyBsaSB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICB9XG59XG5cbi5jYXRibG9ja3MgbGk6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5jYXRibG9ja3MgbGkgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5jYXRibG9ja3MgbGkgYSBzcGFuIHtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzdCN0M3QjtcbiAgICBmb250LWZhbWlseTogcmFsZXdheTtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm90dG9tOiAwcHg7XG4gICAgbGVmdDogMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuLmNhdGJsb2NrbGlua3MgYSB7XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXG59XG5cbi5jYXRsYW5kaW5nYm90dG9tUHJvbW9ibG9jayB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0UyRTJFMjtcbiAgICBtYXJnaW4tYm90dG9tOiAxMDBweDtcbn1cblxuLmNhdGFsb2ctY2F0ZWdvcnktdmlldyBkaXYuY2F0ZWdvcnlsYW5kLWNhcHRpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY2F0YWxvZy1jYXRlZ29yeS12aWV3IGRpdi5jYXRlZ29yeWxhbmQtY2FwdGlvbiBzcGFuLmJsdWUtYmlnLXRleHQge1xuICAgIGNvbG9yOiAjMzM5OUNDO1xuICAgIGZvbnQtc2l6ZTogNTBweDtcbiAgICBmb250LXdlaWdodDogODAwO1xuICAgIHBhZGRpbmc6IDAgMCAwIDhweDtcbn1cblxuLmNhdGFsb2ctY2F0ZWdvcnktdmlldyBkaXYuY2F0ZWdvcnlsYW5kLWNhcHRpb24gc3Bhbi5ibHVlLWJpZy10ZXh0IHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnRcbn1cblxuLmNhdGFsb2ctY2F0ZWdvcnktdmlldyBkaXYuY2F0ZWdvcnlsYW5kLWNhcHRpb24gc3Bhbi50aHJlZS1kb3RzIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2JnX3RocmVlRG90cy5wbmcpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMjBweDtcbn1cblxuLmNhdGFsb2ctY2F0ZWdvcnktdmlldyBkaXYuY2F0ZWdvcnlsYW5kLWNhcHRpb24gcC5kZXNjIHtcbiAgICBmb250OiBpdGFsaWMgMThweC8yOHB4IEdlb3JnaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZjtcbiAgICBjb2xvcjogIzY1NjU2NTtcbn1cblxuLmNtcy1ob21lICNob21lcGFnZS1tYWluLXNsaWRlcyBkaXYuc2xpZGVzX2NvbnRyb2wgZGl2IGRpdi5zbGlkZXNob3ctY2FwdGlvbiBhLmxpbms6aG92ZXIsXG4uY21zLWhvbWUgI2hvbWVwYWdlLW1haW4tc2xpZGVzIGRpdi5zbGlkZXNfY29udHJvbCBkaXYgZGl2LnNsaWRlc2hvdy1jYXB0aW9uIHNwYW4ubGluazpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY29sb3I6ICMxMTg5QzU7XG59XG5cbi5jbXMtaG9tZSAjaG9tZXBhZ2UtbWFpbi1zbGlkZXMgZGl2LnNsaWRlc19jb250cm9sIGRpdiBkaXYuc2xpZGVzaG93LWNhcHRpb24gc3Bhbi5ibHVlLWJpZy10ZXh0LFxuLmNhdGFsb2ctY2F0ZWdvcnktdmlldyBkaXYuY2F0ZWdvcnlsYW5kLWNhcHRpb24gc3Bhbi5ibHVlLWJpZy10ZXh0IHtcbiAgICBjb2xvcjogIzMzOTlDQztcbiAgICBmb250LXNpemU6IDUwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBwYWRkaW5nOiAwIDAgMCA4cHg7XG59XG5cbi5jYXRhbG9nLWNhdGVnb3J5LXZpZXcgZGl2LmNhdGVnb3J5bGFuZC1jYXB0aW9uIHNwYW4uYmx1ZS1iaWctdGV4dCB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50XG59XG5cbi5jbXMtaG9tZSAjaG9tZXBhZ2UtbWFpbi1zbGlkZXMgZGl2LnNsaWRlc19jb250cm9sIGRpdiBkaXYuc2xpZGVzaG93LWNhcHRpb24gc3Bhbi50aHJlZS1kb3RzLFxuLmNhdGFsb2ctY2F0ZWdvcnktdmlldyBkaXYuY2F0ZWdvcnlsYW5kLWNhcHRpb24gc3Bhbi50aHJlZS1kb3RzIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2JnX3RocmVlRG90cy5wbmcpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMjBweDtcbn1cblxuLmNtcy1ob21lICNob21lcGFnZS1tYWluLXNsaWRlcyBkaXYuc2xpZGVzX2NvbnRyb2wgZGl2IGRpdi5zbGlkZXNob3ctY2FwdGlvbiBwLmRlc2MsXG4uY2F0YWxvZy1jYXRlZ29yeS12aWV3IGRpdi5jYXRlZ29yeWxhbmQtY2FwdGlvbiBwLmRlc2Mge1xuICAgIGZvbnQ6IGl0YWxpYyAxOHB4LzI4cHggR2VvcmdpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmO1xuICAgIGNvbG9yOiAjNjU2NTY1O1xufVxuIl19 */
