#static-loading-screen {
  width: 100%;
  height: 100%;
  z-index: 100;
  background-color: #2196f3;
  position: absolute;
  top: 0;
  left: 0; }
  #static-loading-screen #app-load-error-message {
    font-size: 2em;
    padding: 3em; }
  #static-loading-screen .loading-bars {
    display: block;
    margin-left: auto;
    margin-right: auto;
    position: absolute;
    bottom: 2em;
    left: 0;
    right: 0; }
  #static-loading-screen p {
    text-align: center;
    font-size: 2.3em;
    font-weight: bold;
    margin: 1.7em 0;
    padding: 0 4.2em; }

.switch {
  font-size: 2.5em;
  position: relative;
  display: inline-block;
  width: 2em;
  height: 1em;
  border-radius: 1em;
  border-width: 0.15em;
  border-style: solid;
  border-color: rgba(0, 0, 0, 0);
  box-shadow: none;
  -webkit-transition: 0.4s;
  transition: 0.4s; }
  .switch.switchFocussed {
    border-style: solid;
    border-color: #ffc106;
    transform: scale(1.3); }
  .switch .switchSlider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #CCCCCC;
    -webkit-transition: 0.4s;
    transition: 0.4s;
    border-radius: 1em; }
    .switch .switchSlider:before {
      position: absolute;
      content: "";
      height: 0.76em;
      width: 0.76em;
      left: 0.117em;
      bottom: 0.117em;
      background-color: #FFFFFF;
      -webkit-transition: 0.4s;
      transition: 0.4s;
      border-radius: 50%; }
  .switch.switchOn .switchSlider {
    background-color: #2196f3; }
    .switch.switchOn .switchSlider:before {
      -webkit-transform: translateX(1em);
      -ms-transform: translateX(1em);
      transform: translateX(1em); }

.dark .switch.focus {
  border-color: #FF9F00; }

.dark .switch.switchOn .switchSlider {
  background-color: #002D61; }

.clickable-button.button {
  cursor: pointer; }
  .clickable-button.button .label {
    cursor: pointer; }

#app #back-button {
  padding: 0.5em;
  position: absolute;
  left: 0;
  top: 0;
  width: 2em;
  height: 2em;
  z-index: 1000;
  background-image: url("components/widgets/back-button/images/exit.png");
  background-repeat: no-repeat;
  background-size: contain; }
  #app #back-button.buttonFocussed {
    background-image: url("components/widgets/back-button/images/exit-white.png"); }

.dark #app #back-button {
  background-image: url("components/widgets/back-button/images/exit-white.png"); }

.text-input {
  transition: border, box-shadow 0.3s ease;
  -webkit-transition: border, box-shadow 0.3s ease;
  color: #202020;
  background-color: #EFEFEF;
  border: none;
  box-sizing: border-box;
  padding-left: 0.5em;
  padding-right: 0.5em;
  outline: none;
  transition: border, box-shadow 0.3s ease;
  -webkit-transition: border, box-shadow 0.3s ease;
  border: 1px solid #2196f3;
  box-shadow: 0 0 5px #2196f3; }
  .text-input.placeholder {
    transition: color 0.3s ease;
    -webkit-transition: color 0.3s ease;
    color: rgba(0, 0, 0, 0.2); }
    .text-input.placeholder::after {
      position: absolute;
      left: 50%; }
  .text-input::after {
    color: #202020;
    animation: 1s blink step-end infinite;
    -webkit-animation: 1s webkit-blink step-end infinite;
    content: '|'; }

@keyframes blink {
  from, to {
    color: transparent; }
  50% {
    color: #202020; } }

@-webkit-keyframes webkit-blink {
  from, to {
    color: transparent; }
  50% {
    color: #202020; } }

.dark #app .text-input {
  color: #F9F9F9;
  background-color: #414141;
  border: 1px solid #002D61;
  box-shadow: 0 0 5px #002D61; }
  .dark #app .text-input::after {
    color: #F9F9F9;
    animation: 1s blink-dark step-end infinite;
    -webkit-animation: 1s webkit-blink-dark step-end infinite; }

@keyframes blink-dark {
  from, to {
    color: transparent; }
  50% {
    color: #F9F9F9; } }

@-webkit-keyframes webkit-blink-dark {
  from, to {
    color: transparent; }
  50% {
    color: #F9F9F9; } }

.loading-bars {
  display: inline-block;
  position: relative;
  width: 5.3em;
  height: 5.3em; }

.loading-bars div {
  display: inline-block;
  position: absolute;
  left: 0.5em;
  width: 1em;
  background: #fff;
  animation: loading-bars 1.2s cubic-bezier(0, 0.5, 0.5, 1) infinite;
  -webkit-animation: webkit-loading-bars 1.2s cubic-bezier(0, 0.5, 0.5, 1) infinite; }

.loading-bars div:nth-child(1) {
  left: 0.5em;
  animation-delay: -0.24s;
  -webkit-animation-delay: -0.24s; }

.loading-bars div:nth-child(2) {
  left: 2.15em;
  animation-delay: -0.12s;
  -webkit-animation-delay: -0.12s; }

.loading-bars div:nth-child(3) {
  left: 3.75em;
  animation-delay: 0;
  -webkit-animation-delay: 0; }

@keyframes loading-bars {
  0% {
    top: 0.5em;
    height: 4.25em; }
  50%, 100% {
    top: 1.6em;
    height: 2.2em; } }

@-webkit-keyframes webkit-loading-bars {
  0% {
    top: 0.5em;
    height: 4.25em; }
  50%, 100% {
    top: 1.6em;
    height: 2.2em; } }

.youtube-video {
  width: 100%;
  height: 100%; }

#app .wvc-logo {
  padding: 4px; }
  #app .wvc-logo img {
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: 4em;
    height: 4em; }

#app .receiver-logo {
  padding: 0px; }
  #app .receiver-logo img {
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: 5em;
    height: 5em; }

.scanning {
  display: inline-block;
  position: relative; }
  .scanning div {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    background-size: contain; }
  .scanning div:nth-child(1) {
    background-image: url("components/widgets/scanning/images/scan-1.png");
    animation: none; }
  .scanning div:nth-child(2) {
    animation: scanning-anim-2 3s infinite;
    -webkit-animation: webkit-scanning-anim-2 3s infinite;
    opacity: 0;
    background-image: url("components/widgets/scanning/images/scan-2.png"); }
  .scanning div:nth-child(3) {
    animation: scanning-anim-3 3s infinite;
    -webkit-animation: webkit-scanning-anim-3 3s infinite;
    opacity: 0;
    background-image: url("components/widgets/scanning/images/scan-3.png"); }

@keyframes scanning-anim-2 {
  0% {
    opacity: 0; }
  25%, 75% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@keyframes scanning-anim-3 {
  0%, 25% {
    opacity: 0; }
  50% {
    opacity: 1; }
  75%, 100% {
    opacity: 0; } }

@-webkit-keyframes webkit-scanning-anim-2 {
  0% {
    opacity: 0; }
  25%, 75% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@-webkit-keyframes webkit-scanning-anim-3 {
  0%, 25% {
    opacity: 0; }
  50% {
    opacity: 1; }
  75%, 100% {
    opacity: 0; } }

.dark .scanning div:nth-child(1) {
  background-image: url("components/widgets/scanning/images/scan-1-dark.png"); }

.dark .scanning div:nth-child(2) {
  background-image: url("components/widgets/scanning/images/scan-2-dark.png"); }

.dark .scanning div:nth-child(3) {
  background-image: url("components/widgets/scanning/images/scan-3-dark.png"); }

.qr-code .qr > img {
  width: 7em;
  height: 7em; }

.qr-code .qr-label {
  text-align: center;
  padding-top: 0.1em;
  display: inline-block; }

.qr-code .qr-type {
  width: 2em;
  height: 2em;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  background-repeat: no-repeat;
  background-size: contain; }
  .qr-code .qr-type.qr-type-ios {
    transition: 0.4s;
    -webkit-transition: 0.4s;
    background-image: url("components/widgets/qr-code/images/ios.png"); }
  .qr-code .qr-type.qr-type-android {
    background-image: url("components/widgets/qr-code/images/android.png"); }

.dark #app .qr-code .qr-type.qr-type-ios {
  background-image: url("components/widgets/qr-code/images/ios-dark.png"); }

#app .get-wvc {
  margin-top: 2em;
  text-align: center;
  white-space: nowrap; }
  #app .get-wvc .qr-code {
    margin-left: 1em;
    margin-right: 1em; }
  #app .get-wvc #android-container,
  #app .get-wvc #ios-container,
  #app .get-wvc #dont-have {
    display: inline-block;
    white-space: normal; }
  #app .get-wvc #dont-have {
    vertical-align: top;
    text-align: left;
    padding-right: 5em;
    max-width: 40em; }
    #app .get-wvc #dont-have > .label, #app .get-wvc #dont-have #or-go-to {
      display: block;
      text-align: left;
      max-width: 40em;
      margin-left: 0.5em;
      line-height: 1.5em; }
    #app .get-wvc #dont-have #dont-have-or-go-to {
      padding-right: 0.4em; }
    #app .get-wvc #dont-have #dont-have-title {
      margin-left: 0.3em;
      line-height: 1.3em;
      font-size: 1.5em;
      color: #2196f3;
      transition: 0.4s;
      -webkit-transition: 0.4s; }
    #app .get-wvc #dont-have #help-button {
      margin-top: 1em;
      display: inline-block; }
      #app .get-wvc #dont-have #help-button .label {
        margin-left: 0; }

.dark #app .get-wvc #dont-have #dont-have-title {
  color: #F9F9F9;
  font-weight: bold; }

#css-demos > .image img {
  width: 8em;
  height: 8em; }

#css-demos #demo-container {
  color: #000;
  background-color: #FFF; }
  #css-demos #demo-container #ssl-tests {
    display: block; }
    #css-demos #demo-container #ssl-tests > .button {
      margin: 1em; }
  #css-demos #demo-container #ssl-test-result, #css-demos #demo-container #supported {
    word-wrap: break-word; }

#css-demo-zoom,
#css-demo-rotate {
  text-align: center; }
  #css-demo-zoom > .container,
  #css-demo-rotate > .container {
    display: inline-block;
    text-align: center; }

#css-demo-zoom > .image img {
  width: 4em;
  height: 4em; }

#css-demo-zoom #demo-img-zoom-40 {
  transform: scale(0.4, 0.4);
  -webkit-transform: scale(0.4, 0.4); }

#css-demo-zoom #demo-img-zoom-80 {
  transform: scale(0.8, 0.8);
  -webkit-transform: scale(0.8, 0.8); }

#css-demo-zoom #demo-img-zoom-120 {
  padding: 7px;
  transform: scale(1.2, 1.2);
  -webkit-transform: scale(1.2, 1.2); }

#css-demo-zoom #demo-img-zoom-160 {
  padding: 22px;
  transform: scale(1.6, 1.6);
  -webkit-transform: scale(1.6, 1.6); }

#css-demo-zoom #demo-img-zoom-200 {
  padding: 36px;
  transform: scale(2, 2);
  -webkit-transform: scale(2, 2); }

#demo-img-rotate-90 {
  transform: rotate(90deg);
  -webkit-transform: rotate(90deg); }

#demo-img-rotate-180 {
  transform: rotate(180deg);
  -webkit-transform: rotate(180deg); }

#demo-img-rotate-270 {
  transform: rotate(270deg);
  -webkit-transform: rotate(270deg); }

#demo-img-rotate-270 {
  transform: rotate(270deg);
  -webkit-transform: rotate(270deg); }

#car-drive {
  text-align: center;
  animation: drive 3s infinite;
  -webkit-animation: webkit-drive 3s infinite; }

#keycode #keycode-container > .label, #keycode #betas-container > .label, #betas #keycode-container > .label, #betas #betas-container > .label {
  display: block;
  font-size: 2em;
  padding-bottom: 0.3em; }

@keyframes drive {
  0% {
    transform: translateX(-200px); }
  100% {
    transform: translateX(200px); } }

@-webkit-keyframes webkit-drive {
  0% {
    -webkit-transform: translateX(-200px); }
  100% {
    -webkit-transform: translateX(200px); } }

#logging #back-button {
  margin-top: 2em; }

#logging .horizontallist > .button {
  margin-left: 0.5em;
  margin-right: 0.5em; }

.setting-switch {
  text-align: left; }
  .setting-switch .horizontallist {
    display: inline-block;
    margin-bottom: 0.5em;
    margin-left: 5em; }
    .setting-switch .horizontallist .label {
      padding-right: 1.5em;
      vertical-align: middle; }
    .setting-switch .horizontallist .switch {
      margin-right: 0.5em;
      vertical-align: middle; }

.setting-label {
  font-size: 2em;
  padding: 1em;
  display: block; }

#app #senders #senders-list {
  max-width: 45em; }
  #app #senders #senders-list .sender-button {
    width: 10em;
    height: 7.5em;
    margin: 1em;
    transform: 0.4s; }
    #app #senders #senders-list .sender-button.buttonFocussed .sender-container .sender-label {
      color: #202020; }
    #app #senders #senders-list .sender-button .label {
      text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden; }
    #app #senders #senders-list .sender-button .sender-container .sender-icon {
      margin-left: auto;
      margin-right: auto;
      display: block;
      background-color: #CCCCCC;
      border-radius: 50%;
      width: 3em;
      height: 3em;
      margin-top: 0.5em;
      margin-bottom: 0.5em;
      padding: 0.5em; }
      #app #senders #senders-list .sender-button .sender-container .sender-icon img {
        width: 100%;
        height: 100%;
        object-fit: contain; }
    #app #senders #senders-list .sender-button .sender-container .sender-label {
      margin-left: auto;
      margin-right: auto;
      display: block;
      color: #000;
      text-transform: none; }
    #app #senders #senders-list .sender-button.buttonFocussed {
      background-color: #ffc106;
      transform: scale(1.1); }
    #app #senders #senders-list .sender-button.buttonBlurred {
      background-color: #F9F9F9;
      transform: scale(1); }

@keyframes sender-button-color {
  from {
    background-color: #F9F9F9;
    transform: scale(1); }
  to {
    background-color: #ffc106;
    transform: scale(1.1); } }

@keyframes sender-button-color-off {
  from {
    background-color: #ffc106;
    transform: scale(1.1); }
  to {
    background-color: #F9F9F9;
    transform: scale(1); } }

@-webkit-keyframes webkit-sender-button-color {
  from {
    background-color: #F9F9F9;
    transform: scale(1); }
  to {
    background-color: #ffc106;
    transform: scale(1.1); } }

@-webkit-keyframes webkit-sender-button-color-off {
  from {
    background-color: #ffc106;
    transform: scale(1.1); }
  to {
    background-color: #F9F9F9;
    transform: scale(1); } }

.dark #app #senders #senders-list .sender-button.buttonFocussed {
  background-color: #FF9F00; }

#dark-switch .switchSlider {
  background-image: url("components/senders/images/bg-light-mode.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center; }
  #dark-switch .switchSlider:before {
    background-image: url("components/senders/images/light-mode.png");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center; }

#dark-switch.switchOn .switchSlider {
  background-image: url("components/senders/images/bg-dark-mode.png"); }
  #dark-switch.switchOn .switchSlider:before {
    background-image: url("components/senders/images/dark-mode.png"); }

#app #senders #senders-top {
  padding-bottom: 1em; }
  #app #senders #senders-top > .listitem {
    vertical-align: top; }
  #app #senders #senders-top #senders-detected {
    min-width: 35em;
    margin-top: 2em; }

#app #senders .heading {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  font-weight: bold;
  white-space: wrap; }

#app #senders #logo-section {
  padding-left: 6em;
  padding-right: 1em;
  padding-top: 1em; }
  #app #senders #logo-section .receiver-logo img {
    width: 16em;
    height: 16em; }
  #app #senders #logo-section #dark-switch {
    display: inline-block;
    margin-right: 0.7em; }

#app #senders #scanning-list, #app #senders #scanning-stopped-list, #app #senders #select-sender {
  font-size: 2em;
  vertical-align: top;
  margin-bottom: 1.5em; }

#app #senders #scanning-list .label, #app #senders #scanning-stopped-list .label {
  max-width: 15em; }

#app #senders #scanning-list .listitem, #app #senders #scanning-stopped-list .listitem {
  display: inline-block; }

#app #senders #scanning-list .scanning, #app #senders #scanning-stopped-list .scanning {
  width: 1em;
  height: 1em;
  margin-bottom: 0.5em; }

#app #senders #scanning-list #remote, #app #senders #scanning-stopped-list #remote {
  width: 1.5em;
  height: 1.5em;
  background-image: url("components/senders/images/remote.png");
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat; }

#app #senders #scanning-list .scanning, #app #senders #scanning-list #remote, #app #senders #scanning-stopped-list .scanning, #app #senders #scanning-stopped-list #remote {
  vertical-align: top;
  margin-right: 0.5em; }
  #app #senders #scanning-list .scanning img, #app #senders #scanning-list #remote img, #app #senders #scanning-stopped-list .scanning img, #app #senders #scanning-stopped-list #remote img {
    width: 100%;
    height: 100%; }

#app #senders #scanning-stopped-list {
  display: none; }

#app #senders #app-version {
  position: absolute;
  bottom: 0;
  left: 0;
  color: #105098;
  padding: 0.2em;
  font-size: 1em; }

#app #senders #connect-manually {
  margin-top: 1em;
  max-width: 25em; }

#app #senders #select-sender {
  display: none;
  max-width: 20em; }

#app #senders.senders-available #select-sender {
  display: inline-block;
  margin-bottom: 0.5em; }

#app #senders.senders-available #scanning-list, #app #senders.senders-available #scanning-stopped-list {
  margin-top: 1em;
  font-size: 1em;
  margin-bottom: 1em; }
  #app #senders.senders-available #scanning-list .label, #app #senders.senders-available #scanning-stopped-list .label {
    max-width: 40em; }

#app #senders.scanning-active #scanning-list {
  display: block; }

#app #senders.scanning-active #scanning-stopped-list {
  display: none; }

#app #senders.scanning-inactive #scanning-list {
  display: none; }

#app #senders.scanning-inactive #scanning-stopped-list {
  display: block; }

.dark #app #senders #app-version {
  color: #828282; }

.dark #app #senders #scanning-stopped-list #remote {
  background-image: url("components/senders/images/remote-dark.png"); }

#keyboard {
  width: 30.8em;
  margin-left: auto;
  margin-right: auto;
  margin-top: 1em; }
  #keyboard .row {
    display: block;
    height: 2.8em;
    white-space: nowrap; }
    #keyboard .row .keyboardButton {
      display: inline-block;
      width: 2.8em;
      height: 2.8em;
      margin: 0; }
      #keyboard .row .keyboardButton .label {
        font-size: 1.12em;
        line-height: 1.68em; }
      #keyboard .row .keyboardButton.keyDEL {
        width: 3.36em; }
    #keyboard .row .spacer {
      display: inline-block;
      width: 2.8em;
      height: 1px;
      margin: 0; }
      #keyboard .row .spacer#keyboard_9_1 {
        width: 1.4em; }
  #keyboard #keyboard_row_2 {
    padding-left: 1.4em; }

.loader {
  border-radius: 50%;
  margin-left: auto;
  margin-right: auto;
  text-indent: -9999em;
  border-top: 2px solid #2196F3 !important;
  border-right: 2px solid #2196F3 !important;
  border-bottom: 2px solid #2196F3 !important;
  border-left: 2px solid #EEEEEE !important;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation: load8 1.1s infinite linear;
  animation: load8 1.1s infinite linear; }

@-webkit-keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg); } }

@keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg); } }

#connect #tutorial-button {
  padding: 0.5em;
  position: absolute;
  right: 0;
  top: 0;
  height: 2.5em;
  z-index: 1000; }

#connect #logo-container {
  height: 4em; }
  #connect #logo-container #busy-container {
    width: 4em;
    height: 4em;
    display: none; }
  #connect #logo-container.loading #busy-container {
    display: inline-block; }
  #connect #logo-container #error, #connect #logo-container #success {
    display: none; }
  #connect #logo-container.error #error {
    display: inline-block; }
  #connect #logo-container.success #success {
    display: block; }
  #connect #logo-container #error {
    height: 4em;
    padding: 4px; }
    #connect #logo-container #error #error-message {
      height: 1em; }
    #connect #logo-container #error #error-img {
      margin-left: auto;
      margin-right: auto; }
      #connect #logo-container #error #error-img img {
        padding: 0.45em;
        width: 2.1em;
        height: 2.1em; }
  #connect #logo-container.loading .receiver-logo, #connect #logo-container.error .receiver-logo, #connect #logo-container.success .receiver-logo {
    display: none; }

#connect #enter-code {
  height: 2em;
  font-size: 2em;
  line-height: 2em;
  text-align: center;
  margin-top: 1em;
  max-width: 16em;
  margin-left: auto;
  margin-right: auto; }

#connect #connect-button {
  margin-top: 1em;
  max-width: 32em; }

#connect #app-version {
  position: absolute;
  bottom: 0;
  left: 0;
  color: #105098;
  padding: 0.2em;
  font-size: 1em; }

.dark #app #connect #app-version {
  color: #828282; }

#tutorial #loading-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 80vh;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 10000; }

#tutorial #youtube-video-frame {
  width: 100vw;
  height: 85vh;
  z-index: 1; }

#tutorial #action-container {
  height: 15vh;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-bottom: 5vh; }
  #tutorial #action-container .button {
    box-shadow: none;
    border-radius: 50%;
    margin-left: 1.5vw;
    margin-right: 1.5vw;
    width: 9vh;
    height: 9vh; }
    #tutorial #action-container .button .image img {
      width: 5vh;
      height: 5vh;
      padding: 2vh; }

#help #help-container {
  position: relative; }

#help #go-back {
  margin-top: 1em;
  margin-bottom: 0; }

#help #screenshot-container .container.image {
  display: inline-block; }
  #help #screenshot-container .container.image#phone-code {
    margin-right: 0.8em; }

#help #connect-circled_img {
  width: 25em;
  height: 5.2em; }

#help #cast-to-smart-tv_img {
  width: 13em;
  height: 11em; }

#help #phone-code_img {
  width: 6.2em;
  height: 11em; }

#help #enter-code_img {
  width: 16em;
  height: 11em; }

#help #top-panel {
  border-bottom: grey;
  border-bottom-width: 1px;
  border-bottom-style: solid; }

#help #top-left-panel, #help #bottom-left-panel {
  border-right: grey;
  border-right-width: 1px;
  border-right-style: solid; }

#help #top-panel, #help #bottom-panel {
  white-space: nowrap;
  height: 17em; }

#help #top-panel > .container,
#help #bottom-panel > .container {
  display: inline-block;
  width: 30em;
  vertical-align: top;
  height: 17em; }
  #help #top-panel > .container > .label,
  #help #bottom-panel > .container > .label {
    font-size: 1.8em;
    font-weight: bold;
    padding-bottom: 0.4em;
    display: block;
    white-space: normal; }
    #help #top-panel > .container > .label#android-label, #help #top-panel > .container > .label#ios-label,
    #help #bottom-panel > .container > .label#android-label,
    #help #bottom-panel > .container > .label#ios-label {
      font-size: 1em;
      font-weight: normal; }

#help #top-left-title {
  display: block; }

#help #bottom-left-title, #help #bottom-right-title {
  padding-top: 0.4em; }

#help #app-info {
  display: inline-block;
  margin-left: 1.2em;
  margin-right: 1.2em;
  vertical-align: top; }
  #help #app-info > .label {
    display: block; }
  #help #app-info #app-logo {
    padding-bottom: 1em; }
    #help #app-info #app-logo #app-logo_img {
      width: 5.1em;
      height: 5.1em; }
  #help #app-info #app-name, #help #app-info #or-visit {
    padding-bottom: 0.5em; }
  #help #app-info #url {
    font-size: 0.8em; }

#help #android-container, #help #ios-container {
  display: inline-block; }

#connected {
  background-color: #000;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url(components/connected/splash-hd.png);
  background-position: center;
  position: relative;
  width: 100%;
  height: 100%; }
  #connected #back-button {
    margin: 2em;
    animation: none;
    -webkit-animation: none; }
    #connected #back-button.buttonFocussed {
      transform: scale(1); }
  #connected #message {
    font-size: 2em;
    color: #FFF;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    text-align: center;
    padding-bottom: 1em; }

#app .button.horizontalslider {
  background-color: rgba(255, 255, 255, 0.5);
  display: inline-block;
  position: relative;
  width: 100%;
  max-width: 50%;
  height: 0.5em;
  animation: slider-focus-off 1s;
  -webkit-animation: webkit-slider-focus-off 1s;
  margin-bottom: 0;
  vertical-align: middle;
  transform: scale(1); }
  #app .button.horizontalslider.focus {
    box-shadow: 0 0 1em 0.2em #FFF;
    animation: slider-focus-on 1s;
    -webkit-animation: webkit-slider-focus-on 1s; }
  #app .button.horizontalslider .scrubbarbuffer {
    position: absolute;
    left: 0;
    top: 0;
    width: 1em;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.4); }
  #app .button.horizontalslider .horizontalsliderleft {
    position: absolute;
    left: 0;
    top: 0;
    width: 1em;
    height: 100%;
    background-color: white; }
  #app .button.horizontalslider .horizontalsliderhandle {
    position: absolute;
    left: 0;
    top: -0.8em;
    width: 2em;
    height: 2em;
    border-radius: 50%;
    background-color: white; }

@keyframes slider-focus-off {
  0% {
    box-shadow: 0 0 1em 0.2em white; }
  100% {
    box-shadow: 0 0 1em 0 rgba(255, 255, 255, 0); } }

@keyframes slider-focus-on {
  0% {
    box-shadow: 0 0 1em 0 rgba(255, 255, 255, 0); }
  100% {
    box-shadow: 0 0 1em 0.2em white; } }

@-webkit-keyframes webkit-slider-focus-off {
  0% {
    box-shadow: 0 0 1em 0.2em white; }
  100% {
    box-shadow: 0 0 1em 0 rgba(255, 255, 255, 0); } }

@-webkit-keyframes webkit-slider-focus-on {
  0% {
    box-shadow: 0 0 1em 0 rgba(255, 255, 255, 0); }
  100% {
    box-shadow: 0 0 1em 0.2em white; } }

.controls-active #subtitles-container {
  bottom: 11.5em; }

#subtitles-container {
  bottom: 0.5em;
  position: absolute;
  left: 0;
  right: 0; }
  #subtitles-container.sub-line-0 {
    bottom: auto;
    top: 0; }
  #subtitles-container.sub-line-10 {
    bottom: auto;
    top: 10%; }
  #subtitles-container.sub-line-20 {
    bottom: auto;
    top: 20%; }
  #subtitles-container.sub-line-30 {
    bottom: auto;
    top: 30%; }
  #subtitles-container.sub-line-40 {
    bottom: auto;
    top: 40%; }
  #subtitles-container.sub-line-50 {
    bottom: auto;
    top: 50%; }
  #subtitles-container.sub-line-60 {
    bottom: 40%; }
  #subtitles-container.sub-line-70 {
    bottom: 30%; }
  #subtitles-container.sub-line-80 {
    bottom: 20%; }
  #subtitles-container.sub-line-90 {
    bottom: 10%; }
  #subtitles-container.sub-line-100 {
    bottom: 0; }
  #subtitles-container.sub-position-0 {
    left: 0;
    right: auto; }
  #subtitles-container.sub-position-10 {
    left: 10%;
    right: auto; }
  #subtitles-container.sub-position-20 {
    left: 20%;
    right: auto; }
  #subtitles-container.sub-position-30 {
    left: 30%;
    right: auto; }
  #subtitles-container.sub-position-40 {
    left: 40%;
    right: auto; }
  #subtitles-container.sub-position-50 {
    left: 0;
    right: 0; }
  #subtitles-container.sub-position-60 {
    left: auto;
    right: 40%; }
  #subtitles-container.sub-position-70 {
    left: auto;
    right: 30%; }
  #subtitles-container.sub-position-80 {
    left: auto;
    right: 20%; }
  #subtitles-container.sub-position-90 {
    left: auto;
    right: 10%; }
  #subtitles-container.sub-position-100 {
    left: auto;
    right: 0; }
  #subtitles-container #subtitles {
    margin-left: auto;
    margin-right: auto;
    display: inline-block;
    padding: 0.7em;
    font-size: 1.8em; }
    #subtitles-container #subtitles.subtitles-empty {
      display: none; }
    #subtitles-container #subtitles > span {
      background-color: rgba(0, 0, 0, 0.5);
      color: #fff;
      white-space: pre-wrap;
      display: block; }

/*
#app.rootwidget.video-player {
  text-align: left;

  #main {
    margin: 0;
    padding: 0;
    max-width: none;
  }
}
*/
#app.video-player {
  background-color: #000000 !important; }

#mediaPlayerVideo {
  object-fit: contain; }

#video-player {
  height: 100%;
  position: relative;
  overflow: hidden; }
  #video-player #audio-image_img {
    object-fit: contain;
    width: 100%;
    height: 100%; }
  #video-player #buffering {
    position: absolute;
    left: 2.5em;
    bottom: 2em; }
    #video-player #buffering > div {
      box-shadow: 0 0 1em 0.2em #000; }
  #video-player #control-stack {
    position: absolute;
    bottom: 0;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5) 35%, black);
    padding-bottom: 1em;
    padding-top: 2em; }
    #video-player #control-stack #scrub-container .label {
      font-size: 2em;
      color: #FFF;
      display: inline-block;
      padding-left: 0.5em;
      padding-right: 0.5em;
      vertical-align: middle; }
    #video-player #control-stack #action-container .button {
      box-shadow: none;
      border-radius: 50%;
      margin-left: 1em;
      margin-right: 1em; }
      #video-player #control-stack #action-container .button.buttonDisabled {
        opacity: 0; }
      #video-player #control-stack #action-container .button .image img {
        width: 3em;
        height: 3em;
        padding: 1em; }
  #video-player #scrub-bar, #video-player #scrub-bar_buffer, #video-player #scrub-bar_left, #video-player #scrub-bar_slider {
    pointer-events: none; }

#image-player {
  width: 100%;
  height: 100%; }
  #image-player #main-image_img {
    object-fit: contain;
    width: 100%;
    height: 100%; }
  #image-player #loading {
    position: absolute;
    left: 2.5em;
    bottom: 2em;
    z-index: 1000; }
    #image-player #loading > div {
      box-shadow: 0 0 1em 0.2em #000; }
  #image-player #back-button {
    display: none; }
  #image-player #action-container {
    position: absolute;
    bottom: 0;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5) 35%, black);
    padding-bottom: 1em;
    padding-top: 2em; }
    #image-player #action-container .button {
      box-shadow: none;
      border-radius: 50%;
      margin-left: 1em;
      margin-right: 1em; }
      #image-player #action-container .button.buttonDisabled {
        opacity: 0.5;
        background-color: #232323; }
      #image-player #action-container .button .image img {
        width: 3em;
        height: 3em;
        padding: 1em; }

@font-face {
  font-family: 'Roboto';
  src: url("web-fonts/roboto_medium/Roboto-Medium-webfont.eot");
  src: url("web-fonts/roboto_medium/Roboto-Medium-webfont.eot?#iefix") format("embedded-opentype"), url("web-fonts/roboto_medium/Roboto-Medium-webfont.woff2") format("woff2"), url("web-fonts/roboto_medium/Roboto-Medium-webfont.woff") format("woff"), url("web-fonts/roboto_medium/Roboto-Medium-webfont.ttf") format("truetype"), url("web-fonts/roboto_medium/Roboto-Medium-webfont.svg#robotobold") format("svg");
  font-weight: bold;
  font-style: normal; }

/*
@font-face {
  font-family: 'Roboto';
  src: url("web-fonts/roboto_bolditalic/Roboto-BoldItalic-webfont.eot");
  src: url("web-fonts/roboto_bolditalic/Roboto-BoldItalic-webfont.eot?#iefix") format("embedded-opentype"), 
    url("web-fonts/roboto_bolditalic/Roboto-BoldItalic-webfont.woff2") format("woff2"), 
    url("web-fonts/roboto_bolditalic/Roboto-BoldItalic-webfont.woff") format("woff"), 
    url("web-fonts/roboto_bolditalic/Roboto-BoldItalic-webfont.ttf") format("truetype"), 
    url("web-fonts/roboto_bolditalic/Roboto-BoldItalic-webfont.svg#robotobold_italic") format("svg");
  font-weight: bold;
  font-style: italic, oblique; 
}
*/
@font-face {
  font-family: 'Roboto';
  src: url("web-fonts/roboto_lightitalic/Roboto-LightItalic-webfont.eot");
  src: url("web-fonts/roboto_lightitalic/Roboto-LightItalic-webfont.eot?#iefix") format("embedded-opentype"), url("web-fonts/roboto_lightitalic/Roboto-LightItalic-webfont.woff2") format("woff2"), url("web-fonts/roboto_lightitalic/Roboto-LightItalic-webfont.woff") format("woff"), url("web-fonts/roboto_lightitalic/Roboto-LightItalic-webfont.ttf") format("truetype"), url("web-fonts/roboto_lightitalic/Roboto-LightItalic-webfont.svg#robotolightitalic") format("svg");
  font-weight: normal;
  font-style: italic, oblique; }

@font-face {
  font-family: 'Roboto';
  src: url("web-fonts/roboto_light/Roboto-Light-webfont.eot");
  src: url("web-fonts/roboto_light/Roboto-Light-webfont.eot?#iefix") format("embedded-opentype"), url("web-fonts/roboto_light/Roboto-Light-webfont.woff2") format("woff2"), url("web-fonts/roboto_light/Roboto-Light-webfont.woff") format("woff"), url("web-fonts/roboto_light/Roboto-Light-webfont.ttf") format("truetype"), url("web-fonts/roboto_light/Roboto-Light-webfont.svg#robotolight") format("svg");
  font-weight: normal;
  font-style: normal; }

.carouselmask {
  overflow: hidden;
  /*
    #carouselComponent {
        position: relative;

        & > .carouselmask {
            margin-left: auto;
            margin-right: auto;
        }
    }

    #carouselComponent

    #carouselComponent>.description {
        position: static;
    }

    .carouselwidgetstrip>.button {
        margin: 0;
        width: 200px;
        padding: 32px;
    }

    .carouselwidgetstrip.vertical>.button {
        height: 200px;
    }
    */ }
  .carouselmask .carouselwidgetstrip {
    position: relative;
    white-space: nowrap; }
    .carouselmask .carouselwidgetstrip.vertical > .carouselItem {
      display: block; }
    .carouselmask .carouselwidgetstrip.horizontal > .carouselItem {
      display: inline-block; }
  .carouselmask.overflow-left {
    position: relative; }
    .carouselmask.overflow-left::before {
      display: inline-block;
      content: " ";
      width: 50px;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
      background: linear-gradient(90deg, rgba(128, 128, 128, 0.3), rgba(0, 0, 0, 0));
      z-index: 1; }
  .carouselmask.overflow-right {
    position: relative; }
    .carouselmask.overflow-right::after {
      display: block;
      content: " ";
      width: 50px;
      height: 100%;
      position: absolute;
      top: 0;
      right: 0;
      background: linear-gradient(90deg, rgba(0, 0, 0, 0), rgba(128, 128, 128, 0.3));
      z-index: 1; }

.card-container {
  background-color: #2196f3;
  width: 100%;
  height: 100%;
  transition: 0.4s;
  -webkit-transition: 0.4s; }
  .card-container .card {
    margin-left: auto;
    margin-right: auto;
    max-width: 70em;
    color: #202020;
    background-color: #FFFFFF;
    box-shadow: 0px 0.25em 1.16em rgba(0, 0, 0, 0.2);
    border-radius: 0.17em;
    overflow-y: auto;
    overflow-x: hidden;
    transition: 0.4s;
    -webkit-transition: 0.4s;
    margin: 1.5em;
    padding: 2em;
    display: inline-block;
    min-width: 60em; }

.dark .card-container {
  background-color: #000000; }
  .dark .card-container .card {
    color: #F9F9F9;
    background-color: #000000;
    box-shadow: none;
    border-radius: 0; }

.button {
  background-color: #2196f3;
  box-shadow: 0px 0.25em 0.58em rgba(0, 0, 0, 0.2);
  border-radius: 0.17em;
  border: 0;
  outline: none;
  display: block;
  max-width: 50em;
  margin: 0 auto 1em auto;
  transition: 0.4s;
  -webkit-transition: 0.4s;
  -webkit-tap-highlight-color: transparent; }
  .button > div {
    outline: none; }
    .button > div > img {
      outline: none; }
  .button .label {
    text-align: center;
    text-transform: uppercase;
    font-weight: bold;
    color: #F9F9F9;
    line-height: 1.5em;
    padding: 0.5em;
    display: block;
    transition: 0.4s;
    -webkit-transition: 0.4s; }
  .button.linkButton .label {
    text-decoration: underline; }
  .button.linkButton.buttonFocussed {
    background-color: #ffc106;
    transform: scale(1.1); }
    .button.linkButton.buttonFocussed .label {
      color: #F9F9F9; }
  .button.linkButton.buttonBlurred {
    background-color: #FFFFFF;
    box-shadow: none;
    transform: scale(1); }
    .button.linkButton.buttonBlurred .label {
      color: #202020; }

.buttonFocussed {
  background-color: #ffc106;
  transform: scale(1.1); }

.buttonBlurred {
  transform: scale(1); }

.buttonFocussed.menuendpoint {
  background-color: #ffc106; }

.dark .button {
  background-color: #002D61;
  box-shadow: 0px 0.25em 0.58em rgba(220, 220, 220, 0.2); }
  .dark .button.linkButton.buttonFocussed {
    background-color: #FF9F00; }
    .dark .button.linkButton.buttonFocussed .label {
      color: #F9F9F9; }
  .dark .button.linkButton.buttonBlurred {
    background-color: #000000; }
    .dark .button.linkButton.buttonBlurred .label {
      color: #F9F9F9; }
  .dark .button.buttonFocussed {
    background-color: #FF9F00; }

.card-container {
  background-color: #2196f3;
  width: 100%;
  height: 100%;
  transition: 0.4s;
  -webkit-transition: 0.4s; }
  .card-container .card {
    margin-left: auto;
    margin-right: auto;
    max-width: 70em;
    color: #202020;
    background-color: #FFFFFF;
    box-shadow: 0px 0.25em 1.16em rgba(0, 0, 0, 0.2);
    border-radius: 0.17em;
    overflow-y: auto;
    overflow-x: hidden;
    transition: 0.4s;
    -webkit-transition: 0.4s;
    margin: 1.5em;
    padding: 2em;
    display: inline-block;
    min-width: 60em; }

.dark .card-container {
  background-color: #000000; }
  .dark .card-container .card {
    color: #F9F9F9;
    background-color: #000000;
    box-shadow: none;
    border-radius: 0; }

html {
  height: 100%; }

body {
  height: 100%;
  margin: 0;
  padding: 0;
  font-family: "Roboto", "Helvetica", sans-serif;
  font-weight: lighter;
  color: #202020;
  background-color: #2196f3;
  transition: 0.4s;
  -webkit-transition: 0.4s; }
  body.dark {
    color: #F9F9F9;
    background-color: #000000; }

#analytics-frame {
  width: 1px;
  height: 1px;
  position: absolute;
  right: 0;
  bottom: 0;
  visibility: hidden;
  border: 0; }

#log-box {
  width: 100vw;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10000;
  font-family: monospace;
  background-color: rgba(0, 0, 0, 0.5);
  overflow: scroll;
  min-height: 25%;
  max-height: 75%;
  font-size: 14pt;
  word-break: break-word;
  pointer-events: none; }
  #log-box.hidden {
    display: none; }
  #log-box .log-debug {
    color: #c1c7c7; }
  #log-box .log-info {
    color: #80a7c1; }
  #log-box .log-warn {
    color: #bcc23a; }
  #log-box .log-error {
    color: #fa827e; }

#app {
  text-align: center; }
  #app object {
    position: absolute; }

/* List widgets */
.horizontallist,
.verticallist {
  position: relative; }

.horizontallist .listitem {
  display: inline-block; }

/* nested lists - use #IDs instead for more complex layouts */
.verticallist .horizontallist .listitem {
  display: inline-block; }

.verticallist .listitem {
  display: block;
  position: relative; }

/* nested lists - use #IDs instead for more complex layouts */
.horizontallist .verticallist .listitem {
  display: block; }

/* Horizontal carousel widgets */
/* the mask is the top level of the carousel and defines where it is displayed and how much is visible */
.horizontallistmask {
  overflow: hidden;
  width: 100%; }

/* ensure nested carousels have correct formatting, you may need to target IDs in complex layouts */
.horizontallistmask .horizontallist .listitem {
  display: inline-block; }

.horizontalcarousel {
  width: 99999px;
  /* needs to be big enough so carousel plus clones do not flow onto more then one line */ }

/* DEVICE SPECIFIC DEFAULTS EXAMPLE ------------------ */
/* if you target some consoles you may need to add additional styles like this */
.someConsoles .horizontallist .listitem {
  display: inline-block;
  float: left; }

/* SAMPLEAPP BASE STYLES */
/* Core */
/* Maple needs initial element background in base stylesheet... not in dynamically loaded styles! */
/*
.samsung.layout540p #app {
    width: 960px;
    height: 540px;
    background-image: url(../img/bbc_background_540.png);
    background-repeat: no-repeat;
    background-color: red;
}

.samsung.layout720p #app {
    width: 1280px;
    height: 720px;
    background-image: url(../img/bbc_background_720.png);
    background-repeat: no-repeat;
}

.samsung.layout1080p #app {
    width: 1920px;
    height: 1080px;
    background-image: url(../img/bbc_background_1080.png);
    background-repeat: no-repeat;
}
*/
/* Sample app specific styles */
#title {
  font-size: 150%;
  line-height: 120%;
  display: block;
  text-align: center;
  margin: 2% auto 0 auto; }

.background-none {
  background-image: none !important;
  background-color: transparent !important; }

.description {
  text-align: center;
  display: block;
  position: absolute;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 1;
  padding: 8px 0px; }

#testPlayer {
  z-index: 0;
  position: absolute;
  top: 0px;
  left: 0px;
  width: 1280px;
  height: 720px; }

#playerButtons {
  z-index: 1;
  position: absolute;
  background-color: rgba(0, 0, 0, 0.5);
  display: block;
  text-align: center;
  padding: 8px;
  color: #000000; }

#playerButtons .button {
  width: 75px;
  padding: 10px;
  text-align: center;
  margin: 5px; }

/* Display & Visibility Helpers */
.display-none {
  display: none !important; }

.visibility-hidden {
  visibility: hidden !important; }

#progressBar {
  margin-top: 10%;
  width: 50%;
  margin-left: 25%;
  min-height: 10px;
  background: #070; }

#progressBar_left {
  min-height: 10px;
  background: #700; }

#progressBar_inner {
  width: 10px;
  min-height: 10px;
  background: #777;
  position: relative; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3ZjL2FwcC5jc3MiLCJzb3VyY2VzIjpbInd2Yy9hcHAuc2NzcyIsInd2Yy9fbG9hZGluZy5zY3NzIiwid3ZjL19jb2xvcnMuc2NzcyIsInd2Yy9jb21wb25lbnRzL19jb21wb25lbnRzLnNjc3MiLCJ3dmMvY29tcG9uZW50cy93aWRnZXRzL193aWRnZXRzLnNjc3MiLCJ3dmMvY29tcG9uZW50cy93aWRnZXRzL3N3aXRjaC9fc3dpdGNoLnNjc3MiLCJ3dmMvY29tcG9uZW50cy93aWRnZXRzL2NsaWNrYWJsZS1idXR0b24vX2NsaWNrYWJsZS1idXR0b24uc2NzcyIsInd2Yy9jb21wb25lbnRzL3dpZGdldHMvYmFjay1idXR0b24vX2JhY2stYnV0dG9uLnNjc3MiLCJ3dmMvY29tcG9uZW50cy93aWRnZXRzL3RleHQtaW5wdXQvX3RleHQtaW5wdXQuc2NzcyIsInd2Yy9jb21wb25lbnRzL3dpZGdldHMvbG9hZGluZy1iYXJzL19sb2FkaW5nLWJhcnMuc2NzcyIsInd2Yy9jb21wb25lbnRzL3dpZGdldHMveW91dHViZS12aWRlby9feW91dHViZS12aWRlby5zY3NzIiwid3ZjL2NvbXBvbmVudHMvd2lkZ2V0cy93dmMtbG9nby9fd3ZjLWxvZ28uc2NzcyIsInd2Yy9jb21wb25lbnRzL3dpZGdldHMvcmVjZWl2ZXItbG9nby9fcmVjZWl2ZXItbG9nby5zY3NzIiwid3ZjL2NvbXBvbmVudHMvd2lkZ2V0cy9zY2FubmluZy9fc2Nhbm5pbmcuc2NzcyIsInd2Yy9jb21wb25lbnRzL3dpZGdldHMvcXItY29kZS9fcXItY29kZS5zY3NzIiwid3ZjL2NvbXBvbmVudHMvd2lkZ2V0cy9nZXQtd3ZjL19nZXQtd3ZjLnNjc3MiLCJ3dmMvY29tcG9uZW50cy9kZW1vL19kZW1vLnNjc3MiLCJ3dmMvY29tcG9uZW50cy9zZXR0aW5ncy9fc2V0dGluZ3Muc2NzcyIsInd2Yy9jb21wb25lbnRzL3NldHRpbmdzL19sb2dnaW5nLnNjc3MiLCJ3dmMvY29tcG9uZW50cy9zZXR0aW5ncy9fc2V0dGluZy1zd2l0Y2guc2NzcyIsInd2Yy9jb21wb25lbnRzL3NlbmRlcnMvX3NlbmRlcnMuc2NzcyIsInd2Yy9jb21wb25lbnRzL3NlbmRlcnMvX3NlbmRlcnMtbGlzdC5zY3NzIiwid3ZjL2NvbXBvbmVudHMvc2VuZGVycy9fZGFyay1zd2l0Y2guc2NzcyIsInd2Yy9jb21wb25lbnRzL2Nvbm5lY3QvX2Nvbm5lY3Quc2NzcyIsInd2Yy9jb21wb25lbnRzL2Nvbm5lY3QvX2tleWJvYXJkLnNjc3MiLCJ3dmMvY29tcG9uZW50cy9jb25uZWN0L19sb2FkZXIuc2NzcyIsInd2Yy9jb21wb25lbnRzL3R1dG9yaWFsL190dXRvcmlhbC5zY3NzIiwid3ZjL2NvbXBvbmVudHMvaGVscC9faGVscC5zY3NzIiwid3ZjL2NvbXBvbmVudHMvY29ubmVjdGVkL19jb25uZWN0ZWQuc2NzcyIsInd2Yy9jb21wb25lbnRzL3ZpZGVvLXBsYXllci9fdmlkZW8tcGxheWVyLnNjc3MiLCJ3dmMvY29tcG9uZW50cy92aWRlby1wbGF5ZXIvX3NjcnViLWJhci5zY3NzIiwid3ZjL2NvbXBvbmVudHMvdmlkZW8tcGxheWVyL19zdWJ0aXRsZXMuc2NzcyIsInd2Yy9jb21wb25lbnRzL2ltYWdlLXBsYXllci9faW1hZ2UtcGxheWVyLnNjc3MiLCJ3dmMvd2ViLWZvbnRzL193ZWItZm9udHMuc2NzcyIsInd2Yy9fY2Fyb3VzZWwuc2NzcyIsInd2Yy9fYnV0dG9uLnNjc3MiLCJ3dmMvX2NhcmQuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwibG9hZGluZ1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvY29tcG9uZW50c1wiO1xuQGltcG9ydCBcIndlYi1mb250cy93ZWItZm9udHNcIjtcbkBpbXBvcnQgXCJjYXJvdXNlbFwiO1xuQGltcG9ydCBcImJ1dHRvblwiO1xuQGltcG9ydCBcImNhcmRcIjtcbkBpbXBvcnQgXCJjb2xvcnNcIjtcblxuXG5odG1sIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgLy9vdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xuICBjb2xvcjogJHRleHRDb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmRDb2xvcjtcbiAgdHJhbnNpdGlvbjogMC40cztcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjRzO1xuXG4gICYuZGFyayB7XG4gICAgY29sb3I6ICR0ZXh0Q29sb3ItZGFyaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZENvbG9yLWRhcms7XG4gIH1cbn1cblxuI2FuYWx5dGljcy1mcmFtZSB7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYm9yZGVyOiAwO1xufVxuXG4jbG9nLWJveCB7XG4gIHdpZHRoOiAxMDB2dztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxMDAwMDtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuNSk7XG4gIG92ZXJmbG93OiBzY3JvbGw7XG4gIG1pbi1oZWlnaHQ6IDI1JTtcbiAgbWF4LWhlaWdodDogNzUlO1xuICBmb250LXNpemU6IDE0cHQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICYuaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5sb2ctZGVidWcge1xuICAgIGNvbG9yOiAjYzFjN2M3O1xuICB9XG4gIC5sb2ctaW5mbyB7XG4gICAgY29sb3I6ICM4MGE3YzE7XG4gIH1cbiAgLmxvZy13YXJuIHtcbiAgICBjb2xvcjogI2JjYzIzYTtcbiAgfVxuICAubG9nLWVycm9yIHtcbiAgICBjb2xvcjogJHd2Y1JlZFxuICB9XG59XG5cbiNhcHAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgb2JqZWN0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbn1cblxuLyogTGlzdCB3aWRnZXRzICovXG4uaG9yaXpvbnRhbGxpc3QsXG4udmVydGljYWxsaXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uaG9yaXpvbnRhbGxpc3QgLmxpc3RpdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKiBuZXN0ZWQgbGlzdHMgLSB1c2UgI0lEcyBpbnN0ZWFkIGZvciBtb3JlIGNvbXBsZXggbGF5b3V0cyAqL1xuLnZlcnRpY2FsbGlzdCAuaG9yaXpvbnRhbGxpc3QgLmxpc3RpdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4udmVydGljYWxsaXN0IC5saXN0aXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qIG5lc3RlZCBsaXN0cyAtIHVzZSAjSURzIGluc3RlYWQgZm9yIG1vcmUgY29tcGxleCBsYXlvdXRzICovXG4uaG9yaXpvbnRhbGxpc3QgLnZlcnRpY2FsbGlzdCAubGlzdGl0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogSG9yaXpvbnRhbCBjYXJvdXNlbCB3aWRnZXRzICovXG4vKiB0aGUgbWFzayBpcyB0aGUgdG9wIGxldmVsIG9mIHRoZSBjYXJvdXNlbCBhbmQgZGVmaW5lcyB3aGVyZSBpdCBpcyBkaXNwbGF5ZWQgYW5kIGhvdyBtdWNoIGlzIHZpc2libGUgKi9cbi5ob3Jpem9udGFsbGlzdG1hc2sge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLyogZW5zdXJlIG5lc3RlZCBjYXJvdXNlbHMgaGF2ZSBjb3JyZWN0IGZvcm1hdHRpbmcsIHlvdSBtYXkgbmVlZCB0byB0YXJnZXQgSURzIGluIGNvbXBsZXggbGF5b3V0cyAqL1xuLmhvcml6b250YWxsaXN0bWFzayAuaG9yaXpvbnRhbGxpc3QgLmxpc3RpdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uaG9yaXpvbnRhbGNhcm91c2VsIHtcbiAgd2lkdGg6IDk5OTk5cHg7XG4gIC8qIG5lZWRzIHRvIGJlIGJpZyBlbm91Z2ggc28gY2Fyb3VzZWwgcGx1cyBjbG9uZXMgZG8gbm90IGZsb3cgb250byBtb3JlIHRoZW4gb25lIGxpbmUgKi9cbn1cblxuLyogREVWSUNFIFNQRUNJRklDIERFRkFVTFRTIEVYQU1QTEUgLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIGlmIHlvdSB0YXJnZXQgc29tZSBjb25zb2xlcyB5b3UgbWF5IG5lZWQgdG8gYWRkIGFkZGl0aW9uYWwgc3R5bGVzIGxpa2UgdGhpcyAqL1xuLnNvbWVDb25zb2xlcyAuaG9yaXpvbnRhbGxpc3QgLmxpc3RpdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogbGVmdDtcbn1cblxuLyogU0FNUExFQVBQIEJBU0UgU1RZTEVTICovXG5cbi8qIENvcmUgKi9cblxuLyogTWFwbGUgbmVlZHMgaW5pdGlhbCBlbGVtZW50IGJhY2tncm91bmQgaW4gYmFzZSBzdHlsZXNoZWV0Li4uIG5vdCBpbiBkeW5hbWljYWxseSBsb2FkZWQgc3R5bGVzISAqL1xuLypcbi5zYW1zdW5nLmxheW91dDU0MHAgI2FwcCB7XG4gICAgd2lkdGg6IDk2MHB4O1xuICAgIGhlaWdodDogNTQwcHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9iYmNfYmFja2dyb3VuZF81NDAucG5nKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbn1cblxuLnNhbXN1bmcubGF5b3V0NzIwcCAjYXBwIHtcbiAgICB3aWR0aDogMTI4MHB4O1xuICAgIGhlaWdodDogNzIwcHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9iYmNfYmFja2dyb3VuZF83MjAucG5nKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG4uc2Ftc3VuZy5sYXlvdXQxMDgwcCAjYXBwIHtcbiAgICB3aWR0aDogMTkyMHB4O1xuICAgIGhlaWdodDogMTA4MHB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvYmJjX2JhY2tncm91bmRfMTA4MC5wbmcpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4qL1xuXG4vKiBTYW1wbGUgYXBwIHNwZWNpZmljIHN0eWxlcyAqL1xuI3RpdGxlIHtcbiAgZm9udC1zaXplOiAxNTAlO1xuICBsaW5lLWhlaWdodDogMTIwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAyJSBhdXRvIDAgYXV0bztcbn1cblxuLmJhY2tncm91bmQtbm9uZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmRlc2NyaXB0aW9uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICB6LWluZGV4OiAxO1xuICBwYWRkaW5nOiA4cHggMHB4O1xufVxuXG4jdGVzdFBsYXllciB7XG4gIHotaW5kZXg6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDEyODBweDtcbiAgaGVpZ2h0OiA3MjBweDtcbn1cblxuI3BsYXllckJ1dHRvbnMge1xuICB6LWluZGV4OiAxO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogOHB4O1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuI3BsYXllckJ1dHRvbnMgLmJ1dHRvbiB7XG4gIHdpZHRoOiA3NXB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4vKiBEaXNwbGF5ICYgVmlzaWJpbGl0eSBIZWxwZXJzICovXG4uZGlzcGxheS1ub25lIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udmlzaWJpbGl0eS1oaWRkZW4ge1xuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuI3Byb2dyZXNzQmFyIHtcbiAgbWFyZ2luLXRvcDogMTAlO1xuICB3aWR0aDogNTAlO1xuICBtYXJnaW4tbGVmdDogMjUlO1xuICBtaW4taGVpZ2h0OiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjMDcwO1xufVxuXG4jcHJvZ3Jlc3NCYXJfbGVmdCB7XG4gIG1pbi1oZWlnaHQ6IDEwcHg7XG4gIGJhY2tncm91bmQ6ICM3MDA7XG59XG5cbiNwcm9ncmVzc0Jhcl9pbm5lciB7XG4gIHdpZHRoOiAxMHB4O1xuICBtaW4taGVpZ2h0OiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjNzc3O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59IiwiQGltcG9ydCBcImNvbG9yc1wiO1xuXG4jc3RhdGljLWxvYWRpbmctc2NyZWVuIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDogMTAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3dmNCbHVlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgICNhcHAtbG9hZC1lcnJvci1tZXNzYWdlIHtcbiAgICAgICAgZm9udC1zaXplOiAyZW07XG4gICAgICAgIHBhZGRpbmc6IDNlbTtcbiAgICB9XG5cbiAgICAubG9hZGluZy1iYXJzIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAyZW07XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMi4zZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBtYXJnaW46IDEuN2VtIDA7XG4gICAgICAgIHBhZGRpbmc6IDAgNC4yZW07XG4gICAgfVxufSIsIiR3dmNXaGl0ZTogI0ZGRkZGRjtcbiR3dmNBbG1vc3RXaGl0ZTogI0Y5RjlGOTtcbiR3dmNCbGFjazogIzAwMDAwMDtcbiR3dmNBbG1vc3RCbGFjazogIzIwMjAyMDtcbiR3dmNMaWdodEdyZXk6ICNFRkVGRUY7XG4kd3ZjTWVkR3JleTogI0NDQ0NDQztcbiR3dmNEYXJrR3JleTogIzQxNDE0MTtcblxuXG4kd3ZjQmx1ZTogIzIxOTZmMztcbiR3dmNCbHVlLWRhcms6ICMwMDJENjE7XG4kd3ZjWWVsbG93OiAjZmZjMTA2O1xuJHd2Y1llbGxvdy1kYXJrOiAjRkY5RjAwO1xuJHd2Y1JlZDogI2ZhODI3ZTtcblxuJHNoYWRvd0NvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7XG4kc2hhZG93Q29sb3ItZGFyazogcmdiYSgyMjAsIDIyMCwgMjIwLCAwLjIpO1xuXG4kdGV4dENvbG9yOiAkd3ZjQWxtb3N0QmxhY2s7XG4kdGV4dENvbG9yLWRhcms6ICR3dmNBbG1vc3RXaGl0ZTtcblxuJGJhY2tncm91bmRDb2xvcjogJHd2Y0JsdWU7XG4kYmFja2dyb3VuZENvbG9yLWRhcms6ICR3dmNCbGFjazsiLCJAaW1wb3J0ICd3aWRnZXRzL3dpZGdldHMnO1xuXG5AaW1wb3J0ICcuL2RlbW8vZGVtbyc7XG5AaW1wb3J0ICcuL3NldHRpbmdzL3NldHRpbmdzJztcbkBpbXBvcnQgJy4vc2VuZGVycy9zZW5kZXJzJztcbkBpbXBvcnQgJy4vY29ubmVjdC9jb25uZWN0JztcbkBpbXBvcnQgJy4vdHV0b3JpYWwvdHV0b3JpYWwnO1xuQGltcG9ydCAnLi9oZWxwL2hlbHAnO1xuQGltcG9ydCAnLi9jb25uZWN0ZWQvY29ubmVjdGVkJztcbkBpbXBvcnQgJy4vdmlkZW8tcGxheWVyL3ZpZGVvLXBsYXllcic7XG5AaW1wb3J0ICcuL2ltYWdlLXBsYXllci9pbWFnZS1wbGF5ZXInOyIsIkBpbXBvcnQgJ3N3aXRjaC9zd2l0Y2gnO1xuQGltcG9ydCAnY2xpY2thYmxlLWJ1dHRvbi9jbGlja2FibGUtYnV0dG9uJztcbkBpbXBvcnQgJ2JhY2stYnV0dG9uL2JhY2stYnV0dG9uJztcbkBpbXBvcnQgJ3RleHQtaW5wdXQvdGV4dC1pbnB1dCc7XG5AaW1wb3J0ICdsb2FkaW5nLWJhcnMvbG9hZGluZy1iYXJzJztcbkBpbXBvcnQgJ3lvdXR1YmUtdmlkZW8veW91dHViZS12aWRlbyc7XG5AaW1wb3J0ICd3dmMtbG9nby93dmMtbG9nbyc7XG5AaW1wb3J0ICdyZWNlaXZlci1sb2dvL3JlY2VpdmVyLWxvZ28nO1xuQGltcG9ydCAnc2Nhbm5pbmcvc2Nhbm5pbmcnO1xuQGltcG9ydCAncXItY29kZS9xci1jb2RlJztcbkBpbXBvcnQgJ2dldC13dmMvZ2V0LXd2Yyc7IiwiQGltcG9ydCBcIi4uLy4uLy4uL2NvbG9yc1wiO1xuXG4uc3dpdGNoIHtcbiAgZm9udC1zaXplOiAyLjVlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyZW07XG4gIGhlaWdodDogMWVtO1xuICBib3JkZXItcmFkaXVzOiAxZW07XG4gIGJvcmRlci13aWR0aDogMC4xNWVtO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC40cztcbiAgdHJhbnNpdGlvbjogMC40cztcblxuICAmLnN3aXRjaEZvY3Vzc2VkIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJHd2Y1llbGxvdztcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMyk7XG4gICAgLy9ib3gtc2hhZG93OiAwIDAgMC41OGVtICR3dmNZZWxsb3csIDAgMCAwLjI5ZW0gJHd2Y1llbGxvdywgMCAwIDAuMTRlbSAkd3ZjWWVsbG93LCAwIDAgMC4wOWVtICR3dmNZZWxsb3c7XG4gIH1cbiAgXG4gIC5zd2l0Y2hTbGlkZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3dmNNZWRHcmV5O1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogMC40cztcbiAgICB0cmFuc2l0aW9uOiAwLjRzO1xuICAgIGJvcmRlci1yYWRpdXM6IDFlbTtcblxuICAgIFxuICAgICY6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBoZWlnaHQ6IDAuNzZlbTtcbiAgICAgIHdpZHRoOiAwLjc2ZW07XG4gICAgICBsZWZ0OiAwLjExN2VtO1xuICAgICAgYm90dG9tOiAwLjExN2VtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHd2Y1doaXRlO1xuICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjRzO1xuICAgICAgdHJhbnNpdGlvbjogMC40cztcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB9XG4gIH1cblxuICAmLnN3aXRjaE9uIHtcbiAgICAuc3dpdGNoU2xpZGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3dmNCbHVlO1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDFlbSk7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMWVtKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDFlbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5kYXJrIC5zd2l0Y2gge1xuICAmLmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICR3dmNZZWxsb3ctZGFyaztcbiAgfVxuXG4gICYuc3dpdGNoT24ge1xuICAgIC5zd2l0Y2hTbGlkZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHd2Y0JsdWUtZGFyaztcbiAgICB9XG4gIH1cbn1cbiIsIi5jbGlja2FibGUtYnV0dG9uIHtcbiAgJi5idXR0b24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC5sYWJlbCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gIH1cbn0iLCIjYXBwIHtcbiAgICAjYmFjay1idXR0b24ge1xuICAgICAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAyZW07XG4gICAgICAgIGhlaWdodDogMmVtO1xuICAgICAgICB6LWluZGV4OiAxMDAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2NvbXBvbmVudHMvd2lkZ2V0cy9iYWNrLWJ1dHRvbi9pbWFnZXMvZXhpdC5wbmcnKTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXG4gICAgICAgICYuYnV0dG9uRm9jdXNzZWQge1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnY29tcG9uZW50cy93aWRnZXRzL2JhY2stYnV0dG9uL2ltYWdlcy9leGl0LXdoaXRlLnBuZycpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZGFyayAjYXBwICNiYWNrLWJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdjb21wb25lbnRzL3dpZGdldHMvYmFjay1idXR0b24vaW1hZ2VzL2V4aXQtd2hpdGUucG5nJyk7XG59IiwiQGltcG9ydCBcIi4uLy4uLy4uL2NvbG9yc1wiO1xuXG4kaW5wdXRCYWNrZ3JvdW5kQ29sb3I6ICR3dmNMaWdodEdyZXk7XG4kaW5wdXRCYWNrZ3JvdW5kQ29sb3ItZGFyazogJHd2Y0RhcmtHcmV5O1xuXG4kcGxhY2Vob2xkZXJDb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuJHBsYWNlaG9sZGVyQ29sb3ItZGFyazogcmdiYSgyMjAsIDIyMCwgMjIwLCAwLjIpO1xuXG4kYm9yZGVyQ29sb3I6ICR3dmNCbHVlO1xuJGJvcmRlckNvbG9yLWRhcms6ICR3dmNCbHVlLWRhcms7XG5cbi50ZXh0LWlucHV0IHtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLCBib3gtc2hhZG93IDAuM3MgZWFzZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBib3JkZXIsIGJveC1zaGFkb3cgMC4zcyBlYXNlO1xuICBjb2xvcjogJHRleHRDb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0QmFja2dyb3VuZENvbG9yO1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICBvdXRsaW5lOiBub25lO1xuXG4gIHRyYW5zaXRpb246IGJvcmRlciwgYm94LXNoYWRvdyAwLjNzIGVhc2U7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyLCBib3gtc2hhZG93IDAuM3MgZWFzZTtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlckNvbG9yO1xuICBib3gtc2hhZG93OiAwIDAgNXB4ICRib3JkZXJDb2xvcjtcblxuICAmLnBsYWNlaG9sZGVyIHtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29sb3I6ICR0ZXh0Q29sb3I7XG4gICAgYW5pbWF0aW9uOiAxcyBibGluayBzdGVwLWVuZCBpbmZpbml0ZTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogMXMgd2Via2l0LWJsaW5rIHN0ZXAtZW5kIGluZmluaXRlO1xuICAgIGNvbnRlbnQ6ICd8JztcbiAgfVxuXG4gIEBrZXlmcmFtZXMgYmxpbmsge1xuICAgIGZyb20sIHRvIHtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgIGNvbG9yOiAkdGV4dENvbG9yXG4gICAgfVxuICB9XG4gIFxuICBALXdlYmtpdC1rZXlmcmFtZXMgd2Via2l0LWJsaW5rIHtcbiAgICBmcm9tLCB0byB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICBjb2xvcjogJHRleHRDb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLmRhcmsgI2FwcCAudGV4dC1pbnB1dCB7XG4gIGNvbG9yOiAkdGV4dENvbG9yLWRhcms7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dEJhY2tncm91bmRDb2xvci1kYXJrO1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyQ29sb3ItZGFyaztcbiAgYm94LXNoYWRvdzogMCAwIDVweCAkYm9yZGVyQ29sb3ItZGFyaztcblxuICAmOjphZnRlciB7XG4gICAgY29sb3I6ICR0ZXh0Q29sb3ItZGFyaztcbiAgICBhbmltYXRpb246IDFzIGJsaW5rLWRhcmsgc3RlcC1lbmQgaW5maW5pdGU7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IDFzIHdlYmtpdC1ibGluay1kYXJrIHN0ZXAtZW5kIGluZmluaXRlO1xuICB9XG5cbiAgQGtleWZyYW1lcyBibGluay1kYXJrIHtcbiAgICBmcm9tLCB0byB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICBjb2xvcjogJHRleHRDb2xvci1kYXJrO1xuICAgIH1cbiAgfVxuICBcbiAgQC13ZWJraXQta2V5ZnJhbWVzIHdlYmtpdC1ibGluay1kYXJrIHtcbiAgICBmcm9tLCB0byB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICBjb2xvcjogJHRleHRDb2xvci1kYXJrO1xuICAgIH1cbiAgfVxufSIsIi5sb2FkaW5nLWJhcnMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDUuM2VtO1xuICBoZWlnaHQ6IDUuM2VtO1xufVxuLmxvYWRpbmctYmFycyBkaXYge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMC41ZW07XG4gIHdpZHRoOiAxZW07XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGFuaW1hdGlvbjogbG9hZGluZy1iYXJzIDEuMnMgY3ViaWMtYmV6aWVyKDAsIDAuNSwgMC41LCAxKSBpbmZpbml0ZTtcbiAgLXdlYmtpdC1hbmltYXRpb246IHdlYmtpdC1sb2FkaW5nLWJhcnMgMS4ycyBjdWJpYy1iZXppZXIoMCwgMC41LCAwLjUsIDEpIGluZmluaXRlO1xufVxuLmxvYWRpbmctYmFycyBkaXY6bnRoLWNoaWxkKDEpIHtcbiAgbGVmdDogMC41ZW07XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMjRzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTAuMjRzO1xufVxuLmxvYWRpbmctYmFycyBkaXY6bnRoLWNoaWxkKDIpIHtcbiAgbGVmdDogMi4xNWVtO1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjEycztcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjEycztcbn1cbi5sb2FkaW5nLWJhcnMgZGl2Om50aC1jaGlsZCgzKSB7XG4gIGxlZnQ6IDMuNzVlbTtcbiAgYW5pbWF0aW9uLWRlbGF5OiAwO1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMDtcbn1cblxuQGtleWZyYW1lcyBsb2FkaW5nLWJhcnMge1xuICAwJSB7XG4gICAgdG9wOiAwLjVlbTtcbiAgICBoZWlnaHQ6IDQuMjVlbTtcbiAgfVxuICA1MCUsIDEwMCUge1xuICAgIHRvcDogMS42ZW07XG4gICAgaGVpZ2h0OiAyLjJlbTtcbiAgfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgd2Via2l0LWxvYWRpbmctYmFycyB7XG4gIDAlIHtcbiAgICB0b3A6IDAuNWVtO1xuICAgIGhlaWdodDogNC4yNWVtO1xuICB9XG4gIDUwJSwgMTAwJSB7XG4gICAgdG9wOiAxLjZlbTtcbiAgICBoZWlnaHQ6IDIuMmVtO1xuICB9XG59IiwiLnlvdXR1YmUtdmlkZW8ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufSIsIiRsb2dvU2l6ZTogNGVtO1xuXG4jYXBwIHtcbiAgICAud3ZjLWxvZ28ge1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogJGxvZ29TaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbG9nb1NpemU7XG4gICAgICAgIH1cbiAgICB9XG5cbn0iLCIkbG9nb1NpemU6IDVlbTtcblxuI2FwcCB7XG4gICAgLnJlY2VpdmVyLWxvZ28ge1xuICAgICAgICBwYWRkaW5nOiAwcHg7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogJGxvZ29TaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbG9nb1NpemU7XG4gICAgICAgIH1cbiAgICB9XG5cbn0iLCIkZHVyYXRpb246IDNzO1xuXG4uc2Nhbm5pbmcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBkaXYge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIH1cblxuICBkaXY6bnRoLWNoaWxkKDEpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2NvbXBvbmVudHMvd2lkZ2V0cy9zY2FubmluZy9pbWFnZXMvc2Nhbi0xLnBuZycpO1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxuXG4gIGRpdjpudGgtY2hpbGQoMikge1xuICAgIGFuaW1hdGlvbjogc2Nhbm5pbmctYW5pbS0yICRkdXJhdGlvbiBpbmZpbml0ZTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogd2Via2l0LXNjYW5uaW5nLWFuaW0tMiAkZHVyYXRpb24gaW5maW5pdGU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2NvbXBvbmVudHMvd2lkZ2V0cy9zY2FubmluZy9pbWFnZXMvc2Nhbi0yLnBuZycpO1xuICB9XG5cbiAgZGl2Om50aC1jaGlsZCgzKSB7XG4gICAgYW5pbWF0aW9uOiBzY2FubmluZy1hbmltLTMgJGR1cmF0aW9uIGluZmluaXRlO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiB3ZWJraXQtc2Nhbm5pbmctYW5pbS0zICRkdXJhdGlvbiBpbmZpbml0ZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnY29tcG9uZW50cy93aWRnZXRzL3NjYW5uaW5nL2ltYWdlcy9zY2FuLTMucG5nJyk7XG4gIH1cblxufVxuXG5Aa2V5ZnJhbWVzIHNjYW5uaW5nLWFuaW0tMiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDI1JSwgNzUlIHtcbiAgICBvcGFjaXR5OiAxXG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNjYW5uaW5nLWFuaW0tMyB7XG4gIDAlLCAyNSUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxXG4gIH1cbiAgNzUlLCAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB3ZWJraXQtc2Nhbm5pbmctYW5pbS0yIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMjUlLCA3NSUge1xuICAgIG9wYWNpdHk6IDFcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB3ZWJraXQtc2Nhbm5pbmctYW5pbS0zIHtcbiAgMCUsIDI1JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDFcbiAgfVxuICA3NSUsIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmRhcmsgLnNjYW5uaW5nIHtcbiAgZGl2Om50aC1jaGlsZCgxKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdjb21wb25lbnRzL3dpZGdldHMvc2Nhbm5pbmcvaW1hZ2VzL3NjYW4tMS1kYXJrLnBuZycpO1xuICB9XG5cbiAgZGl2Om50aC1jaGlsZCgyKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdjb21wb25lbnRzL3dpZGdldHMvc2Nhbm5pbmcvaW1hZ2VzL3NjYW4tMi1kYXJrLnBuZycpO1xuICB9XG5cbiAgZGl2Om50aC1jaGlsZCgzKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdjb21wb25lbnRzL3dpZGdldHMvc2Nhbm5pbmcvaW1hZ2VzL3NjYW4tMy1kYXJrLnBuZycpO1xuICB9XG59IiwiLnFyLWNvZGUge1xuICAgIC5xciA+IGltZyB7XG4gICAgICB3aWR0aDogN2VtO1xuICAgICAgaGVpZ2h0OiA3ZW07XG4gICAgfVxuXG4gICAgLnFyLWxhYmVsIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBhZGRpbmctdG9wOiAwLjFlbTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAucXItdHlwZSB7XG4gICAgICB3aWR0aDogMmVtO1xuICAgICAgaGVpZ2h0OiAyZW07XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cbiAgICAgICYucXItdHlwZS1pb3Mge1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjRzO1xuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IDAuNHM7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnY29tcG9uZW50cy93aWRnZXRzL3FyLWNvZGUvaW1hZ2VzL2lvcy5wbmcnKTtcbiAgICAgIH1cbiAgXG4gICAgICAmLnFyLXR5cGUtYW5kcm9pZCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnY29tcG9uZW50cy93aWRnZXRzL3FyLWNvZGUvaW1hZ2VzL2FuZHJvaWQucG5nJyk7XG4gICAgICB9XG4gICAgfVxufVxuXG4uZGFyayAjYXBwIC5xci1jb2RlIHtcbiAgLnFyLXR5cGUge1xuICAgICYucXItdHlwZS1pb3Mge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdjb21wb25lbnRzL3dpZGdldHMvcXItY29kZS9pbWFnZXMvaW9zLWRhcmsucG5nJyk7XG4gICAgfVxuICB9XG59IiwiQGltcG9ydCBcIi4uLy4uLy4uL2NvbG9yc1wiO1xuXG4jYXBwIHtcbiAgICAuZ2V0LXd2YyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBcbiAgICAgICAgLnFyLWNvZGUge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgI2FuZHJvaWQtY29udGFpbmVyLFxuICAgICAgICAjaW9zLWNvbnRhaW5lcixcbiAgICAgICAgI2RvbnQtaGF2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICB9XG5cbiAgICAgICAgI2RvbnQtaGF2ZSB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVlbTtcbiAgICAgICAgICAgIG1heC13aWR0aDogNDBlbTtcblxuICAgICAgICAgICAgJj4ubGFiZWwsICNvci1nby10byB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDQwZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI2RvbnQtaGF2ZS1vci1nby10byB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC40ZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICNkb250LWhhdmUtdGl0bGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzIxOTZmMztcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjRzO1xuICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogMC40cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI2hlbHAtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIFxuICAgICAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmRhcmsgI2FwcCAuZ2V0LXd2YyB7XG4gICAgICAgICNkb250LWhhdmUge1xuICAgICAgICAgICAgI2RvbnQtaGF2ZS10aXRsZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0ZXh0Q29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxufSIsIiNjc3MtZGVtb3Mge1xuICA+IC5pbWFnZSBpbWcge1xuICAgIHdpZHRoOiA4ZW07XG4gICAgaGVpZ2h0OiA4ZW07XG4gIH1cblxuICAjZGVtby1jb250YWluZXIge1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG5cbiAgICAjc3NsLXRlc3RzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAmID4gLmJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbjogMWVtO1xuICAgICAgfVxuICAgIH1cblxuICAgICNzc2wtdGVzdC1yZXN1bHQsICNzdXBwb3J0ZWQge1xuICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIH1cbiAgfVxufVxuXG4jY3NzLWRlbW8tem9vbSxcbiNjc3MtZGVtby1yb3RhdGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgPiAuY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbiNjc3MtZGVtby16b29tIHtcblxuICA+IC5pbWFnZSBpbWcge1xuICAgIHdpZHRoOiA0ZW07XG4gICAgaGVpZ2h0OiA0ZW07XG4gIH1cblxuICAjZGVtby1pbWctem9vbS00MCB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjQsIDAuNCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNCwgMC40KTtcbiAgfVxuXG4gICNkZW1vLWltZy16b29tLTgwIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCwgMC44KTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44LCAwLjgpO1xuICB9XG5cbiAgI2RlbW8taW1nLXpvb20tMTIwIHtcbiAgICBwYWRkaW5nOiA3cHg7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIsIDEuMik7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMiwgMS4yKTtcbiAgfVxuXG4gICNkZW1vLWltZy16b29tLTE2MCB7XG4gICAgcGFkZGluZzogMjJweDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNiwgMS42KTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS42LCAxLjYpO1xuICB9XG5cbiAgI2RlbW8taW1nLXpvb20tMjAwIHtcbiAgICBwYWRkaW5nOiAzNnB4O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMiwgMik7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDIsIDIpO1xuICB9XG59XG5cbiNkZW1vLWltZy1yb3RhdGUtOTAge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuXG4jZGVtby1pbWctcm90YXRlLTE4MCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuI2RlbW8taW1nLXJvdGF0ZS0yNzAge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG59XG5cbiNkZW1vLWltZy1yb3RhdGUtMjcwIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xufVxuXG4jY2FyLWRyaXZlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBhbmltYXRpb246IGRyaXZlIDNzIGluZmluaXRlO1xuICAtd2Via2l0LWFuaW1hdGlvbjogd2Via2l0LWRyaXZlIDNzIGluZmluaXRlO1xufVxuXG4ja2V5Y29kZSwgI2JldGFzIHtcbiAgI2tleWNvZGUtY29udGFpbmVyLCAjYmV0YXMtY29udGFpbmVyIHtcbiAgICAmPiAubGFiZWwge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDJlbTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTtcbiAgICB9XG4gIH1cbn1cblxuQGtleWZyYW1lcyBkcml2ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMHB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwcHgpO1xuICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB3ZWJraXQtZHJpdmUge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMHB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDBweCk7XG4gIH1cbn0iLCJAaW1wb3J0ICcuL2xvZ2dpbmcnO1xuQGltcG9ydCAnLi9zZXR0aW5nLXN3aXRjaCc7XG5cbiAgLnNldHRpbmctbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfSIsIiNsb2dnaW5nIHtcbiAgI2JhY2stYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAyZW07XG4gIH1cblxuICAuaG9yaXpvbnRhbGxpc3Qge1xuICAgID4gLmJ1dHRvbiB7XG4gICAgICBtYXJnaW4tbGVmdDogMC41ZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICAgIH1cbiAgfVxufSIsIlxuLnNldHRpbmctc3dpdGNoIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OztcblxuICAgIC5ob3Jpem9udGFsbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1ZW07XG5cbiAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNWVtO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuICAgICAgICAuc3dpdGNoIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41ZW07XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG4gICAgfVxufSIsIkBpbXBvcnQgXCJzZW5kZXJzLWxpc3RcIjtcbkBpbXBvcnQgXCJkYXJrLXN3aXRjaFwiO1xuXG4jYXBwIHtcbiAgI3NlbmRlcnMge1xuXG4gICAgI3NlbmRlcnMtdG9wIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxZW07XG5cbiAgICAgICYgPiAubGlzdGl0ZW0ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgfVxuXG4gICAgICAjc2VuZGVycy1kZXRlY3RlZCB7XG4gICAgICAgIG1pbi13aWR0aDogMzVlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogMmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oZWFkaW5nIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB3aGl0ZS1zcGFjZTogd3JhcDtcbiAgICB9XG5cbiAgICAjbG9nby1zZWN0aW9uIHtcbiAgICAgIHBhZGRpbmctbGVmdDogNmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMWVtO1xuICAgICAgcGFkZGluZy10b3A6IDFlbTtcblxuICAgICAgLnJlY2VpdmVyLWxvZ28gaW1nIHtcbiAgICAgICAgd2lkdGg6IDE2ZW07XG4gICAgICAgIGhlaWdodDogMTZlbTtcbiAgICAgIH1cblxuICAgICAgI2Rhcmstc3dpdGNoIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuN2VtO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAjc2Nhbm5pbmctbGlzdCwgI3NjYW5uaW5nLXN0b3BwZWQtbGlzdCwgI3NlbGVjdC1zZW5kZXIge1xuICAgICAgZm9udC1zaXplOiAyZW07XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgfVxuXG4gICAgI3NjYW5uaW5nLWxpc3QsICNzY2FubmluZy1zdG9wcGVkLWxpc3Qge1xuICAgICAgLmxhYmVsIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxNWVtO1xuICAgICAgfVxuXG4gICAgICAubGlzdGl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIC5zY2FubmluZyB7XG4gICAgICAgIHdpZHRoOiAxZW07XG4gICAgICAgIGhlaWdodDogMWVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgICAgIH1cblxuICAgICAgI3JlbW90ZSB7XG4gICAgICAgIHdpZHRoOiAxLjVlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjVlbTtcblxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2NvbXBvbmVudHMvc2VuZGVycy9pbWFnZXMvcmVtb3RlLnBuZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIH1cblxuICAgICAgLnNjYW5uaW5nLCAjcmVtb3RlIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICNzY2FubmluZy1zdG9wcGVkLWxpc3Qge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAjYXBwLXZlcnNpb24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGNvbG9yOiAjMTA1MDk4O1xuICAgICAgcGFkZGluZzogMC4yZW07XG4gICAgICBmb250LXNpemU6IDFlbTtcbiAgICB9XG5cbiAgICAjY29ubmVjdC1tYW51YWxseSB7XG4gICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgICBtYXgtd2lkdGg6IDI1ZW07XG4gICAgfVxuXG4gICAgI3NlbGVjdC1zZW5kZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIG1heC13aWR0aDogMjBlbTtcbiAgICB9XG5cbiAgICAmLnNlbmRlcnMtYXZhaWxhYmxlIHtcbiAgICAgICNzZWxlY3Qtc2VuZGVyIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgICAgIH1cblxuICAgICAgI3NjYW5uaW5nLWxpc3QsICNzY2FubmluZy1zdG9wcGVkLWxpc3Qge1xuICAgICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG5cbiAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDQwZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNjYW5uaW5nLWFjdGl2ZSB7XG4gICAgICAjc2Nhbm5pbmctbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAjc2Nhbm5pbmctc3RvcHBlZC1saXN0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNjYW5uaW5nLWluYWN0aXZlIHtcbiAgICAgICNzY2FubmluZy1saXN0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgI3NjYW5uaW5nLXN0b3BwZWQtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbi5kYXJrICNhcHAgI3NlbmRlcnMge1xuICAjYXBwLXZlcnNpb24ge1xuICAgIGNvbG9yOiAjODI4MjgyO1xuICB9IFxuXG5cbiAgI3NjYW5uaW5nLXN0b3BwZWQtbGlzdCB7XG4gICAgI3JlbW90ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2NvbXBvbmVudHMvc2VuZGVycy9pbWFnZXMvcmVtb3RlLWRhcmsucG5nJyk7XG4gICAgfVxuICB9XG59IiwiQGltcG9ydCBcIi4uLy4uL2NvbG9yc1wiO1xuXG4kYnV0dG9uQmx1ckNvbG9yOiAkd3ZjQWxtb3N0V2hpdGU7XG4kYnV0dG9uRm9jdXNDb2xvcjogJHd2Y1llbGxvdztcbiRidXR0b25Gb2N1c0NvbG9yLWRhcms6ICR3dmNZZWxsb3ctZGFyaztcbiRpY29uQmFja2dyb3VuZENvbG9yOiAkd3ZjTWVkR3JleTtcblxuI2FwcCAjc2VuZGVycyAjc2VuZGVycy1saXN0IHtcbiAgICBtYXgtd2lkdGg6IDQ1ZW07XG5cbiAgICAuc2VuZGVyLWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMGVtO1xuICAgICAgICBoZWlnaHQ6IDcuNWVtO1xuICAgICAgICBtYXJnaW46IDFlbTtcbiAgICAgICAgdHJhbnNmb3JtOiAwLjRzO1xuXG4gICAgICAgICYuYnV0dG9uRm9jdXNzZWQgLnNlbmRlci1jb250YWluZXIgLnNlbmRlci1sYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogJHRleHRDb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNlbmRlci1jb250YWluZXIge1xuICAgICAgICAgICAgLnNlbmRlci1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGljb25CYWNrZ3JvdW5kQ29sb3I7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAzZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41ZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC41ZW07XG5cbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNlbmRlci1sYWJlbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICAmLmJ1dHRvbkZvY3Vzc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25Gb2N1c0NvbG9yO1xuICAgICAgICAgICAgLy9hbmltYXRpb246IHNlbmRlci1idXR0b24tY29sb3IgMC40cyBlYXNlO1xuICAgICAgICAgICAgLy8td2Via2l0LWFuaW1hdGlvbjogd2Via2l0LXNlbmRlci1idXR0b24tY29sb3IgMC40cyBlYXNlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5idXR0b25CbHVycmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25CbHVyQ29sb3I7XG4gICAgICAgICAgICAvL2FuaW1hdGlvbjogc2VuZGVyLWJ1dHRvbi1jb2xvci1vZmYgMC4ycyBlYXNlO1xuICAgICAgICAgICAgLy8td2Via2l0LWFuaW1hdGlvbjogd2Via2l0LXNlbmRlci1idXR0b24tY29sb3Itb2ZmIDAuMnMgZWFzZTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIH1cblxuICAgICAgICBAa2V5ZnJhbWVzIHNlbmRlci1idXR0b24tY29sb3Ige1xuICAgICAgICAgICAgZnJvbSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbkJsdXJDb2xvcjtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0byB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbkZvY3VzQ29sb3I7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGtleWZyYW1lcyBzZW5kZXItYnV0dG9uLWNvbG9yLW9mZiB7XG4gICAgICAgICAgICBmcm9tIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uRm9jdXNDb2xvcjtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRvIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uQmx1ckNvbG9yO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBALXdlYmtpdC1rZXlmcmFtZXMgd2Via2l0LXNlbmRlci1idXR0b24tY29sb3Ige1xuICAgICAgICAgICAgZnJvbSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbkJsdXJDb2xvcjtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0byB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbkZvY3VzQ29sb3I7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIHdlYmtpdC1zZW5kZXItYnV0dG9uLWNvbG9yLW9mZiB7XG4gICAgICAgICAgICBmcm9tIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uRm9jdXNDb2xvcjtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRvIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uQmx1ckNvbG9yO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5kYXJrICNhcHAgI3NlbmRlcnMgI3NlbmRlcnMtbGlzdCB7XG4gICAgLnNlbmRlci1idXR0b24ge1xuICAgICAgICAmLmJ1dHRvbkZvY3Vzc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25Gb2N1c0NvbG9yLWRhcms7IFxuICAgICAgICB9XG4gICAgfVxufSIsIiNkYXJrLXN3aXRjaCB7XG4gICAgLnN3aXRjaFNsaWRlciB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnY29tcG9uZW50cy9zZW5kZXJzL2ltYWdlcy9iZy1saWdodC1tb2RlLnBuZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2NvbXBvbmVudHMvc2VuZGVycy9pbWFnZXMvbGlnaHQtbW9kZS5wbmcnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN3aXRjaE9uIC5zd2l0Y2hTbGlkZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2NvbXBvbmVudHMvc2VuZGVycy9pbWFnZXMvYmctZGFyay1tb2RlLnBuZycpO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnY29tcG9uZW50cy9zZW5kZXJzL2ltYWdlcy9kYXJrLW1vZGUucG5nJyk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGltcG9ydCAnLi9rZXlib2FyZCc7XG5AaW1wb3J0ICcuL2xvYWRlcic7XG5cbiR3aWR0aDogMzJlbTtcbiRsb2dvU2l6ZTogNGVtO1xuXG4jY29ubmVjdCB7XG5cbiAgI3R1dG9yaWFsLWJ1dHRvbiB7XG4gICAgcGFkZGluZzogMC41ZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDIuNWVtO1xuICAgIHotaW5kZXg6IDEwMDA7XG4gIH1cblxuICAjbG9nby1jb250YWluZXIge1xuICAgIGhlaWdodDogNGVtO1xuXG4gICAgI2J1c3ktY29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiA0ZW07XG4gICAgICBoZWlnaHQ6IDRlbTtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5sb2FkaW5nICNidXN5LWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgICNlcnJvciwgI3N1Y2Nlc3Mge1xuICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgIH1cbiAgICBcbiAgICAmLmVycm9yICNlcnJvciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgJi5zdWNjZXNzICNzdWNjZXNzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICNlcnJvciB7XG4gICAgICBoZWlnaHQ6ICRsb2dvU2l6ZTtcbiAgICAgIHBhZGRpbmc6IDRweDtcblxuICAgICAgI2Vycm9yLW1lc3NhZ2Uge1xuICAgICAgICBoZWlnaHQ6ICRsb2dvU2l6ZSAqIDAuMjU7XG4gICAgICB9XG5cbiAgICAgICNlcnJvci1pbWcge1xuICAgICAgICBtYXJnaW4tbGVmdCA6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIHBhZGRpbmc6ICgkbG9nb1NpemUgKiAwLjc1KSAqIDAuMTU7XG4gICAgICAgICAgd2lkdGg6ICgkbG9nb1NpemUgKiAwLjc1KSAtICgoKCRsb2dvU2l6ZSAqIDAuNzUpICogMC4xNSkgKiAyKTtcbiAgICAgICAgICBoZWlnaHQ6ICRsb2dvU2l6ZSAqIDAuNzUgLSAoKCgkbG9nb1NpemUgKiAwLjc1KSAqIDAuMTUpICogMik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmxvYWRpbmcsICYuZXJyb3IsICYuc3VjY2VzcyB7XG4gICAgICAucmVjZWl2ZXItbG9nbyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAjZW50ZXItY29kZSB7XG4gICAgaGVpZ2h0OiAyZW07XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbGluZS1oZWlnaHQ6IDJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICAgIG1heC13aWR0aDogJHdpZHRoIC8gMjtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICAjY29ubmVjdC1idXR0b24ge1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgfVxuXG4gICNhcHAtdmVyc2lvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGNvbG9yOiAjMTA1MDk4O1xuICAgIHBhZGRpbmc6IDAuMmVtO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICB9XG59XG5cbi5kYXJrICNhcHAgI2Nvbm5lY3Qge1xuICAjYXBwLXZlcnNpb24ge1xuICAgIGNvbG9yOiAjODI4MjgyO1xuICB9IFxufSIsIiRrZXlTaXplOiAyLjhlbTtcbiRmb250U2l6ZTogJGtleVNpemUgKiAoMi81KTtcbiRsaW5lSGVpZ2h0OiAka2V5U2l6ZSAqICgzLzUpO1xuXG4ja2V5Ym9hcmQge1xuICB3aWR0aDogJGtleVNpemUgKiAxMTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLXRvcDogMWVtO1xuXG4gIC5yb3cge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogJGtleVNpemU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIC5rZXlib2FyZEJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogJGtleVNpemU7XG4gICAgICBoZWlnaHQ6ICRrZXlTaXplO1xuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAubGFiZWwge1xuICAgICAgICBmb250LXNpemU6ICRmb250U2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lSGVpZ2h0O1xuICAgICAgfVxuXG4gICAgICAmLmtleURFTCB7XG4gICAgICAgIHdpZHRoOiAka2V5U2l6ZSAqIDEuMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc3BhY2VyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAka2V5U2l6ZTtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAmI2tleWJvYXJkXzlfMSB7XG4gICAgICAgIHdpZHRoOiAka2V5U2l6ZS8yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNrZXlib2FyZF9yb3dfMiB7XG4gICAgcGFkZGluZy1sZWZ0OiAka2V5U2l6ZS8yO1xuICB9XG59IiwiLmxvYWRlciB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgdGV4dC1pbmRlbnQ6IC05OTk5ZW07XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjMjE5NkYzICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICMyMTk2RjMgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMyMTk2RjMgIWltcG9ydGFudDtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjRUVFRUVFICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBsb2FkOCAxLjFzIGluZmluaXRlIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiBsb2FkOCAxLjFzIGluZmluaXRlIGxpbmVhcjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGxvYWQ4IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBsb2FkOCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59IiwiI3R1dG9yaWFsIHtcbiAgICAjbG9hZGluZy1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgICBoZWlnaHQ6IDgwdmg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyBcbiAgICAgICAgei1pbmRleDogMTAwMDA7XG4gICAgfVxuXG4gICAgI3lvdXR1YmUtdmlkZW8tZnJhbWUge1xuICAgICAgICB3aWR0aDogMTAwdnc7XG4gICAgICAgIGhlaWdodDogODV2aDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAjYWN0aW9uLWNvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogMTV2aDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1dmg7XG5cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuNXZ3O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjV2dztcbiAgICAgICAgICAgIHdpZHRoOiA5dmg7XG4gICAgICAgICAgICBoZWlnaHQ6IDl2aDtcblxuICAgICAgICAgICAgLmltYWdlIHtcbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNXZoO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDV2aDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMnZoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIiNoZWxwIHtcblxuICAjaGVscC1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICNnby1iYWNrIHtcbiAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAjc2NyZWVuc2hvdC1jb250YWluZXIgLmNvbnRhaW5lci5pbWFnZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICYjcGhvbmUtY29kZSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjhlbTtcbiAgICAgIH1cbiAgfVxuXG4gICNjb25uZWN0LWNpcmNsZWRfaW1ne1xuICAgIHdpZHRoOiAyNWVtO1xuICAgIGhlaWdodDogNS4yZW07XG4gIH1cblxuICAjY2FzdC10by1zbWFydC10dl9pbWcge1xuICAgIHdpZHRoOiAxM2VtO1xuICAgIGhlaWdodDogMTFlbTtcbiAgfVxuXG4gICNwaG9uZS1jb2RlX2ltZyB7XG4gICAgICB3aWR0aDogNi4yZW07XG4gICAgICBoZWlnaHQ6IDExZW07XG4gIH1cblxuICAjZW50ZXItY29kZV9pbWcge1xuICAgICAgd2lkdGg6IDE2ZW07XG4gICAgICBoZWlnaHQ6IDExZW07XG4gIH1cblxuICAjdG9wLXBhbmVsIHtcbiAgICBib3JkZXItYm90dG9tOiBncmV5O1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgfVxuXG4gICN0b3AtbGVmdC1wYW5lbCwgI2JvdHRvbS1sZWZ0LXBhbmVsIHtcbiAgICBib3JkZXItcmlnaHQ6IGdyZXk7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgfVxuXG4gICN0b3AtcGFuZWwsICNib3R0b20tcGFuZWwge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGhlaWdodDogMTdlbTtcbiAgfVxuXG4gICN0b3AtcGFuZWwgPiAuY29udGFpbmVyLCBcbiAgI2JvdHRvbS1wYW5lbCA+IC5jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMzBlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGhlaWdodDogMTdlbTtcblxuICAgID4gLmxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMS44ZW07XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjRlbTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcblxuICAgICAgICAmI2FuZHJvaWQtbGFiZWwsICYjaW9zLWxhYmVsIHtcbiAgICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgI3RvcC1sZWZ0LXRpdGxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgI2JvdHRvbS1sZWZ0LXRpdGxlLCAjYm90dG9tLXJpZ2h0LXRpdGxlIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwLjRlbTtcbiAgfVxuXG4gICNhcHAtaW5mbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAxLjJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuMmVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgICA+IC5sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICNhcHAtbG9nbyB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgICAgI2FwcC1sb2dvX2ltZyB7XG4gICAgICAgIHdpZHRoOiA1LjFlbTtcbiAgICAgICAgaGVpZ2h0OiA1LjFlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAjYXBwLW5hbWUsICNvci12aXNpdCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVlbTtcbiAgICB9XG5cbiAgICAjdXJsIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICB9XG4gIH1cblxuICAjYW5kcm9pZC1jb250YWluZXIsICNpb3MtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cblxufSIsIiNjb25uZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChjb21wb25lbnRzL2Nvbm5lY3RlZC9zcGxhc2gtaGQucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG5cbiAgI2JhY2stYnV0dG9uIHtcbiAgICBtYXJnaW46IDJlbTtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7XG4gICAgXG4gICAgJi5idXR0b25Gb2N1c3NlZCB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIH1cbiAgfVxuXG4gICNtZXNzYWdlIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmctYm90dG9tOiAxZW07XG4gIH1cbn0iLCJAaW1wb3J0ICcuL3NjcnViLWJhcic7XG5AaW1wb3J0ICcuL3N1YnRpdGxlcyc7XG5cbi8qXG4jYXBwLnJvb3R3aWRnZXQudmlkZW8tcGxheWVyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAjbWFpbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG59XG4qL1xuXG4jYXBwLnZpZGVvLXBsYXllciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbn1cblxuI21lZGlhUGxheWVyVmlkZW8ge1xuICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4jdmlkZW8tcGxheWVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgI2F1ZGlvLWltYWdlX2ltZyB7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAjYnVmZmVyaW5nIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMi41ZW07XG4gICAgYm90dG9tOiAyZW07XG5cbiAgICAmID4gZGl2IHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxZW0gMC4yZW0gIzAwMDtcbiAgICB9XG4gIH1cblxuICAjY29udHJvbC1zdGFjayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMCksIHJnYmEoMCwwLDAsLjUpIDM1JSwgcmdiYSgwLDAsMCwxKSk7XG4gICAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgICBwYWRkaW5nLXRvcDogMmVtO1xuXG4gICAgI3NjcnViLWNvbnRhaW5lciB7XG4gICAgICAubGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDJlbTtcbiAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC41ZW07XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgI2FjdGlvbi1jb250YWluZXIge1xuXG4gICAgICAuYnV0dG9uIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcblxuICAgICAgICAmLmJ1dHRvbkRpc2FibGVkIHtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmltYWdlIGltZyB7XG4gICAgICAgICAgd2lkdGg6IDNlbTtcbiAgICAgICAgICBoZWlnaHQ6IDNlbTtcbiAgICAgICAgICBwYWRkaW5nOiAxZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjc2NydWItYmFyLCAjc2NydWItYmFyX2J1ZmZlciwgI3NjcnViLWJhcl9sZWZ0LCAjc2NydWItYmFyX3NsaWRlciB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn0iLCIjYXBwIC5idXR0b24uaG9yaXpvbnRhbHNsaWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDUwJTtcbiAgaGVpZ2h0OiAwLjVlbTtcbiAgYW5pbWF0aW9uOiBzbGlkZXItZm9jdXMtb2ZmIDFzO1xuICAtd2Via2l0LWFuaW1hdGlvbjogd2Via2l0LXNsaWRlci1mb2N1cy1vZmYgMXM7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG5cbiAgJi5mb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDFlbSAwLjJlbSAjRkZGO1xuICAgIGFuaW1hdGlvbjogc2xpZGVyLWZvY3VzLW9uIDFzO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiB3ZWJraXQtc2xpZGVyLWZvY3VzLW9uIDFzO1xuICB9XG5cbiAgLnNjcnViYmFyYnVmZmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDFlbTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuICB9XG5cbiAgLmhvcml6b250YWxzbGlkZXJsZWZ0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDFlbTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO1xuICB9XG5cbiAgLmhvcml6b250YWxzbGlkZXJoYW5kbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogLTAuOGVtO1xuICAgIHdpZHRoOiAyZW07XG4gICAgaGVpZ2h0OiAyZW07XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiAgfVxuXG4gIEBrZXlmcmFtZXMgc2xpZGVyLWZvY3VzLW9mZiB7XG4gICAgMCUge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDFlbSAwLjJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxZW0gMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICAgIH1cbiAgfVxuICBAa2V5ZnJhbWVzIHNsaWRlci1mb2N1cy1vbiB7XG4gICAgMCUge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDFlbSAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDFlbSAwLjJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpO1xuICAgIH1cbiAgfVxuICBALXdlYmtpdC1rZXlmcmFtZXMgd2Via2l0LXNsaWRlci1mb2N1cy1vZmYge1xuICAgIDAlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxZW0gMC4yZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMWVtIDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgICB9XG4gIH1cbiAgQC13ZWJraXQta2V5ZnJhbWVzIHdlYmtpdC1zbGlkZXItZm9jdXMtb24ge1xuICAgIDAlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxZW0gMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxZW0gMC4yZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTtcbiAgICB9XG4gIH1cbn0iLCIuY29udHJvbHMtYWN0aXZlIHtcbiAgI3N1YnRpdGxlcy1jb250YWluZXIge1xuICAgIGJvdHRvbTogMTEuNWVtO1xuICB9XG59XG5cbiNzdWJ0aXRsZXMtY29udGFpbmVyIHtcbiAgYm90dG9tOiAwLjVlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcblxuICAmLnN1Yi1saW5lLTAge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICB0b3A6IDA7XG4gIH1cblxuICAmLnN1Yi1saW5lLTEwIHtcbiAgICBib3R0b206IGF1dG87XG4gICAgdG9wOiAxMCU7XG4gIH1cblxuICAmLnN1Yi1saW5lLTIwIHtcbiAgICBib3R0b206IGF1dG87XG4gICAgdG9wOiAyMCU7XG4gIH1cblxuICAmLnN1Yi1saW5lLTMwIHtcbiAgICBib3R0b206IGF1dG87XG4gICAgdG9wOiAzMCU7XG4gIH1cblxuICAmLnN1Yi1saW5lLTQwIHtcbiAgICBib3R0b206IGF1dG87XG4gICAgdG9wOiA0MCU7XG4gIH1cblxuICAmLnN1Yi1saW5lLTUwIHtcbiAgICBib3R0b206IGF1dG87XG4gICAgdG9wOiA1MCU7XG4gIH1cblxuICAmLnN1Yi1saW5lLTYwIHtcbiAgICBib3R0b206IDQwJTtcbiAgfVxuXG4gICYuc3ViLWxpbmUtNzAge1xuICAgIGJvdHRvbTogMzAlO1xuICB9XG5cbiAgJi5zdWItbGluZS04MCB7XG4gICAgYm90dG9tOiAyMCU7XG4gIH1cblxuICAmLnN1Yi1saW5lLTkwIHtcbiAgICBib3R0b206IDEwJTtcbiAgfVxuXG4gICYuc3ViLWxpbmUtMTAwIHtcbiAgICBib3R0b206IDA7XG4gIH1cblxuICAmLnN1Yi1wb3NpdGlvbi0wIHtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgJi5zdWItcG9zaXRpb24tMTAge1xuICAgIGxlZnQ6IDEwJTtcbiAgICByaWdodDogYXV0bztcbiAgfVxuICBcbiAgJi5zdWItcG9zaXRpb24tMjAge1xuICAgIGxlZnQ6IDIwJTtcbiAgICByaWdodDogYXV0bztcbiAgfVxuICBcbiAgJi5zdWItcG9zaXRpb24tMzAge1xuICAgIGxlZnQ6IDMwJTtcbiAgICByaWdodDogYXV0bztcbiAgfVxuICBcbiAgJi5zdWItcG9zaXRpb24tNDAge1xuICAgIGxlZnQ6IDQwJTtcbiAgICByaWdodDogYXV0bztcbiAgfVxuICBcbiAgJi5zdWItcG9zaXRpb24tNTAge1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbiAgXG4gICYuc3ViLXBvc2l0aW9uLTYwIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiA0MCU7XG4gIH1cbiAgXG4gICYuc3ViLXBvc2l0aW9uLTcwIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAzMCU7XG4gIH1cbiAgXG4gICYuc3ViLXBvc2l0aW9uLTgwIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAyMCU7XG4gIH1cbiAgXG4gICYuc3ViLXBvc2l0aW9uLTkwIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAxMCU7XG4gIH1cbiAgXG4gICYuc3ViLXBvc2l0aW9uLTEwMCB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDtcbiAgfVxuXG4gICNzdWJ0aXRsZXMge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMC43ZW07XG4gICAgZm9udC1zaXplOiAxLjhlbTtcblxuICAgICYuc3VidGl0bGVzLWVtcHR5IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJiA+IHNwYW4ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxufSIsIiNpbWFnZS1wbGF5ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuXG4gICNtYWluLWltYWdlX2ltZyB7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAjbG9hZGluZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDIuNWVtO1xuICAgIGJvdHRvbTogMmVtO1xuICAgIHotaW5kZXg6IDEwMDA7XG5cbiAgICAmID4gZGl2IHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxZW0gMC4yZW0gIzAwMDtcbiAgICB9XG4gIH1cblxuICAjYmFjay1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgICBcbiAgI2FjdGlvbi1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAsIDAsIDAsIDApLCByZ2JhKDAsIDAsIDAsIC41KSAzNSUsIHJnYmEoMCwgMCwgMCwgMSkpO1xuICAgIHBhZGRpbmctYm90dG9tOiAxZW07XG4gICAgcGFkZGluZy10b3A6IDJlbTtcbiAgICBcbiAgICAuYnV0dG9uIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxZW07XG5cbiAgICAgICYuYnV0dG9uRGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMzIzMjM7XG4gICAgICB9XG4gICAgXG4gICAgICAuaW1hZ2UgaW1nIHtcbiAgICAgICAgd2lkdGg6IDNlbTtcbiAgICAgICAgaGVpZ2h0OiAzZW07XG4gICAgICAgIHBhZGRpbmc6IDFlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJAZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBzcmM6IHVybChcIndlYi1mb250cy9yb2JvdG9fbWVkaXVtL1JvYm90by1NZWRpdW0td2ViZm9udC5lb3RcIik7XG4gIHNyYzogdXJsKFwid2ViLWZvbnRzL3JvYm90b19tZWRpdW0vUm9ib3RvLU1lZGl1bS13ZWJmb250LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIFxuICAgIHVybChcIndlYi1mb250cy9yb2JvdG9fbWVkaXVtL1JvYm90by1NZWRpdW0td2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgXG4gICAgdXJsKFwid2ViLWZvbnRzL3JvYm90b19tZWRpdW0vUm9ib3RvLU1lZGl1bS13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgXG4gICAgdXJsKFwid2ViLWZvbnRzL3JvYm90b19tZWRpdW0vUm9ib3RvLU1lZGl1bS13ZWJmb250LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgXG4gICAgdXJsKFwid2ViLWZvbnRzL3JvYm90b19tZWRpdW0vUm9ib3RvLU1lZGl1bS13ZWJmb250LnN2ZyNyb2JvdG9ib2xkXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgXG59XG5cbi8qXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBzcmM6IHVybChcIndlYi1mb250cy9yb2JvdG9fYm9sZGl0YWxpYy9Sb2JvdG8tQm9sZEl0YWxpYy13ZWJmb250LmVvdFwiKTtcbiAgc3JjOiB1cmwoXCJ3ZWItZm9udHMvcm9ib3RvX2JvbGRpdGFsaWMvUm9ib3RvLUJvbGRJdGFsaWMtd2ViZm9udC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCBcbiAgICB1cmwoXCJ3ZWItZm9udHMvcm9ib3RvX2JvbGRpdGFsaWMvUm9ib3RvLUJvbGRJdGFsaWMtd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgXG4gICAgdXJsKFwid2ViLWZvbnRzL3JvYm90b19ib2xkaXRhbGljL1JvYm90by1Cb2xkSXRhbGljLXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCBcbiAgICB1cmwoXCJ3ZWItZm9udHMvcm9ib3RvX2JvbGRpdGFsaWMvUm9ib3RvLUJvbGRJdGFsaWMtd2ViZm9udC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIFxuICAgIHVybChcIndlYi1mb250cy9yb2JvdG9fYm9sZGl0YWxpYy9Sb2JvdG8tQm9sZEl0YWxpYy13ZWJmb250LnN2ZyNyb2JvdG9ib2xkX2l0YWxpY1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXN0eWxlOiBpdGFsaWMsIG9ibGlxdWU7IFxufVxuKi9cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgc3JjOiB1cmwoXCJ3ZWItZm9udHMvcm9ib3RvX2xpZ2h0aXRhbGljL1JvYm90by1MaWdodEl0YWxpYy13ZWJmb250LmVvdFwiKTtcbiAgc3JjOiB1cmwoXCJ3ZWItZm9udHMvcm9ib3RvX2xpZ2h0aXRhbGljL1JvYm90by1MaWdodEl0YWxpYy13ZWJmb250LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIFxuICAgIHVybChcIndlYi1mb250cy9yb2JvdG9fbGlnaHRpdGFsaWMvUm9ib3RvLUxpZ2h0SXRhbGljLXdlYmZvbnQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIFxuICAgIHVybChcIndlYi1mb250cy9yb2JvdG9fbGlnaHRpdGFsaWMvUm9ib3RvLUxpZ2h0SXRhbGljLXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCBcbiAgICB1cmwoXCJ3ZWItZm9udHMvcm9ib3RvX2xpZ2h0aXRhbGljL1JvYm90by1MaWdodEl0YWxpYy13ZWJmb250LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgXG4gICAgdXJsKFwid2ViLWZvbnRzL3JvYm90b19saWdodGl0YWxpYy9Sb2JvdG8tTGlnaHRJdGFsaWMtd2ViZm9udC5zdmcjcm9ib3RvbGlnaHRpdGFsaWNcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBpdGFsaWMsIG9ibGlxdWU7IFxufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBzcmM6IHVybChcIndlYi1mb250cy9yb2JvdG9fbGlnaHQvUm9ib3RvLUxpZ2h0LXdlYmZvbnQuZW90XCIpO1xuICBzcmM6IHVybChcIndlYi1mb250cy9yb2JvdG9fbGlnaHQvUm9ib3RvLUxpZ2h0LXdlYmZvbnQuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgXG4gICAgdXJsKFwid2ViLWZvbnRzL3JvYm90b19saWdodC9Sb2JvdG8tTGlnaHQtd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgXG4gICAgdXJsKFwid2ViLWZvbnRzL3JvYm90b19saWdodC9Sb2JvdG8tTGlnaHQtd2ViZm9udC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIFxuICAgIHVybChcIndlYi1mb250cy9yb2JvdG9fbGlnaHQvUm9ib3RvLUxpZ2h0LXdlYmZvbnQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCBcbiAgICB1cmwoXCJ3ZWItZm9udHMvcm9ib3RvX2xpZ2h0L1JvYm90by1MaWdodC13ZWJmb250LnN2ZyNyb2JvdG9saWdodFwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgXG59IiwiLmNhcm91c2VsbWFzayB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5jYXJvdXNlbHdpZGdldHN0cmlwIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICYudmVydGljYWw+LmNhcm91c2VsSXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYuaG9yaXpvbnRhbD4uY2Fyb3VzZWxJdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJi5vdmVyZmxvdy1sZWZ0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjMpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm92ZXJmbG93LXJpZ2h0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDAsIDAsIDAsIDApLCByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMykpO1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qXG4gICAgI2Nhcm91c2VsQ29tcG9uZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICYgPiAuY2Fyb3VzZWxtYXNrIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI2Nhcm91c2VsQ29tcG9uZW50XG5cbiAgICAjY2Fyb3VzZWxDb21wb25lbnQ+LmRlc2NyaXB0aW9uIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB9XG5cbiAgICAuY2Fyb3VzZWx3aWRnZXRzdHJpcD4uYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDMycHg7XG4gICAgfVxuXG4gICAgLmNhcm91c2Vsd2lkZ2V0c3RyaXAudmVydGljYWw+LmJ1dHRvbiB7XG4gICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgfVxuICAgICovXG59IiwiQGltcG9ydCBcImNvbG9yc1wiO1xuQGltcG9ydCBcImNhcmRcIjtcblxuJGJ1dHRvblRleHRDb2xvcjogJHd2Y0FsbW9zdFdoaXRlO1xuXG4kYnV0dG9uRm9jdXNlZDogJHd2Y1llbGxvdztcbiRidXR0b25Gb2N1c2VkLWRhcms6ICR3dmNZZWxsb3ctZGFyaztcbiRidXR0b25VbmZvY3VzZWQ6ICR3dmNCbHVlO1xuJGJ1dHRvblVuZm9jdXNlZC1kYXJrOiAkd3ZjQmx1ZS1kYXJrO1xuXG4kbGlua1RleHRGb2N1c2VkOiAkYnV0dG9uVGV4dENvbG9yO1xuJGxpbmtUZXh0Rm9jdXNlZC1kYXJrOiAkYnV0dG9uVGV4dENvbG9yO1xuJGxpbmtGb2N1c2VkOiAkYnV0dG9uRm9jdXNlZDtcbiRsaW5rRm9jdXNlZC1kYXJrOiAkYnV0dG9uRm9jdXNlZC1kYXJrO1xuJGxpbmtUZXh0VW5mb2N1c2VkOiAkdGV4dENvbG9yO1xuJGxpbmtUZXh0VW5mb2N1c2VkLWRhcms6ICR0ZXh0Q29sb3ItZGFyaztcbiRsaW5rVW5mb2N1c2VkOiAkY2FyZEJhY2tncm91bmRDb2xvcjtcbiRsaW5rVW5mb2N1c2VkLWRhcms6ICRjYXJkQmFja2dyb3VuZENvbG9yLWRhcms7XG5cbi5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25VbmZvY3VzZWQ7XG4gICAgYm94LXNoYWRvdzogMHB4IDAuMjVlbSAwLjU4ZW0gJHNoYWRvd0NvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMTdlbTtcbiAgICBib3JkZXI6IDA7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXgtd2lkdGg6IDUwZW07XG4gICAgbWFyZ2luOiAwIGF1dG8gMWVtIGF1dG87XG4gICAgdHJhbnNpdGlvbjogMC40cztcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IDAuNHM7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgID5kaXYge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgID5pbWcge1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5sYWJlbCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGNvbG9yOiAkYnV0dG9uVGV4dENvbG9yO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNWVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdHJhbnNpdGlvbjogMC40cztcbiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjRzO1xuICAgIH1cblxuICAgICYubGlua0J1dHRvbiB7XG4gICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxuICAgICAgICB9XG5cbiAgICAgICAgJi5idXR0b25Gb2N1c3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlua0ZvY3VzZWQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG5cbiAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRsaW5rVGV4dEZvY3VzZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmJ1dHRvbkJsdXJyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpbmtVbmZvY3VzZWQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcblxuICAgICAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGxpbmtUZXh0VW5mb2N1c2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uYnV0dG9uRm9jdXNzZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25Gb2N1c2VkO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLmJ1dHRvbkJsdXJyZWQge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG5cbi5idXR0b25Gb2N1c3NlZC5tZW51ZW5kcG9pbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25Gb2N1c2VkO1xufVxuXG4uZGFyayAuYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uVW5mb2N1c2VkLWRhcms7XG4gICAgYm94LXNoYWRvdzogMHB4IDAuMjVlbSAwLjU4ZW0gJHNoYWRvd0NvbG9yLWRhcms7XG5cbiAgICAmLmxpbmtCdXR0b24ge1xuICAgICAgICAmLmJ1dHRvbkZvY3Vzc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaW5rRm9jdXNlZC1kYXJrO1xuXG4gICAgICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkbGlua1RleHRGb2N1c2VkLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5idXR0b25CbHVycmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaW5rVW5mb2N1c2VkLWRhcms7XG5cbiAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRsaW5rVGV4dFVuZm9jdXNlZC1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5idXR0b25Gb2N1c3NlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25Gb2N1c2VkLWRhcms7XG4gICAgfVxufSIsIkBpbXBvcnQgXCJjb2xvcnNcIjtcblxuJGNhcmRCYWNrZ3JvdW5kQ29sb3I6ICR3dmNXaGl0ZTtcbiRjYXJkQmFja2dyb3VuZENvbG9yLWRhcms6ICR3dmNCbGFjaztcblxuJGNhcmRTaGFkb3c6ICRzaGFkb3dDb2xvcjtcblxuLmNhcmQtY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZENvbG9yO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiAwLjRzO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogMC40cztcblxuICAgIC5jYXJkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiA3MGVtO1xuICAgICAgICBjb2xvcjogJHRleHRDb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmRCYWNrZ3JvdW5kQ29sb3I7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAwLjI1ZW0gMS4xNmVtICRjYXJkU2hhZG93O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjE3ZW07XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgdHJhbnNpdGlvbjogMC40cztcbiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjRzO1xuXG4gICAgICAgIG1hcmdpbjogMS41ZW07XG4gICAgICAgIHBhZGRpbmc6IDJlbTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtaW4td2lkdGg6IDYwZW07XG4gICAgfVxufVxuXG4uZGFyayAuY2FyZC1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjYXJkQmFja2dyb3VuZENvbG9yLWRhcms7XG5cbiAgICAuY2FyZCB7XG4gICAgICAgIGNvbG9yOiAkdGV4dENvbG9yLWRhcms7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjYXJkQmFja2dyb3VuZENvbG9yLWRhcms7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgfVxufSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUNFQSxBQUFBLHNCQUFzQixDQUFDO0VBQ25CLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxF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 */
