.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); } }

.Gapfill .textDiv, .DragToBoxes .textDiv, .DragFromText .textDiv {
  padding-top: 40px;
  margin-top: -40px; }

.Gapfill .gap, .DragToBoxes .gap, .DragFromText .gap {
  display: inline-block;
  border-radius: 2px;
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  margin-bottom: 5px; }
  .Gapfill .gap.correct, .DragToBoxes .gap.correct, .DragFromText .gap.correct {
    color: #0000d9;
    cursor: default; }
    .Gapfill .gap.correct .boxAnswer, .DragToBoxes .gap.correct .boxAnswer, .DragFromText .gap.correct .boxAnswer, .Gapfill .gap.correct .DragToBoxes .textDiv .wrapper-box .box .answers .example, .DragToBoxes .gap.correct .textDiv .wrapper-box .box .answers .example, .DragToBoxes .textDiv .wrapper-box .box .answers .gap.correct .example, .Gapfill .gap.correct .DragFromText .textDiv .wrapper-box .box .answers .example, .DragFromText .gap.correct .textDiv .wrapper-box .box .answers .example, .DragFromText .textDiv .wrapper-box .box .answers .gap.correct .example {
      color: inherit;
      cursor: default; }
  .Gapfill .gap.incorrect, .DragToBoxes .gap.incorrect, .DragFromText .gap.incorrect {
    color: #d90000; }
    .Gapfill .gap.incorrect .boxAnswer, .DragToBoxes .gap.incorrect .boxAnswer, .DragFromText .gap.incorrect .boxAnswer, .Gapfill .gap.incorrect .DragToBoxes .textDiv .wrapper-box .box .answers .example, .DragToBoxes .gap.incorrect .textDiv .wrapper-box .box .answers .example, .DragToBoxes .textDiv .wrapper-box .box .answers .gap.incorrect .example, .Gapfill .gap.incorrect .DragFromText .textDiv .wrapper-box .box .answers .example, .DragFromText .gap.incorrect .textDiv .wrapper-box .box .answers .example, .DragFromText .textDiv .wrapper-box .box .answers .gap.incorrect .example {
      color: inherit; }
  .Gapfill .gap.gap-hover, .DragToBoxes .gap.gap-hover, .DragFromText .gap.gap-hover {
    border-color: #ff9900; }
  .Gapfill .gap .default-text, .DragToBoxes .gap .default-text, .DragFromText .gap .default-text {
    padding: 3px 5px;
    color: transparent;
    background-color: #eaeef1; }
    .Gapfill .gap .default-text:not(:last-child), .DragToBoxes .gap .default-text:not(:last-child), .DragFromText .gap .default-text:not(:last-child) {
      display: none; }
  .Gapfill .gap .boxAnswer, .DragToBoxes .gap .boxAnswer, .DragFromText .gap .boxAnswer, .Gapfill .gap .DragToBoxes .textDiv .wrapper-box .box .answers .example, .DragToBoxes .gap .textDiv .wrapper-box .box .answers .example, .DragToBoxes .textDiv .wrapper-box .box .answers .gap .example, .Gapfill .gap .DragFromText .textDiv .wrapper-box .box .answers .example, .DragFromText .gap .textDiv .wrapper-box .box .answers .example, .DragFromText .textDiv .wrapper-box .box .answers .gap .example {
    padding-left: 0;
    padding-right: 0;
    color: #ff9900;
    background-color: transparent; }
  .Gapfill .gap.capitalize .boxAnswer::first-letter, .DragToBoxes .gap.capitalize .boxAnswer::first-letter, .DragFromText .gap.capitalize .boxAnswer::first-letter, .Gapfill .gap.capitalize .DragToBoxes .textDiv .wrapper-box .box .answers .example::first-letter, .DragToBoxes .gap.capitalize .textDiv .wrapper-box .box .answers .example::first-letter, .DragToBoxes .textDiv .wrapper-box .box .answers .gap.capitalize .example::first-letter, .Gapfill .gap.capitalize .DragFromText .textDiv .wrapper-box .box .answers .example::first-letter, .DragFromText .gap.capitalize .textDiv .wrapper-box .box .answers .example::first-letter, .DragFromText .textDiv .wrapper-box .box .answers .gap.capitalize .example::first-letter {
    text-transform: capitalize; }

.Gapfill.selected .gap:hover, .selected.DragToBoxes .gap:hover, .selected.DragFromText .gap:hover {
  cursor: pointer; }

.Gapfill .answersBox, .DragToBoxes .answersBox, .DragFromText .answersBox {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  border-radius: 5px;
  margin-top: 1rem;
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  padding-top: 5px;
  padding-bottom: 5px;
  min-height: 45px;
  white-space: nowrap;
  background: #f3f6f7;
  text-align: center; }
  .Gapfill .answersBox.box-hover, .DragToBoxes .answersBox.box-hover, .DragFromText .answersBox.box-hover {
    border-color: #607d8b; }
  .Gapfill .answersBox .answersBoxColumn, .DragToBoxes .answersBox .answersBoxColumn, .DragFromText .answersBox .answersBoxColumn {
    position: unset;
    padding-left: 10px;
    padding-right: 10px; }
    .Gapfill .answersBox .answersBoxColumn .boxAnswer, .DragToBoxes .answersBox .answersBoxColumn .boxAnswer, .DragFromText .answersBox .answersBoxColumn .boxAnswer, .Gapfill .answersBox .answersBoxColumn .DragToBoxes .textDiv .wrapper-box .box .answers .example, .DragToBoxes .answersBox .answersBoxColumn .textDiv .wrapper-box .box .answers .example, .DragToBoxes .textDiv .wrapper-box .box .answers .answersBox .answersBoxColumn .example, .Gapfill .answersBox .answersBoxColumn .DragFromText .textDiv .wrapper-box .box .answers .example, .DragFromText .answersBox .answersBoxColumn .textDiv .wrapper-box .box .answers .example, .DragFromText .textDiv .wrapper-box .box .answers .answersBox .answersBoxColumn .example {
      margin-top: 5px;
      margin-bottom: 5px; }
      .Gapfill .answersBox .answersBoxColumn .boxAnswer.selected, .DragToBoxes .answersBox .answersBoxColumn .boxAnswer.selected, .DragFromText .answersBox .answersBoxColumn .boxAnswer.selected, .Gapfill .answersBox .answersBoxColumn .DragToBoxes .textDiv .wrapper-box .box .answers .selected.example, .DragToBoxes .answersBox .answersBoxColumn .textDiv .wrapper-box .box .answers .selected.example, .DragToBoxes .textDiv .wrapper-box .box .answers .answersBox .answersBoxColumn .selected.example, .Gapfill .answersBox .answersBoxColumn .DragFromText .textDiv .wrapper-box .box .answers .selected.example, .DragFromText .answersBox .answersBoxColumn .textDiv .wrapper-box .box .answers .selected.example, .DragFromText .textDiv .wrapper-box .box .answers .answersBox .answersBoxColumn .selected.example {
        opacity: 0.5; }

.Gapfill .boxAnswer, .DragToBoxes .boxAnswer, .DragFromText .boxAnswer, .DragToBoxes .textDiv .wrapper-box .box .answers .example, .DragFromText .textDiv .wrapper-box .box .answers .example {
  padding: 3px 5px; }
  .Gapfill .boxAnswer.selected, .DragToBoxes .boxAnswer.selected, .DragFromText .boxAnswer.selected, .DragToBoxes .textDiv .wrapper-box .box .answers .selected.example, .DragFromText .textDiv .wrapper-box .box .answers .selected.example, .Gapfill .boxAnswer:hover, .DragToBoxes .boxAnswer:hover, .DragFromText .boxAnswer:hover, .DragToBoxes .textDiv .wrapper-box .box .answers .example:hover, .DragFromText .textDiv .wrapper-box .box .answers .example:hover {
    cursor: pointer;
    -webkit-filter: brightness(90%);
    filter: brightness(90%); }
  .Gapfill .boxAnswer.ui-draggable-dragging, .DragToBoxes .boxAnswer.ui-draggable-dragging, .DragFromText .boxAnswer.ui-draggable-dragging, .DragToBoxes .textDiv .wrapper-box .box .answers .ui-draggable-dragging.example, .DragFromText .textDiv .wrapper-box .box .answers .ui-draggable-dragging.example {
    padding: 3px 5px;
    color: white;
    background-color: #40abe3;
    -webkit-box-shadow: 3px 3px 10px 0px rgba(0, 0, 0, 0.75);
    box-shadow: 3px 3px 10px 0px rgba(0, 0, 0, 0.75); }
  .Gapfill .boxAnswer.answer-hover, .DragToBoxes .boxAnswer.answer-hover, .DragFromText .boxAnswer.answer-hover, .DragToBoxes .textDiv .wrapper-box .box .answers .answer-hover.example, .DragFromText .textDiv .wrapper-box .box .answers .answer-hover.example {
    -webkit-box-shadow: none;
    box-shadow: none;
    -webkit-filter: none;
    filter: none; }

.Gapfill .gapfill-image, .DragToBoxes .gapfill-image, .DragFromText .gapfill-image {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center; }
  .Gapfill .gapfill-image .gap-positioner, .DragToBoxes .gapfill-image .gap-positioner, .DragFromText .gapfill-image .gap-positioner {
    position: relative; }
    .Gapfill .gapfill-image .gap-positioner .gap-wrapper, .DragToBoxes .gapfill-image .gap-positioner .gap-wrapper, .DragFromText .gapfill-image .gap-positioner .gap-wrapper {
      position: absolute; }
      .Gapfill .gapfill-image .gap-positioner .gap-wrapper .gap, .DragToBoxes .gapfill-image .gap-positioner .gap-wrapper .gap, .DragFromText .gapfill-image .gap-positioner .gap-wrapper .gap {
        margin-bottom: 0;
        border-width: 0; }
        .Gapfill .gapfill-image .gap-positioner .gap-wrapper .gap:not(.always-visible) .default-text, .DragToBoxes .gapfill-image .gap-positioner .gap-wrapper .gap:not(.always-visible) .default-text, .DragFromText .gapfill-image .gap-positioner .gap-wrapper .gap:not(.always-visible) .default-text {
          background-color: transparent; }

.Gapfill .endingCodeDiv, .DragToBoxes .endingCodeDiv, .DragFromText .endingCodeDiv {
  display: none;
  padding-top: 2rem; }

.DragToBoxes .answersBox, .DragFromText .answersBox {
  margin-top: 0;
  margin-bottom: 1rem; }

.DragToBoxes .textDiv, .DragFromText .textDiv {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
  -webkit-align-content: flex-start;
  -ms-flex-line-pack: start;
  align-content: flex-start;
  margin-top: 0;
  margin-left: -10px;
  margin-right: -10px;
  padding-top: 0; }
  .DragToBoxes .textDiv .wrapper-box, .DragFromText .textDiv .wrapper-box {
    position: relative;
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    max-width: 100%;
    min-width: 150px;
    padding-left: 10px;
    padding-right: 10px;
    margin-bottom: 15px; }
    @media (min-width: 576px) {
      .DragToBoxes .textDiv .wrapper-box, .DragFromText .textDiv .wrapper-box {
        -webkit-flex-basis: 20%;
        -ms-flex-preferred-size: 20%;
        flex-basis: 20%; } }
    @media (max-width: 767px) {
      .DragToBoxes .textDiv .wrapper-box, .DragFromText .textDiv .wrapper-box {
        -webkit-flex-basis: 100%;
        -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
        min-width: 110px; } }
    .DragToBoxes .textDiv .wrapper-box .box, .DragFromText .textDiv .wrapper-box .box {
      border: 1px solid;
      border-color: var(--theme-color1);
      border-radius: 3px;
      height: 100%;
      padding-bottom: 1rem; }
      .DragToBoxes .textDiv .wrapper-box .box.box-hover, .DragFromText .textDiv .wrapper-box .box.box-hover {
        border-color: #ff9900; }
      .DragToBoxes .textDiv .wrapper-box .box .title, .DragFromText .textDiv .wrapper-box .box .title {
        padding: 5px;
        border-top-left-radius: 2px;
        border-top-right-radius: 2px;
        text-align: center;
        font-weight: bold;
        color: #fff;
        background-color: var(--theme-color1); }
      .DragToBoxes .textDiv .wrapper-box .box .answers, .DragFromText .textDiv .wrapper-box .box .answers {
        min-height: 30px;
        -webkit-box-sizing: content-box;
        box-sizing: content-box; }
        .DragToBoxes .textDiv .wrapper-box .box .answers .boxAnswer, .DragFromText .textDiv .wrapper-box .box .answers .boxAnswer, .DragToBoxes .textDiv .wrapper-box .box .answers .example, .DragFromText .textDiv .wrapper-box .box .answers .example {
          display: inline-block; }
          .DragToBoxes .textDiv .wrapper-box .box .answers .boxAnswer.is-valid, .DragFromText .textDiv .wrapper-box .box .answers .boxAnswer.is-valid, .DragToBoxes .textDiv .wrapper-box .box .answers .is-valid.example, .DragFromText .textDiv .wrapper-box .box .answers .is-valid.example {
            color: #0000d9; }
          .DragToBoxes .textDiv .wrapper-box .box .answers .boxAnswer.is-invalid, .DragFromText .textDiv .wrapper-box .box .answers .boxAnswer.is-invalid, .DragToBoxes .textDiv .wrapper-box .box .answers .is-invalid.example, .DragFromText .textDiv .wrapper-box .box .answers .is-invalid.example {
            color: #d90000; }
        .DragToBoxes .textDiv .wrapper-box .box .answers .example, .DragFromText .textDiv .wrapper-box .box .answers .example {
          opacity: 0.6; }

.DragFromText .textDiv {
  margin-left: 0;
  margin-right: 0;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center; }
  .DragFromText .textDiv .boxAnswer, .DragFromText .textDiv .wrapper-box .box .answers .example {
    cursor: initial; }
    .DragFromText .textDiv .boxAnswer.highlight, .DragFromText .textDiv .wrapper-box .box .answers .highlight.example {
      cursor: pointer;
      color: blue; }

.DragFromText .sentence {
  width: 100%;
  margin-bottom: 1rem; }
  .DragFromText .sentence .boxAnswer:not(.interactive-element), .DragToBoxes .textDiv .wrapper-box .box .answers .DragFromText .sentence .example:not(.interactive-element), .DragFromText .sentence .textDiv .wrapper-box .box .answers .example:not(.interactive-element), .DragFromText .textDiv .wrapper-box .box .answers .sentence .example:not(.interactive-element) {
    padding: 0; }

.DragFromText .boxAnswer.selected, .DragToBoxes .textDiv .wrapper-box .box .answers .DragFromText .selected.example, .DragFromText .textDiv .wrapper-box .box .answers .selected.example {
  color: orange; }

.DragFromText .boxAnswer.used, .DragToBoxes .textDiv .wrapper-box .box .answers .DragFromText .used.example, .DragFromText .textDiv .wrapper-box .box .answers .used.example {
  opacity: 0.4; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhlbHBlcnMvZWZmZWN0cy9ibGluZy9fcHVmZkluLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvX2VmZmVjdHMuc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9ibGluZy9fcHVmZk91dC5zY3NzIiwiaGVscGVycy9lZmZlY3RzL2JsaW5nL192YW5pc2hJbi5zY3NzIiwiaGVscGVycy9lZmZlY3RzL2JsaW5nL192YW5pc2hPdXQuc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9ib2luZy9fYm9pbmdJblVwLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvYm9pbmcvX2JvaW5nT3V0RG93bi5zY3NzIiwiaGVscGVycy9lZmZlY3RzL2Rhc2gvX2Rhc2guc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9tYXRoL19zd2FzaEluLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvbWF0aC9fc3dhc2hPdXQuc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9wZXJzcGVjdGl2ZS9fcGVyc3BlY3RpdmVEb3duLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvcGVyc3BlY3RpdmUvX3BlcnNwZWN0aXZlRG93blJldHVybi5zY3NzIiwiaGVscGVycy9lZmZlY3RzL3BlcnNwZWN0aXZlL19wZXJzcGVjdGl2ZUxlZnQuc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9wZXJzcGVjdGl2ZS9fcGVyc3BlY3RpdmVMZWZ0UmV0dXJuLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvcGVyc3BlY3RpdmUvX3BlcnNwZWN0aXZlUmlnaHQuc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9wZXJzcGVjdGl2ZS9fcGVyc3BlY3RpdmVSaWdodFJldHVybi5zY3NzIiwiaGVscGVycy9lZmZlY3RzL3BlcnNwZWN0aXZlL19wZXJzcGVjdGl2ZVVwLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvcGVyc3BlY3RpdmUvX3BlcnNwZWN0aXZlVXBSZXR1cm4uc2NzcyIsImhlbHBlcnMvZWZmZWN0cy9zbGlkZS9fc2xpZGVEb3duLnNjc3MiLCJoZWxwZXJzL2VmZmVjdHMvc2xpZGUvX3NsaWRlVXAuc2NzcyIsImdhcGZpbGwuc2NzcyIsImhlbHBlcnMvX3ZhcmlhYmxlcy5zY3NzIiwiaGVscGVycy9fbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw4QkFBc0I7RUFBdEIseUJBQXNCO0VBQXRCLHNCQUFzQjtFQ0F2Qiw4QkFBc0I7RUFBdEIseUJBQXNCO0VBQXRCLHNCQUFzQjtFQUN0QixpQ0FBeUI7RUFBekIsNEJBQXlCO0VBQXpCLHlCQUF5QixFQUFBOztBREcxQjtFQUNFO0lBQ0UsVUFBVTtJQUNWLGlDQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIsOEJBQXNCO0lBQXRCLHNCQUFzQjtJQUN0Qix5QkFBaUI7SUFBakIsaUJBQWlCLEVBQUE7RUFFbkI7SUFDRSxVQUFVO0lBQ1YsaUNBQXlCO0lBQXpCLHlCQUF5QjtJQUN6Qiw4QkFBc0I7SUFBdEIsc0JBQXNCO0lBQ3RCLHlCQUFpQjtJQUFqQixpQkFBaUIsRUFBQSxFQUFBOztBQVhyQjtFQUNFO0lBQ0UsVUFBVTtJQUNWLDRCQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIseUJBQXNCO0lBQXRCLHNCQUFzQjtJQUN0QixpQkFBaUIsRUFBQTtFQUVuQjtJQUNFLFVBQVU7SUFDViw0QkFBeUI7SUFBekIseUJBQXlCO0lBQ3pCLHlCQUFzQjtJQUF0QixzQkFBc0I7SUFDdEIsaUJBQWlCLEVBQUEsRUFBQTs7QUFYckI7RUFDRTtJQUNFLFVBQVU7SUFDVixpQ0FBeUI7SUFBekIsNEJBQXlCO0lBQXpCLHlCQUF5QjtJQUN6Qiw4QkFBc0I7SUFBdEIseUJBQXNCO0lBQXRCLHNCQUFzQjtJQUN0Qix5QkFBaUI7SUFBakIsaUJBQWlCLEVBQUE7RUFFbkI7SUFDRSxVQUFVO0lBQ1YsaUNBQXlCO0lBQXpCLDRCQUF5QjtJQUF6Qix5QkFBeUI7SUFDekIsOEJBQXNCO0lBQXRCLHlCQUFzQjtJQUF0QixzQkFBc0I7SUFDdEIseUJBQWlCO0lBQWpCLGlCQUFpQixFQUFBLEVBQUE7O0FFaEJyQjtFQUNFLCtCQUF1QjtF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SUFDbEIsbUJBQVk7SUFBWixvQkFBWTtJQUFaLG9CQUFZO0lBQVosWUFBWTtJQUNaLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixtQkFBbUIsRUFBQTtJRXZKcEI7TUY0SEY7UUE4QkksdUJBQWU7UUFBZiw0QkFBZTtRQUFmLGVBQWUsRUFBQSxFQXNEaEI7SUVuTUE7TUYrR0g7UUFrQ0ksd0JBQWdCO1FBQWhCLDZCQUFnQjtRQUFoQixnQkFBZ0I7UUFDaEIsZ0JBQWdCLEVBQUEsRUFpRGpCO0lBcEZIO01BdUNJLGlCQUFpQjtNQUNqQixpQ0FBaUM7TUFDakMsa0JBQWtCO01BQ2xCLFlBQVk7TUFDWixvQkFBb0IsRUFBQTtNQTNDeEI7UUErQ0sscUJBQXFCLEVBQUE7TUEvQzFCO1FBbURLLFlBQVk7UUFDWiwyQkFBMkI7UUFDM0IsNEJBQTRCO1FBQzVCLGtCQUFrQjtRQUNsQixpQkFBaUI7UUFDakIsV0FBVztRQUVYLHFDQUFxQyxFQUFBO01BMUQxQztRQThESyxnQkFBZ0I7UUFDaEIsK0JBQXVCO1FBQXZCLHVCQUF1QixFQUFBO1FBL0Q1QjtVQWtFTSxxQkFBcUIsRUFBQTtVQWxFM0I7WUFxRU8sY0NqTWdCLEVBQUE7VUQ0SHZCO1lBeUVPLGNDcE1jLEVBQUE7UUQySHJCO1VBZ0ZNLFlBQVksRUFBQTs7QUFRbEI7RUFJRSxjQUFjO0VBQ2QsZUFBZTtFQUNmLHdCQUF1QjtFQUF2QiwrQkFBdUI7RUFBdkIscUJBQXVCO0VBQXZCLHVCQUF1QixFQUFBO0VBTnpCO0lBU0csZUFBZSxFQUFBO0lBVGxCO01BWUksZUFBZTtNQUNmLFdBQVcsRUFBQTs7QUFiZjtFQW1CRSxXQUFXO0VBQ1gsbUJBQW1CLEVBQUE7RUFwQnJCO0lBdUJHLFVBQVUsRUFBQTs7QUF2QmI7RUE2QkcsYUFBYSxFQUFBOztBQTdCaEI7RUFpQ0csWUFBWSxFQUFBIiwiZmlsZSI6ImdhcGZpbGwuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnB1ZmZJbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBwdWZmSW47XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkBrZXlmcmFtZXMgcHVmZkluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDIsIDIpO1xuICAgIGZpbHRlcjogYmx1cigycHgpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xuICAgIGZpbHRlcjogYmx1cigwcHgpO1xuICB9XG59XG4iLCJAbWl4aW4gaW5pdEVmZmVjdCB7XHJcblx0YW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcclxuXHRhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xyXG59XHJcblxyXG4vLyAgQmxpbmdcclxuQGltcG9ydCBcImJsaW5nL3B1ZmZJblwiO1xyXG5AaW1wb3J0IFwiYmxpbmcvcHVmZk91dFwiO1xyXG5AaW1wb3J0IFwiYmxpbmcvdmFuaXNoSW5cIjtcclxuQGltcG9ydCBcImJsaW5nL3ZhbmlzaE91dFwiO1xyXG5cclxuLy8gIEJvaW5nXHJcbkBpbXBvcnQgXCJib2luZy9ib2luZ0luVXBcIjtcclxuQGltcG9ydCBcImJvaW5nL2JvaW5nT3V0RG93blwiO1xyXG5cclxuLy8gIERhc2hcclxuQGltcG9ydCBcImRhc2gvZGFzaFwiO1xyXG5cclxuLy8gIE1hdGhcclxuQGltcG9ydCBcIm1hdGgvc3dhc2hJblwiO1xyXG5AaW1wb3J0IFwibWF0aC9zd2FzaE91dFwiO1xyXG5cclxuLy8gIFBlcnNwZWN0aXZlXHJcbkBpbXBvcnQgXCJwZXJzcGVjdGl2ZS9wZXJzcGVjdGl2ZURvd25cIjtcclxuQGltcG9ydCBcInBlcnNwZWN0aXZlL3BlcnNwZWN0aXZlRG93blJldHVyblwiO1xyXG5AaW1wb3J0IFwicGVyc3BlY3RpdmUvcGVyc3BlY3RpdmVMZWZ0XCI7XHJcbkBpbXBvcnQgXCJwZXJzcGVjdGl2ZS9wZXJzcGVjdGl2ZUxlZnRSZXR1cm5cIjtcclxuQGltcG9ydCBcInBlcnNwZWN0aXZlL3BlcnNwZWN0aXZlUmlnaHRcIjtcclxuQGltcG9ydCBcInBlcnNwZWN0aXZlL3BlcnNwZWN0aXZlUmlnaHRSZXR1cm5cIjtcclxuQGltcG9ydCBcInBlcnNwZWN0aXZlL3BlcnNwZWN0aXZlVXBcIjtcclxuQGltcG9ydCBcInBlcnNwZWN0aXZlL3BlcnNwZWN0aXZlVXBSZXR1cm5cIjtcclxuXHJcbi8vICBTbGlkZVxyXG5AaW1wb3J0IFwic2xpZGUvc2xpZGVEb3duXCI7XHJcbkBpbXBvcnQgXCJzbGlkZS9zbGlkZVVwXCI7XHJcbiIsIi5wdWZmT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHB1ZmZPdXQ7XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkBrZXlmcmFtZXMgcHVmZk91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTtcbiAgICBmaWx0ZXI6IGJsdXIoMHB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgyLCAyKTtcbiAgICBmaWx0ZXI6IGJsdXIoMnB4KTtcbiAgfVxufVxuIiwiLnZhbmlzaEluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHZhbmlzaEluO1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5Aa2V5ZnJhbWVzIHZhbmlzaEluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDIsIDIpO1xuICAgIGZpbHRlcjogYmx1cig5MHB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTtcbiAgICBmaWx0ZXI6IGJsdXIoMHB4KTtcbiAgfVxufVxuIiwiLnZhbmlzaE91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB2YW5pc2hPdXQ7XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkBrZXlmcmFtZXMgdmFuaXNoT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xuICAgIGZpbHRlcjogYmx1cigwcHgpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDIsIDIpO1xuICAgIGZpbHRlcjogYmx1cigyMHB4KTtcbiAgfVxufVxuIiwiLmJvaW5nSW5VcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib2luZ0luVXA7XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib2luZ0luVXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDUwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDUwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvaW5nSW5VcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoNTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoNTBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpO1xuICB9XG59XG4iLCIuYm9pbmdPdXREb3duIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvaW5nT3V0RG93bjtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBib2luZ091dERvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpO1xuICB9XG5cbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgxMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDEwZGVnKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMGRlZyk7XG4gIH1cblxuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDEwZGVnKSByb3RhdGVZKDEwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDEwZGVnKSByb3RhdGVZKDEwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCg5MGRlZykgcm90YXRlWSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDkwZGVnKSByb3RhdGVZKDBkZWcpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGJvaW5nT3V0RG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMGRlZyk7XG4gIH1cblxuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDEwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMTBkZWcpO1xuICB9XG5cbiAgMzAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgwZGVnKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMTBkZWcpIHJvdGF0ZVkoMTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMTBkZWcpIHJvdGF0ZVkoMTBkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDkwZGVnKSByb3RhdGVZKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoOTBkZWcpIHJvdGF0ZVkoMGRlZyk7XG4gIH1cbn1cbiIsInN2Zy5kYXNoIHtcclxuXHQucGF0aCB7XHJcblx0XHRzdHJva2UtZGFzaGFycmF5OiAxMDAwO1xyXG5cdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XHJcblxyXG5cdFx0Ji5jaXJjbGUge1xyXG5cdFx0XHRhbmltYXRpb24tbmFtZTogZGFzaDtcclxuXHRcdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiAwLjlzO1xyXG5cdFx0XHRhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcclxuXHRcdH1cclxuXHJcblx0XHQmLmxpbmUge1xyXG5cdFx0XHRzdHJva2UtZGFzaG9mZnNldDogMTAwMDtcclxuXHJcblx0XHRcdGFuaW1hdGlvbi1uYW1lOiBkYXNoO1xyXG5cdFx0XHRhbmltYXRpb24tZHVyYXRpb246IDAuOXM7XHJcblx0XHRcdGFuaW1hdGlvbi1kZWxheTogMC4zNXM7XHJcblx0XHRcdGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xyXG5cdFx0XHRhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5jaGVjayB7XHJcblx0XHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAtMTAwO1xyXG5cdFx0XHRhbmltYXRpb24tbmFtZTogZGFzaC1jaGVjaztcclxuXHRcdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiAwLjlzO1xyXG5cdFx0XHRhbmltYXRpb24tZGVsYXk6IDAuMzVzO1xyXG5cdFx0XHRhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcclxuXHRcdFx0YW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGRhc2gge1xyXG5cdDAlIHtcclxuXHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAxMDAwO1xyXG5cdH1cclxuXHQxMDAlIHtcclxuXHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xyXG5cdH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBkYXNoLWNoZWNrIHtcclxuXHQwJSB7XHJcblx0XHRzdHJva2UtZGFzaG9mZnNldDogLTEwMDtcclxuXHR9XHJcblx0MTAwJSB7XHJcblx0XHRzdHJva2UtZGFzaG9mZnNldDogOTAwO1xyXG5cdH1cclxufVxyXG4iLCIuc3dhc2hJbiB7XG5cdGFuaW1hdGlvbi1uYW1lOiBzd2FzaEluO1xuXHRAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5Aa2V5ZnJhbWVzIHN3YXNoSW4ge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUoMCwgMCk7XG5cdH1cblxuXHQ5MCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDAuOSwgMC45KTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xuXHR9XG59XG4iLCIuc3dhc2hPdXQge1xuICBhbmltYXRpb24tbmFtZTogc3dhc2hPdXQ7XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkBrZXlmcmFtZXMgc3dhc2hPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gIH1cblxuICA4MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSwgMC45KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xuICB9XG59XG4iLCIucGVyc3BlY3RpdmVEb3duIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHBlcnNwZWN0aXZlRG93bjtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQGtleWZyYW1lcyBwZXJzcGVjdGl2ZURvd24ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAxMDAlO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgtMTgwZGVnKTtcbiAgfVxufVxuIiwiLnBlcnNwZWN0aXZlRG93blJldHVybiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBwZXJzcGVjdGl2ZURvd25SZXR1cm47XG4gIEBpbmNsdWRlIGluaXRFZmZlY3Q7XG59XG5cbkBrZXlmcmFtZXMgcGVyc3BlY3RpdmVEb3duUmV0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKC0xODBkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAxMDAlO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gIH1cbn1cbiIsIi5wZXJzcGVjdGl2ZUxlZnQge1xuICBhbmltYXRpb24tbmFtZTogcGVyc3BlY3RpdmVMZWZ0O1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5Aa2V5ZnJhbWVzIHBlcnNwZWN0aXZlTGVmdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWSgwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVZKC0xODBkZWcpO1xuICB9XG59XG4iLCIucGVyc3BlY3RpdmVMZWZ0UmV0dXJuIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHBlcnNwZWN0aXZlTGVmdFJldHVybjtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQGtleWZyYW1lcyBwZXJzcGVjdGl2ZUxlZnRSZXR1cm4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVkoLTE4MGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWSgwZGVnKTtcbiAgfVxufVxuIiwiLnBlcnNwZWN0aXZlUmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogcGVyc3BlY3RpdmVSaWdodDtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQGtleWZyYW1lcyBwZXJzcGVjdGl2ZVJpZ2h0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVZKDBkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVkoMTgwZGVnKTtcbiAgfVxufVxuIiwiLnBlcnNwZWN0aXZlUmlnaHRSZXR1cm4ge1xuICBhbmltYXRpb24tbmFtZTogcGVyc3BlY3RpdmVSaWdodFJldHVybjtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQGtleWZyYW1lcyBwZXJzcGVjdGl2ZVJpZ2h0UmV0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVZKDE4MGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWSgwZGVnKTtcbiAgfVxufVxuIiwiLnBlcnNwZWN0aXZlVXAge1xuICBhbmltYXRpb24tbmFtZTogcGVyc3BlY3RpdmVVcDtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQGtleWZyYW1lcyBwZXJzcGVjdGl2ZVVwIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDBkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoODAwcHgpIHJvdGF0ZVgoMTgwZGVnKTtcbiAgfVxufVxuIiwiLnBlcnNwZWN0aXZlVXBSZXR1cm4ge1xuICBhbmltYXRpb24tbmFtZTogcGVyc3BlY3RpdmVVcFJldHVybjtcbiAgQGluY2x1ZGUgaW5pdEVmZmVjdDtcbn1cblxuQGtleWZyYW1lcyBwZXJzcGVjdGl2ZVVwUmV0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDgwMHB4KSByb3RhdGVYKDE4MGRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg4MDBweCkgcm90YXRlWCgwZGVnKTtcbiAgfVxufVxuIiwiLmVmZmVjdC1zbGlkZURvd24ge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVEb3duO1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlRG93biB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwJSk7XG4gIH1cbn1cbiIsIi5lZmZlY3Qtc2xpZGVVcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZVVwO1xuICBAaW5jbHVkZSBpbml0RWZmZWN0O1xufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlVXAge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJoZWxwZXJzL2hlbHBlcnNcIjtcclxuXHJcbi5HYXBmaWxsIHtcclxuXHQudGV4dERpdiB7XHJcblx0XHRwYWRkaW5nLXRvcDogNDBweDtcclxuXHRcdG1hcmdpbi10b3A6IC00MHB4O1xyXG5cdH1cclxuXHJcblx0LmdhcCB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRib3JkZXItcmFkaXVzOiAycHg7XHJcblx0XHRib3JkZXItd2lkdGg6IDFweDtcclxuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XHJcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xyXG5cclxuXHRcdCYuY29ycmVjdCB7XHJcblx0XHRcdGNvbG9yOiB0aGVtZS1jb2xvcihjb3JyZWN0KTtcclxuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xyXG5cclxuXHRcdFx0LmJveEFuc3dlciB7XHJcblx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XHJcblx0XHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5pbmNvcnJlY3Qge1xyXG5cdFx0XHRjb2xvcjogdGhlbWUtY29sb3IoZXJyb3IpO1xyXG5cclxuXHRcdFx0LmJveEFuc3dlciB7XHJcblx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmLmdhcC1ob3ZlciB7XHJcblx0XHRcdGJvcmRlci1jb2xvcjogI2ZmOTkwMDtcclxuXHRcdH1cclxuXHJcblx0XHQuZGVmYXVsdC10ZXh0IHtcclxuXHRcdFx0cGFkZGluZzogM3B4IDVweDtcclxuXHRcdFx0Y29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdFx0XHQvLyBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itc2Vjb25kYXJ5O1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb2xvci1zZWNvbmRhcnksIDQ3JSk7XHJcblx0XHRcdC8vICNlY2YwZjFcclxuXHJcblx0XHRcdCY6bm90KDpsYXN0LWNoaWxkKSB7XHJcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC5ib3hBbnN3ZXIge1xyXG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDA7XHJcblx0XHRcdGNvbG9yOiAjZmY5OTAwO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRcdH1cclxuXHJcblx0XHQmLmNhcGl0YWxpemUgLmJveEFuc3dlcjo6Zmlyc3QtbGV0dGVyIHtcclxuXHRcdFx0dGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLnNlbGVjdGVkIC5nYXA6aG92ZXIge1xyXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdH1cclxuXHJcblx0LmFuc3dlcnNCb3gge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtd3JhcDogd3JhcDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDVweDtcclxuXHRcdG1hcmdpbi10b3A6IDFyZW07XHJcblx0XHRib3JkZXItd2lkdGg6IDFweDtcclxuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XHJcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdFx0cGFkZGluZy10b3A6IDVweDtcclxuXHRcdHBhZGRpbmctYm90dG9tOiA1cHg7XHJcblx0XHRtaW4taGVpZ2h0OiA0NXB4O1xyXG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHRcdGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGNvbG9yLXNlY29uZGFyeSwgNTAlKTtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcblx0XHQmLmJveC1ob3ZlciB7XHJcblx0XHRcdGJvcmRlci1jb2xvcjogJGNvbG9yLXNlY29uZGFyeTtcclxuXHRcdH1cclxuXHJcblx0XHQuYW5zd2Vyc0JveENvbHVtbiB7XHJcblx0XHRcdHBvc2l0aW9uOiB1bnNldDtcclxuXHRcdFx0cGFkZGluZy1sZWZ0OiAxMHB4O1xyXG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG5cclxuXHRcdFx0LmJveEFuc3dlciB7XHJcblx0XHRcdFx0bWFyZ2luLXRvcDogNXB4O1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDVweDtcclxuXHJcblx0XHRcdFx0Ji5zZWxlY3RlZCB7XHJcblx0XHRcdFx0XHRvcGFjaXR5OiAwLjU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuYm94QW5zd2VyIHtcclxuXHRcdHBhZGRpbmc6IDNweCA1cHg7XHJcblxyXG5cdFx0Ji5zZWxlY3RlZCxcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHRcdGZpbHRlcjogYnJpZ2h0bmVzcyg5MCUpO1xyXG5cdFx0fVxyXG5cclxuXHRcdCYudWktZHJhZ2dhYmxlLWRyYWdnaW5nIHtcclxuXHRcdFx0cGFkZGluZzogM3B4IDVweDtcclxuXHRcdFx0Y29sb3I6IHdoaXRlO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNDBhYmUzO1xyXG5cdFx0XHRib3gtc2hhZG93OiAzcHggM3B4IDEwcHggMHB4IHJnYmEoYmxhY2ssIDAuNzUpO1xyXG5cdFx0fVxyXG5cclxuXHRcdCYuYW5zd2VyLWhvdmVyIHtcclxuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcclxuXHRcdFx0ZmlsdGVyOiBub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmdhcGZpbGwtaW1hZ2Uge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuXHRcdC5nYXAtcG9zaXRpb25lciB7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0XHRcdC5nYXAtd3JhcHBlciB7XHJcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cclxuXHRcdFx0XHQuZ2FwIHtcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0XHRcdFx0XHRib3JkZXItd2lkdGg6IDA7XHJcblxyXG5cdFx0XHRcdFx0Jjpub3QoLmFsd2F5cy12aXNpYmxlKSAuZGVmYXVsdC10ZXh0IHtcclxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuZW5kaW5nQ29kZURpdiB7XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0cGFkZGluZy10b3A6IDJyZW07XHJcblx0fVxyXG59XHJcblxyXG4uRHJhZ1RvQm94ZXMge1xyXG5cdEBleHRlbmQgLkdhcGZpbGw7XHJcblxyXG5cdC5hbnN3ZXJzQm94IHtcclxuXHRcdG1hcmdpbi10b3A6IDA7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG5cdH1cclxuXHJcblx0LnRleHREaXYge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRmbGV4LXdyYXA6IHdyYXA7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRhbGlnbi1pdGVtczogc3RyZXRjaDtcclxuXHRcdGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblx0XHRtYXJnaW4tdG9wOiAwO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IC0xMHB4O1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiAtMTBweDtcclxuXHRcdHBhZGRpbmctdG9wOiAwO1xyXG5cclxuXHRcdC53cmFwcGVyLWJveCB7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0ZmxleC1ncm93OiAxO1xyXG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XHJcblx0XHRcdG1pbi13aWR0aDogMTUwcHg7XHJcblx0XHRcdHBhZGRpbmctbGVmdDogMTBweDtcclxuXHRcdFx0cGFkZGluZy1yaWdodDogMTBweDtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcclxuXHJcblx0XHRcdEBpbmNsdWRlIG1pbi1tZWRpYShcInNtXCIpIHtcclxuXHRcdFx0XHRmbGV4LWJhc2lzOiAyMCU7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdEBpbmNsdWRlIG1heC1tZWRpYShcInNtXCIpIHtcclxuXHRcdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xyXG5cdFx0XHRcdG1pbi13aWR0aDogMTEwcHg7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC5ib3gge1xyXG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkO1xyXG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tdGhlbWUtY29sb3IxKTtcclxuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XHJcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAxcmVtO1xyXG5cdFx0XHRcdC8vIGJhY2tncm91bmQtY29sb3I6ICNmY2YyZDY7XHJcblxyXG5cdFx0XHRcdCYuYm94LWhvdmVyIHtcclxuXHRcdFx0XHRcdGJvcmRlci1jb2xvcjogI2ZmOTkwMDtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC50aXRsZSB7XHJcblx0XHRcdFx0XHRwYWRkaW5nOiA1cHg7XHJcblx0XHRcdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAycHg7XHJcblx0XHRcdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMnB4O1xyXG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0XHRcdFx0XHRjb2xvcjogI2ZmZjtcclxuXHRcdFx0XHRcdC8vIGJhY2tncm91bmQtY29sb3I6ICNmZmU4YTE7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1jb2xvcjEpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0LmFuc3dlcnMge1xyXG5cdFx0XHRcdFx0bWluLWhlaWdodDogMzBweDtcclxuXHRcdFx0XHRcdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG5cclxuXHRcdFx0XHRcdC5ib3hBbnN3ZXIge1xyXG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG5cdFx0XHRcdFx0XHQmLmlzLXZhbGlkIHtcclxuXHRcdFx0XHRcdFx0XHRjb2xvcjogdGhlbWUtY29sb3IoY29ycmVjdCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdCYuaXMtaW52YWxpZCB7XHJcblx0XHRcdFx0XHRcdFx0Y29sb3I6IHRoZW1lLWNvbG9yKGVycm9yKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC5leGFtcGxlIHtcclxuXHRcdFx0XHRcdFx0QGV4dGVuZCAuYm94QW5zd2VyO1xyXG5cclxuXHRcdFx0XHRcdFx0b3BhY2l0eTogMC42O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLkRyYWdGcm9tVGV4dCB7XHJcblx0QGV4dGVuZCAuRHJhZ1RvQm94ZXM7XHJcblxyXG5cdC50ZXh0RGl2IHtcclxuXHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG5cdFx0LmJveEFuc3dlciB7XHJcblx0XHRcdGN1cnNvcjogaW5pdGlhbDtcclxuXHJcblx0XHRcdCYuaGlnaGxpZ2h0IHtcclxuXHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHRcdFx0Y29sb3I6IGJsdWU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5zZW50ZW5jZSB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdG1hcmdpbi1ib3R0b206IDFyZW07XHJcblxyXG5cdFx0LmJveEFuc3dlcjpub3QoLmludGVyYWN0aXZlLWVsZW1lbnQpIHtcclxuXHRcdFx0cGFkZGluZzogMDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5ib3hBbnN3ZXIge1xyXG5cdFx0Ji5zZWxlY3RlZCB7XHJcblx0XHRcdGNvbG9yOiBvcmFuZ2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Ji51c2VkIHtcclxuXHRcdFx0b3BhY2l0eTogMC40O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIkbWF0ZXJpYWwtZm9udDogXCJNYXRlcmlhbCBJY29uc1wiO1xyXG5cclxuLy8gR3JpZFxyXG4kZ3JpZC1icmVha3BvaW50czogKFxyXG5cdHhzOiAwLFxyXG5cdHNtOiA1NzZweCxcclxuXHRtZDogNzY4cHgsXHJcblx0bGc6IDk5MnB4LFxyXG5cdHhsOiAxMjAwcHhcclxuKTtcclxuXHJcbi8vIE9wYWNpdHlcclxuJGJsYWNrLXByaW1hcnktb3BhY2l0eTogMC44NyAhZGVmYXVsdDtcclxuJGJsYWNrLXNlY29uZGFyeS1vcGFjaXR5OiAwLjU0ICFkZWZhdWx0O1xyXG4kYmxhY2staGludC1vcGFjaXR5OiAwLjM4ICFkZWZhdWx0O1xyXG4kYmxhY2stZGl2aWRlci1vcGFjaXR5OiAwLjEyICFkZWZhdWx0O1xyXG5cclxuJHdoaXRlLXByaW1hcnktb3BhY2l0eTogMSAhZGVmYXVsdDtcclxuJHdoaXRlLXNlY29uZGFyeS1vcGFjaXR5OiAwLjcgIWRlZmF1bHQ7XHJcbiR3aGl0ZS1oaW50LW9wYWNpdHk6IDAuNSAhZGVmYXVsdDtcclxuJHdoaXRlLWRpdmlkZXItb3BhY2l0eTogMC4xMiAhZGVmYXVsdDtcclxuXHJcbi8vIGNvbG9yc1xyXG4kY29sb3ItcHJpbWFyeTogIzAwN2RjMTtcclxuJGNvbG9yLXNlY29uZGFyeTogIzYwN2Q4YjtcclxuJGNvbG9yLXdhcm5pbmc6ICNmZmMxMDc7XHJcbiRjb2xvci1mYXZvdXJpdGU6ICNmZmJmMDA7XHJcbiRjb2xvci1jb3JyZWN0OiAjMDAwMGQ5O1xyXG4kY29sb3ItZXJyb3I6ICNkOTAwMDA7XHJcblxyXG4kYmxhY2stcHJpbWFyeTogcmdiYShibGFjaywgJGJsYWNrLXByaW1hcnktb3BhY2l0eSk7XHJcbiRibGFjay1zZWNvbmRhcnk6IHJnYmEoYmxhY2ssICRibGFjay1zZWNvbmRhcnktb3BhY2l0eSk7XHJcbiRibGFjay1oaW50OiByZ2JhKGJsYWNrLCAkYmxhY2staGludC1vcGFjaXR5KTtcclxuJGJsYWNrLWRpdmlkZXI6IHJnYmEoYmxhY2ssICRibGFjay1kaXZpZGVyLW9wYWNpdHkpO1xyXG5cclxuJHdoaXRlLXByaW1hcnk6IHJnYmEod2hpdGUsICR3aGl0ZS1wcmltYXJ5LW9wYWNpdHkpO1xyXG4kd2hpdGUtc2Vjb25kYXJ5OiByZ2JhKHdoaXRlLCAkd2hpdGUtc2Vjb25kYXJ5LW9wYWNpdHkpO1xyXG4kd2hpdGUtaGludDogcmdiYSh3aGl0ZSwgJHdoaXRlLWhpbnQtb3BhY2l0eSk7XHJcbiR3aGl0ZS1kaXZpZGVyOiByZ2JhKHdoaXRlLCAkd2hpdGUtZGl2aWRlci1vcGFjaXR5KTtcclxuXHJcbiRwcmltYXJ5OiAoXHJcblx0Y29sb3I6ICRjb2xvci1wcmltYXJ5LFxyXG5cdGRhcms6IGRhcmtlbigkY29sb3ItcHJpbWFyeSwgMTAlKSxcclxuXHRsaWdodDogbGlnaHRlbigkY29sb3ItcHJpbWFyeSwgMTAlKVxyXG4pO1xyXG5cclxuJHNlY29uZGFyeTogKFxyXG5cdGNvbG9yOiAkY29sb3Itc2Vjb25kYXJ5LFxyXG5cdGRhcms6IGRhcmtlbigkY29sb3Itc2Vjb25kYXJ5LCAxMCUpLFxyXG5cdGxpZ2h0OiBsaWdodGVuKCRjb2xvci1zZWNvbmRhcnksIDEwJSlcclxuKTtcclxuXHJcbiRkYXJrOiAoXHJcblx0Y29sb3I6ICRibGFjay1wcmltYXJ5LFxyXG5cdGRhcms6ICRibGFjay1zZWNvbmRhcnksXHJcblx0bGlnaHQ6ICRibGFjay1oaW50XHJcbik7XHJcblxyXG4kbGlnaHQ6IChcclxuXHRjb2xvcjogI2Y1ZjVmNSxcclxuXHRkYXJrOiAjZTBlMGUwLFxyXG5cdGxpZ2h0OiAjZmFmYWZhXHJcbik7XHJcblxyXG4kd2FybmluZzogKFxyXG5cdGNvbG9yOiAkY29sb3Itd2FybmluZyxcclxuXHRkYXJrOiBkYXJrZW4oJGNvbG9yLXdhcm5pbmcsIDEwJSksXHJcblx0bGlnaHQ6IGxpZ2h0ZW4oJGNvbG9yLXdhcm5pbmcsIDEwJSlcclxuKTtcclxuXHJcbiRjb3JyZWN0OiAoXHJcblx0Y29sb3I6ICRjb2xvci1jb3JyZWN0LFxyXG5cdGRhcms6IGRhcmtlbigkY29sb3ItY29ycmVjdCwgMTAlKSxcclxuXHRsaWdodDogbGlnaHRlbigkY29sb3ItY29ycmVjdCwgMTAlKVxyXG4pO1xyXG5cclxuJGVycm9yOiAoXHJcblx0Y29sb3I6ICRjb2xvci1lcnJvcixcclxuXHRkYXJrOiBkYXJrZW4oJGNvbG9yLWVycm9yLCAxMCUpLFxyXG5cdGxpZ2h0OiBsaWdodGVuKCRjb2xvci1lcnJvciwgMTAlKVxyXG4pO1xyXG5cclxuJHRoZW1lLWNvbG9yczogKFxyXG5cdHByaW1hcnk6ICRwcmltYXJ5LFxyXG5cdHNlY29uZGFyeTogJHNlY29uZGFyeSxcclxuXHRkYXJrOiAkZGFyayxcclxuXHRsaWdodDogJGxpZ2h0LFxyXG5cdHdhcm5pbmc6ICR3YXJuaW5nLFxyXG5cdGNvcnJlY3Q6ICRjb3JyZWN0LFxyXG5cdGVycm9yOiAkZXJyb3JcclxuKTtcclxuXHJcbiRmb250LXNpemUtYm9keTogMTRweDtcclxuJGZvbnQtc2l6ZS1iYXNlOiAwLjg3NXJlbTtcclxuXHJcbiR5aXEtY29udHJhc3RlZC10aHJlc2hvbGQ6IDE1MCAhZGVmYXVsdDtcclxuJHlpcS10ZXh0LWRhcms6ICRibGFjay1wcmltYXJ5ICFkZWZhdWx0O1xyXG4keWlxLXRleHQtbGlnaHQ6ICR3aGl0ZS1wcmltYXJ5ICFkZWZhdWx0O1xyXG4iLCJAbWl4aW4gbWF0ZXJpYWxJY29uKCkge1xyXG5cdGZvbnQtZmFtaWx5OiAkbWF0ZXJpYWwtZm9udDtcclxuXHRmb250LXNpemU6IDEyMCU7XHJcblx0Y29sb3I6IGluaGVyaXQ7XHJcbn1cclxuXHJcbkBtaXhpbiBjb250ZW50SWNvbigkaWNvbikge1xyXG5cdEBpbmNsdWRlIG1hdGVyaWFsSWNvbigpO1xyXG5cclxuXHRjb250ZW50OiBcIiN7JGljb259XCI7XHJcbn1cclxuXHJcbkBtaXhpbiBjZW50ZXJSb3RhdGlvbigkd3JhcHBlci1zaXplLCAkc2l6ZSkge1xyXG5cdCRweXRoYWdvcmVhbjogUHl0aGFnb3JlYW5UaGVvcmVtKCRzaXplLCAkc2l6ZSk7XHJcblx0JHNpemVPdmVyZmxvdzogKCRweXRoYWdvcmVhbiAtICRzaXplKSAvIDI7XHJcblxyXG5cdCRwb3NpdGlvbjogKCR3cmFwcGVyLXNpemUgLyAyKSAtICgkcHl0aGFnb3JlYW4gLyAyKSArICRzaXplT3ZlcmZsb3c7XHJcblxyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6ICN7JHBvc2l0aW9ufXB4O1xyXG5cdGxlZnQ6ICN7JHBvc2l0aW9ufXB4O1xyXG5cdGhlaWdodDogI3skc2l6ZX1weDtcclxuXHR3aWR0aDogI3skc2l6ZX1weDtcclxufVxyXG5cclxuQG1peGluIG1pbi1tZWRpYSgkYnJlYWtwb2ludCkge1xyXG5cdEBpZiBtYXAtaGFzLWtleSgkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQpIHtcclxuXHRcdEBtZWRpYSAobWluLXdpZHRoOiAje21hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50KX0pIHtcclxuXHRcdFx0QGNvbnRlbnQ7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gbWF4LW1lZGlhKCRicmVha3BvaW50KSB7XHJcblx0QGlmIG1hcC1oYXMta2V5KCRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkge1xyXG5cdFx0JHByZXYtZWxlbWVudDogbWFwLWdldC1uZXh0KCRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCk7XHJcblx0XHRcclxuXHRcdEBpZiAoJHByZXYtZWxlbWVudCkge1xyXG5cdFx0XHQkd2lkdGg6IG1hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsICRwcmV2LWVsZW1lbnQpIC0gMXB4O1xyXG5cclxuXHRcdFx0QG1lZGlhIChtYXgtd2lkdGg6ICN7JHdpZHRofSkge1xyXG5cdFx0XHRcdEBjb250ZW50O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gYXBwZWFyLWRpc2FwcGVhciB7XHJcblx0b3BhY2l0eTogMTtcclxuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XHJcblxyXG5cdCYuZGlzYWJsZWQsXHJcblx0JjpkaXNhYmxlZCB7XHJcblx0XHRvcGFjaXR5OiAwO1xyXG5cdH1cclxufVxyXG4iXX0= */
