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

.TextEntry .exercise-wrapper .element {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  margin-bottom: 1rem; }
  .TextEntry .exercise-wrapper .element .text {
    width: 100%;
    padding-right: 1rem;
    margin-bottom: 0;
    line-height: 2; }
    .TextEntry .exercise-wrapper .element .text .hidden-text {
      display: inline;
      padding-left: 5px;
      padding-right: 5px;
      cursor: text;
      line-height: inherit;
      font-size: inherit; }
      .TextEntry .exercise-wrapper .element .text .hidden-text.is-invalid {
        color: #d90000; }
        .TextEntry .exercise-wrapper .element .text .hidden-text.is-invalid.finished {
          background-color: #ffe3e3; }
      .TextEntry .exercise-wrapper .element .text .hidden-text.is-valid {
        color: #0000d9; }
        .TextEntry .exercise-wrapper .element .text .hidden-text.is-valid.finished {
          background-color: #e3e3ff; }
      .TextEntry .exercise-wrapper .element .text .hidden-text .fake-input {
        text-align: center;
        outline: unset;
        color: inherit; }
      .TextEntry .exercise-wrapper .element .text .hidden-text .helper-string {
        visibility: hidden; }

.TextEntry .form-control {
  padding-top: 0.2rem;
  padding-bottom: 0.2rem;
  font-size: 0.875rem; }

.TextEntry .btn-toolbar {
  margin-top: 1rem;
  margin-bottom: 1rem;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center; }

@media (max-width: 575px) {
  .TextEntry .exercise-wrapper .element {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column; }
    .TextEntry .exercise-wrapper .element .text {
      padding-right: 0;
      margin-bottom: .5rem; }
    .TextEntry .exercise-wrapper .element .btn {
      -webkit-align-self: center;
      -ms-flex-item-align: center;
      align-self: center; } }

.TextEntry div.helpBtn {
  position: absolute;
  display: inline-block;
  color: white;
  background-color: #f1c40f;
  border-radius: 50%;
  width: 23px;
  height: 23px;
  line-height: 20px;
  font-size: 17px;
  text-align: center;
  top: 7px;
  margin-left: 2px;
  cursor: pointer; }

.TextEntry div.helpBtn:hover {
  opacity: 0.8; }

.TextEntry div.helpBtn:before {
  content: "?"; }

.TextEntry div.lettersContainer {
  position: absolute;
  right: 0;
  top: 0;
  font-size: 12px;
  padding-top: 5px; }

.TextEntry div.lettersContainer div.letter {
  display: inline-block;
  zoom: 1;
  color: #333;
  width: 10px;
  text-align: center;
  padding: 3px 7px 3px;
  margin-right: 3px;
  border: 1px solid;
  border-color: #bdc3c7;
  border-radius: 3px;
  cursor: pointer;
  font-size: 1.1em;
  background: #ecf0f1; }

.TextEntry div.lettersContainer div.letter:hover {
  opacity: 0.6; }

.TextEntry .exercice-wrapper div.frame div.element.text input.immediateFeedbackBtn {
  position: absolute;
  right: 0;
  bottom: 3px;
  zoom: 1; }

.TextEntry .exercice-wrapper div.frame div.element.text ol.nList {
  padding-left: 20px;
  margin-top: 0px;
  margin-bottom: 0; }

.TextEntry .exercice-wrapper div.frame div.element.text ol.nList li {
  position: relative; }

.TextEntry .exercice-wrapper div.frame div.element.text ol.nList li .AudioButton,
.TextEntry .exercice-wrapper div.frame div.element.text ol.nList li .AudioButtonJS {
  display: inline-block;
  position: absolute;
  left: -47px;
  top: 4px;
  *display: inline;
  zoom: 1; }

.TextEntry .exercice-wrapper div.frame div.element.text div.hidden-text.correct {
  background-image: -webkit-gradient(linear, left top, right top, color-stop(5%, #dee9f7), color-stop(90%, #ffffff));
  background-image: linear-gradient(left, #dee9f7 5%, #ffffff 90%);
  background-image: -o-linear-gradient(left, #dee9f7 5%, #ffffff 90%);
  background-image: -webkit-linear-gradient(left, #dee9f7 5%, #ffffff 90%);
  background-image: -ms-linear-gradient(left, #dee9f7 5%, #ffffff 90%);
  background-image: -webkit-gradient(linear, left top, right top, color-stop(0.05, #dee9f7), color-stop(0.52, #ffffff));
  -pie-background: linear-gradient(#dee9f7, #ffffff);
  border-color: #00f; }

.TextEntry .exercice-wrapper div.frame div.element.text div.hidden-text.incorrect {
  background-image: -webkit-gradient(linear, left top, right top, color-stop(5%, #fbdcdc), color-stop(90%, #ffffff));
  background-image: linear-gradient(left, #fbdcdc 5%, #ffffff 90%);
  background-image: -o-linear-gradient(left, #fbdcdc 5%, #ffffff 90%);
  background-image: -webkit-linear-gradient(left, #fbdcdc 5%, #ffffff 90%);
  background-image: -ms-linear-gradient(left, #fbdcdc 5%, #ffffff 90%);
  background-image: -webkit-gradient(linear, left top, right top, color-stop(0.05, #fbdcdc), color-stop(0.52, #ffffff));
  -pie-background: linear-gradient(#fbdcdc, #ffffff); }

.TextEntry .exercice-wrapper div.frame div.element.text div.hidden-text.incorrect.finished {
  border-color: #f00;
  cursor: help; }

.TextEntry .exercice-wrapper div.frame div.element.text div.hidden-text input {
  font-size: 13px;
  position: relative;
  top: -3px;
  *top: 0;
  width: 100%;
  border: 0;
  height: 100%;
  font-family: inherit;
  background: transparent;
  margin-left: 0;
  padding-left: 0;
  -webkit-appearance: none;
  border-radius: 0;
  margin-right: 0;
  padding-right: 0; }

.TextEntry .exercice-wrapper div.frame div.element.text div.hidden-text.focus {
  border-color: #f39c12; }

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