@charset "UTF-8";
.puffIn {
  -webkit-animation-name: puffIn;
  -o-animation-name: puffIn;
  animation-name: puffIn;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes puffIn {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(2, 2);
    transform: scale(2, 2);
    -webkit-filter: blur(2px);
    filter: blur(2px); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-filter: blur(0px);
    filter: blur(0px); } }

@-o-keyframes puffIn {
  0% {
    opacity: 0;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(2, 2);
    transform: scale(2, 2);
    filter: blur(2px); }
  100% {
    opacity: 1;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(1, 1);
    transform: scale(1, 1);
    filter: blur(0px); } }

@keyframes puffIn {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(2, 2);
    -o-transform: scale(2, 2);
    transform: scale(2, 2);
    -webkit-filter: blur(2px);
    filter: blur(2px); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    -o-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-filter: blur(0px);
    filter: blur(0px); } }

.puffOut {
  -webkit-animation-name: puffOut;
  -o-animation-name: puffOut;
  animation-name: puffOut;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes puffOut {
  0% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-filter: blur(0px);
    filter: blur(0px); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(2, 2);
    transform: scale(2, 2);
    -webkit-filter: blur(2px);
    filter: blur(2px); } }

@-o-keyframes puffOut {
  0% {
    opacity: 1;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(1, 1);
    transform: scale(1, 1);
    filter: blur(0px); }
  100% {
    opacity: 0;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(2, 2);
    transform: scale(2, 2);
    filter: blur(2px); } }

@keyframes puffOut {
  0% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    -o-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-filter: blur(0px);
    filter: blur(0px); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(2, 2);
    -o-transform: scale(2, 2);
    transform: scale(2, 2);
    -webkit-filter: blur(2px);
    filter: blur(2px); } }

.vanishIn {
  -webkit-animation-name: vanishIn;
  -o-animation-name: vanishIn;
  animation-name: vanishIn;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes vanishIn {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(2, 2);
    transform: scale(2, 2);
    -webkit-filter: blur(90px);
    filter: blur(90px); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-filter: blur(0px);
    filter: blur(0px); } }

@-o-keyframes vanishIn {
  0% {
    opacity: 0;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(2, 2);
    transform: scale(2, 2);
    filter: blur(90px); }
  100% {
    opacity: 1;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(1, 1);
    transform: scale(1, 1);
    filter: blur(0px); } }

@keyframes vanishIn {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(2, 2);
    -o-transform: scale(2, 2);
    transform: scale(2, 2);
    -webkit-filter: blur(90px);
    filter: blur(90px); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    -o-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-filter: blur(0px);
    filter: blur(0px); } }

.vanishOut {
  -webkit-animation-name: vanishOut;
  -o-animation-name: vanishOut;
  animation-name: vanishOut;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes vanishOut {
  0% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-filter: blur(0px);
    filter: blur(0px); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(2, 2);
    transform: scale(2, 2);
    -webkit-filter: blur(20px);
    filter: blur(20px); } }

@-o-keyframes vanishOut {
  0% {
    opacity: 1;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(1, 1);
    transform: scale(1, 1);
    filter: blur(0px); }
  100% {
    opacity: 0;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(2, 2);
    transform: scale(2, 2);
    filter: blur(20px); } }

@keyframes vanishOut {
  0% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    -o-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-filter: blur(0px);
    filter: blur(0px); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(2, 2);
    -o-transform: scale(2, 2);
    transform: scale(2, 2);
    -webkit-filter: blur(20px);
    filter: blur(20px); } }

.boingInUp {
  -webkit-animation-name: boingInUp;
  -o-animation-name: boingInUp;
  animation-name: boingInUp;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes boingInUp {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(-90deg);
    transform: perspective(800px) rotateX(-90deg); }
  50% {
    opacity: 1;
    -webkit-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(50deg);
    transform: perspective(800px) rotateX(50deg); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); } }

@-o-keyframes boingInUp {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(-90deg);
    transform: perspective(800px) rotateX(-90deg); }
  50% {
    opacity: 1;
    -webkit-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(50deg);
    transform: perspective(800px) rotateX(50deg); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); } }

@keyframes boingInUp {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(-90deg);
    transform: perspective(800px) rotateX(-90deg); }
  50% {
    opacity: 1;
    -webkit-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(50deg);
    transform: perspective(800px) rotateX(50deg); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); } }

.boingOutDown {
  -webkit-animation-name: boingOutDown;
  -o-animation-name: boingOutDown;
  animation-name: boingOutDown;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes boingOutDown {
  0% {
    opacity: 1;
    -webkit-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(0deg);
    transform: perspective(800px) rotateX(0deg) rotateY(0deg); }
  20% {
    opacity: 1;
    -webkit-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(10deg);
    transform: perspective(800px) rotateX(0deg) rotateY(10deg); }
  30% {
    opacity: 1;
    -webkit-transform-origin: 0% 100%;
    transform-origin: 0% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(0deg);
    transform: perspective(800px) rotateX(0deg) rotateY(0deg); }
  40% {
    opacity: 1;
    -webkit-transform-origin: 0% 100%;
    transform-origin: 0% 100%;
    -webkit-transform: perspective(800px) rotateX(10deg) rotateY(10deg);
    transform: perspective(800px) rotateX(10deg) rotateY(10deg); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(90deg) rotateY(0deg);
    transform: perspective(800px) rotateX(90deg) rotateY(0deg); } }

@-o-keyframes boingOutDown {
  0% {
    opacity: 1;
    -webkit-transform-origin: 100% 100%;
    -o-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(0deg);
    transform: perspective(800px) rotateX(0deg) rotateY(0deg); }
  20% {
    opacity: 1;
    -webkit-transform-origin: 100% 100%;
    -o-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(10deg);
    transform: perspective(800px) rotateX(0deg) rotateY(10deg); }
  30% {
    opacity: 1;
    -webkit-transform-origin: 0% 100%;
    -o-transform-origin: 0% 100%;
    transform-origin: 0% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(0deg);
    transform: perspective(800px) rotateX(0deg) rotateY(0deg); }
  40% {
    opacity: 1;
    -webkit-transform-origin: 0% 100%;
    -o-transform-origin: 0% 100%;
    transform-origin: 0% 100%;
    -webkit-transform: perspective(800px) rotateX(10deg) rotateY(10deg);
    transform: perspective(800px) rotateX(10deg) rotateY(10deg); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 100% 100%;
    -o-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(90deg) rotateY(0deg);
    transform: perspective(800px) rotateX(90deg) rotateY(0deg); } }

@keyframes boingOutDown {
  0% {
    opacity: 1;
    -webkit-transform-origin: 100% 100%;
    -o-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(0deg);
    transform: perspective(800px) rotateX(0deg) rotateY(0deg); }
  20% {
    opacity: 1;
    -webkit-transform-origin: 100% 100%;
    -o-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(10deg);
    transform: perspective(800px) rotateX(0deg) rotateY(10deg); }
  30% {
    opacity: 1;
    -webkit-transform-origin: 0% 100%;
    -o-transform-origin: 0% 100%;
    transform-origin: 0% 100%;
    -webkit-transform: perspective(800px) rotateX(0deg) rotateY(0deg);
    transform: perspective(800px) rotateX(0deg) rotateY(0deg); }
  40% {
    opacity: 1;
    -webkit-transform-origin: 0% 100%;
    -o-transform-origin: 0% 100%;
    transform-origin: 0% 100%;
    -webkit-transform: perspective(800px) rotateX(10deg) rotateY(10deg);
    transform: perspective(800px) rotateX(10deg) rotateY(10deg); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 100% 100%;
    -o-transform-origin: 100% 100%;
    transform-origin: 100% 100%;
    -webkit-transform: perspective(800px) rotateX(90deg) rotateY(0deg);
    transform: perspective(800px) rotateX(90deg) rotateY(0deg); } }

svg.dash .path {
  stroke-dasharray: 1000;
  stroke-dashoffset: 0; }
  svg.dash .path.circle {
    -webkit-animation-name: dash;
    -o-animation-name: dash;
    animation-name: dash;
    -webkit-animation-duration: 0.9s;
    -o-animation-duration: 0.9s;
    animation-duration: 0.9s;
    -webkit-animation-timing-function: ease-in-out;
    -o-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  svg.dash .path.line {
    stroke-dashoffset: 1000;
    -webkit-animation-name: dash;
    -o-animation-name: dash;
    animation-name: dash;
    -webkit-animation-duration: 0.9s;
    -o-animation-duration: 0.9s;
    animation-duration: 0.9s;
    -webkit-animation-delay: 0.35s;
    -o-animation-delay: 0.35s;
    animation-delay: 0.35s;
    -webkit-animation-timing-function: ease-in-out;
    -o-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-fill-mode: forwards;
    -o-animation-fill-mode: forwards;
    animation-fill-mode: forwards; }
  svg.dash .path.check {
    stroke-dashoffset: -100;
    -webkit-animation-name: dash-check;
    -o-animation-name: dash-check;
    animation-name: dash-check;
    -webkit-animation-duration: 0.9s;
    -o-animation-duration: 0.9s;
    animation-duration: 0.9s;
    -webkit-animation-delay: 0.35s;
    -o-animation-delay: 0.35s;
    animation-delay: 0.35s;
    -webkit-animation-timing-function: ease-in-out;
    -o-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-fill-mode: forwards;
    -o-animation-fill-mode: forwards;
    animation-fill-mode: forwards; }

@-webkit-keyframes dash {
  0% {
    stroke-dashoffset: 1000; }
  100% {
    stroke-dashoffset: 0; } }

@-o-keyframes dash {
  0% {
    stroke-dashoffset: 1000; }
  100% {
    stroke-dashoffset: 0; } }

@keyframes dash {
  0% {
    stroke-dashoffset: 1000; }
  100% {
    stroke-dashoffset: 0; } }

@-webkit-keyframes dash-check {
  0% {
    stroke-dashoffset: -100; }
  100% {
    stroke-dashoffset: 900; } }

@-o-keyframes dash-check {
  0% {
    stroke-dashoffset: -100; }
  100% {
    stroke-dashoffset: 900; } }

@keyframes dash-check {
  0% {
    stroke-dashoffset: -100; }
  100% {
    stroke-dashoffset: 900; } }

.swashIn {
  -webkit-animation-name: swashIn;
  -o-animation-name: swashIn;
  animation-name: swashIn;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes swashIn {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(0, 0);
    transform: scale(0, 0); }
  90% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(0.9, 0.9);
    transform: scale(0.9, 0.9); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1); } }

@-o-keyframes swashIn {
  0% {
    opacity: 0;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(0, 0);
    transform: scale(0, 0); }
  90% {
    opacity: 1;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(0.9, 0.9);
    transform: scale(0.9, 0.9); }
  100% {
    opacity: 1;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(1, 1);
    transform: scale(1, 1); } }

@keyframes swashIn {
  0% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(0, 0);
    -o-transform: scale(0, 0);
    transform: scale(0, 0); }
  90% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(0.9, 0.9);
    -o-transform: scale(0.9, 0.9);
    transform: scale(0.9, 0.9); }
  100% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    -o-transform: scale(1, 1);
    transform: scale(1, 1); } }

.swashOut {
  -webkit-animation-name: swashOut;
  -o-animation-name: swashOut;
  animation-name: swashOut;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes swashOut {
  0% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1); }
  80% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(0.9, 0.9);
    transform: scale(0.9, 0.9); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(0, 0);
    transform: scale(0, 0); } }

@-o-keyframes swashOut {
  0% {
    opacity: 1;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(1, 1);
    transform: scale(1, 1); }
  80% {
    opacity: 1;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(0.9, 0.9);
    transform: scale(0.9, 0.9); }
  100% {
    opacity: 0;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -o-transform: scale(0, 0);
    transform: scale(0, 0); } }

@keyframes swashOut {
  0% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(1, 1);
    -o-transform: scale(1, 1);
    transform: scale(1, 1); }
  80% {
    opacity: 1;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(0.9, 0.9);
    -o-transform: scale(0.9, 0.9);
    transform: scale(0.9, 0.9); }
  100% {
    opacity: 0;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    -webkit-transform: scale(0, 0);
    -o-transform: scale(0, 0);
    transform: scale(0, 0); } }

.perspectiveDown {
  -webkit-animation-name: perspectiveDown;
  -o-animation-name: perspectiveDown;
  animation-name: perspectiveDown;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes perspectiveDown {
  0% {
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); }
  100% {
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
    -webkit-transform: perspective(800px) rotateX(-180deg);
    transform: perspective(800px) rotateX(-180deg); } }

@-o-keyframes perspectiveDown {
  0% {
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    transform: perspective(800px) rotateX(0deg); }
  100% {
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    transform: perspective(800px) rotateX(-180deg); } }

@keyframes perspectiveDown {
  0% {
    -webkit-transform-origin: 0 100%;
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); }
  100% {
    -webkit-transform-origin: 0 100%;
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    -webkit-transform: perspective(800px) rotateX(-180deg);
    transform: perspective(800px) rotateX(-180deg); } }

.perspectiveDownReturn {
  -webkit-animation-name: perspectiveDownReturn;
  -o-animation-name: perspectiveDownReturn;
  animation-name: perspectiveDownReturn;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes perspectiveDownReturn {
  0% {
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
    -webkit-transform: perspective(800px) rotateX(-180deg);
    transform: perspective(800px) rotateX(-180deg); }
  100% {
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); } }

@-o-keyframes perspectiveDownReturn {
  0% {
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    transform: perspective(800px) rotateX(-180deg); }
  100% {
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    transform: perspective(800px) rotateX(0deg); } }

@keyframes perspectiveDownReturn {
  0% {
    -webkit-transform-origin: 0 100%;
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    -webkit-transform: perspective(800px) rotateX(-180deg);
    transform: perspective(800px) rotateX(-180deg); }
  100% {
    -webkit-transform-origin: 0 100%;
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); } }

.perspectiveLeft {
  -webkit-animation-name: perspectiveLeft;
  -o-animation-name: perspectiveLeft;
  animation-name: perspectiveLeft;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes perspectiveLeft {
  0% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateY(0deg);
    transform: perspective(800px) rotateY(0deg); }
  100% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateY(-180deg);
    transform: perspective(800px) rotateY(-180deg); } }

@-o-keyframes perspectiveLeft {
  0% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    transform: perspective(800px) rotateY(0deg); }
  100% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    transform: perspective(800px) rotateY(-180deg); } }

@keyframes perspectiveLeft {
  0% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateY(0deg);
    transform: perspective(800px) rotateY(0deg); }
  100% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateY(-180deg);
    transform: perspective(800px) rotateY(-180deg); } }

.perspectiveLeftReturn {
  -webkit-animation-name: perspectiveLeftReturn;
  -o-animation-name: perspectiveLeftReturn;
  animation-name: perspectiveLeftReturn;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes perspectiveLeftReturn {
  0% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateY(-180deg);
    transform: perspective(800px) rotateY(-180deg); }
  100% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateY(0deg);
    transform: perspective(800px) rotateY(0deg); } }

@-o-keyframes perspectiveLeftReturn {
  0% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    transform: perspective(800px) rotateY(-180deg); }
  100% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    transform: perspective(800px) rotateY(0deg); } }

@keyframes perspectiveLeftReturn {
  0% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateY(-180deg);
    transform: perspective(800px) rotateY(-180deg); }
  100% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateY(0deg);
    transform: perspective(800px) rotateY(0deg); } }

.perspectiveRight {
  -webkit-animation-name: perspectiveRight;
  -o-animation-name: perspectiveRight;
  animation-name: perspectiveRight;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes perspectiveRight {
  0% {
    -webkit-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: perspective(800px) rotateY(0deg);
    transform: perspective(800px) rotateY(0deg); }
  100% {
    -webkit-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: perspective(800px) rotateY(180deg);
    transform: perspective(800px) rotateY(180deg); } }

@-o-keyframes perspectiveRight {
  0% {
    -o-transform-origin: 100% 0;
    transform-origin: 100% 0;
    transform: perspective(800px) rotateY(0deg); }
  100% {
    -o-transform-origin: 100% 0;
    transform-origin: 100% 0;
    transform: perspective(800px) rotateY(180deg); } }

@keyframes perspectiveRight {
  0% {
    -webkit-transform-origin: 100% 0;
    -o-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: perspective(800px) rotateY(0deg);
    transform: perspective(800px) rotateY(0deg); }
  100% {
    -webkit-transform-origin: 100% 0;
    -o-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: perspective(800px) rotateY(180deg);
    transform: perspective(800px) rotateY(180deg); } }

.perspectiveRightReturn {
  -webkit-animation-name: perspectiveRightReturn;
  -o-animation-name: perspectiveRightReturn;
  animation-name: perspectiveRightReturn;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes perspectiveRightReturn {
  0% {
    -webkit-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: perspective(800px) rotateY(180deg);
    transform: perspective(800px) rotateY(180deg); }
  100% {
    -webkit-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: perspective(800px) rotateY(0deg);
    transform: perspective(800px) rotateY(0deg); } }

@-o-keyframes perspectiveRightReturn {
  0% {
    -o-transform-origin: 100% 0;
    transform-origin: 100% 0;
    transform: perspective(800px) rotateY(180deg); }
  100% {
    -o-transform-origin: 100% 0;
    transform-origin: 100% 0;
    transform: perspective(800px) rotateY(0deg); } }

@keyframes perspectiveRightReturn {
  0% {
    -webkit-transform-origin: 100% 0;
    -o-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: perspective(800px) rotateY(180deg);
    transform: perspective(800px) rotateY(180deg); }
  100% {
    -webkit-transform-origin: 100% 0;
    -o-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: perspective(800px) rotateY(0deg);
    transform: perspective(800px) rotateY(0deg); } }

.perspectiveUp {
  -webkit-animation-name: perspectiveUp;
  -o-animation-name: perspectiveUp;
  animation-name: perspectiveUp;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes perspectiveUp {
  0% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); }
  100% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateX(180deg);
    transform: perspective(800px) rotateX(180deg); } }

@-o-keyframes perspectiveUp {
  0% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    transform: perspective(800px) rotateX(0deg); }
  100% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    transform: perspective(800px) rotateX(180deg); } }

@keyframes perspectiveUp {
  0% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); }
  100% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateX(180deg);
    transform: perspective(800px) rotateX(180deg); } }

.perspectiveUpReturn {
  -webkit-animation-name: perspectiveUpReturn;
  -o-animation-name: perspectiveUpReturn;
  animation-name: perspectiveUpReturn;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes perspectiveUpReturn {
  0% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateX(180deg);
    transform: perspective(800px) rotateX(180deg); }
  100% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); } }

@-o-keyframes perspectiveUpReturn {
  0% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    transform: perspective(800px) rotateX(180deg); }
  100% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    transform: perspective(800px) rotateX(0deg); } }

@keyframes perspectiveUpReturn {
  0% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateX(180deg);
    transform: perspective(800px) rotateX(180deg); }
  100% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: perspective(800px) rotateX(0deg);
    transform: perspective(800px) rotateX(0deg); } }

.effect-slideDown {
  -webkit-animation-name: slideDown;
  -o-animation-name: slideDown;
  animation-name: slideDown;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes slideDown {
  0% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: translateY(0%);
    transform: translateY(0%); }
  100% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: translateY(200%);
    transform: translateY(200%); } }

@-o-keyframes slideDown {
  0% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -o-transform: translateY(0%);
    transform: translateY(0%); }
  100% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -o-transform: translateY(200%);
    transform: translateY(200%); } }

@keyframes slideDown {
  0% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: translateY(0%);
    -o-transform: translateY(0%);
    transform: translateY(0%); }
  100% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: translateY(200%);
    -o-transform: translateY(200%);
    transform: translateY(200%); } }

.effect-slideUp {
  -webkit-animation-name: slideUp;
  -o-animation-name: slideUp;
  animation-name: slideUp;
  -webkit-animation-duration: 1s;
  -o-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  animation-fill-mode: both; }

@-webkit-keyframes slideUp {
  0% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: translateY(100%);
    transform: translateY(100%); }
  100% {
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

@-o-keyframes slideUp {
  0% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -o-transform: translateY(100%);
    transform: translateY(100%); }
  100% {
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -o-transform: translateY(0);
    transform: translateY(0); } }

@keyframes slideUp {
  0% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: translateY(100%);
    -o-transform: translateY(100%);
    transform: translateY(100%); }
  100% {
    -webkit-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0); } }

/* **** UTF8:áéíóú **** */
/**
 * THIS FILE HAS THE FOLLOWING SECTIONS:
 * 1. LINK TO STYLESHEET FOR EXERCISE TABS LOOK
 * 2. STYLES USED BY LOADER AND JS COMPONENTS
 * 3. STYLES DEFINING THE BASIC COURSE LOOK
 * 4. SECTION ICON STYLES
 * 5. UTILITY STYLES FOR SPECIFIC USEFUL ITEMS
 */
/**
 * 1. LINK TO STYLESHEET FOR EXERCISE TABS LOOK
 */
/* @import url(exercise-tabs-base.css); */
/**
 * 2. STYLES USED BY LOADER AND JS COMPONENTS
 */
.interactive-element {
  -ms-touch-action: none;
  /* necesario para pc windows con pantalla táctil (evita que haga scroll y deja arrastrar el elemento) */
  touch-action: none; }

.loader-theme .feedback-slider.popin {
  text-align: left;
  height: auto;
  margin-bottom: 5px; }

.loader-theme .feedback-slider.popin .feedback-text {
  margin-left: 10px;
  margin-right: 10px; }

/* stops the page jumping when the vertical scrollbar is not needed - 2019-10-22 */
html {
  overflow-y: scroll; }

div[loaderapptype="exercise"] {
  margin-bottom: 20px; }

/** Audio / video players **/
span.AudioButtonJS,
span.VideoPlayerJS {
  display: inline-block;
  zoom: 1;
  *display: inline; }

.AudioButtonJS i:hover {
  cursor: pointer; }

div.AudioPlayerJS {
  display: inline-block;
  height: 30px; }

span.VideoPlayerJS {
  margin-bottom: 25px; }

div.PopinAnswers,
div.PopinDiv {
  display: none; }

div.popinScroll {
  overflow: auto;
  height: 250px;
  padding-right: 10px; }

.SlideinPage {
  margin-bottom: 10px;
  position: relative; }
  .SlideinPage .SlideinPage-inner {
    overflow-y: auto; }
  .SlideinPage .tape {
    background-color: #ccd;
    color: #000;
    padding: 10px 10px 10px 70px; }
    .SlideinPage .tape::before {
      content: "\f58f";
      position: absolute;
      left: 15px;
      top: 15px;
      background: #6580bdaa;
      color: #fff;
      font-family: "Font Awesome 5 Free";
      font-weight: 600;
      width: 36px;
      height: 36px;
      text-align: center;
      font-size: 180%;
      border-radius: 2px; }
    .SlideinPage .tape h1 {
      font-size: 15pt;
      font-weight: bold;
      color: #666; }
  .SlideinPage .text {
    background-color: #b1d2f0;
    color: #000;
    padding: 10px 10px 10px 70px; }
    .SlideinPage .text::before {
      content: "\f02d";
      position: absolute;
      left: 15px;
      top: 15px;
      background: #6580bdaa;
      color: #fff;
      font-family: "Font Awesome 5 Free";
      font-weight: 600;
      width: 36px;
      height: 36px;
      text-align: center;
      font-size: 180%;
      border-radius: 2px;
      -webkit-transform: rotate(180deg);
      -o-transform: rotate(180deg);
      transform: rotate(180deg); }
    .SlideinPage .text h1 {
      font-size: 15pt;
      font-weight: bold;
      color: #666; }

div.SlideinDiv-inner {
  border: 1px solid #999;
  padding: 10px;
  background: #eee; }

div.SlideinTeachers-inner {
  border: 1px solid #999;
  padding: 10px;
  background: #ccd;
  color: #000000;
  width: 500px;
  min-height: 60px;
  margin-bottom: 10px; }
  div.SlideinTeachers-inner a {
    color: #000000; }

div.xSlideinPage::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 1em;
  bottom: 0em;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), color-stop(50%, rgba(0, 0, 0, 0.95)));
  background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.95) 50%);
  background: -o-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.95) 50%);
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.95) 50%);
  z-index: 1; }

.PopinRadioButton {
  color: #995500;
  cursor: pointer;
  border-bottom: 1px inset #995500;
  z-index: 9999; }

#SampleDescription {
  display: none; }

/************************************************************************
* Estilos para el menu de text, grammar y wordlist, etc
************************************************************************/
.wordlistTitle {
  font-weight: bold; }

.videoLink {
  color: #ffffff;
  background-color: #bbb;
  text-decoration: none;
  margin-bottom: 5px;
  margin-top: -3px;
  padding: 6px 3px 6px 3px; }

/* para la columna de la numeración (por ejemplo, en los Dropdowns XML) */
td.tableList {
  width: 25px;
  text-align: right;
  vertical-align: top; }

ol.paddingList li {
  padding: 2px; }

/***********************************************************************
 * TASK BOX STYLES
 */
.TaskBorder {
  border: 1px solid #aaa; }
  .TaskBorder .TaskHeader {
    background-color: #3399cc;
    padding: 15px 10px;
    color: #ffffff;
    font-size: 26px; 
   /* max-width: 400px;*/
  }

.forum {
  background: url(../images/icons/forum.png) no-repeat;
  font-weight: 200;
  padding-left: 55px;
  line-height: 2rem; }

.written-tutorial {
  background: url(../images/icons/written-tutorial.png) no-repeat;
  font-weight: 200;
  padding-left: 65px; }

.speaking-tutorial {
  background: url(../images/icons/speaking-tutorial.png) no-repeat;
  font-weight: 200;
  padding-left: 60px; }

.net-search {
  background: url(../images/icons/net-search.png) no-repeat;
  font-weight: 200;
  padding-left: 55px; }

.language-review {
  font-weight: 200;
  font-size: 22px; }

div.TaskBorder div.TaskPadding {
  padding: 10px; }

.TaskBorder-Tutored {
  border: 1px solid #aaa; }
  .TaskBorder-Tutored .TaskHeader {
    background-color: #3399cc;
    padding: 15px 10px;
    color: #ffffff;
    font-size: 26px; }
  .TaskBorder-Tutored .TaskPadding {
    padding: 10px; }

.TaskBorder-Untutored {
  border: 1px solid #ddd; }
  .TaskBorder-Untutored .TaskHeader {
    background-color: #ddd;
    padding: 5px 10px;
    font-weight: bold; }
  .TaskBorder-Untutored .TaskPadding {
    padding: 10px; }

span.task-tag {
  background: #3399cc;
  color: #ffffff;
  font-size: 11px;
  padding-left: 2px;
  padding-right: 2px;
  white-space: nowrap; }

.grammar {
  border: 1px solid #ccc;
  padding: 10px 20px;
  background: #f9f9f9;
  margin-bottom: 10px;
  padding-bottom: 10px; }

.gray {
  color: #666;
  text-decoration: none; }

/**
 * 3. STYLES DEFINING THE BASIC COURSE LOOK
 */
div.SectionIcon {
  margin-bottom: 1rem; }

body.word-list {
  color: #ddd;
  background: #666;
  margin: 10px; }

body.teachers {
  color: #000;
  background: #ccd;
  margin: 10px 10px 10px 10px; }

body.tape {
  background: #ccd url(../images/popups/listening.gif) no-repeat 10px 10px;
  color: #000;
  margin: 10px 10px 10px 50px; }

body.tape h1 {
  font-size: 15pt;
  font-weight: bold;
  color: #666; }

body.text {
  background: #f8faac url("../images/sections33/text.png") no-repeat scroll 10px 5px;
  color: #000;
  margin: 0px;
  margin: 10px 10px 10px 50px; }

body.text h1 {
  font-size: 15pt;
  font-weight: bold;
  color: #666; }

/* Hide the reading and transcript headings */
#reading-for {
  display: none; }

#transcript-for {
  display: none; }

/**
 * 4. SECTION ICON STYLES
 */
/* common items */
h1.section01,
h1.section02,
h1.section03,
h1.section04,
h1.section05,
h1.section06,
h1.section07,
h1.section08,
h1.section09,
h1.section10,
h1.section11,
h1.section12,
h1.section13,
h1.section14,
h1.section15,
h1.section16,
h1.section17,
h1.section-exam {
  background-repeat: no-repeat;
  margin: 0px 0px 0px 0px; }

h1.style06 {
  padding: 0px 0px 0px 42px;
  line-height: 33px;
  font-size: 16px;
  color: #0c77bf; }

div.style06 div.PageDescriptor {
  margin: 0;
  padding: 0 0 0 42px;
  color: #999; }

.TableContents h1 img {
  margin-bottom: 12px; }

p.section01,
p.section02,
p.section03,
p.section04,
p.section05,
p.section06,
p.section07,
p.section08,
p.section09,
p.section10,
p.section11,
p.section12,
p.section13,
p.section14,
p.section15,
p.section16,
p.section17 {
  background-repeat: no-repeat;
  background-position: 0px 3px;
  margin: 0px 0px 0px 0px;
  padding: 0px 0px 13px 50px; }

p.section01,
h1.section01 {
  background-image: url(../images/sections33/01start.gif); }

p.section02,
h1.section02 {
  background-image: url(../images/sections33/02reading.gif); }

p.section03,
h1.section03 {
  background-image: url(../images/sections33/03vocab.gif); }

p.section04,
h1.section04 {
  background-image: url(../images/sections33/04grammar.gif); }

p.section05,
h1.section05 {
  background-image: url(../images/sections33/05listening.gif); }

p.section06,
h1.section06 {
  background-image: url(../images/sections33/06test.gif); }

p.section07,
h1.section07 {
  background-image: url(../images/sections33/07chat.gif); }

p.section08,
h1.section08 {
  background-image: url(../images/sections33/08tutorial1.gif); }

p.section09,
h1.section09 {
  background-image: url(../images/sections33/09takeaway.gif); }

p.section10,
h1.section10 {
  background-image: url(../images/sections33/10pron.gif); }

p.section11,
h1.section11 {
  background-image: url(../images/sections33/11search.gif); }

p.section12,
h1.section12 {
  background-image: url(../images/sections33/12tutorial2.gif); }

p.section13,
h1.section13 {
  background-image: url(../images/sections33/13speak_tutorial.gif); }

p.section14,
h1.section14 {
  background-image: url(../images/sections33/14review.gif); }

p.section15,
h1.section15 {
  background-image: url(../images/sections33/15feedback.gif); }

p.section16,
h1.section16 {
  background-image: url(../images/sections33/06test.gif); }

p.section17,
h1.section17 {
  background-image: url(../images/sections33/17resources.gif); }

h1.section-exam {
  background-image: url(../images/sections33/00exam.gif); }

.unit-section-title {
  font-weight: normal;
  font-size: 11pt;
  color: #0c77bf; }

img.unitImage {
  -webkit-box-shadow: #ccc 2px 2px 4px;
  box-shadow: #ccc 2px 2px 4px; }

.sample {
  display: table;
  padding: 0px 20px;
  border: 1px solid #ccc;
  margin-bottom: 10px;
  background: #eee; }

.samplelink {
  color: #0000ff;
  text-decoration: underline; }

/**
 * 5. UTILITY STYLES FOR SPECIFIC USEFUL ITEMS
 */
.reading-box {
  padding: 0px;
  border: 1px solid #ccc;
  margin-bottom: 20px; }
  .reading-box .reading-container {
    padding: 1rem; }

div.border {
  padding: 10px;
  border: 1px solid #ccc; }

table.border {
  border-bottom: 1px solid #ccc;
  border-right: 1px solid #ccc;
  border-collapse: collapse; }
  table.border > tbody > tr > td,
  table.border > tbody > tr > th {
    border-top: 1px solid #ccc;
    border-left: 1px solid #ccc;
    border-collapse: collapse; }

.blueWord {
  color: #0000ff; }

.black-text {
  color: #000000; }

.font-size-10 {
  font-size: 10px; }

/* See if the size can be removed - Andy */
.phonetic {
  font: 14px "DejaVu Sans", "Lucida Sans Unicode", "Doulos SIL", "Charis SIL",
 "Gentium", "Code2000", "TITUS Cyberbit Basic", "Arial Unicode MS",
 "Chrysanthi Unicode"; }

.grammar-item {
  color: #f00; }

.grey-item {
  color: #ccc; }

.handwriting-style {
  font-family: "Comic Sans MS", Arial, Helvetica, sans-serif; }

.exercise-title {
  font-weight: bold;
  margin-top: 0px; }

.exerciseTitle {
  font-size: 12pt;
  margin-top: 0px; }

.print-rubric {
  font-size: 14px; }

.sectionTitle {
  font-size: 12pt;
  color: #999;
  margin-bottom: 24px;
  line-height: 20px; }

.text-heading {
  font-size: 14pt;
  color: #aaa; }

.justify {
  text-align: justify; }

.lettered-list {
  list-style-type: lower-alpha; }

.dotted-list {
  list-style-type: disc; }

.color_botones {
  background-color: #eeeee0; }

.align-exercise {
  text-align: left;
  background-color: #ffffff; }

.section-title {
  font: bold 12pt Arial, Helvetica, sans-serif; }

.example-text {
  color: #f00; }

.light-gray-text {
  color: #999;
  text-decoration: none; }

.grammar-title {
  font-size: 16px;
  font-weight: bold; }

.grammar-main-index {
  color: #000;
  font-size: 9pt;
  font-weight: bold; }

.grammar_minor_index {
  font-size: 9pt; }

.note {
  font-size: 11px;
  font-family: Arial, Helvetica, sans-serif; }

.note-pron {
  font-size: 16px; }

.speaker {
  color: #888; }

.chat-speaker1-bubble {
  float: left;
  background-color: #f3f7dd;
  border-radius: 0px 15px 15px 15px;
  padding: 10px;
  margin-bottom: 5px; }

.chat-speaker2-bubble {
  float: right;
  background-color: #f3ecf3;
  border-radius: 15px 0px 15px 15px;
  padding: 10px;
  margin-bottom: 5px; }

.chat-speaker1-name {
  color: #000;
  font-size: 80%;
  font-weight: bold; }

.chat-speaker2-name {
  color: #000;
  font-size: 80%;
  font-weight: bold;
  text-align: right; }

.rubric {
  font-size: 0.9375rem;
  margin-left: 20px;
  margin-top: 10px; }
  .rubric span.rubric {
    display: block;
    margin-right: 10px;
    border-radius: 1000px;
    height: 10px;
    width: 10px;
    position: relative;
    left: -40px;
    top: 15px; }

/************************************************************************
* Estilos para Log.js
************************************************************************/
div.logPanel {
  position: fixed;
  border: 1px solid black;
  right: 10px;
  top: 110px;
  background-color: #fff;
  width: 580px;
  height: 300px;
  overflow-y: scroll;
  padding: 5px;
  font-size: 11px;
  z-index: 10002; }
  div.logPanel span.exception {
    color: #00ee00; }
  div.logPanel span.info {
    color: #95a5a6; }
  div.logPanel span.error {
    color: #ff0000; }
  div.logPanel span.success {
    color: #0000ee; }

/******************************************************************************
Modern 3D table effect
******************************************************************************/
table.modern {
  color: #666;
  text-shadow: 1px 1px 0px #fff;
  background: #eaebec;
  margin: 10px;
  border: #ccc 1px solid;
  border-spacing: 0;
  border-radius: 3px;
  -webkit-box-shadow: 0 1px 2px #d1d1d1;
  box-shadow: 0 1px 2px #d1d1d1; }
  table.modern th {
    text-align: center;
    padding: 11px 15px 12px 15px;
    border-top: 1px solid #fafafa;
    border-bottom: 1px solid #e0e0e0;
    background: #ededed;
    background: -webkit-gradient(linear, left top, left bottom, from(#ededed), to(#ebebeb));
    background: -moz-linear-gradient(top, #ededed, #ebebeb); }
    table.modern th:first-child {
      text-align: left;
      padding-left: 10px; }
  table.modern tr {
    padding-left: 10px; }
    table.modern tr:first-child th:first-child {
      border-top-left-radius: 3px; }
    table.modern tr:first-child th:last-child {
      border-top-right-radius: 3px; }
    table.modern tr:last-child td {
      border-bottom: 0; }
      table.modern tr:last-child td:first-child {
        border-bottom-left-radius: 3px; }
      table.modern tr:last-child td:last-child {
        border-bottom-right-radius: 3px; }
    table.modern tr.even td {
      background: #f6f6f6;
      background: -webkit-gradient(linear, left top, left bottom, from(#f8f8f8), to(#f6f6f6));
      background: -moz-linear-gradient(top, #f8f8f8, #f6f6f6); }
  table.modern td {
    padding: 8px;
    border-top: 1px solid #ffffff;
    border-bottom: 1px solid #e0e0e0;
    border-left: 1px solid #e0e0e0;
    background: #fafafa;
    background: -webkit-gradient(linear, left top, left bottom, from(#fbfbfb), to(#fafafa));
    background: -moz-linear-gradient(top, #fbfbfb, #fafafa);
    vertical-align: top; }
    table.modern td:first-child {
      text-align: left;
      padding-left: 10px;
      border-left: 0; }

table.diagonal-grey-background tr {
  background: url(images/common_exercise_assets/degraCua600.gif) no-repeat; }

div.emailTop {
  background-image: url(images/email/email.png);
  background-repeat: no-repeat;
  width: 582px; }

div.emailBottom {
  width: 540px;
  border: 1px solid #cccccc;
  padding: 20px; }

video {
  width: 100% !important;
  height: auto !important;
  max-width: 512px; }

.VideoPlayerJS {
  margin-bottom: 20px; }

div.flex-container {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: top;
  -webkit-align-items: top;
  -ms-flex-align: top;
  align-items: top; }

.card {
  padding: 16px;
  margin-bottom: 20px; }
  .card ul {
    text-align: left; }

#page-body-content {
  margin-bottom: 20px; }

div.Task-Speak ol li {
  margin-left: -15px; }

body .AaReadParagraph span[data-soso],
body .AaExerciseContainer span[data-soso] {
  background-color: #90caf9 !important; }

.result-icon {
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  margin: 5px; }
  .result-icon svg {
    width: 30px; }

@-webkit-keyframes throbbing {
  0% {
    opacity: 0.8;
    -webkit-transform: scale(1);
    transform: scale(1); }
  50% {
    opacity: 0.4;
    -webkit-transform: scale(1.2);
    transform: scale(1.2); }
  100% {
    opacity: 0.8;
    -webkit-transform: scale(1);
    transform: scale(1); } }

@-o-keyframes throbbing {
  0% {
    opacity: 0.8;
    -o-transform: scale(1);
    transform: scale(1); }
  50% {
    opacity: 0.4;
    -o-transform: scale(1.2);
    transform: scale(1.2); }
  100% {
    opacity: 0.8;
    -o-transform: scale(1);
    transform: scale(1); } }

@keyframes throbbing {
  0% {
    opacity: 0.8;
    -webkit-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1); }
  50% {
    opacity: 0.4;
    -webkit-transform: scale(1.2);
    -o-transform: scale(1.2);
    transform: scale(1.2); }
  100% {
    opacity: 0.8;
    -webkit-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1); } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdsb2JhbC1wbGF5ZXIuY3NzIiwiaGVscGVycy9lZmZlY3RzL2JsaW5nL19wdWZmSW4uc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9fZWZmZWN0cy5zY3NzIiwiaGVscGVycy9lZmZlY3RzL2JsaW5nL19wdWZmT3V0LnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvYmxpbmcvX3ZhbmlzaEluLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvYmxpbmcvX3ZhbmlzaE91dC5zY3NzIiwiaGVscGVycy9lZmZlY3RzL2JvaW5nL19ib2luZ0luVXAuc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9ib2luZy9fYm9pbmdPdXREb3duLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvZGFzaC9fZGFzaC5zY3NzIiwiaGVscGVycy9lZmZlY3RzL21hdGgvX3N3YXNoSW4uc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9tYXRoL19zd2FzaE91dC5zY3NzIiwiaGVscGVycy9lZmZlY3RzL3BlcnNwZWN0aXZlL19wZXJzcGVjdGl2ZURvd24uc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9wZXJzcGVjdGl2ZS9fcGVyc3BlY3RpdmVEb3duUmV0dXJuLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvcGVyc3BlY3RpdmUvX3BlcnNwZWN0aXZlTGVmdC5zY3NzIiwiaGVscGVycy9lZmZlY3RzL3BlcnNwZWN0aXZlL19wZXJzcGVjdGl2ZUxlZnRSZXR1cm4uc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9wZXJzcGVjdGl2ZS9fcGVyc3BlY3RpdmVSaWdodC5zY3NzIiwiaGVscGVycy9lZmZlY3RzL3BlcnNwZWN0aXZlL19wZXJzcGVjdGl2ZVJpZ2h0UmV0dXJuLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvcGVyc3BlY3RpdmUvX3BlcnNwZWN0aXZlVXAuc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9wZXJzcGVjdGl2ZS9fcGVyc3BlY3RpdmVVcFJldHVybi5zY3NzIiwiaGVscGVycy9lZmZlY3RzL3NsaWRlL19zbGlkZURvd24uc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9zbGlkZS9fc2xpZGVVcC5zY3NzIiwiZ2xvYmFsLXBsYXllci5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQ0FoQjtFQUNFLDhCQUFzQjtFQUF0Qix5QkFBc0I7RUFBdEIsc0JBQXNCO0VDQXZCLDhCQUFzQjtFQUF0Qix5QkFBc0I7RUFBdEIsc0JBQXNCO0VBQ3RCLGlDQUF5QjtFQUF6Qiw0QkFBeUI7RUFBekIseUJBQXlCLEVBQUE7O0FERzFCO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsaUNBQXlCO0lBQXpCLHlCQUF5QjtJQUN6Qiw4QkFBc0I7SUFBdEIsc0JBQXNCO0lBQ3RCLHlCQUFpQjtJQUFqQixpQkFBaUIsRUFBQTtFQUVuQjtJQUNFLFVBQVU7SUFDVixpQ0FBeUI7SUFBekIseUJBQXlCO0lBQ3pCLDhCQUFzQjtJQUF0QixzQkFBc0I7SUFDdEIseUJBQWlCO0lBQWpCLGlCQUFpQixFQUFBLEVBQUE7O0FBWHJCO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsNEJBQXlCO0lBQXpCLHlCQUF5QjtJQUN6Qix5QkFBc0I7SUFBdEIsc0JBQXNCO0lBQ3RCLGlCQUFpQixFQUFBO0VBRW5CO0lBQ0UsVUFBVTtJQUNWLDRCQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIseUJBQXNCO0lBQXRCLHNCQUFzQjtJQUN0QixpQkFBaUIsRUFBQSxFQUFBOztBQVhyQjtFQUNFO0lBQ0UsVUFBVTtJQUNWLGlDQUF5QjtJQUF6Qiw0QkFBeUI7SUFBekIseUJBQXlCO0lBQ3pCLDhCQUFzQjtJQUF0Qix5QkFBc0I7SUFBdEIsc0JBQXNCO0lBQ3RCLHlCQUFpQjtJQUFqQixpQkFBaUIsRUFBQTtFQUVuQjtJQUNFLFVBQVU7SUFDVixpQ0FBeUI7SUFBekIsNEJBQXlCO0lBQXpCLHlCQUF5QjtJQUN6Qiw4QkFBc0I7SUFBdEIseUJBQXNCO0lBQXRCLHNCQUFzQjtJQUN0Qix5QkFBaUI7SUFBakIsaUJBQWlCLEVBQUEsRUFBQTs7QUVoQnJCO0VBQ0UsK0JBQXVCO0VBQXZCLDBCQUF1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QVk7SUFDWiwyQkFBbUI7SUFBbkIsc0JBQW1CO0lBQW5CLG1CQUFtQixFQUFFLEVBQUUiLCJmaWxlIjoiZ2xvYmFsLXBsYXllci5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4ucHVmZkluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHB1ZmZJbjtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgfVxuXG5Aa2V5ZnJhbWVzIHB1ZmZJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgyLCAyKTtcbiAgICBmaWx0ZXI6IGJsdXIoMnB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTtcbiAgICBmaWx0ZXI6IGJsdXIoMHB4KTsgfSB9XG5cbi5wdWZmT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHB1ZmZPdXQ7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuQGtleWZyYW1lcyBwdWZmT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xuICAgIGZpbHRlcjogYmx1cigwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDIsIDIpO1xuICAgIGZpbHRlcjogYmx1cigycHgpOyB9IH1cblxuLnZhbmlzaEluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHZhbmlzaEluO1xuICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyB9XG5cbkBrZXlmcmFtZXMgdmFuaXNoSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMiwgMik7XG4gICAgZmlsdGVyOiBibHVyKDkwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xuICAgIGZpbHRlcjogYmx1cigwcHgpOyB9IH1cblxuLnZhbmlzaE91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB2YW5pc2hPdXQ7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuQGtleWZyYW1lcyB2YW5pc2hPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gICAgZmlsdGVyOiBibHVyKDBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMiwgMik7XG4gICAgZmlsdGVyOiBibHVyKDIwcHgpOyB9IH1cblxuLmJvaW5nSW5VcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib2luZ0luVXA7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvaW5nSW5VcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKC05MGRlZyk7IH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoNTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoNTBkZWcpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpOyB9IH1cblxuQGtleWZyYW1lcyBib2luZ0luVXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgtOTBkZWcpOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDUwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDUwZGVnKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKTsgfSB9XG5cbi5ib2luZ091dERvd24ge1xuICBhbmltYXRpb24tbmFtZTogYm9pbmdPdXREb3duO1xuICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib2luZ091dERvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpOyB9XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgxMGRlZyk7IH1cbiAgMzAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgwZGVnKTsgfVxuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDEwZGVnKSByb3RhdGVZKDEwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDEwZGVnKSByb3RhdGVZKDEwZGVnKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoOTBkZWcpIHJvdGF0ZVkoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCg5MGRlZykgcm90YXRlWSgwZGVnKTsgfSB9XG5cbkBrZXlmcmFtZXMgYm9pbmdPdXREb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgwZGVnKTsgfVxuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDEwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMTBkZWcpOyB9XG4gIDMwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMGRlZyk7IH1cbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgxMGRlZykgcm90YXRlWSgxMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgxMGRlZykgcm90YXRlWSgxMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDkwZGVnKSByb3RhdGVZKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoOTBkZWcpIHJvdGF0ZVkoMGRlZyk7IH0gfVxuXG5zdmcuZGFzaCAucGF0aCB7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDEwMDA7XG4gIHN0cm9rZS1kYXNob2Zmc2V0OiAwOyB9XG4gIHN2Zy5kYXNoIC5wYXRoLmNpcmNsZSB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGRhc2g7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjlzO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB9XG4gIHN2Zy5kYXNoIC5wYXRoLmxpbmUge1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAxMDAwO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBkYXNoO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC45cztcbiAgICBhbmltYXRpb24tZGVsYXk6IDAuMzVzO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOyB9XG4gIHN2Zy5kYXNoIC5wYXRoLmNoZWNrIHtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogLTEwMDtcbiAgICBhbmltYXRpb24tbmFtZTogZGFzaC1jaGVjaztcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuOXM7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAwLjM1cztcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsgfVxuXG5Aa2V5ZnJhbWVzIGRhc2gge1xuICAwJSB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDEwMDA7IH1cbiAgMTAwJSB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IH0gfVxuXG5Aa2V5ZnJhbWVzIGRhc2gtY2hlY2sge1xuICAwJSB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMDA7IH1cbiAgMTAwJSB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDkwMDsgfSB9XG5cbi5zd2FzaEluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3YXNoSW47XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuQGtleWZyYW1lcyBzd2FzaEluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDApOyB9XG4gIDkwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45LCAwLjkpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpOyB9IH1cblxuLnN3YXNoT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3YXNoT3V0O1xuICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyB9XG5cbkBrZXlmcmFtZXMgc3dhc2hPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7IH1cbiAgODAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjksIDAuOSk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCwgMCk7IH0gfVxuXG4ucGVyc3BlY3RpdmVEb3duIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHBlcnNwZWN0aXZlRG93bjtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgfVxuXG5Aa2V5ZnJhbWVzIHBlcnNwZWN0aXZlRG93biB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgtMTgwZGVnKTsgfSB9XG5cbi5wZXJzcGVjdGl2ZURvd25SZXR1cm4ge1xuICBhbmltYXRpb24tbmFtZTogcGVyc3BlY3RpdmVEb3duUmV0dXJuO1xuICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyB9XG5cbkBrZXlmcmFtZXMgcGVyc3BlY3RpdmVEb3duUmV0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKC0xODBkZWcpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpOyB9IH1cblxuLnBlcnNwZWN0aXZlTGVmdCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBwZXJzcGVjdGl2ZUxlZnQ7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuQGtleWZyYW1lcyBwZXJzcGVjdGl2ZUxlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVkoMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVkoLTE4MGRlZyk7IH0gfVxuXG4ucGVyc3BlY3RpdmVMZWZ0UmV0dXJuIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHBlcnNwZWN0aXZlTGVmdFJldHVybjtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgfVxuXG5Aa2V5ZnJhbWVzIHBlcnNwZWN0aXZlTGVmdFJldHVybiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWSgtMTgwZGVnKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWSgwZGVnKTsgfSB9XG5cbi5wZXJzcGVjdGl2ZVJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHBlcnNwZWN0aXZlUmlnaHQ7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuQGtleWZyYW1lcyBwZXJzcGVjdGl2ZVJpZ2h0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVZKDBkZWcpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVZKDE4MGRlZyk7IH0gfVxuXG4ucGVyc3BlY3RpdmVSaWdodFJldHVybiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBwZXJzcGVjdGl2ZVJpZ2h0UmV0dXJuO1xuICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyB9XG5cbkBrZXlmcmFtZXMgcGVyc3BlY3RpdmVSaWdodFJldHVybiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWSgxODBkZWcpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVZKDBkZWcpOyB9IH1cblxuLnBlcnNwZWN0aXZlVXAge1xuICBhbmltYXRpb24tbmFtZTogcGVyc3BlY3RpdmVVcDtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgfVxuXG5Aa2V5ZnJhbWVzIHBlcnNwZWN0aXZlVXAge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMTgwZGVnKTsgfSB9XG5cbi5wZXJzcGVjdGl2ZVVwUmV0dXJuIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHBlcnNwZWN0aXZlVXBSZXR1cm47XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuQGtleWZyYW1lcyBwZXJzcGVjdGl2ZVVwUmV0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDE4MGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZyk7IH0gfVxuXG4uZWZmZWN0LXNsaWRlRG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZURvd247XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH1cblxuQGtleWZyYW1lcyBzbGlkZURvd24ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAlKTsgfSB9XG5cbi5lZmZlY3Qtc2xpZGVVcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZVVwO1xuICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyB9XG5cbkBrZXlmcmFtZXMgc2xpZGVVcCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4vKiAqKioqIFVURjg6w6HDqcOtw7PDuiAqKioqICovXG4vKipcclxuICogVEhJUyBGSUxFIEhBUyBUSEUgRk9MTE9XSU5HIFNFQ1RJT05TOlxyXG4gKiAxLiBMSU5LIFRPIFNUWUxFU0hFRVQgRk9SIEVYRVJDSVNFIFRBQlMgTE9PS1xyXG4gKiAyLiBTVFlMRVMgVVNFRCBCWSBMT0FERVIgQU5EIEpTIENPTVBPTkVOVFNcclxuICogMy4gU1RZTEVTIERFRklOSU5HIFRIRSBCQVNJQyBDT1VSU0UgTE9PS1xyXG4gKiA0LiBTRUNUSU9OIElDT04gU1RZTEVTXHJcbiAqIDUuIFVUSUxJVFkgU1RZTEVTIEZPUiBTUEVDSUZJQyBVU0VGVUwgSVRFTVNcclxuICovXG4vKipcclxuICogMS4gTElOSyBUTyBTVFlMRVNIRUVUIEZPUiBFWEVSQ0lTRSBUQUJTIExPT0tcclxuICovXG4vKiBAaW1wb3J0IHVybChleGVyY2lzZS10YWJzLWJhc2UuY3NzKTsgKi9cbi8qKlxyXG4gKiAyLiBTVFlMRVMgVVNFRCBCWSBMT0FERVIgQU5EIEpTIENPTVBPTkVOVFNcclxuICovXG4uaW50ZXJhY3RpdmUtZWxlbWVudCB7XG4gIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG4gIC8qIG5lY2VzYXJpbyBwYXJhIHBjIHdpbmRvd3MgY29uIHBhbnRhbGxhIHTDoWN0aWwgKGV2aXRhIHF1ZSBoYWdhIHNjcm9sbCB5IGRlamEgYXJyYXN0cmFyIGVsIGVsZW1lbnRvKSAqL1xuICB0b3VjaC1hY3Rpb246IG5vbmU7IH1cblxuLmxvYWRlci10aGVtZSAuZmVlZGJhY2stc2xpZGVyLnBvcGluIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cblxuLmxvYWRlci10aGVtZSAuZmVlZGJhY2stc2xpZGVyLnBvcGluIC5mZWVkYmFjay10ZXh0IHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDsgfVxuXG4vKiBzdG9wcyB0aGUgcGFnZSBqdW1waW5nIHdoZW4gdGhlIHZlcnRpY2FsIHNjcm9sbGJhciBpcyBub3QgbmVlZGVkIC0gMjAxOS0xMC0yMiAqL1xuaHRtbCB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDsgfVxuXG5kaXZbbG9hZGVyYXBwdHlwZT1cImV4ZXJjaXNlXCJdIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4vKiogQXVkaW8gLyB2aWRlbyBwbGF5ZXJzICoqL1xuc3Bhbi5BdWRpb0J1dHRvbkpTLFxuc3Bhbi5WaWRlb1BsYXllckpTIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB6b29tOiAxO1xuICAqZGlzcGxheTogaW5saW5lOyB9XG5cbi5BdWRpb0J1dHRvbkpTIGk6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuZGl2LkF1ZGlvUGxheWVySlMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMzBweDsgfVxuXG5zcGFuLlZpZGVvUGxheWVySlMge1xuICBtYXJnaW4tYm90dG9tOiAyNXB4OyB9XG5cbmRpdi5Qb3BpbkFuc3dlcnMsXG5kaXYuUG9waW5EaXYge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbmRpdi5wb3BpblNjcm9sbCB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBoZWlnaHQ6IDI1MHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9XG5cbi5TbGlkZWluUGFnZSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuU2xpZGVpblBhZ2UgLlNsaWRlaW5QYWdlLWlubmVyIHtcbiAgICBvdmVyZmxvdy15OiBhdXRvOyB9XG4gIC5TbGlkZWluUGFnZSAudGFwZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjZDtcbiAgICBjb2xvcjogIzAwMDtcbiAgICBwYWRkaW5nOiAxMHB4IDEwcHggMTBweCA3MHB4OyB9XG4gICAgLlNsaWRlaW5QYWdlIC50YXBlOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXGY1OGZcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDE1cHg7XG4gICAgICB0b3A6IDE1cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjNjU4MGJkYWE7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IEZyZWVcIjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB3aWR0aDogMzZweDtcbiAgICAgIGhlaWdodDogMzZweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogMTgwJTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgfVxuICAgIC5TbGlkZWluUGFnZSAudGFwZSBoMSB7XG4gICAgICBmb250LXNpemU6IDE1cHQ7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGNvbG9yOiAjNjY2OyB9XG4gIC5TbGlkZWluUGFnZSAudGV4dCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2IxZDJmMDtcbiAgICBjb2xvcjogIzAwMDtcbiAgICBwYWRkaW5nOiAxMHB4IDEwcHggMTBweCA3MHB4OyB9XG4gICAgLlNsaWRlaW5QYWdlIC50ZXh0OjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXGYwMmRcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDE1cHg7XG4gICAgICB0b3A6IDE1cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjNjU4MGJkYWE7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IEZyZWVcIjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB3aWR0aDogMzZweDtcbiAgICAgIGhlaWdodDogMzZweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogMTgwJTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cbiAgICAuU2xpZGVpblBhZ2UgLnRleHQgaDEge1xuICAgICAgZm9udC1zaXplOiAxNXB0O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBjb2xvcjogIzY2NjsgfVxuXG5kaXYuU2xpZGVpbkRpdi1pbm5lciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJhY2tncm91bmQ6ICNlZWU7IH1cblxuZGl2LlNsaWRlaW5UZWFjaGVycy1pbm5lciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJhY2tncm91bmQ6ICNjY2Q7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICB3aWR0aDogNTAwcHg7XG4gIG1pbi1oZWlnaHQ6IDYwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgZGl2LlNsaWRlaW5UZWFjaGVycy1pbm5lciBhIHtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuXG5kaXYueFNsaWRlaW5QYWdlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMWVtO1xuICBib3R0b206IDBlbTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwKSwgcmdiYSgwLCAwLCAwLCAwLjk1KSA1MCUpO1xuICB6LWluZGV4OiAxOyB9XG5cbi5Qb3BpblJhZGlvQnV0dG9uIHtcbiAgY29sb3I6ICM5OTU1MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGluc2V0ICM5OTU1MDA7XG4gIHotaW5kZXg6IDk5OTk7IH1cblxuI1NhbXBsZURlc2NyaXB0aW9uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiogRXN0aWxvcyBwYXJhIGVsIG1lbnUgZGUgdGV4dCwgZ3JhbW1hciB5IHdvcmRsaXN0LCBldGNcclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLndvcmRsaXN0VGl0bGUge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4udmlkZW9MaW5rIHtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiYmI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBtYXJnaW4tdG9wOiAtM3B4O1xuICBwYWRkaW5nOiA2cHggM3B4IDZweCAzcHg7IH1cblxuLyogcGFyYSBsYSBjb2x1bW5hIGRlIGxhIG51bWVyYWNpw7NuIChwb3IgZWplbXBsbywgZW4gbG9zIERyb3Bkb3ducyBYTUwpICovXG50ZC50YWJsZUxpc3Qge1xuICB3aWR0aDogMjVweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxub2wucGFkZGluZ0xpc3QgbGkge1xuICBwYWRkaW5nOiAycHg7IH1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIFRBU0sgQk9YIFNUWUxFU1xyXG4gKi9cbi5UYXNrQm9yZGVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2FhYTsgfVxuICAuVGFza0JvcmRlciAuVGFza0hlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMzOTljYztcbiAgICBwYWRkaW5nOiAxNXB4IDEwcHg7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAyNnB4OyB9XG5cbi5mb3J1bSB7XG4gIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbnMvZm9ydW0ucG5nKSBuby1yZXBlYXQ7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG4gIHBhZGRpbmctbGVmdDogNTVweDtcbiAgbGluZS1oZWlnaHQ6IDJyZW07IH1cblxuLndyaXR0ZW4tdHV0b3JpYWwge1xuICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb25zL3dyaXR0ZW4tdHV0b3JpYWwucG5nKSBuby1yZXBlYXQ7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG4gIHBhZGRpbmctbGVmdDogNjVweDsgfVxuXG4uc3BlYWtpbmctdHV0b3JpYWwge1xuICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb25zL3NwZWFraW5nLXR1dG9yaWFsLnBuZykgbm8tcmVwZWF0O1xuICBmb250LXdlaWdodDogMjAwO1xuICBwYWRkaW5nLWxlZnQ6IDYwcHg7IH1cblxuLm5ldC1zZWFyY2gge1xuICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb25zL25ldC1zZWFyY2gucG5nKSBuby1yZXBlYXQ7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG4gIHBhZGRpbmctbGVmdDogNTVweDsgfVxuXG4ubGFuZ3VhZ2UtcmV2aWV3IHtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgZm9udC1zaXplOiAyMnB4OyB9XG5cbmRpdi5UYXNrQm9yZGVyIGRpdi5UYXNrUGFkZGluZyB7XG4gIHBhZGRpbmc6IDEwcHg7IH1cblxuLlRhc2tCb3JkZXItVHV0b3JlZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7IH1cbiAgLlRhc2tCb3JkZXItVHV0b3JlZCAuVGFza0hlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMzOTljYztcbiAgICBwYWRkaW5nOiAxNXB4IDEwcHg7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAyNnB4OyB9XG4gIC5UYXNrQm9yZGVyLVR1dG9yZWQgLlRhc2tQYWRkaW5nIHtcbiAgICBwYWRkaW5nOiAxMHB4OyB9XG5cbi5UYXNrQm9yZGVyLVVudHV0b3JlZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7IH1cbiAgLlRhc2tCb3JkZXItVW50dXRvcmVkIC5UYXNrSGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5UYXNrQm9yZGVyLVVudHV0b3JlZCAuVGFza1BhZGRpbmcge1xuICAgIHBhZGRpbmc6IDEwcHg7IH1cblxuc3Bhbi50YXNrLXRhZyB7XG4gIGJhY2tncm91bmQ6ICMzMzk5Y2M7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXNpemU6IDExcHg7XG4gIHBhZGRpbmctbGVmdDogMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAycHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLmdyYW1tYXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4OyB9XG5cbi5ncmF5IHtcbiAgY29sb3I6ICM2NjY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKipcclxuICogMy4gU1RZTEVTIERFRklOSU5HIFRIRSBCQVNJQyBDT1VSU0UgTE9PS1xyXG4gKi9cbmRpdi5TZWN0aW9uSWNvbiB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cblxuYm9keS53b3JkLWxpc3Qge1xuICBjb2xvcjogI2RkZDtcbiAgYmFja2dyb3VuZDogIzY2NjtcbiAgbWFyZ2luOiAxMHB4OyB9XG5cbmJvZHkudGVhY2hlcnMge1xuICBjb2xvcjogIzAwMDtcbiAgYmFja2dyb3VuZDogI2NjZDtcbiAgbWFyZ2luOiAxMHB4IDEwcHggMTBweCAxMHB4OyB9XG5cbmJvZHkudGFwZSB7XG4gIGJhY2tncm91bmQ6ICNjY2QgdXJsKC4uL2ltYWdlcy9wb3B1cHMvbGlzdGVuaW5nLmdpZikgbm8tcmVwZWF0IDEwcHggMTBweDtcbiAgY29sb3I6ICMwMDA7XG4gIG1hcmdpbjogMTBweCAxMHB4IDEwcHggNTBweDsgfVxuXG5ib2R5LnRhcGUgaDEge1xuICBmb250LXNpemU6IDE1cHQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzY2NjsgfVxuXG5ib2R5LnRleHQge1xuICBiYWNrZ3JvdW5kOiAjYjFkMmYwIHVybChcIi4uL2ltYWdlcy9zZWN0aW9uczMzL3RleHQucG5nXCIpIG5vLXJlcGVhdCBzY3JvbGwgMTBweCA1cHg7XG4gIGNvbG9yOiAjMDAwO1xuICBtYXJnaW46IDBweDtcbiAgbWFyZ2luOiAxMHB4IDEwcHggMTBweCA1MHB4OyB9XG5cbmJvZHkudGV4dCBoMSB7XG4gIGZvbnQtc2l6ZTogMTVwdDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi8qIEhpZGUgdGhlIHJlYWRpbmcgYW5kIHRyYW5zY3JpcHQgaGVhZGluZ3MgKi9cbiNyZWFkaW5nLWZvciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuI3RyYW5zY3JpcHQtZm9yIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKipcclxuICogNC4gU0VDVElPTiBJQ09OIFNUWUxFU1xyXG4gKi9cbi8qIGNvbW1vbiBpdGVtcyAqL1xuaDEuc2VjdGlvbjAxLFxuaDEuc2VjdGlvbjAyLFxuaDEuc2VjdGlvbjAzLFxuaDEuc2VjdGlvbjA0LFxuaDEuc2VjdGlvbjA1LFxuaDEuc2VjdGlvbjA2LFxuaDEuc2VjdGlvbjA3LFxuaDEuc2VjdGlvbjA4LFxuaDEuc2VjdGlvbjA5LFxuaDEuc2VjdGlvbjEwLFxuaDEuc2VjdGlvbjExLFxuaDEuc2VjdGlvbjEyLFxuaDEuc2VjdGlvbjEzLFxuaDEuc2VjdGlvbjE0LFxuaDEuc2VjdGlvbjE1LFxuaDEuc2VjdGlvbjE2LFxuaDEuc2VjdGlvbjE3LFxuaDEuc2VjdGlvbi1leGFtIHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgbWFyZ2luOiAwcHggMHB4IDBweCAwcHg7IH1cblxuaDEuc3R5bGUwNiB7XG4gIHBhZGRpbmc6IDBweCAwcHggMHB4IDQycHg7XG4gIGxpbmUtaGVpZ2h0OiAzM3B4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjMGM3N2JmOyB9XG5cbmRpdi5zdHlsZTA2IGRpdi5QYWdlRGVzY3JpcHRvciB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAwIDAgNDJweDtcbiAgY29sb3I6ICM5OTk7IH1cblxuLlRhYmxlQ29udGVudHMgaDEgaW1nIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDsgfVxuXG5wLnNlY3Rpb24wMSxcbnAuc2VjdGlvbjAyLFxucC5zZWN0aW9uMDMsXG5wLnNlY3Rpb24wNCxcbnAuc2VjdGlvbjA1LFxucC5zZWN0aW9uMDYsXG5wLnNlY3Rpb24wNyxcbnAuc2VjdGlvbjA4LFxucC5zZWN0aW9uMDksXG5wLnNlY3Rpb24xMCxcbnAuc2VjdGlvbjExLFxucC5zZWN0aW9uMTIsXG5wLnNlY3Rpb24xMyxcbnAuc2VjdGlvbjE0LFxucC5zZWN0aW9uMTUsXG5wLnNlY3Rpb24xNixcbnAuc2VjdGlvbjE3IHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDNweDtcbiAgbWFyZ2luOiAwcHggMHB4IDBweCAwcHg7XG4gIHBhZGRpbmc6IDBweCAwcHggMTNweCA1MHB4OyB9XG5cbnAuc2VjdGlvbjAxLFxuaDEuc2VjdGlvbjAxIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zZWN0aW9uczMzLzAxc3RhcnQuZ2lmKTsgfVxuXG5wLnNlY3Rpb24wMixcbmgxLnNlY3Rpb24wMiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2VjdGlvbnMzMy8wMnJlYWRpbmcuZ2lmKTsgfVxuXG5wLnNlY3Rpb24wMyxcbmgxLnNlY3Rpb24wMyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2VjdGlvbnMzMy8wM3ZvY2FiLmdpZik7IH1cblxucC5zZWN0aW9uMDQsXG5oMS5zZWN0aW9uMDQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3NlY3Rpb25zMzMvMDRncmFtbWFyLmdpZik7IH1cblxucC5zZWN0aW9uMDUsXG5oMS5zZWN0aW9uMDUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3NlY3Rpb25zMzMvMDVsaXN0ZW5pbmcuZ2lmKTsgfVxuXG5wLnNlY3Rpb24wNixcbmgxLnNlY3Rpb24wNiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2VjdGlvbnMzMy8wNnRlc3QuZ2lmKTsgfVxuXG5wLnNlY3Rpb24wNyxcbmgxLnNlY3Rpb24wNyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2VjdGlvbnMzMy8wN2NoYXQuZ2lmKTsgfVxuXG5wLnNlY3Rpb24wOCxcbmgxLnNlY3Rpb24wOCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2VjdGlvbnMzMy8wOHR1dG9yaWFsMS5naWYpOyB9XG5cbnAuc2VjdGlvbjA5LFxuaDEuc2VjdGlvbjA5IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zZWN0aW9uczMzLzA5dGFrZWF3YXkuZ2lmKTsgfVxuXG5wLnNlY3Rpb24xMCxcbmgxLnNlY3Rpb24xMCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2VjdGlvbnMzMy8xMHByb24uZ2lmKTsgfVxuXG5wLnNlY3Rpb24xMSxcbmgxLnNlY3Rpb24xMSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2VjdGlvbnMzMy8xMXNlYXJjaC5naWYpOyB9XG5cbnAuc2VjdGlvbjEyLFxuaDEuc2VjdGlvbjEyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zZWN0aW9uczMzLzEydHV0b3JpYWwyLmdpZik7IH1cblxucC5zZWN0aW9uMTMsXG5oMS5zZWN0aW9uMTMge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3NlY3Rpb25zMzMvMTNzcGVha190dXRvcmlhbC5naWYpOyB9XG5cbnAuc2VjdGlvbjE0LFxuaDEuc2VjdGlvbjE0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zZWN0aW9uczMzLzE0cmV2aWV3LmdpZik7IH1cblxucC5zZWN0aW9uMTUsXG5oMS5zZWN0aW9uMTUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3NlY3Rpb25zMzMvMTVmZWVkYmFjay5naWYpOyB9XG5cbnAuc2VjdGlvbjE2LFxuaDEuc2VjdGlvbjE2IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zZWN0aW9uczMzLzA2dGVzdC5naWYpOyB9XG5cbnAuc2VjdGlvbjE3LFxuaDEuc2VjdGlvbjE3IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zZWN0aW9uczMzLzE3cmVzb3VyY2VzLmdpZik7IH1cblxuaDEuc2VjdGlvbi1leGFtIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zZWN0aW9uczMzLzAwZXhhbS5naWYpOyB9XG5cbi51bml0LXNlY3Rpb24tdGl0bGUge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDExcHQ7XG4gIGNvbG9yOiAjMGM3N2JmOyB9XG5cbmltZy51bml0SW1hZ2Uge1xuICBib3gtc2hhZG93OiAjY2NjIDJweCAycHggNHB4OyB9XG5cbi5zYW1wbGUge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgcGFkZGluZzogMHB4IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGJhY2tncm91bmQ6ICNlZWU7IH1cblxuLnNhbXBsZWxpbmsge1xuICBjb2xvcjogIzAwMDBmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLyoqXHJcbiAqIDUuIFVUSUxJVFkgU1RZTEVTIEZPUiBTUEVDSUZJQyBVU0VGVUwgSVRFTVNcclxuICovXG4ucmVhZGluZy1ib3gge1xuICBwYWRkaW5nOiAwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgLnJlYWRpbmctYm94IC5yZWFkaW5nLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMXJlbTsgfVxuXG5kaXYuYm9yZGVyIHtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgfVxuXG50YWJsZS5ib3JkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgfVxuICB0YWJsZS5ib3JkZXIgPiB0Ym9keSA+IHRyID4gdGQsXG4gIHRhYmxlLmJvcmRlciA+IHRib2R5ID4gdHIgPiB0aCB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IH1cblxuLmJsdWVXb3JkIHtcbiAgY29sb3I6ICMwMDAwZmY7IH1cblxuLmJsYWNrLXRleHQge1xuICBjb2xvcjogIzAwMDAwMDsgfVxuXG4uZm9udC1zaXplLTEwIHtcbiAgZm9udC1zaXplOiAxMHB4OyB9XG5cbi8qIFNlZSBpZiB0aGUgc2l6ZSBjYW4gYmUgcmVtb3ZlZCAtIEFuZHkgKi9cbi5waG9uZXRpYyB7XG4gIGZvbnQ6IDE0cHggXCJEZWphVnUgU2Fuc1wiLCBcIkx1Y2lkYSBTYW5zIFVuaWNvZGVcIiwgXCJEb3Vsb3MgU0lMXCIsIFwiQ2hhcmlzIFNJTFwiLFxyIFwiR2VudGl1bVwiLCBcIkNvZGUyMDAwXCIsIFwiVElUVVMgQ3liZXJiaXQgQmFzaWNcIiwgXCJBcmlhbCBVbmljb2RlIE1TXCIsXHIgXCJDaHJ5c2FudGhpIFVuaWNvZGVcIjsgfVxuXG4uZ3JhbW1hci1pdGVtIHtcbiAgY29sb3I6ICNmMDA7IH1cblxuLmdyZXktaXRlbSB7XG4gIGNvbG9yOiAjY2NjOyB9XG5cbi5oYW5kd3JpdGluZy1zdHlsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkNvbWljIFNhbnMgTVNcIiwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgfVxuXG4uZXhlcmNpc2UtdGl0bGUge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLXRvcDogMHB4OyB9XG5cbi5leGVyY2lzZVRpdGxlIHtcbiAgZm9udC1zaXplOiAxMnB0O1xuICBtYXJnaW4tdG9wOiAwcHg7IH1cblxuLnByaW50LXJ1YnJpYyB7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuXG4uc2VjdGlvblRpdGxlIHtcbiAgZm9udC1zaXplOiAxMnB0O1xuICBjb2xvcjogIzk5OTtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7IH1cblxuLnRleHQtaGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMTRwdDtcbiAgY29sb3I6ICNhYWE7IH1cblxuLmp1c3RpZnkge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG5cbi5sZXR0ZXJlZC1saXN0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBsb3dlci1hbHBoYTsgfVxuXG4uZG90dGVkLWxpc3Qge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IH1cblxuLmNvbG9yX2JvdG9uZXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWUwOyB9XG5cbi5hbGlnbi1leGVyY2lzZSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cblxuLnNlY3Rpb24tdGl0bGUge1xuICBmb250OiBib2xkIDEycHQgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgfVxuXG4uZXhhbXBsZS10ZXh0IHtcbiAgY29sb3I6ICNmMDA7IH1cblxuLmxpZ2h0LWdyYXktdGV4dCB7XG4gIGNvbG9yOiAjOTk5O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLmdyYW1tYXItdGl0bGUge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5ncmFtbWFyLW1haW4taW5kZXgge1xuICBjb2xvcjogIzAwMDtcbiAgZm9udC1zaXplOiA5cHQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5ncmFtbWFyX21pbm9yX2luZGV4IHtcbiAgZm9udC1zaXplOiA5cHQ7IH1cblxuLm5vdGUge1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyB9XG5cbi5ub3RlLXByb24ge1xuICBmb250LXNpemU6IDE2cHg7IH1cblxuLnNwZWFrZXIge1xuICBjb2xvcjogIzg4ODsgfVxuXG4uY2hhdC1zcGVha2VyMS1idWJibGUge1xuICBmbG9hdDogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjdkZDtcbiAgYm9yZGVyLXJhZGl1czogMHB4IDE1cHggMTVweCAxNXB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cblxuLmNoYXQtc3BlYWtlcjItYnViYmxlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNlY2YzO1xuICBib3JkZXItcmFkaXVzOiAxNXB4IDBweCAxNXB4IDE1cHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuXG4uY2hhdC1zcGVha2VyMS1uYW1lIHtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uY2hhdC1zcGVha2VyMi1uYW1lIHtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnJ1YnJpYyB7XG4gIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICBtYXJnaW4tbGVmdDogMjBweDtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuICAucnVicmljIHNwYW4ucnVicmljIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICB3aWR0aDogMTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTQwcHg7XG4gICAgdG9wOiAxNXB4OyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuKiBFc3RpbG9zIHBhcmEgTG9nLmpzXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmRpdi5sb2dQYW5lbCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gIHJpZ2h0OiAxMHB4O1xuICB0b3A6IDExMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICB3aWR0aDogNTgwcHg7XG4gIGhlaWdodDogMzAwcHg7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgcGFkZGluZzogNXB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIHotaW5kZXg6IDEwMDAyOyB9XG4gIGRpdi5sb2dQYW5lbCBzcGFuLmV4Y2VwdGlvbiB7XG4gICAgY29sb3I6ICMwMGVlMDA7IH1cbiAgZGl2LmxvZ1BhbmVsIHNwYW4uaW5mbyB7XG4gICAgY29sb3I6ICM5NWE1YTY7IH1cbiAgZGl2LmxvZ1BhbmVsIHNwYW4uZXJyb3Ige1xuICAgIGNvbG9yOiAjZmYwMDAwOyB9XG4gIGRpdi5sb2dQYW5lbCBzcGFuLnN1Y2Nlc3Mge1xuICAgIGNvbG9yOiAjMDAwMGVlOyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuTW9kZXJuIDNEIHRhYmxlIGVmZmVjdFxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG50YWJsZS5tb2Rlcm4ge1xuICBjb2xvcjogIzY2NjtcbiAgdGV4dC1zaGFkb3c6IDFweCAxcHggMHB4ICNmZmY7XG4gIGJhY2tncm91bmQ6ICNlYWViZWM7XG4gIG1hcmdpbjogMTBweDtcbiAgYm9yZGVyOiAjY2NjIDFweCBzb2xpZDtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4ICNkMWQxZDE7IH1cbiAgdGFibGUubW9kZXJuIHRoIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTFweCAxNXB4IDEycHggMTVweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2ZhZmFmYTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTBlMDtcbiAgICBiYWNrZ3JvdW5kOiAjZWRlZGVkO1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20oI2VkZWRlZCksIHRvKCNlYmViZWIpKTtcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNlZGVkZWQsICNlYmViZWIpOyB9XG4gICAgdGFibGUubW9kZXJuIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cbiAgdGFibGUubW9kZXJuIHRyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cbiAgICB0YWJsZS5tb2Rlcm4gdHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4OyB9XG4gICAgdGFibGUubW9kZXJuIHRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQge1xuICAgICAgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OiAzcHg7XG4gICAgICAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4OyB9XG4gICAgdGFibGUubW9kZXJuIHRyOmxhc3QtY2hpbGQgdGQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDsgfVxuICAgICAgdGFibGUubW9kZXJuIHRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7IH1cbiAgICAgIHRhYmxlLm1vZGVybiB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4OyB9XG4gICAgdGFibGUubW9kZXJuIHRyLmV2ZW4gdGQge1xuICAgICAgYmFja2dyb3VuZDogI2Y2ZjZmNjtcbiAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20oI2Y4ZjhmOCksIHRvKCNmNmY2ZjYpKTtcbiAgICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2Y4ZjhmOCwgI2Y2ZjZmNik7IH1cbiAgdGFibGUubW9kZXJuIHRkIHtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmZmZmZmY7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMGUwZTA7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTBlMGUwO1xuICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbSgjZmJmYmZiKSwgdG8oI2ZhZmFmYSkpO1xuICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZiZmJmYiwgI2ZhZmFmYSk7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAgIHRhYmxlLm1vZGVybiB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7IH1cblxudGFibGUuZGlhZ29uYWwtZ3JleS1iYWNrZ3JvdW5kIHRyIHtcbiAgYmFja2dyb3VuZDogdXJsKGltYWdlcy9jb21tb25fZXhlcmNpc2VfYXNzZXRzL2RlZ3JhQ3VhNjAwLmdpZikgbm8tcmVwZWF0OyB9XG5cbmRpdi5lbWFpbFRvcCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvZW1haWwvZW1haWwucG5nKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgd2lkdGg6IDU4MnB4OyB9XG5cbmRpdi5lbWFpbEJvdHRvbSB7XG4gIHdpZHRoOiA1NDBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgcGFkZGluZzogMjBweDsgfVxuXG52aWRlbyB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDUxMnB4OyB9XG5cbi5WaWRlb1BsYXllckpTIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG5kaXYuZmxleC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiB0b3A7IH1cblxuLmNhcmQge1xuICBwYWRkaW5nOiAxNnB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIC5jYXJkIHVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbiNwYWdlLWJvZHktY29udGVudCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuZGl2LlRhc2stU3BlYWsgb2wgbGkge1xuICBtYXJnaW4tbGVmdDogLTE1cHg7IH1cblxuYm9keSAuQWFSZWFkUGFyYWdyYXBoIHNwYW5bZGF0YS1zb3NvXSxcbmJvZHkgLkFhRXhlcmNpc2VDb250YWluZXIgc3BhbltkYXRhLXNvc29dIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkwY2FmOSAhaW1wb3J0YW50OyB9XG5cbi5yZXN1bHQtaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIG1hcmdpbjogNXB4OyB9XG4gIC5yZXN1bHQtaWNvbiBzdmcge1xuICAgIHdpZHRoOiAzMHB4OyB9XG5cbkBrZXlmcmFtZXMgdGhyb2JiaW5nIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDAuODtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC40O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9XG4iLCIucHVmZkluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHB1ZmZJbjtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQGtleWZyYW1lcyBwdWZmSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMiwgMik7XG4gICAgZmlsdGVyOiBibHVyKDJweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gICAgZmlsdGVyOiBibHVyKDBweCk7XG4gIH1cbn1cbiIsIkBtaXhpbiBpbml0RWZmZWN0IHtcclxuXHRhbmltYXRpb24tZHVyYXRpb246IDFzO1xyXG5cdGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XHJcbn1cclxuXHJcbi8vICBCbGluZ1xyXG5AaW1wb3J0IFwiYmxpbmcvcHVmZkluXCI7XHJcbkBpbXBvcnQgXCJibGluZy9wdWZmT3V0XCI7XHJcbkBpbXBvcnQgXCJibGluZy92YW5pc2hJblwiO1xyXG5AaW1wb3J0IFwiYmxpbmcvdmFuaXNoT3V0XCI7XHJcblxyXG4vLyAgQm9pbmdcclxuQGltcG9ydCBcImJvaW5nL2JvaW5nSW5VcFwiO1xyXG5AaW1wb3J0IFwiYm9pbmcvYm9pbmdPdXREb3duXCI7XHJcblxyXG4vLyAgRGFzaFxyXG5AaW1wb3J0IFwiZGFzaC9kYXNoXCI7XHJcblxyXG4vLyAgTWF0aFxyXG5AaW1wb3J0IFwibWF0aC9zd2FzaEluXCI7XHJcbkBpbXBvcnQgXCJtYXRoL3N3YXNoT3V0XCI7XHJcblxyXG4vLyAgUGVyc3BlY3RpdmVcclxuQGltcG9ydCBcInBlcnNwZWN0aXZlL3BlcnNwZWN0aXZlRG93blwiO1xyXG5AaW1wb3J0IFwicGVyc3BlY3RpdmUvcGVyc3BlY3RpdmVEb3duUmV0dXJuXCI7XHJcbkBpbXBvcnQgXCJwZXJzcGVjdGl2ZS9wZXJzcGVjdGl2ZUxlZnRcIjtcclxuQGltcG9ydCBcInBlcnNwZWN0aXZlL3BlcnNwZWN0aXZlTGVmdFJldHVyblwiO1xyXG5AaW1wb3J0IFwicGVyc3BlY3RpdmUvcGVyc3BlY3RpdmVSaWdodFwiO1xyXG5AaW1wb3J0IFwicGVyc3BlY3RpdmUvcGVyc3BlY3RpdmVSaWdodFJldHVyblwiO1xyXG5AaW1wb3J0IFwicGVyc3BlY3RpdmUvcGVyc3BlY3RpdmVVcFwiO1xyXG5AaW1wb3J0IFwicGVyc3BlY3RpdmUvcGVyc3BlY3RpdmVVcFJldHVyblwiO1xyXG5cclxuLy8gIFNsaWRlXHJcbkBpbXBvcnQgXCJzbGlkZS9zbGlkZURvd25cIjtcclxuQGltcG9ydCBcInNsaWRlL3NsaWRlVXBcIjtcclxuIiwiLnB1ZmZPdXQge1xuICBhbmltYXRpb24tbmFtZTogcHVmZk91dDtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQGtleWZyYW1lcyBwdWZmT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xuICAgIGZpbHRlcjogYmx1cigwcHgpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDIsIDIpO1xuICAgIGZpbHRlcjogYmx1cigycHgpO1xuICB9XG59XG4iLCIudmFuaXNoSW4ge1xuICBhbmltYXRpb24tbmFtZTogdmFuaXNoSW47XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkBrZXlmcmFtZXMgdmFuaXNoSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMiwgMik7XG4gICAgZmlsdGVyOiBibHVyKDkwcHgpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xuICAgIGZpbHRlcjogYmx1cigwcHgpO1xuICB9XG59XG4iLCIudmFuaXNoT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHZhbmlzaE91dDtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQGtleWZyYW1lcyB2YW5pc2hPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gICAgZmlsdGVyOiBibHVyKDBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMiwgMik7XG4gICAgZmlsdGVyOiBibHVyKDIwcHgpO1xuICB9XG59XG4iLCIuYm9pbmdJblVwIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvaW5nSW5VcDtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvaW5nSW5VcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoNTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoNTBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm9pbmdJblVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCg1MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCg1MGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gIH1cbn1cbiIsIi5ib2luZ091dERvd24ge1xuICBhbmltYXRpb24tbmFtZTogYm9pbmdPdXREb3duO1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIGJvaW5nT3V0RG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMGRlZyk7XG4gIH1cblxuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDEwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMTBkZWcpO1xuICB9XG5cbiAgMzAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgwZGVnKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMTBkZWcpIHJvdGF0ZVkoMTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMTBkZWcpIHJvdGF0ZVkoMTBkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDkwZGVnKSByb3RhdGVZKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoOTBkZWcpIHJvdGF0ZVkoMGRlZyk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgYm9pbmdPdXREb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgwZGVnKTtcbiAgfVxuXG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgxMGRlZyk7XG4gIH1cblxuICAzMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpO1xuICB9XG5cbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgxMGRlZykgcm90YXRlWSgxMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgxMGRlZykgcm90YXRlWSgxMGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoOTBkZWcpIHJvdGF0ZVkoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCg5MGRlZykgcm90YXRlWSgwZGVnKTtcbiAgfVxufVxuIiwic3ZnLmRhc2gge1xyXG5cdC5wYXRoIHtcclxuXHRcdHN0cm9rZS1kYXNoYXJyYXk6IDEwMDA7XHJcblx0XHRzdHJva2UtZGFzaG9mZnNldDogMDtcclxuXHJcblx0XHQmLmNpcmNsZSB7XHJcblx0XHRcdGFuaW1hdGlvbi1uYW1lOiBkYXNoO1xyXG5cdFx0XHRhbmltYXRpb24tZHVyYXRpb246IDAuOXM7XHJcblx0XHRcdGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xyXG5cdFx0fVxyXG5cclxuXHRcdCYubGluZSB7XHJcblx0XHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAxMDAwO1xyXG5cclxuXHRcdFx0YW5pbWF0aW9uLW5hbWU6IGRhc2g7XHJcblx0XHRcdGFuaW1hdGlvbi1kdXJhdGlvbjogMC45cztcclxuXHRcdFx0YW5pbWF0aW9uLWRlbGF5OiAwLjM1cztcclxuXHRcdFx0YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XHJcblx0XHRcdGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmNoZWNrIHtcclxuXHRcdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMDA7XHJcblx0XHRcdGFuaW1hdGlvbi1uYW1lOiBkYXNoLWNoZWNrO1xyXG5cdFx0XHRhbmltYXRpb24tZHVyYXRpb246IDAuOXM7XHJcblx0XHRcdGFuaW1hdGlvbi1kZWxheTogMC4zNXM7XHJcblx0XHRcdGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xyXG5cdFx0XHRhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgZGFzaCB7XHJcblx0MCUge1xyXG5cdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDEwMDA7XHJcblx0fVxyXG5cdDEwMCUge1xyXG5cdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XHJcblx0fVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGRhc2gtY2hlY2sge1xyXG5cdDAlIHtcclxuXHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAtMTAwO1xyXG5cdH1cclxuXHQxMDAlIHtcclxuXHRcdHN0cm9rZS1kYXNob2Zmc2V0OiA5MDA7XHJcblx0fVxyXG59XHJcbiIsIi5zd2FzaEluIHtcblx0YW5pbWF0aW9uLW5hbWU6IHN3YXNoSW47XG5cdEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkBrZXlmcmFtZXMgc3dhc2hJbiB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcblx0fVxuXG5cdDkwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUoMC45LCAwLjkpO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG5cdH1cbn1cbiIsIi5zd2FzaE91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2FzaE91dDtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQGtleWZyYW1lcyBzd2FzaE91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45LCAwLjkpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCwgMCk7XG4gIH1cbn1cbiIsIi5wZXJzcGVjdGl2ZURvd24ge1xuICBhbmltYXRpb24tbmFtZTogcGVyc3BlY3RpdmVEb3duO1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5Aa2V5ZnJhbWVzIHBlcnNwZWN0aXZlRG93biB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKC0xODBkZWcpO1xuICB9XG59XG4iLCIucGVyc3BlY3RpdmVEb3duUmV0dXJuIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHBlcnNwZWN0aXZlRG93blJldHVybjtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQGtleWZyYW1lcyBwZXJzcGVjdGl2ZURvd25SZXR1cm4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAxMDAlO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoLTE4MGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKTtcbiAgfVxufVxuIiwiLnBlcnNwZWN0aXZlTGVmdCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBwZXJzcGVjdGl2ZUxlZnQ7XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkBrZXlmcmFtZXMgcGVyc3BlY3RpdmVMZWZ0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVZKDBkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVkoLTE4MGRlZyk7XG4gIH1cbn1cbiIsIi5wZXJzcGVjdGl2ZUxlZnRSZXR1cm4ge1xuICBhbmltYXRpb24tbmFtZTogcGVyc3BlY3RpdmVMZWZ0UmV0dXJuO1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5Aa2V5ZnJhbWVzIHBlcnNwZWN0aXZlTGVmdFJldHVybiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWSgtMTgwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVZKDBkZWcpO1xuICB9XG59XG4iLCIucGVyc3BlY3RpdmVSaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBwZXJzcGVjdGl2ZVJpZ2h0O1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5Aa2V5ZnJhbWVzIHBlcnNwZWN0aXZlUmlnaHQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWSgxODBkZWcpO1xuICB9XG59XG4iLCIucGVyc3BlY3RpdmVSaWdodFJldHVybiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBwZXJzcGVjdGl2ZVJpZ2h0UmV0dXJuO1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5Aa2V5ZnJhbWVzIHBlcnNwZWN0aXZlUmlnaHRSZXR1cm4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVkoMTgwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVZKDBkZWcpO1xuICB9XG59XG4iLCIucGVyc3BlY3RpdmVVcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBwZXJzcGVjdGl2ZVVwO1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5Aa2V5ZnJhbWVzIHBlcnNwZWN0aXZlVXAge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgxODBkZWcpO1xuICB9XG59XG4iLCIucGVyc3BlY3RpdmVVcFJldHVybiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBwZXJzcGVjdGl2ZVVwUmV0dXJuO1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5Aa2V5ZnJhbWVzIHBlcnNwZWN0aXZlVXBSZXR1cm4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMTgwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpO1xuICB9XG59XG4iLCIuZWZmZWN0LXNsaWRlRG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZURvd247XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVEb3duIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAlKTtcbiAgfVxufVxuIiwiLmVmZmVjdC1zbGlkZVVwIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlVXA7XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVVcCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuIiwiQGltcG9ydCBcImhlbHBlcnMvaGVscGVyc1wiO1xyXG5cclxuLyogKioqKiBVVEY4OsOhw6nDrcOzw7ogKioqKiAqL1xyXG5cclxuLyoqXHJcbiAqIFRISVMgRklMRSBIQVMgVEhFIEZPTExPV0lORyBTRUNUSU9OUzpcclxuICogMS4gTElOSyBUTyBTVFlMRVNIRUVUIEZPUiBFWEVSQ0lTRSBUQUJTIExPT0tcclxuICogMi4gU1RZTEVTIFVTRUQgQlkgTE9BREVSIEFORCBKUyBDT01QT05FTlRTXHJcbiAqIDMuIFNUWUxFUyBERUZJTklORyBUSEUgQkFTSUMgQ09VUlNFIExPT0tcclxuICogNC4gU0VDVElPTiBJQ09OIFNUWUxFU1xyXG4gKiA1LiBVVElMSVRZIFNUWUxFUyBGT1IgU1BFQ0lGSUMgVVNFRlVMIElURU1TXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIDEuIExJTksgVE8gU1RZTEVTSEVFVCBGT1IgRVhFUkNJU0UgVEFCUyBMT09LXHJcbiAqL1xyXG4vKiBAaW1wb3J0IHVybChleGVyY2lzZS10YWJzLWJhc2UuY3NzKTsgKi9cclxuXHJcbi8qKlxyXG4gKiAyLiBTVFlMRVMgVVNFRCBCWSBMT0FERVIgQU5EIEpTIENPTVBPTkVOVFNcclxuICovXHJcbi5pbnRlcmFjdGl2ZS1lbGVtZW50IHtcclxuXHQtbXMtdG91Y2gtYWN0aW9uOiBub25lOyAvKiBuZWNlc2FyaW8gcGFyYSBwYyB3aW5kb3dzIGNvbiBwYW50YWxsYSB0w6FjdGlsIChldml0YSBxdWUgaGFnYSBzY3JvbGwgeSBkZWphIGFycmFzdHJhciBlbCBlbGVtZW50bykgKi9cclxuXHR0b3VjaC1hY3Rpb246IG5vbmU7XHJcbn1cclxuXHJcbi5sb2FkZXItdGhlbWUgLmZlZWRiYWNrLXNsaWRlci5wb3BpbiB7XHJcblx0dGV4dC1hbGlnbjogbGVmdDtcclxuXHRoZWlnaHQ6IGF1dG87XHJcblx0bWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4ubG9hZGVyLXRoZW1lIC5mZWVkYmFjay1zbGlkZXIucG9waW4gLmZlZWRiYWNrLXRleHQge1xyXG5cdG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG5cdG1hcmdpbi1yaWdodDogMTBweDtcclxufVxyXG5cclxuLyogc3RvcHMgdGhlIHBhZ2UganVtcGluZyB3aGVuIHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgaXMgbm90IG5lZWRlZCAtIDIwMTktMTAtMjIgKi9cclxuaHRtbCB7XHJcblx0b3ZlcmZsb3cteTogc2Nyb2xsO1xyXG59XHJcblxyXG5kaXZbbG9hZGVyYXBwdHlwZT1cImV4ZXJjaXNlXCJdIHtcclxuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4vKiogQXVkaW8gLyB2aWRlbyBwbGF5ZXJzICoqL1xyXG5zcGFuLkF1ZGlvQnV0dG9uSlMsXHJcbnNwYW4uVmlkZW9QbGF5ZXJKUyB7XHJcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdHpvb206IDE7XHJcblx0KmRpc3BsYXk6IGlubGluZTtcclxufVxyXG4uQXVkaW9CdXR0b25KUyBpOmhvdmVyIHtcclxuXHRjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuZGl2LkF1ZGlvUGxheWVySlMge1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRoZWlnaHQ6IDMwcHg7XHJcbn1cclxuXHJcbnNwYW4uVmlkZW9QbGF5ZXJKUyB7XHJcblx0bWFyZ2luLWJvdHRvbTogMjVweDtcclxufVxyXG5cclxuZGl2LlBvcGluQW5zd2VycyxcclxuZGl2LlBvcGluRGl2IHtcclxuXHRkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG5kaXYucG9waW5TY3JvbGwge1xyXG5cdG92ZXJmbG93OiBhdXRvO1xyXG5cdGhlaWdodDogMjUwcHg7XHJcblx0cGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuLlNsaWRlaW5QYWdlIHtcclxuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0LlNsaWRlaW5QYWdlLWlubmVyIHtcclxuXHRcdG92ZXJmbG93LXk6IGF1dG87XHJcblx0fVxyXG5cclxuXHQudGFwZSB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjY2NkO1xyXG5cdFx0Y29sb3I6ICMwMDA7XHJcblx0XHRwYWRkaW5nOiAxMHB4IDEwcHggMTBweCA3MHB4O1xyXG5cclxuXHRcdCY6OmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6IFwiXFxmNThmXCI7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDogMTVweDtcclxuXHRcdFx0dG9wOiAxNXB4O1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAjNjU4MGJkYWE7XHJcblx0XHRcdGNvbG9yOiAjZmZmO1xyXG5cdFx0XHRmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBGcmVlXCI7XHJcblx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XHJcblx0XHRcdHdpZHRoOiAzNnB4O1xyXG5cdFx0XHRoZWlnaHQ6IDM2cHg7XHJcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0Zm9udC1zaXplOiAxODAlO1xyXG5cdFx0XHRib3JkZXItcmFkaXVzOiAycHg7XHJcblx0XHR9XHJcblxyXG5cdFx0aDEge1xyXG5cdFx0XHRmb250LXNpemU6IDE1cHQ7XHJcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdFx0XHRjb2xvcjogIzY2NjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC50ZXh0IHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNiMWQyZjA7XHJcblx0XHRjb2xvcjogIzAwMDtcclxuXHRcdHBhZGRpbmc6IDEwcHggMTBweCAxMHB4IDcwcHg7XHJcblxyXG5cdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDogXCJcXGYwMmRcIjtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OiAxNXB4O1xyXG5cdFx0XHR0b3A6IDE1cHg7XHJcblx0XHRcdGJhY2tncm91bmQ6ICM2NTgwYmRhYTtcclxuXHRcdFx0Y29sb3I6ICNmZmY7XHJcblx0XHRcdGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IEZyZWVcIjtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcclxuXHRcdFx0d2lkdGg6IDM2cHg7XHJcblx0XHRcdGhlaWdodDogMzZweDtcclxuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0XHRmb250LXNpemU6IDE4MCU7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDJweDtcclxuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxuXHRcdH1cclxuXHJcblx0XHRoMSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTVwdDtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0XHRcdGNvbG9yOiAjNjY2O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuZGl2LlNsaWRlaW5EaXYtaW5uZXIge1xyXG5cdGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XHJcblx0cGFkZGluZzogMTBweDtcclxuXHRiYWNrZ3JvdW5kOiAjZWVlO1xyXG59XHJcblxyXG5kaXYuU2xpZGVpblRlYWNoZXJzLWlubmVyIHtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xyXG5cdHBhZGRpbmc6IDEwcHg7XHJcblx0YmFja2dyb3VuZDogI2NjZDtcclxuXHRjb2xvcjogIzAwMDAwMDtcclxuXHR3aWR0aDogNTAwcHg7XHJcblx0bWluLWhlaWdodDogNjBweDtcclxuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cclxuXHRhIHtcclxuXHRcdGNvbG9yOiAjMDAwMDAwO1xyXG5cdH1cclxufVxyXG5cclxuZGl2LnhTbGlkZWluUGFnZTo6YWZ0ZXIge1xyXG5cdGNvbnRlbnQ6IFwiXCI7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdGxlZnQ6IDA7XHJcblx0cmlnaHQ6IDA7XHJcblx0aGVpZ2h0OiAxZW07XHJcblx0Ym90dG9tOiAwZW07XHJcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxyXG5cdFx0dG8gYm90dG9tLFxyXG5cdFx0cmdiYSgwLCAwLCAwLCAwKSxcclxuXHRcdHJnYmEoMCwgMCwgMCwgMC45NSkgNTAlXHJcblx0KTtcclxuXHR6LWluZGV4OiAxO1xyXG59XHJcblxyXG4uUG9waW5SYWRpb0J1dHRvbiB7XHJcblx0Y29sb3I6ICM5OTU1MDA7XHJcblx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdGJvcmRlci1ib3R0b206IDFweCBpbnNldCAjOTk1NTAwO1xyXG5cdHotaW5kZXg6IDk5OTk7XHJcbn1cclxuXHJcbiNTYW1wbGVEZXNjcmlwdGlvbiB7XHJcblx0ZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4qIEVzdGlsb3MgcGFyYSBlbCBtZW51IGRlIHRleHQsIGdyYW1tYXIgeSB3b3JkbGlzdCwgZXRjXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuLndvcmRsaXN0VGl0bGUge1xyXG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcbi52aWRlb0xpbmsge1xyXG5cdGNvbG9yOiAjZmZmZmZmO1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICNiYmI7XHJcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cdG1hcmdpbi1ib3R0b206IDVweDtcclxuXHRtYXJnaW4tdG9wOiAtM3B4O1xyXG5cdHBhZGRpbmc6IDZweCAzcHggNnB4IDNweDtcclxufVxyXG5cclxuLyogcGFyYSBsYSBjb2x1bW5hIGRlIGxhIG51bWVyYWNpw7NuIChwb3IgZWplbXBsbywgZW4gbG9zIERyb3Bkb3ducyBYTUwpICovXHJcbnRkLnRhYmxlTGlzdCB7XHJcblx0d2lkdGg6IDI1cHg7XHJcblx0dGV4dC1hbGlnbjogcmlnaHQ7XHJcblx0dmVydGljYWwtYWxpZ246IHRvcDtcclxufVxyXG5vbC5wYWRkaW5nTGlzdCBsaSB7XHJcblx0cGFkZGluZzogMnB4O1xyXG59XHJcblxyXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICogVEFTSyBCT1ggU1RZTEVTXHJcbiAqL1xyXG4uVGFza0JvcmRlciB7XHJcblx0Ym9yZGVyOiAxcHggc29saWQgI2FhYTtcclxuXHJcblx0LlRhc2tIZWFkZXIge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzMzOTljYztcclxuXHRcdHBhZGRpbmc6IDE1cHggMTBweDtcclxuXHRcdGNvbG9yOiAjZmZmZmZmO1xyXG5cdFx0Zm9udC1zaXplOiAyNnB4O1xyXG5cdH1cclxufVxyXG5cclxuLmZvcnVtIHtcclxuXHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb25zL2ZvcnVtLnBuZykgbm8tcmVwZWF0O1xyXG5cdGZvbnQtd2VpZ2h0OiAyMDA7XHJcblx0cGFkZGluZy1sZWZ0OiA1NXB4O1xyXG5cdGxpbmUtaGVpZ2h0OiAycmVtO1xyXG59XHJcblxyXG4ud3JpdHRlbi10dXRvcmlhbCB7XHJcblx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pY29ucy93cml0dGVuLXR1dG9yaWFsLnBuZykgbm8tcmVwZWF0O1xyXG5cdGZvbnQtd2VpZ2h0OiAyMDA7XHJcblx0cGFkZGluZy1sZWZ0OiA2NXB4O1xyXG59XHJcblxyXG4uc3BlYWtpbmctdHV0b3JpYWwge1xyXG5cdGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbnMvc3BlYWtpbmctdHV0b3JpYWwucG5nKSBuby1yZXBlYXQ7XHJcblx0Zm9udC13ZWlnaHQ6IDIwMDtcclxuXHRwYWRkaW5nLWxlZnQ6IDYwcHg7XHJcbn1cclxuXHJcbi5uZXQtc2VhcmNoIHtcclxuXHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb25zL25ldC1zZWFyY2gucG5nKSBuby1yZXBlYXQ7XHJcblx0Zm9udC13ZWlnaHQ6IDIwMDtcclxuXHRwYWRkaW5nLWxlZnQ6IDU1cHg7XHJcbn1cclxuXHJcbi5sYW5ndWFnZS1yZXZpZXcge1xyXG5cdGZvbnQtd2VpZ2h0OiAyMDA7XHJcblx0Zm9udC1zaXplOiAyMnB4O1xyXG59XHJcblxyXG5kaXYuVGFza0JvcmRlciBkaXYuVGFza1BhZGRpbmcge1xyXG5cdHBhZGRpbmc6IDEwcHg7XHJcbn1cclxuXHJcbi5UYXNrQm9yZGVyLVR1dG9yZWQge1xyXG5cdGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XHJcblxyXG5cdC5UYXNrSGVhZGVyIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMzMzk5Y2M7XHJcblx0XHRwYWRkaW5nOiAxNXB4IDEwcHg7XHJcblx0XHRjb2xvcjogI2ZmZmZmZjtcclxuXHRcdGZvbnQtc2l6ZTogMjZweDtcclxuXHR9XHJcblxyXG5cdC5UYXNrUGFkZGluZyB7XHJcblx0XHRwYWRkaW5nOiAxMHB4O1xyXG5cdH1cclxufVxyXG5cclxuLlRhc2tCb3JkZXItVW50dXRvcmVkIHtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xyXG5cclxuXHQuVGFza0hlYWRlciB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xyXG5cdFx0cGFkZGluZzogNXB4IDEwcHg7XHJcblx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHR9XHJcblxyXG5cdC5UYXNrUGFkZGluZyB7XHJcblx0XHRwYWRkaW5nOiAxMHB4O1xyXG5cdH1cclxufVxyXG5cclxuc3Bhbi50YXNrLXRhZyB7XHJcblx0YmFja2dyb3VuZDogIzMzOTljYztcclxuXHRjb2xvcjogI2ZmZmZmZjtcclxuXHRmb250LXNpemU6IDExcHg7XHJcblx0cGFkZGluZy1sZWZ0OiAycHg7XHJcblx0cGFkZGluZy1yaWdodDogMnB4O1xyXG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi5ncmFtbWFyIHtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xyXG5cdHBhZGRpbmc6IDEwcHggMjBweDtcclxuXHRiYWNrZ3JvdW5kOiAjZjlmOWY5O1xyXG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblx0cGFkZGluZy1ib3R0b206IDEwcHg7XHJcbn1cclxuXHJcbi5ncmF5IHtcclxuXHRjb2xvcjogIzY2NjtcclxuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAzLiBTVFlMRVMgREVGSU5JTkcgVEhFIEJBU0lDIENPVVJTRSBMT09LXHJcbiAqL1xyXG5kaXYuU2VjdGlvbkljb24ge1xyXG5cdG1hcmdpbi1ib3R0b206IDFyZW07XHJcbn1cclxuXHJcbmJvZHkud29yZC1saXN0IHtcclxuXHRjb2xvcjogI2RkZDtcclxuXHRiYWNrZ3JvdW5kOiAjNjY2O1xyXG5cdG1hcmdpbjogMTBweDtcclxufVxyXG5ib2R5LnRlYWNoZXJzIHtcclxuXHRjb2xvcjogIzAwMDtcclxuXHRiYWNrZ3JvdW5kOiAjY2NkO1xyXG5cdG1hcmdpbjogMTBweCAxMHB4IDEwcHggMTBweDtcclxufVxyXG5ib2R5LnRhcGUge1xyXG5cdGJhY2tncm91bmQ6ICNjY2QgdXJsKC4uL2ltYWdlcy9wb3B1cHMvbGlzdGVuaW5nLmdpZikgbm8tcmVwZWF0IDEwcHggMTBweDtcclxuXHRjb2xvcjogIzAwMDtcclxuXHRtYXJnaW46IDEwcHggMTBweCAxMHB4IDUwcHg7XHJcbn1cclxuYm9keS50YXBlIGgxIHtcclxuXHRmb250LXNpemU6IDE1cHQ7XHJcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0Y29sb3I6ICM2NjY7XHJcbn1cclxuYm9keS50ZXh0IHtcclxuXHRiYWNrZ3JvdW5kOiAjYjFkMmYwIHVybChcIi4uL2ltYWdlcy9zZWN0aW9uczMzL3RleHQucG5nXCIpIG5vLXJlcGVhdCBzY3JvbGwgMTBweFxyXG5cdFx0NXB4O1xyXG5cdGNvbG9yOiAjMDAwO1xyXG5cdG1hcmdpbjogMHB4O1xyXG5cdG1hcmdpbjogMTBweCAxMHB4IDEwcHggNTBweDtcclxufVxyXG5ib2R5LnRleHQgaDEge1xyXG5cdGZvbnQtc2l6ZTogMTVwdDtcclxuXHRmb250LXdlaWdodDogYm9sZDtcclxuXHRjb2xvcjogIzY2NjtcclxufVxyXG5cclxuLyogSGlkZSB0aGUgcmVhZGluZyBhbmQgdHJhbnNjcmlwdCBoZWFkaW5ncyAqL1xyXG4jcmVhZGluZy1mb3Ige1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbiN0cmFuc2NyaXB0LWZvciB7XHJcblx0ZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIDQuIFNFQ1RJT04gSUNPTiBTVFlMRVNcclxuICovXHJcbi8qIGNvbW1vbiBpdGVtcyAqL1xyXG5cclxuaDEuc2VjdGlvbjAxLFxyXG5oMS5zZWN0aW9uMDIsXHJcbmgxLnNlY3Rpb24wMyxcclxuaDEuc2VjdGlvbjA0LFxyXG5oMS5zZWN0aW9uMDUsXHJcbmgxLnNlY3Rpb24wNixcclxuaDEuc2VjdGlvbjA3LFxyXG5oMS5zZWN0aW9uMDgsXHJcbmgxLnNlY3Rpb24wOSxcclxuaDEuc2VjdGlvbjEwLFxyXG5oMS5zZWN0aW9uMTEsXHJcbmgxLnNlY3Rpb24xMixcclxuaDEuc2VjdGlvbjEzLFxyXG5oMS5zZWN0aW9uMTQsXHJcbmgxLnNlY3Rpb24xNSxcclxuaDEuc2VjdGlvbjE2LFxyXG5oMS5zZWN0aW9uMTcsXHJcbmgxLnNlY3Rpb24tZXhhbSB7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRtYXJnaW46IDBweCAwcHggMHB4IDBweDtcclxufVxyXG5cclxuaDEuc3R5bGUwNiB7XHJcblx0cGFkZGluZzogMHB4IDBweCAwcHggNDJweDtcclxuXHRsaW5lLWhlaWdodDogMzNweDtcclxuXHRmb250LXNpemU6IDE2cHg7XHJcblx0Y29sb3I6ICMwYzc3YmY7XHJcbn1cclxuXHJcbmRpdi5zdHlsZTA2IGRpdi5QYWdlRGVzY3JpcHRvciB7XHJcblx0bWFyZ2luOiAwO1xyXG5cdHBhZGRpbmc6IDAgMCAwIDQycHg7XHJcblx0Y29sb3I6ICM5OTk7XHJcbn1cclxuXHJcbi5UYWJsZUNvbnRlbnRzIGgxIGltZyB7XHJcblx0bWFyZ2luLWJvdHRvbTogMTJweDtcclxufVxyXG5cclxucC5zZWN0aW9uMDEsXHJcbnAuc2VjdGlvbjAyLFxyXG5wLnNlY3Rpb24wMyxcclxucC5zZWN0aW9uMDQsXHJcbnAuc2VjdGlvbjA1LFxyXG5wLnNlY3Rpb24wNixcclxucC5zZWN0aW9uMDcsXHJcbnAuc2VjdGlvbjA4LFxyXG5wLnNlY3Rpb24wOSxcclxucC5zZWN0aW9uMTAsXHJcbnAuc2VjdGlvbjExLFxyXG5wLnNlY3Rpb24xMixcclxucC5zZWN0aW9uMTMsXHJcbnAuc2VjdGlvbjE0LFxyXG5wLnNlY3Rpb24xNSxcclxucC5zZWN0aW9uMTYsXHJcbnAuc2VjdGlvbjE3IHtcclxuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG5cdGJhY2tncm91bmQtcG9zaXRpb246IDBweCAzcHg7XHJcblx0bWFyZ2luOiAwcHggMHB4IDBweCAwcHg7XHJcblx0cGFkZGluZzogMHB4IDBweCAxM3B4IDUwcHg7XHJcbn1cclxuXHJcbnAuc2VjdGlvbjAxLFxyXG5oMS5zZWN0aW9uMDEge1xyXG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2VjdGlvbnMzMy8wMXN0YXJ0LmdpZik7XHJcbn1cclxuXHJcbnAuc2VjdGlvbjAyLFxyXG5oMS5zZWN0aW9uMDIge1xyXG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2VjdGlvbnMzMy8wMnJlYWRpbmcuZ2lmKTtcclxufVxyXG5cclxucC5zZWN0aW9uMDMsXHJcbmgxLnNlY3Rpb24wMyB7XHJcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zZWN0aW9uczMzLzAzdm9jYWIuZ2lmKTtcclxufVxyXG5cclxucC5zZWN0aW9uMDQsXHJcbmgxLnNlY3Rpb24wNCB7XHJcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zZWN0aW9uczMzLzA0Z3JhbW1hci5naWYpO1xyXG59XHJcbnAuc2VjdGlvbjA1LFxyXG5oMS5zZWN0aW9uMDUge1xyXG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2VjdGlvbnMzMy8wNWxpc3RlbmluZy5naWYpO1xyXG59XHJcblxyXG5wLnNlY3Rpb24wNixcclxuaDEuc2VjdGlvbjA2IHtcclxuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3NlY3Rpb25zMzMvMDZ0ZXN0LmdpZik7XHJcbn1cclxuXHJcbnAuc2VjdGlvbjA3LFxyXG5oMS5zZWN0aW9uMDcge1xyXG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2VjdGlvbnMzMy8wN2NoYXQuZ2lmKTtcclxufVxyXG5cclxucC5zZWN0aW9uMDgsXHJcbmgxLnNlY3Rpb24wOCB7XHJcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zZWN0aW9uczMzLzA4dHV0b3JpYWwxLmdpZik7XHJcbn1cclxuXHJcbnAuc2VjdGlvbjA5LFxyXG5oMS5zZWN0aW9uMDkge1xyXG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2VjdGlvbnMzMy8wOXRha2Vhd2F5LmdpZik7XHJcbn1cclxuXHJcbnAuc2VjdGlvbjEwLFxyXG5oMS5zZWN0aW9uMTAge1xyXG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2VjdGlvbnMzMy8xMHByb24uZ2lmKTtcclxufVxyXG5cclxucC5zZWN0aW9uMTEsXHJcbmgxLnNlY3Rpb24xMSB7XHJcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zZWN0aW9uczMzLzExc2VhcmNoLmdpZik7XHJcbn1cclxuXHJcbnAuc2VjdGlvbjEyLFxyXG5oMS5zZWN0aW9uMTIge1xyXG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2VjdGlvbnMzMy8xMnR1dG9yaWFsMi5naWYpO1xyXG59XHJcblxyXG5wLnNlY3Rpb24xMyxcclxuaDEuc2VjdGlvbjEzIHtcclxuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3NlY3Rpb25zMzMvMTNzcGVha190dXRvcmlhbC5naWYpO1xyXG59XHJcblxyXG5wLnNlY3Rpb24xNCxcclxuaDEuc2VjdGlvbjE0IHtcclxuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3NlY3Rpb25zMzMvMTRyZXZpZXcuZ2lmKTtcclxufVxyXG5cclxucC5zZWN0aW9uMTUsXHJcbmgxLnNlY3Rpb24xNSB7XHJcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zZWN0aW9uczMzLzE1ZmVlZGJhY2suZ2lmKTtcclxufVxyXG5cclxucC5zZWN0aW9uMTYsXHJcbmgxLnNlY3Rpb24xNiB7XHJcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zZWN0aW9uczMzLzA2dGVzdC5naWYpO1xyXG59XHJcblxyXG5wLnNlY3Rpb24xNyxcclxuaDEuc2VjdGlvbjE3IHtcclxuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3NlY3Rpb25zMzMvMTdyZXNvdXJjZXMuZ2lmKTtcclxufVxyXG5cclxuaDEuc2VjdGlvbi1leGFtIHtcclxuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3NlY3Rpb25zMzMvMDBleGFtLmdpZik7XHJcbn1cclxuXHJcbi51bml0LXNlY3Rpb24tdGl0bGUge1xyXG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcblx0Zm9udC1zaXplOiAxMXB0O1xyXG5cdGNvbG9yOiAjMGM3N2JmO1xyXG59XHJcblxyXG5pbWcudW5pdEltYWdlIHtcclxuXHRib3gtc2hhZG93OiAjY2NjIDJweCAycHggNHB4O1xyXG59XHJcblxyXG4uc2FtcGxlIHtcclxuXHRkaXNwbGF5OiB0YWJsZTtcclxuXHRwYWRkaW5nOiAwcHggMjBweDtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xyXG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblx0YmFja2dyb3VuZDogI2VlZTtcclxufVxyXG5cclxuLnNhbXBsZWxpbmsge1xyXG5cdGNvbG9yOiAjMDAwMGZmO1xyXG5cdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG59XHJcblxyXG4vKipcclxuICogNS4gVVRJTElUWSBTVFlMRVMgRk9SIFNQRUNJRklDIFVTRUZVTCBJVEVNU1xyXG4gKi9cclxuLnJlYWRpbmctYm94IHtcclxuXHRwYWRkaW5nOiAwcHg7XHJcblx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcclxuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cclxuXHQucmVhZGluZy1jb250YWluZXIge1xyXG5cdFx0cGFkZGluZzogMXJlbTtcclxuXHR9XHJcbn1cclxuXHJcbmRpdi5ib3JkZXIge1xyXG5cdHBhZGRpbmc6IDEwcHg7XHJcblx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcclxufVxyXG5cclxudGFibGUuYm9yZGVyIHtcclxuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcclxuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjY2NjO1xyXG5cdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcblxyXG5cdD4gdGJvZHkgPiB0ciA+IHRkLFxyXG5cdD4gdGJvZHkgPiB0ciA+IHRoIHtcclxuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xyXG5cdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xyXG5cdFx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxuXHR9XHJcbn1cclxuXHJcbi5ibHVlV29yZCB7XHJcblx0Y29sb3I6ICMwMDAwZmY7XHJcbn1cclxuXHJcbi5ibGFjay10ZXh0IHtcclxuXHRjb2xvcjogIzAwMDAwMDtcclxufVxyXG5cclxuLmZvbnQtc2l6ZS0xMCB7XHJcblx0Zm9udC1zaXplOiAxMHB4O1xyXG59XHJcblxyXG4vKiBTZWUgaWYgdGhlIHNpemUgY2FuIGJlIHJlbW92ZWQgLSBBbmR5ICovXHJcbi5waG9uZXRpYyB7XHJcblx0Zm9udDogMTRweCBcIkRlamFWdSBTYW5zXCIsIFwiTHVjaWRhIFNhbnMgVW5pY29kZVwiLCBcIkRvdWxvcyBTSUxcIiwgXCJDaGFyaXMgU0lMXCIsXHJcblx0XHRcIkdlbnRpdW1cIiwgXCJDb2RlMjAwMFwiLCBcIlRJVFVTIEN5YmVyYml0IEJhc2ljXCIsIFwiQXJpYWwgVW5pY29kZSBNU1wiLFxyXG5cdFx0XCJDaHJ5c2FudGhpIFVuaWNvZGVcIjtcclxufVxyXG5cclxuLmdyYW1tYXItaXRlbSB7XHJcblx0Y29sb3I6ICNmMDA7XHJcbn1cclxuXHJcbi5ncmV5LWl0ZW0ge1xyXG5cdGNvbG9yOiAjY2NjO1xyXG59XHJcblxyXG4uaGFuZHdyaXRpbmctc3R5bGUge1xyXG5cdGZvbnQtZmFtaWx5OiBcIkNvbWljIFNhbnMgTVNcIiwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxufVxyXG5cclxuLmV4ZXJjaXNlLXRpdGxlIHtcclxuXHRmb250LXdlaWdodDogYm9sZDtcclxuXHRtYXJnaW4tdG9wOiAwcHg7XHJcbn1cclxuXHJcbi5leGVyY2lzZVRpdGxlIHtcclxuXHRmb250LXNpemU6IDEycHQ7XHJcblx0bWFyZ2luLXRvcDogMHB4O1xyXG59XHJcblxyXG4ucHJpbnQtcnVicmljIHtcclxuXHRmb250LXNpemU6IDE0cHg7XHJcbn1cclxuXHJcbi5zZWN0aW9uVGl0bGUge1xyXG5cdGZvbnQtc2l6ZTogMTJwdDtcclxuXHRjb2xvcjogIzk5OTtcclxuXHRtYXJnaW4tYm90dG9tOiAyNHB4O1xyXG5cdGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG4udGV4dC1oZWFkaW5nIHtcclxuXHRmb250LXNpemU6IDE0cHQ7XHJcblx0Y29sb3I6ICNhYWE7XHJcbn1cclxuXHJcbi5qdXN0aWZ5IHtcclxuXHR0ZXh0LWFsaWduOiBqdXN0aWZ5O1xyXG59XHJcblxyXG4ubGV0dGVyZWQtbGlzdCB7XHJcblx0bGlzdC1zdHlsZS10eXBlOiBsb3dlci1hbHBoYTtcclxufVxyXG5cclxuLmRvdHRlZC1saXN0IHtcclxuXHRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XHJcbn1cclxuXHJcbi5jb2xvcl9ib3RvbmVzIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWUwO1xyXG59XHJcblxyXG4uYWxpZ24tZXhlcmNpc2Uge1xyXG5cdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcclxufVxyXG5cclxuLnNlY3Rpb24tdGl0bGUge1xyXG5cdGZvbnQ6IGJvbGQgMTJwdCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG4uZXhhbXBsZS10ZXh0IHtcclxuXHRjb2xvcjogI2YwMDtcclxufVxyXG5cclxuLmxpZ2h0LWdyYXktdGV4dCB7XHJcblx0Y29sb3I6ICM5OTk7XHJcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG4uZ3JhbW1hci10aXRsZSB7XHJcblx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4uZ3JhbW1hci1tYWluLWluZGV4IHtcclxuXHRjb2xvcjogIzAwMDtcclxuXHRmb250LXNpemU6IDlwdDtcclxuXHRmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLmdyYW1tYXJfbWlub3JfaW5kZXgge1xyXG5cdGZvbnQtc2l6ZTogOXB0O1xyXG59XHJcblxyXG4ubm90ZSB7XHJcblx0Zm9udC1zaXplOiAxMXB4O1xyXG5cdGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG4ubm90ZS1wcm9uIHtcclxuXHRmb250LXNpemU6IDE2cHg7XHJcbn1cclxuXHJcbi5zcGVha2VyIHtcclxuXHRjb2xvcjogIzg4ODtcclxufVxyXG5cclxuLmNoYXQtc3BlYWtlcjEtYnViYmxlIHtcclxuXHRmbG9hdDogbGVmdDtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmN2RkO1xyXG5cdGJvcmRlci1yYWRpdXM6IDBweCAxNXB4IDE1cHggMTVweDtcclxuXHRwYWRkaW5nOiAxMHB4O1xyXG5cdG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLmNoYXQtc3BlYWtlcjItYnViYmxlIHtcclxuXHRmbG9hdDogcmlnaHQ7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogI2YzZWNmMztcclxuXHRib3JkZXItcmFkaXVzOiAxNXB4IDBweCAxNXB4IDE1cHg7XHJcblx0cGFkZGluZzogMTBweDtcclxuXHRtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5jaGF0LXNwZWFrZXIxLW5hbWUge1xyXG5cdGNvbG9yOiAjMDAwO1xyXG5cdGZvbnQtc2l6ZTogODAlO1xyXG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4uY2hhdC1zcGVha2VyMi1uYW1lIHtcclxuXHRjb2xvcjogIzAwMDtcclxuXHRmb250LXNpemU6IDgwJTtcclxuXHRmb250LXdlaWdodDogYm9sZDtcclxuXHR0ZXh0LWFsaWduOiByaWdodDtcclxufVxyXG5cclxuLnJ1YnJpYyB7XHJcblx0Zm9udC1zaXplOiAwLjkzNzVyZW07XHJcblx0bWFyZ2luLWxlZnQ6IDIwcHg7XHJcblx0bWFyZ2luLXRvcDogMTBweDtcclxuXHJcblx0c3Bhbi5ydWJyaWMge1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxMDAwcHg7XHJcblx0XHRoZWlnaHQ6IDEwcHg7XHJcblx0XHR3aWR0aDogMTBweDtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdGxlZnQ6IC00MHB4O1xyXG5cdFx0dG9wOiAxNXB4O1xyXG5cdH1cclxufVxyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4qIEVzdGlsb3MgcGFyYSBMb2cuanNcclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5kaXYubG9nUGFuZWwge1xyXG5cdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRib3JkZXI6IDFweCBzb2xpZCBibGFjaztcclxuXHRyaWdodDogMTBweDtcclxuXHR0b3A6IDExMHB4O1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0d2lkdGg6IDU4MHB4O1xyXG5cdGhlaWdodDogMzAwcHg7XHJcblx0b3ZlcmZsb3cteTogc2Nyb2xsO1xyXG5cdHBhZGRpbmc6IDVweDtcclxuXHRmb250LXNpemU6IDExcHg7XHJcblx0ei1pbmRleDogMTAwMDI7XHJcblxyXG5cdHNwYW4uZXhjZXB0aW9uIHtcclxuXHRcdGNvbG9yOiAjMDBlZTAwO1xyXG5cdH1cclxuXHJcblx0c3Bhbi5pbmZvIHtcclxuXHRcdGNvbG9yOiAjOTVhNWE2O1xyXG5cdH1cclxuXHJcblx0c3Bhbi5lcnJvciB7XHJcblx0XHRjb2xvcjogI2ZmMDAwMDtcclxuXHR9XHJcblxyXG5cdHNwYW4uc3VjY2VzcyB7XHJcblx0XHRjb2xvcjogIzAwMDBlZTtcclxuXHR9XHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuTW9kZXJuIDNEIHRhYmxlIGVmZmVjdFxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbnRhYmxlLm1vZGVybiB7XHJcblx0Y29sb3I6ICM2NjY7XHJcblx0dGV4dC1zaGFkb3c6IDFweCAxcHggMHB4ICNmZmY7XHJcblx0YmFja2dyb3VuZDogI2VhZWJlYztcclxuXHRtYXJnaW46IDEwcHg7XHJcblx0Ym9yZGVyOiAjY2NjIDFweCBzb2xpZDtcclxuXHRib3JkZXItc3BhY2luZzogMDtcclxuXHRib3JkZXItcmFkaXVzOiAzcHg7XHJcblx0Ym94LXNoYWRvdzogMCAxcHggMnB4ICNkMWQxZDE7XHJcblxyXG5cdHRoIHtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdHBhZGRpbmc6IDExcHggMTVweCAxMnB4IDE1cHg7XHJcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2ZhZmFmYTtcclxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTBlMGUwO1xyXG5cdFx0YmFja2dyb3VuZDogI2VkZWRlZDtcclxuXHRcdGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQoXHJcblx0XHRcdGxpbmVhcixcclxuXHRcdFx0bGVmdCB0b3AsXHJcblx0XHRcdGxlZnQgYm90dG9tLFxyXG5cdFx0XHRmcm9tKCNlZGVkZWQpLFxyXG5cdFx0XHR0bygjZWJlYmViKVxyXG5cdFx0KTtcclxuXHRcdGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2VkZWRlZCwgI2ViZWJlYik7XHJcblxyXG5cdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHRcdHBhZGRpbmctbGVmdDogMTBweDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHRyIHtcclxuXHRcdHBhZGRpbmctbGVmdDogMTBweDtcclxuXHJcblx0XHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0dGg6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dGg6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0LW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OiAzcHg7XHJcblx0XHRcdFx0LXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xyXG5cdFx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmOmxhc3QtY2hpbGQgdGQge1xyXG5cdFx0XHRib3JkZXItYm90dG9tOiAwO1xyXG5cclxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmLmV2ZW4gdGQge1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAjZjZmNmY2O1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KFxyXG5cdFx0XHRcdGxpbmVhcixcclxuXHRcdFx0XHRsZWZ0IHRvcCxcclxuXHRcdFx0XHRsZWZ0IGJvdHRvbSxcclxuXHRcdFx0XHRmcm9tKCNmOGY4ZjgpLFxyXG5cdFx0XHRcdHRvKCNmNmY2ZjYpXHJcblx0XHRcdCk7XHJcblx0XHRcdGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2Y4ZjhmOCwgI2Y2ZjZmNik7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR0ZCB7XHJcblx0XHRwYWRkaW5nOiA4cHg7XHJcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2ZmZmZmZjtcclxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTBlMGUwO1xyXG5cdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTBlMGUwO1xyXG5cdFx0YmFja2dyb3VuZDogI2ZhZmFmYTtcclxuXHRcdGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQoXHJcblx0XHRcdGxpbmVhcixcclxuXHRcdFx0bGVmdCB0b3AsXHJcblx0XHRcdGxlZnQgYm90dG9tLFxyXG5cdFx0XHRmcm9tKCNmYmZiZmIpLFxyXG5cdFx0XHR0bygjZmFmYWZhKVxyXG5cdFx0KTtcclxuXHRcdGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZiZmJmYiwgI2ZhZmFmYSk7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG5cclxuXHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcblx0XHRcdGJvcmRlci1sZWZ0OiAwO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxudGFibGUuZGlhZ29uYWwtZ3JleS1iYWNrZ3JvdW5kIHRyIHtcclxuXHRiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2NvbW1vbl9leGVyY2lzZV9hc3NldHMvZGVncmFDdWE2MDAuZ2lmKSBuby1yZXBlYXQ7XHJcbn1cclxuXHJcbmRpdi5lbWFpbFRvcCB7XHJcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy9lbWFpbC9lbWFpbC5wbmcpO1xyXG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcblx0d2lkdGg6IDU4MnB4O1xyXG59XHJcblxyXG5kaXYuZW1haWxCb3R0b20ge1xyXG5cdHdpZHRoOiA1NDBweDtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xyXG5cdHBhZGRpbmc6IDIwcHg7XHJcbn1cclxuXHJcbnZpZGVvIHtcclxuXHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG5cdGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG5cdG1heC13aWR0aDogNTEycHg7XHJcbn1cclxuXHJcbi5WaWRlb1BsYXllckpTIHtcclxuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG5kaXYuZmxleC1jb250YWluZXIge1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0ZmxleC13cmFwOiB3cmFwO1xyXG5cdGFsaWduLWl0ZW1zOiB0b3A7XHJcbn1cclxuXHJcbi5jYXJkIHtcclxuXHRwYWRkaW5nOiAxNnB4O1xyXG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblx0XHJcblx0dWwge1xyXG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcclxuXHR9XHJcbn1cclxuXHJcbiNwYWdlLWJvZHktY29udGVudCB7XHJcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5kaXYuVGFzay1TcGVhayBvbCBsaSB7XHJcblx0bWFyZ2luLWxlZnQ6IC0xNXB4O1xyXG59XHJcblxyXG5ib2R5IC5BYVJlYWRQYXJhZ3JhcGggc3BhbltkYXRhLXNvc29dLFxyXG5ib2R5IC5BYUV4ZXJjaXNlQ29udGFpbmVyIHNwYW5bZGF0YS1zb3NvXSB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogIzkwY2FmOSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucmVzdWx0LWljb24ge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDUwJTtcclxuXHRyaWdodDogMDtcclxuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcblx0bWFyZ2luOiA1cHg7XHJcblx0XHJcblx0c3ZnIHtcclxuXHRcdHdpZHRoOiAzMHB4O1xyXG5cdH0gXHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgdGhyb2JiaW5nIHtcclxuXHQwJSB7XHJcblx0XHRvcGFjaXR5OiAwLjg7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG5cdH1cclxuXHQ1MCUge1xyXG5cdFx0b3BhY2l0eTogMC40O1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xyXG5cdH1cclxuXHQxMDAlIHtcclxuXHRcdG9wYWNpdHk6IDAuODtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcblx0fVxyXG59XHJcbiJdfQ== */
