/* ------------------------------------------------------------------------ *\
 * Mixins
\* ------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------ *\
 * Functions
\* ------------------------------------------------------------------------ */
/*
 * Retrieve a color variable as a raw value
 *
 * @param  {string}  $color - The name of the color as defined in _variables
 * @param  {string}  $tone  - The variant of the color (shade|base|tint)
 */
/*
 * Retrieve a color variable as a custom property
 *
 * @param  {string}  $color - The name of the color as defined in _variables
 * @param  {string}  $tone  - The variant of the color (shade|base|tint)
 */
/*
 * Remove the unit of a length
 *
 * @param  {Number}  $number
 */
/*
 * Convert PX units in to EM or REM, relative to a specified base sizes
 *
 * @param  {Number}  $size - Array of up to four sizes in PX units
 * @param  {Number}  $base - Font size to base calculations off of
 * @param  {String}  $unit - Either "em" or "rem"
 */
/*
 * Convert Photoshop leading to CSS line-height
 *
 * @param  {Number}  $size - Value of Leading in Photoshop's Character Panel
 * @param  {Number}  $base - Value of Font Size in Photoshop's Character Panel
 */
/*
 * Convert Photoshop tracking to CSS letter-spacing
 *
 * @param  {Number}  $size - Value of Tracking in Photoshop's Character Panel
 * @param  {Number}  $base - Value of Font Size in Photoshop's Character Panel
 */
/* ------------------------------------------------------------------------ *\
 * Colors
\* ------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------ *\
 * Colors (Custom Properties)
\* ------------------------------------------------------------------------ */
:root {
  --osl-color-primary-tint: #F69225;
  --osl-color-primary-base: #9C4722;
  --osl-color-primary-shade: #251813;
  --osl-color-secondary-tint: #10c45d;
  --osl-color-secondary-base: #0C9547;
  --osl-color-secondary-shade: #086631;
  --osl-color-tertiary-tint: #9EFFFF;
  --osl-color-tertiary-base: #64FFDA;
  --osl-color-tertiary-shade: #14CBA8;
  --osl-color-quaternary-tint: #FFFF5A;
  --osl-color-quaternary-base: #FFFF00;
  --osl-color-quaternary-shade: #C7CC00;
  --osl-color-quinary-tint: #B47CFF;
  --osl-color-quinary-base: #7C4DFF;
  --osl-color-quinary-shade: #3F1DCB;
  --osl-color-senary-tint: #FFC246;
  --osl-color-senary-base: #FF9100;
  --osl-color-senary-shade: #C56200;
  --osl-color-accent-tint: #83B9FF;
  --osl-color-accent-base: #448AFF;
  --osl-color-accent-shade: #005ECB;
  --osl-color-error-tint: #FF5F52;
  --osl-color-error-base: #C62828;
  --osl-color-error-shade: #8E0000;
  --osl-color-success-tint: #52FFA2;
  --osl-color-success-base: #28C665;
  --osl-color-success-shade: #008E37;
  --osl-color-foreground-tint: #6B6B6B;
  --osl-color-foreground-base: #232323;
  --osl-color-foreground-shade: #000000;
  --osl-color-background-tint: #FFFFFF;
  --osl-color-background-base: #FFFFFF;
  --osl-color-background-shade: #CCCCCC;
  --osl-color-page-background-tint: #EEEEEE;
  --osl-color-page-background-base: #FFFFFF;
  --osl-color-page-background-shade: #F4E9D7;
  --osl-color-light-tint: #FFFFFF;
  --osl-color-light-base: #FFFFFF;
  --osl-color-light-shade: #CCCCCC;
  --osl-color-dark-tint: #2C2C2C;
  --osl-color-dark-base: #000000;
  --osl-color-dark-shade: #000000;
}

/* ------------------------------------------------------------------------ *\
 * Fonts
\* ------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------ *\
 * Widths
\* ------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------ *\
 * Column Count
\* ------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------ *\
 * Break Points
\* ------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------ *\
 * Layers
\* ------------------------------------------------------------------------ */
.col-1 {
  max-width: 8.3333333333%;
}

.col-2 {
  max-width: 16.6666666667%;
}

.col-3 {
  max-width: 25%;
}

.col-4 {
  max-width: 33.3333333333%;
}

.col-5 {
  max-width: 41.6666666667%;
}

.col-6 {
  max-width: 50%;
}

.col-7 {
  max-width: 58.3333333333%;
}

.col-8 {
  max-width: 66.6666666667%;
}

.col-9 {
  max-width: 75%;
}

.col-10 {
  max-width: 83.3333333333%;
}

.col-11 {
  max-width: 91.6666666667%;
}

.col-12 {
  max-width: 100%;
}

@media (min-width: 48em) {
  .col-xs-1 {
    max-width: 8.3333333333%;
  }

  .col-xs-2 {
    max-width: 16.6666666667%;
  }

  .col-xs-3 {
    max-width: 25%;
  }

  .col-xs-4 {
    max-width: 33.3333333333%;
  }

  .col-xs-5 {
    max-width: 41.6666666667%;
  }

  .col-xs-6 {
    max-width: 50%;
  }

  .col-xs-7 {
    max-width: 58.3333333333%;
  }

  .col-xs-8 {
    max-width: 66.6666666667%;
  }

  .col-xs-9 {
    max-width: 75%;
  }

  .col-xs-10 {
    max-width: 83.3333333333%;
  }

  .col-xs-11 {
    max-width: 91.6666666667%;
  }

  .col-xs-12 {
    max-width: 100%;
  }
}
@media (min-width: 53.3125em) {
  .col-s-1 {
    max-width: 8.3333333333%;
  }

  .col-s-2 {
    max-width: 16.6666666667%;
  }

  .col-s-3 {
    max-width: 25%;
  }

  .col-s-4 {
    max-width: 33.3333333333%;
  }

  .col-s-5 {
    max-width: 41.6666666667%;
  }

  .col-s-6 {
    max-width: 50%;
  }

  .col-s-7 {
    max-width: 58.3333333333%;
  }

  .col-s-8 {
    max-width: 66.6666666667%;
  }

  .col-s-9 {
    max-width: 75%;
  }

  .col-s-10 {
    max-width: 83.3333333333%;
  }

  .col-s-11 {
    max-width: 91.6666666667%;
  }

  .col-s-12 {
    max-width: 100%;
  }
}
@media (min-width: 60em) {
  .col-m-1 {
    max-width: 8.3333333333%;
  }

  .col-m-2 {
    max-width: 16.6666666667%;
  }

  .col-m-3 {
    max-width: 25%;
  }

  .col-m-4 {
    max-width: 33.3333333333%;
  }

  .col-m-5 {
    max-width: 41.6666666667%;
  }

  .col-m-6 {
    max-width: 50%;
  }

  .col-m-7 {
    max-width: 58.3333333333%;
  }

  .col-m-8 {
    max-width: 66.6666666667%;
  }

  .col-m-9 {
    max-width: 75%;
  }

  .col-m-10 {
    max-width: 83.3333333333%;
  }

  .col-m-11 {
    max-width: 91.6666666667%;
  }

  .col-m-12 {
    max-width: 100%;
  }
}
@media (min-width: 64em) {
  .col-l-1 {
    max-width: 8.3333333333%;
  }

  .col-l-2 {
    max-width: 16.6666666667%;
  }

  .col-l-3 {
    max-width: 25%;
  }

  .col-l-4 {
    max-width: 33.3333333333%;
  }

  .col-l-5 {
    max-width: 41.6666666667%;
  }

  .col-l-6 {
    max-width: 50%;
  }

  .col-l-7 {
    max-width: 58.3333333333%;
  }

  .col-l-8 {
    max-width: 66.6666666667%;
  }

  .col-l-9 {
    max-width: 75%;
  }

  .col-l-10 {
    max-width: 83.3333333333%;
  }

  .col-l-11 {
    max-width: 91.6666666667%;
  }

  .col-l-12 {
    max-width: 100%;
  }
}
@media (min-width: 80em) {
  .col-xl-1 {
    max-width: 8.3333333333%;
  }

  .col-xl-2 {
    max-width: 16.6666666667%;
  }

  .col-xl-3 {
    max-width: 25%;
  }

  .col-xl-4 {
    max-width: 33.3333333333%;
  }

  .col-xl-5 {
    max-width: 41.6666666667%;
  }

  .col-xl-6 {
    max-width: 50%;
  }

  .col-xl-7 {
    max-width: 58.3333333333%;
  }

  .col-xl-8 {
    max-width: 66.6666666667%;
  }

  .col-xl-9 {
    max-width: 75%;
  }

  .col-xl-10 {
    max-width: 83.3333333333%;
  }

  .col-xl-11 {
    max-width: 91.6666666667%;
  }

  .col-xl-12 {
    max-width: 100%;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhlbHBlcnMvX21peGlucy5zY3NzIiwiaGVscGVycy9fZnVuY3Rpb25zLnNjc3MiLCJoZWxwZXJzL192YXJpYWJsZXMuc2NzcyIsImxlZ2FjeS5jc3MiLCJsZWdhY3kuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7NkVBQUE7QUNFQTs7NkVBQUE7QUFJQTs7Ozs7RUFBQTtBQVVBOzs7OztFQUFBO0FBVUE7Ozs7RUFBQTtBQVNBOzs7Ozs7RUFBQTtBQStCQTs7Ozs7RUFBQTtBQWFBOzs7OztFQUFBO0FDN0VBOzs2RUFBQTtBQTZFQTs7NkVBQUE7QUFJQTtFQUdZLGlDQUFBO0VBQUEsaUNBQUE7RUFBQSxrQ0FBQTtFQUFBLG1DQUFBO0VBQUEsbUNBQUE7RUFBQSxvQ0FBQTtFQUFBLGtDQUFBO0VBQUEsa0NBQUE7RUFBQSxtQ0FBQTtFQUFBLG9DQUFBO0VBQUEsb0NBQUE7RUFBQSxxQ0FBQTtFQUFBLGlDQUFBO0VBQUEsaUNBQUE7RUFBQSxrQ0FBQTtFQUFBLGdDQUFBO0VBQUEsZ0NBQUE7RUFBQSxpQ0FBQTtFQUFBLGdDQUFBO0VBQUEsZ0NBQUE7RUFBQSxpQ0FBQTtFQUFBLCtCQUFBO0VBQUEsK0JBQUE7RUFBQSxnQ0FBQTtFQUFBLGlDQUFBO0VBQUEsaUNBQUE7RUFBQSxrQ0FBQTtFQUFBLG9DQUFBO0VBQUEsb0NBQUE7RUFBQSxxQ0FBQTtFQUFBLG9DQUFBO0VBQUEsb0NBQUE7RUFBQSxxQ0FBQTtFQUFBLHlDQUFBO0VBQUEseUNBQUE7RUFBQSwwQ0FBQTtFQUFBLCtCQUFBO0VBQUEsK0JBQUE7RUFBQSxnQ0FBQTtFQUFBLDhCQUFBO0VBQUEsOEJBQUE7RUFBQSwrQkFBQTtBQ0daOztBREVBOzs2RUFBQTtBQU9BOzs2RUFBQTtBQVdBOzs2RUFBQTtBQU1BOzs2RUFBQTtBQTBCQTs7NkVBQUE7QUV0SUk7RUFDSSx3QkFBQTtBRG9HUjs7QUNyR0k7RUFDSSx5QkFBQTtBRHdHUjs7QUN6R0k7RUFDSSxjQUFBO0FENEdSOztBQzdHSTtFQUNJLHlCQUFBO0FEZ0hSOztBQ2pISTtFQUNJLHlCQUFBO0FEb0hSOztBQ3JISTtFQUNJLGNBQUE7QUR3SFI7O0FDekhJO0VBQ0kseUJBQUE7QUQ0SFI7O0FDN0hJO0VBQ0kseUJBQUE7QURnSVI7O0FDaklJO0VBQ0ksY0FBQTtBRG9JUjs7QUNySUk7RUFDSSx5QkFBQTtBRHdJUjs7QUN6SUk7RUFDSSx5QkFBQTtBRDRJUjs7QUM3SUk7RUFDSSxlQUFBO0FEZ0pSOztBSDlCSTtFSTVHSTtJQUNJLHdCQUFBO0VEOElWOztFQy9JTTtJQUNJLHlCQUFBO0VEa0pWOztFQ25KTTtJQUNJLGNBQUE7RURzSlY7O0VDdkpNO0lBQ0kseUJBQUE7RUQwSlY7O0VDM0pNO0lBQ0kseUJBQUE7RUQ4SlY7O0VDL0pNO0lBQ0ksY0FBQTtFRGtLVjs7RUNuS007SUFDSSx5QkFBQTtFRHNLVjs7RUN2S007SUFDSSx5QkFBQTtFRDBLVjs7RUMzS007SUFDSSxjQUFBO0VEOEtWOztFQy9LTTtJQUNJLHlCQUFBO0VEa0xWOztFQ25MTTtJQUNJLHlCQUFBO0VEc0xWOztFQ3ZMTTtJQUNJLGVBQUE7RUQwTFY7QUFDRjtBSGhGSTtFSXBHSTtJQUNJLHdCQUFBO0VEdUxWOztFQ3hMTTtJQUNJLHlCQUFBO0VEMkxWOztFQzVMTTtJQUNJLGNBQUE7RUQrTFY7O0VDaE1NO0lBQ0kseUJBQUE7RURtTVY7O0VDcE1NO0lBQ0kseUJBQUE7RUR1TVY7O0VDeE1NO0lBQ0ksY0FBQTtFRDJNVjs7RUM1TU07SUFDSSx5QkFBQTtFRCtNVjs7RUNoTk07SUFDSSx5QkFBQTtFRG1OVjs7RUNwTk07SUFDSSxjQUFBO0VEdU5WOztFQ3hOTTtJQUNJLHlCQUFBO0VEMk5WOztFQzVOTTtJQUNJLHlCQUFBO0VEK05WOztFQ2hPTTtJQUNJLGVBQUE7RURtT1Y7QUFDRjtBSGpJSTtFSTVGSTtJQUNJLHdCQUFBO0VEZ09WOztFQ2pPTTtJQUNJLHlCQUFBO0VEb09WOztFQ3JPTTtJQUNJLGNBQUE7RUR3T1Y7O0VDek9NO0lBQ0kseUJBQUE7RUQ0T1Y7O0VDN09NO0lBQ0kseUJBQUE7RURnUFY7O0VDalBNO0lBQ0ksY0FBQTtFRG9QVjs7RUNyUE07SUFDSSx5QkFBQTtFRHdQVjs7RUN6UE07SUFDSSx5QkFBQTtFRDRQVjs7RUM3UE07SUFDSSxjQUFBO0VEZ1FWOztFQ2pRTTtJQUNJLHlCQUFBO0VEb1FWOztFQ3JRTTtJQUNJLHlCQUFBO0VEd1FWOztFQ3pRTTtJQUNJLGVBQUE7RUQ0UVY7QUFDRjtBSGxMSTtFSXBGSTtJQUNJLHdCQUFBO0VEeVFWOztFQzFRTTtJQUNJLHlCQUFBO0VENlFWOztFQzlRTTtJQUNJLGNBQUE7RURpUlY7O0VDbFJNO0lBQ0kseUJBQUE7RURxUlY7O0VDdFJNO0lBQ0kseUJBQUE7RUR5UlY7O0VDMVJNO0lBQ0ksY0FBQTtFRDZSVjs7RUM5Uk07SUFDSSx5QkFBQTtFRGlTVjs7RUNsU007SUFDSSx5QkFBQTtFRHFTVjs7RUN0U007SUFDSSxjQUFBO0VEeVNWOztFQzFTTTtJQUNJLHlCQUFBO0VENlNWOztFQzlTTTtJQUNJLHlCQUFBO0VEaVRWOztFQ2xUTTtJQUNJLGVBQUE7RURxVFY7QUFDRjtBSG5PSTtFSTVFSTtJQUNJLHdCQUFBO0VEa1RWOztFQ25UTTtJQUNJLHlCQUFBO0VEc1RWOztFQ3ZUTTtJQUNJLGNBQUE7RUQwVFY7O0VDM1RNO0lBQ0kseUJBQUE7RUQ4VFY7O0VDL1RNO0lBQ0kseUJBQUE7RURrVVY7O0VDblVNO0lBQ0ksY0FBQTtFRHNVVjs7RUN2VU07SUFDSSx5QkFBQTtFRDBVVjs7RUMzVU07SUFDSSx5QkFBQTtFRDhVVjs7RUMvVU07SUFDSSxjQUFBO0VEa1ZWOztFQ25WTTtJQUNJLHlCQUFBO0VEc1ZWOztFQ3ZWTTtJQUNJLHlCQUFBO0VEMFZWOztFQzNWTTtJQUNJLGVBQUE7RUQ4VlY7QUFDRiIsImZpbGUiOiJsZWdhY3kuOTk2N2QxN2IuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU3R5bGVzIHdyaXR0ZW4gYnkgSm9yZGFuIEJlYXJjZSBAIFdlYmxpbngsIEluYy5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcXFxuICogTWl4aW5zXG5cXCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuLy8gbnRoLWNoaWxkOiBodHRwczovL3BhdWx1bmQuY28udWsvbnRoLWNoaWxkLXNhc3MtbWl4aW5zXG5cbkBtaXhpbiBmaXJzdC1jaGlsZCgpIHtcbiAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBsYXN0LWNoaWxkKCkge1xuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZXZlbigpIHtcbiAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG9kZCgpIHtcbiAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlyc3QoJG51bSkge1xuICAgIEBpZiAkbnVtID09IDEge1xuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgICAmOm50aC1jaGlsZCgtbiArICN7JG51bX0pIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbGFzdCgkbnVtKSB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgtbiArICN7JG51bX0pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWZ0ZXIoJG51bSkge1xuICAgICY6bnRoLWNoaWxkKG4rI3skbnVtICsgMX0pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZnJvbS1lbmQoJG51bSkge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skbnVtfSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBiZXR3ZWVuKCRmaXJzdCwgJGxhc3QpIHtcbiAgICAmOm50aC1jaGlsZChuKyN7JGZpcnN0fSk6bnRoLWNoaWxkKC1uKyN7JGxhc3R9KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFsbC1idXQoJG51bSkge1xuICAgICY6bm90KDpudGgtY2hpbGQoI3skbnVtfSkpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZWFjaCgkbnVtKSB7XG4gICAgJjpudGgtY2hpbGQoI3skbnVtfW4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBsYXllcnNcblxuQG1peGluIGxheWVyKCRsYXllci1uYW1lKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IG1hcC1nZXQoJGxheWVycywgJGxheWVyLW5hbWUpO1xufVxuXG4vLyBTY2FsZSBkeW5hbWljYWxseSB1bnRpbCBhIGdpdmVuIHZpZXdwb3J0XG5cbkBtaXhpbiB2aWV3cG9ydC1zY2FsZSgkc2l6ZTogMTYsICRiYXNlOiAxMDI0LCAkbWluLXdpZHRoOiAwLCAkbWF4LXdpZHRoOiBudWxsKSB7XG4gICAgJG1heC13aWR0aDogaWYoJG1heC13aWR0aCA9PSBudWxsLCAkYmFzZSwgJG1heC13aWR0aCk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiByZW1pZnkoJG1pbi13aWR0aCwgMTYpKSBhbmQgKG1heC13aWR0aDogcmVtaWZ5KCRtYXgtd2lkdGgsIDE2KSkge1xuICAgICAgICBmb250LXNpemU6ICgkc2l6ZSAvICRiYXNlKSAqIDEwMHZ3O1xuICAgIH1cbn1cblxuLy8gQ3JlYXRlIGEgbWVkaWEgcXVlcnkgcmVsYXRpdmUgdG8gYSBicmVhayBwb2ludCB2YXJpYWJsZVxuXG5AbWl4aW4gc21hbGxlci10aGFuKCRwb2ludC1uYW1lLCAkaW5jbHVzaXZlOiBmYWxzZSkge1xuICAgICR3aWR0aDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRwb2ludC1uYW1lKTtcblxuICAgIEBpZiAkaW5jbHVzaXZlID09IGZhbHNlIHtcbiAgICAgICAgJHdpZHRoOiAkd2lkdGggLSBtYXRoLmRpdigxLCAxNik7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICR3aWR0aCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8vIENyZWF0ZSBhIG1lZGlhIHF1ZXJ5IHJlbGF0aXZlIHRvIGEgYnJlYWsgcG9pbnQgdmFyaWFibGVcblxuQG1peGluIGxhcmdlci10aGFuKCRwb2ludC1uYW1lLCAkaW5jbHVzaXZlOiB0cnVlKSB7XG4gICAgJHdpZHRoOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHBvaW50LW5hbWUpO1xuXG4gICAgQGlmICRpbmNsdXNpdmUgPT0gZmFsc2Uge1xuICAgICAgICAkd2lkdGg6ICR3aWR0aCArIG1hdGguZGl2KDEsIDE2KTtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHdpZHRoKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLy8gU2NhbGUgZm9udCBzaXplIGJhc2VkIG9uIFZXIHVuaXRzXG5cbkBtaXhpbiBmb250LXNjYWxlKCRzaXplLCAkcG9pbnQtbmFtZSkge1xuICAgICR3aWR0aDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRwb2ludC1uYW1lKTtcblxuICAgIGZvbnQtc2l6ZTogbWF0aC5kaXYoJHNpemUsIHN0cmlwLXVuaXQoJHdpZHRoICogMTYpKSAqIDEwMHZ3O1xufVxuXG4vLyBGdWxsIFdpZHRoIENvbnRhaW5lcnMgaW4gTGltaXRlZCBXaWR0aCBQYXJlbnRzXG5cbkBtaXhpbiBmdWxsLWJsZWVkIHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC01MHZ3O1xuICAgIG1hcmdpbi1yaWdodDogLTUwdnc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHJpZ2h0OiA1MCU7XG4gICAgd2lkdGg6IDEwMHZ3O1xufVxuIiwiLy8gU3R5bGVzIHdyaXR0ZW4gYnkgSm9yZGFuIEJlYXJjZSBAIFdlYmxpbngsIEluYy5cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxcXG4gKiBGdW5jdGlvbnNcblxcKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLypcbiAqIFJldHJpZXZlIGEgY29sb3IgdmFyaWFibGUgYXMgYSByYXcgdmFsdWVcbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAkY29sb3IgLSBUaGUgbmFtZSBvZiB0aGUgY29sb3IgYXMgZGVmaW5lZCBpbiBfdmFyaWFibGVzXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAkdG9uZSAgLSBUaGUgdmFyaWFudCBvZiB0aGUgY29sb3IgKHNoYWRlfGJhc2V8dGludClcbiAqL1xuQGZ1bmN0aW9uIGNvbG9yKCRjb2xvciwgJHRvbmU6IGJhc2UpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAkY29sb3IpLCAkdG9uZSk7XG59XG5cbi8qXG4gKiBSZXRyaWV2ZSBhIGNvbG9yIHZhcmlhYmxlIGFzIGEgY3VzdG9tIHByb3BlcnR5XG4gKlxuICogQHBhcmFtICB7c3RyaW5nfSAgJGNvbG9yIC0gVGhlIG5hbWUgb2YgdGhlIGNvbG9yIGFzIGRlZmluZWQgaW4gX3ZhcmlhYmxlc1xuICogQHBhcmFtICB7c3RyaW5nfSAgJHRvbmUgIC0gVGhlIHZhcmlhbnQgb2YgdGhlIGNvbG9yIChzaGFkZXxiYXNlfHRpbnQpXG4gKi9cbkBmdW5jdGlvbiBjb2xvci1wcm9wKCRjb2xvciwgJHRvbmU6IGJhc2UpIHtcbiAgICBAcmV0dXJuIHZhcigtLW9zbC1jb2xvci0jeyRjb2xvcn0tI3skdG9uZX0pO1xufVxuXG4vKlxuICogUmVtb3ZlIHRoZSB1bml0IG9mIGEgbGVuZ3RoXG4gKlxuICogQHBhcmFtICB7TnVtYmVyfSAgJG51bWJlclxuICovXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtYmVyKSB7XG4gICAgQHJldHVybiBpZih0eXBlLW9mKCRudW1iZXIpID09IFwibnVtYmVyXCIgYW5kIG5vdCB1bml0bGVzcygkbnVtYmVyKSwgbWF0aC5kaXYoJG51bWJlciwgKCRudW1iZXIgKiAwICsgMSkpLCAkbnVtYmVyKTtcbn1cblxuLypcbiAqIENvbnZlcnQgUFggdW5pdHMgaW4gdG8gRU0gb3IgUkVNLCByZWxhdGl2ZSB0byBhIHNwZWNpZmllZCBiYXNlIHNpemVzXG4gKlxuICogQHBhcmFtICB7TnVtYmVyfSAgJHNpemUgLSBBcnJheSBvZiB1cCB0byBmb3VyIHNpemVzIGluIFBYIHVuaXRzXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICAkYmFzZSAtIEZvbnQgc2l6ZSB0byBiYXNlIGNhbGN1bGF0aW9ucyBvZmYgb2ZcbiAqIEBwYXJhbSAge1N0cmluZ30gICR1bml0IC0gRWl0aGVyIFwiZW1cIiBvciBcInJlbVwiXG4gKi9cbkBmdW5jdGlvbiByZW1pZnkoJHNpemVzOiAoJHNpemUxLCAkc2l6ZTIsICRzaXplMywgJHNpemU0KSwgJGJhc2U6IG51bGwsICR1bml0OiBudWxsKSB7XG4gICAgJHVuaXQ6IGlmKCR1bml0ID09IG51bGwsIGlmKCRiYXNlID09IG51bGwsIHJlbSwgZW0pLCAkdW5pdCk7XG4gICAgJGJhc2U6IGlmKCRiYXNlID09IG51bGwsIDE2LCBzdHJpcC11bml0KCRiYXNlKSk7XG4gICAgJG91dHB1dDogXCJcIjtcblxuICAgIEBlYWNoICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICRzaXplOiBzdHJpcC11bml0KCRzaXplKTtcblxuICAgICAgICBAaWYgdHlwZS1vZigkc2l6ZSkgPT0gXCJudW1iZXJcIiB7XG4gICAgICAgICAgICAvLyBhZGQgYXMgc3BhY2UgaWYgJG91dHB1dCBhbHJlYWR5IGhhcyBhIHZhbHVlXG4gICAgICAgICAgICAkb3V0cHV0OiBpZigkb3V0cHV0ID09IFwiXCIsIFwiXCIsICRvdXRwdXQgKyBcIiBcIik7XG4gICAgICAgICAgICAvLyBjYWxjdWxhdGUsIGFwcGVuZCB2YWx1ZSB0byAkb3V0cHV0XG4gICAgICAgICAgICAkb3V0cHV0OiAkb3V0cHV0ICsgbWF0aC5kaXYoc3RyaXAtdW5pdCgkc2l6ZSksIHN0cmlwLXVuaXQoJGJhc2UpKSArICR1bml0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgLy8gcGFzcyB0aGUgdmFsdWUgdGhyb3VnaCB1bmNoYW5nZWQgaWYgJHNpemUgaXMgbm90IGEgbnVtYmVyXG4gICAgICAgICAgICAkb3V0cHV0OiAkb3V0cHV0ICsgXCIgXCIgKyAkc2l6ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gaWYodHlwZS1vZigkb3V0cHV0KSA9PSBcInN0cmluZ1wiLCB1bnF1b3RlKCRvdXRwdXQpLCAkb3V0cHV0KTtcbn1cblxuLypcbiAqIENvbnZlcnQgUGhvdG9zaG9wIGxlYWRpbmcgdG8gQ1NTIGxpbmUtaGVpZ2h0XG4gKlxuICogQHBhcmFtICB7TnVtYmVyfSAgJHNpemUgLSBWYWx1ZSBvZiBMZWFkaW5nIGluIFBob3Rvc2hvcCdzIENoYXJhY3RlciBQYW5lbFxuICogQHBhcmFtICB7TnVtYmVyfSAgJGJhc2UgLSBWYWx1ZSBvZiBGb250IFNpemUgaW4gUGhvdG9zaG9wJ3MgQ2hhcmFjdGVyIFBhbmVsXG4gKi9cbkBmdW5jdGlvbiBsZWFkaW5nKCRzaXplLCAkYmFzZTogbnVsbCkge1xuICAgICRiYXNlOiBpZigkYmFzZSA9PSBudWxsLCAxNiwgc3RyaXAtdW5pdCgkYmFzZSkpO1xuICAgICRvdXRwdXQ6ICRiYXNlICsgKHN0cmlwLXVuaXQoJHNpemUpIC8gMik7XG5cbiAgICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbi8qXG4gKiBDb252ZXJ0IFBob3Rvc2hvcCB0cmFja2luZyB0byBDU1MgbGV0dGVyLXNwYWNpbmdcbiAqXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICAkc2l6ZSAtIFZhbHVlIG9mIFRyYWNraW5nIGluIFBob3Rvc2hvcCdzIENoYXJhY3RlciBQYW5lbFxuICogQHBhcmFtICB7TnVtYmVyfSAgJGJhc2UgLSBWYWx1ZSBvZiBGb250IFNpemUgaW4gUGhvdG9zaG9wJ3MgQ2hhcmFjdGVyIFBhbmVsXG4gKi9cbkBmdW5jdGlvbiB0cmFja2luZygkc2l6ZSwgJGJhc2U6IG51bGwpIHtcbiAgICAkYmFzZTogaWYoJGJhc2UgPT0gbnVsbCwgMTYsIHN0cmlwLXVuaXQoJGJhc2UpKTtcbiAgICAkb3V0cHV0OiAoJHNpemUgLyAxMDAwKSAqIHN0cmlwLXVuaXQoJGJhc2UpO1xuXG4gICAgQHJldHVybiAkb3V0cHV0O1xufVxuIiwiLy8gU3R5bGVzIHdyaXR0ZW4gYnkgSm9yZGFuIEJlYXJjZSBAIFdlYmxpbngsIEluYy5cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxcXG4gKiBDb2xvcnNcblxcKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGNvbG9yczogKFxuICAgIFwicHJpbWFyeVwiOiAoXG4gICAgICAgIHRpbnQ6ICAjRjY5MjI1LFxuICAgICAgICBiYXNlOiAgIzlDNDcyMixcbiAgICAgICAgc2hhZGU6ICMyNTE4MTMsXG4gICAgKSxcbiAgICBcInNlY29uZGFyeVwiOiAoXG4gICAgICAgIHRpbnQ6ICBsaWdodGVuKCMwQzk1NDcsIDEwJSksXG4gICAgICAgIGJhc2U6ICAjMEM5NTQ3LFxuICAgICAgICBzaGFkZTogZGFya2VuKCMwQzk1NDcsIDEwJSksXG4gICAgKSxcbiAgICBcInRlcnRpYXJ5XCI6IChcbiAgICAgICAgdGludDogICM5RUZGRkYsXG4gICAgICAgIGJhc2U6ICAjNjRGRkRBLFxuICAgICAgICBzaGFkZTogIzE0Q0JBOCxcbiAgICApLFxuICAgIFwicXVhdGVybmFyeVwiOiAoXG4gICAgICAgIHRpbnQ6ICAjRkZGRjVBLFxuICAgICAgICBiYXNlOiAgI0ZGRkYwMCxcbiAgICAgICAgc2hhZGU6ICNDN0NDMDAsXG4gICAgKSxcbiAgICBcInF1aW5hcnlcIjogKFxuICAgICAgICB0aW50OiAgI0I0N0NGRixcbiAgICAgICAgYmFzZTogICM3QzRERkYsXG4gICAgICAgIHNoYWRlOiAjM0YxRENCLFxuICAgICksXG4gICAgXCJzZW5hcnlcIjogKFxuICAgICAgICB0aW50OiAgI0ZGQzI0NixcbiAgICAgICAgYmFzZTogICNGRjkxMDAsXG4gICAgICAgIHNoYWRlOiAjQzU2MjAwLFxuICAgICksXG4gICAgXCJhY2NlbnRcIjogKFxuICAgICAgICB0aW50OiAgIzgzQjlGRixcbiAgICAgICAgYmFzZTogICM0NDhBRkYsXG4gICAgICAgIHNoYWRlOiAjMDA1RUNCLFxuICAgICksXG4gICAgXCJlcnJvclwiOiAoXG4gICAgICAgIHRpbnQ6ICAjRkY1RjUyLFxuICAgICAgICBiYXNlOiAgI0M2MjgyOCxcbiAgICAgICAgc2hhZGU6ICM4RTAwMDAsXG4gICAgKSxcbiAgICBcInN1Y2Nlc3NcIjogKFxuICAgICAgICB0aW50OiAgIzUyRkZBMixcbiAgICAgICAgYmFzZTogICMyOEM2NjUsXG4gICAgICAgIHNoYWRlOiAjMDA4RTM3LFxuICAgICksXG4gICAgXCJmb3JlZ3JvdW5kXCI6IChcbiAgICAgICAgdGludDogICM2QjZCNkIsXG4gICAgICAgIGJhc2U6ICAjMjMyMzIzLFxuICAgICAgICBzaGFkZTogIzAwMDAwMCxcbiAgICApLFxuICAgIFwiYmFja2dyb3VuZFwiOiAoXG4gICAgICAgIHRpbnQ6ICAjRkZGRkZGLFxuICAgICAgICBiYXNlOiAgI0ZGRkZGRixcbiAgICAgICAgc2hhZGU6ICNDQ0NDQ0MsXG4gICAgKSxcbiAgICBcInBhZ2UtYmFja2dyb3VuZFwiOiAoXG4gICAgICAgIHRpbnQ6ICAjRUVFRUVFLFxuICAgICAgICBiYXNlOiAgI0ZGRkZGRixcbiAgICAgICAgc2hhZGU6ICNGNEU5RDcsXG4gICAgKSxcbiAgICBcImxpZ2h0XCI6IChcbiAgICAgICAgdGludDogICNGRkZGRkYsXG4gICAgICAgIGJhc2U6ICAjRkZGRkZGLFxuICAgICAgICBzaGFkZTogI0NDQ0NDQyxcbiAgICApLFxuICAgIFwiZGFya1wiOiAoXG4gICAgICAgIHRpbnQ6ICAjMkMyQzJDLFxuICAgICAgICBiYXNlOiAgIzAwMDAwMCxcbiAgICAgICAgc2hhZGU6ICMwMDAwMDAsXG4gICAgKSxcbik7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXFxcbiAqIENvbG9ycyAoQ3VzdG9tIFByb3BlcnRpZXMpXG5cXCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbjpyb290IHtcbiAgICBAZWFjaCAkbmFtZSwgJGRhdGEgaW4gJGNvbG9ycyB7XG4gICAgICAgIEBlYWNoICR2YXJpYW50LCAkaGV4IGluICRkYXRhIHtcbiAgICAgICAgICAgIC0tb3NsLWNvbG9yLSN7JG5hbWV9LSN7JHZhcmlhbnR9OiAjeyRoZXh9OyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lXG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXFxcbiAqIEZvbnRzXG5cXCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRoZWFkaW5nLWZvbnQ6IFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcbiRib2R5LWZvbnQ6IFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcXFxuICogV2lkdGhzXG5cXCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRoZWFkZXItd2lkdGg6IDEzMTU7XG4kYmFubmVyLXdpZHRoOiAxNDYwO1xuJHNpdGUtd2lkdGg6IDEzMjA7XG4kZm9vdGVyLXdpZHRoOiA3Mzg7XG4kY29sdW1uLWdhcDogMzA7XG4kY29udGVudC1wYWRkaW5nOiAyNTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcXFxuICogQ29sdW1uIENvdW50XG5cXCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRjb2x1bW4tY291bnQ6IDEyO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxcXG4gKiBCcmVhayBQb2ludHNcblxcKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHh4eGwtYnJlYWs6IG1hdGguZGl2KDE0NDBlbSwgMTYpO1xuJHh4bC1icmVhazogIG1hdGguZGl2KDEzNjZlbSwgMTYpO1xuJHhsLWJyZWFrOiAgIG1hdGguZGl2KDEyODBlbSwgMTYpO1xuJGwtYnJlYWs6ICAgIG1hdGguZGl2KDEwMjRlbSwgMTYpO1xuJG0tYnJlYWs6ICAgIG1hdGguZGl2KDk2MGVtLCAxNik7XG4kcy1icmVhazogICAgbWF0aC5kaXYoODUzZW0sIDE2KTtcbiR4cy1icmVhazogICBtYXRoLmRpdig3NjhlbSwgMTYpO1xuJHh4cy1icmVhazogIG1hdGguZGl2KDY0MGVtLCAxNik7XG4keHh4cy1icmVhazogbWF0aC5kaXYoNDgwZW0sIDE2KTtcblxuJGJyZWFrcG9pbnRzOiAoXG4gICAgeHh4czogJHh4eHMtYnJlYWssXG4gICAgeHhzOiAgJHh4cy1icmVhayxcbiAgICB4czogICAkeHMtYnJlYWssXG4gICAgczogICAgJHMtYnJlYWssXG4gICAgbTogICAgJG0tYnJlYWssXG4gICAgbDogICAgJGwtYnJlYWssXG4gICAgeGw6ICAgJHhsLWJyZWFrLFxuICAgIHh4bDogICR4eGwtYnJlYWssXG4gICAgeHh4bDogJHh4eGwtYnJlYWssXG4pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxcXG4gKiBMYXllcnNcblxcKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGxheWVyczogKFxuICAgIGhlYWRlcjogNSxcbiAgICBuYXZpZ2F0aW9uOiA0LFxuICAgIGhlcm86IDMsXG4gICAgY29udGVudDogMixcbiAgICBmb290ZXI6IDEsXG4pO1xuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcXFxuICogTWl4aW5zXG5cXCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxcXG4gKiBGdW5jdGlvbnNcblxcKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qXG4gKiBSZXRyaWV2ZSBhIGNvbG9yIHZhcmlhYmxlIGFzIGEgcmF3IHZhbHVlXG4gKlxuICogQHBhcmFtICB7c3RyaW5nfSAgJGNvbG9yIC0gVGhlIG5hbWUgb2YgdGhlIGNvbG9yIGFzIGRlZmluZWQgaW4gX3ZhcmlhYmxlc1xuICogQHBhcmFtICB7c3RyaW5nfSAgJHRvbmUgIC0gVGhlIHZhcmlhbnQgb2YgdGhlIGNvbG9yIChzaGFkZXxiYXNlfHRpbnQpXG4gKi9cbi8qXG4gKiBSZXRyaWV2ZSBhIGNvbG9yIHZhcmlhYmxlIGFzIGEgY3VzdG9tIHByb3BlcnR5XG4gKlxuICogQHBhcmFtICB7c3RyaW5nfSAgJGNvbG9yIC0gVGhlIG5hbWUgb2YgdGhlIGNvbG9yIGFzIGRlZmluZWQgaW4gX3ZhcmlhYmxlc1xuICogQHBhcmFtICB7c3RyaW5nfSAgJHRvbmUgIC0gVGhlIHZhcmlhbnQgb2YgdGhlIGNvbG9yIChzaGFkZXxiYXNlfHRpbnQpXG4gKi9cbi8qXG4gKiBSZW1vdmUgdGhlIHVuaXQgb2YgYSBsZW5ndGhcbiAqXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICAkbnVtYmVyXG4gKi9cbi8qXG4gKiBDb252ZXJ0IFBYIHVuaXRzIGluIHRvIEVNIG9yIFJFTSwgcmVsYXRpdmUgdG8gYSBzcGVjaWZpZWQgYmFzZSBzaXplc1xuICpcbiAqIEBwYXJhbSAge051bWJlcn0gICRzaXplIC0gQXJyYXkgb2YgdXAgdG8gZm91ciBzaXplcyBpbiBQWCB1bml0c1xuICogQHBhcmFtICB7TnVtYmVyfSAgJGJhc2UgLSBGb250IHNpemUgdG8gYmFzZSBjYWxjdWxhdGlvbnMgb2ZmIG9mXG4gKiBAcGFyYW0gIHtTdHJpbmd9ICAkdW5pdCAtIEVpdGhlciBcImVtXCIgb3IgXCJyZW1cIlxuICovXG4vKlxuICogQ29udmVydCBQaG90b3Nob3AgbGVhZGluZyB0byBDU1MgbGluZS1oZWlnaHRcbiAqXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICAkc2l6ZSAtIFZhbHVlIG9mIExlYWRpbmcgaW4gUGhvdG9zaG9wJ3MgQ2hhcmFjdGVyIFBhbmVsXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICAkYmFzZSAtIFZhbHVlIG9mIEZvbnQgU2l6ZSBpbiBQaG90b3Nob3AncyBDaGFyYWN0ZXIgUGFuZWxcbiAqL1xuLypcbiAqIENvbnZlcnQgUGhvdG9zaG9wIHRyYWNraW5nIHRvIENTUyBsZXR0ZXItc3BhY2luZ1xuICpcbiAqIEBwYXJhbSAge051bWJlcn0gICRzaXplIC0gVmFsdWUgb2YgVHJhY2tpbmcgaW4gUGhvdG9zaG9wJ3MgQ2hhcmFjdGVyIFBhbmVsXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICAkYmFzZSAtIFZhbHVlIG9mIEZvbnQgU2l6ZSBpbiBQaG90b3Nob3AncyBDaGFyYWN0ZXIgUGFuZWxcbiAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcXFxuICogQ29sb3JzXG5cXCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxcXG4gKiBDb2xvcnMgKEN1c3RvbSBQcm9wZXJ0aWVzKVxuXFwqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuOnJvb3Qge1xuICAtLW9zbC1jb2xvci1wcmltYXJ5LXRpbnQ6ICNGNjkyMjU7XG4gIC0tb3NsLWNvbG9yLXByaW1hcnktYmFzZTogIzlDNDcyMjtcbiAgLS1vc2wtY29sb3ItcHJpbWFyeS1zaGFkZTogIzI1MTgxMztcbiAgLS1vc2wtY29sb3Itc2Vjb25kYXJ5LXRpbnQ6ICMxMGM0NWQ7XG4gIC0tb3NsLWNvbG9yLXNlY29uZGFyeS1iYXNlOiAjMEM5NTQ3O1xuICAtLW9zbC1jb2xvci1zZWNvbmRhcnktc2hhZGU6ICMwODY2MzE7XG4gIC0tb3NsLWNvbG9yLXRlcnRpYXJ5LXRpbnQ6ICM5RUZGRkY7XG4gIC0tb3NsLWNvbG9yLXRlcnRpYXJ5LWJhc2U6ICM2NEZGREE7XG4gIC0tb3NsLWNvbG9yLXRlcnRpYXJ5LXNoYWRlOiAjMTRDQkE4O1xuICAtLW9zbC1jb2xvci1xdWF0ZXJuYXJ5LXRpbnQ6ICNGRkZGNUE7XG4gIC0tb3NsLWNvbG9yLXF1YXRlcm5hcnktYmFzZTogI0ZGRkYwMDtcbiAgLS1vc2wtY29sb3ItcXVhdGVybmFyeS1zaGFkZTogI0M3Q0MwMDtcbiAgLS1vc2wtY29sb3ItcXVpbmFyeS10aW50OiAjQjQ3Q0ZGO1xuICAtLW9zbC1jb2xvci1xdWluYXJ5LWJhc2U6ICM3QzRERkY7XG4gIC0tb3NsLWNvbG9yLXF1aW5hcnktc2hhZGU6ICMzRjFEQ0I7XG4gIC0tb3NsLWNvbG9yLXNlbmFyeS10aW50OiAjRkZDMjQ2O1xuICAtLW9zbC1jb2xvci1zZW5hcnktYmFzZTogI0ZGOTEwMDtcbiAgLS1vc2wtY29sb3Itc2VuYXJ5LXNoYWRlOiAjQzU2MjAwO1xuICAtLW9zbC1jb2xvci1hY2NlbnQtdGludDogIzgzQjlGRjtcbiAgLS1vc2wtY29sb3ItYWNjZW50LWJhc2U6ICM0NDhBRkY7XG4gIC0tb3NsLWNvbG9yLWFjY2VudC1zaGFkZTogIzAwNUVDQjtcbiAgLS1vc2wtY29sb3ItZXJyb3ItdGludDogI0ZGNUY1MjtcbiAgLS1vc2wtY29sb3ItZXJyb3ItYmFzZTogI0M2MjgyODtcbiAgLS1vc2wtY29sb3ItZXJyb3Itc2hhZGU6ICM4RTAwMDA7XG4gIC0tb3NsLWNvbG9yLXN1Y2Nlc3MtdGludDogIzUyRkZBMjtcbiAgLS1vc2wtY29sb3Itc3VjY2Vzcy1iYXNlOiAjMjhDNjY1O1xuICAtLW9zbC1jb2xvci1zdWNjZXNzLXNoYWRlOiAjMDA4RTM3O1xuICAtLW9zbC1jb2xvci1mb3JlZ3JvdW5kLXRpbnQ6ICM2QjZCNkI7XG4gIC0tb3NsLWNvbG9yLWZvcmVncm91bmQtYmFzZTogIzIzMjMyMztcbiAgLS1vc2wtY29sb3ItZm9yZWdyb3VuZC1zaGFkZTogIzAwMDAwMDtcbiAgLS1vc2wtY29sb3ItYmFja2dyb3VuZC10aW50OiAjRkZGRkZGO1xuICAtLW9zbC1jb2xvci1iYWNrZ3JvdW5kLWJhc2U6ICNGRkZGRkY7XG4gIC0tb3NsLWNvbG9yLWJhY2tncm91bmQtc2hhZGU6ICNDQ0NDQ0M7XG4gIC0tb3NsLWNvbG9yLXBhZ2UtYmFja2dyb3VuZC10aW50OiAjRUVFRUVFO1xuICAtLW9zbC1jb2xvci1wYWdlLWJhY2tncm91bmQtYmFzZTogI0ZGRkZGRjtcbiAgLS1vc2wtY29sb3ItcGFnZS1iYWNrZ3JvdW5kLXNoYWRlOiAjRjRFOUQ3O1xuICAtLW9zbC1jb2xvci1saWdodC10aW50OiAjRkZGRkZGO1xuICAtLW9zbC1jb2xvci1saWdodC1iYXNlOiAjRkZGRkZGO1xuICAtLW9zbC1jb2xvci1saWdodC1zaGFkZTogI0NDQ0NDQztcbiAgLS1vc2wtY29sb3ItZGFyay10aW50OiAjMkMyQzJDO1xuICAtLW9zbC1jb2xvci1kYXJrLWJhc2U6ICMwMDAwMDA7XG4gIC0tb3NsLWNvbG9yLWRhcmstc2hhZGU6ICMwMDAwMDA7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXFxcbiAqIEZvbnRzXG5cXCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxcXG4gKiBXaWR0aHNcblxcKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqXFxcbiAqIENvbHVtbiBDb3VudFxuXFwqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICpcXFxuICogQnJlYWsgUG9pbnRzXG5cXCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKlxcXG4gKiBMYXllcnNcblxcKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jb2wtMSB7XG4gIG1heC13aWR0aDogOC4zMzMzMzMzMzMzJTtcbn1cblxuLmNvbC0yIHtcbiAgbWF4LXdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbn1cblxuLmNvbC0zIHtcbiAgbWF4LXdpZHRoOiAyNSU7XG59XG5cbi5jb2wtNCB7XG4gIG1heC13aWR0aDogMzMuMzMzMzMzMzMzMyU7XG59XG5cbi5jb2wtNSB7XG4gIG1heC13aWR0aDogNDEuNjY2NjY2NjY2NyU7XG59XG5cbi5jb2wtNiB7XG4gIG1heC13aWR0aDogNTAlO1xufVxuXG4uY29sLTcge1xuICBtYXgtd2lkdGg6IDU4LjMzMzMzMzMzMzMlO1xufVxuXG4uY29sLTgge1xuICBtYXgtd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xufVxuXG4uY29sLTkge1xuICBtYXgtd2lkdGg6IDc1JTtcbn1cblxuLmNvbC0xMCB7XG4gIG1heC13aWR0aDogODMuMzMzMzMzMzMzMyU7XG59XG5cbi5jb2wtMTEge1xuICBtYXgtd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xufVxuXG4uY29sLTEyIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAuY29sLXhzLTEge1xuICAgIG1heC13aWR0aDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuXG4gIC5jb2wteHMtMiB7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuXG4gIC5jb2wteHMtMyB7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cblxuICAuY29sLXhzLTQge1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cblxuICAuY29sLXhzLTUge1xuICAgIG1heC13aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cblxuICAuY29sLXhzLTYge1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG5cbiAgLmNvbC14cy03IHtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG5cbiAgLmNvbC14cy04IHtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG5cbiAgLmNvbC14cy05IHtcbiAgICBtYXgtd2lkdGg6IDc1JTtcbiAgfVxuXG4gIC5jb2wteHMtMTAge1xuICAgIG1heC13aWR0aDogODMuMzMzMzMzMzMzMyU7XG4gIH1cblxuICAuY29sLXhzLTExIHtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICB9XG5cbiAgLmNvbC14cy0xMiB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNTMuMzEyNWVtKSB7XG4gIC5jb2wtcy0xIHtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gIH1cblxuICAuY29sLXMtMiB7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuXG4gIC5jb2wtcy0zIHtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgfVxuXG4gIC5jb2wtcy00IHtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG5cbiAgLmNvbC1zLTUge1xuICAgIG1heC13aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cblxuICAuY29sLXMtNiB7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cblxuICAuY29sLXMtNyB7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuXG4gIC5jb2wtcy04IHtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG5cbiAgLmNvbC1zLTkge1xuICAgIG1heC13aWR0aDogNzUlO1xuICB9XG5cbiAgLmNvbC1zLTEwIHtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG5cbiAgLmNvbC1zLTExIHtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICB9XG5cbiAgLmNvbC1zLTEyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5jb2wtbS0xIHtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gIH1cblxuICAuY29sLW0tMiB7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuXG4gIC5jb2wtbS0zIHtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgfVxuXG4gIC5jb2wtbS00IHtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG5cbiAgLmNvbC1tLTUge1xuICAgIG1heC13aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cblxuICAuY29sLW0tNiB7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cblxuICAuY29sLW0tNyB7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuXG4gIC5jb2wtbS04IHtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG5cbiAgLmNvbC1tLTkge1xuICAgIG1heC13aWR0aDogNzUlO1xuICB9XG5cbiAgLmNvbC1tLTEwIHtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG5cbiAgLmNvbC1tLTExIHtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICB9XG5cbiAgLmNvbC1tLTEyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5jb2wtbC0xIHtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gIH1cblxuICAuY29sLWwtMiB7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuXG4gIC5jb2wtbC0zIHtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgfVxuXG4gIC5jb2wtbC00IHtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG5cbiAgLmNvbC1sLTUge1xuICAgIG1heC13aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cblxuICAuY29sLWwtNiB7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cblxuICAuY29sLWwtNyB7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuXG4gIC5jb2wtbC04IHtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG5cbiAgLmNvbC1sLTkge1xuICAgIG1heC13aWR0aDogNzUlO1xuICB9XG5cbiAgLmNvbC1sLTEwIHtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG5cbiAgLmNvbC1sLTExIHtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICB9XG5cbiAgLmNvbC1sLTEyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gIC5jb2wteGwtMSB7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzMzMzMzMlO1xuICB9XG5cbiAgLmNvbC14bC0yIHtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xuICB9XG5cbiAgLmNvbC14bC0zIHtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgfVxuXG4gIC5jb2wteGwtNCB7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuXG4gIC5jb2wteGwtNSB7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuXG4gIC5jb2wteGwtNiB7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cblxuICAuY29sLXhsLTcge1xuICAgIG1heC13aWR0aDogNTguMzMzMzMzMzMzMyU7XG4gIH1cblxuICAuY29sLXhsLTgge1xuICAgIG1heC13aWR0aDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cblxuICAuY29sLXhsLTkge1xuICAgIG1heC13aWR0aDogNzUlO1xuICB9XG5cbiAgLmNvbC14bC0xMCB7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuXG4gIC5jb2wteGwtMTEge1xuICAgIG1heC13aWR0aDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cblxuICAuY29sLXhsLTEyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn0iLCIvLyBTdHlsZXMgd3JpdHRlbiBieSBKb3JkYW4gQmVhcmNlIEAgV2VibGlueCwgSW5jLlxuXG5AdXNlIFwic2FzczptYXRoXCI7XG5cbkBpbXBvcnQgXCJoZWxwZXJzL19taXhpbnNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL19mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL192YXJpYWJsZXNcIjtcblxuQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxMiB7XG4gICAgLmNvbC0jeyRpfSB7XG4gICAgICAgIG1heC13aWR0aDogbWF0aC5kaXYoJGksIDEyKSAqIDEwMCU7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBsYXJnZXItdGhhbih4cykge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTIge1xuICAgICAgICAuY29sLXhzLSN7JGl9IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5kaXYoJGksIDEyKSAqIDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGxhcmdlci10aGFuKHMpIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDEyIHtcbiAgICAgICAgLmNvbC1zLSN7JGl9IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5kaXYoJGksIDEyKSAqIDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGxhcmdlci10aGFuKG0pIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDEyIHtcbiAgICAgICAgLmNvbC1tLSN7JGl9IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5kaXYoJGksIDEyKSAqIDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGxhcmdlci10aGFuKGwpIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDEyIHtcbiAgICAgICAgLmNvbC1sLSN7JGl9IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5kaXYoJGksIDEyKSAqIDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGxhcmdlci10aGFuKHhsKSB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxMiB7XG4gICAgICAgIC5jb2wteGwtI3skaX0ge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBtYXRoLmRpdigkaSwgMTIpICogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ== */
