*,
*:before,
*:after {
  box-sizing: border-box; }

body {
  margin: 0;
  font-family: sans-serif; }

img {
  display: block;
  width: 100%;
  height: auto; }

a {
  text-decoration: none; }
  a:hover {
    text-decoration: underline; }

body.dev:before,
body.desarrollo:before, body.dev .ed-container:before,
body.desarrollo .ed-container:before, body.dev .ed-item:before,
body.desarrollo .ed-item:before {
  content: attr(class);
  font-style: italic;
  font-size: 0.75rem;
  font-weight: normal;
  z-index: 1;
  right: 0;
  position: absolute;
  display: table;
  width: 100%;
  padding: 0 0.3125em;
  height: 1.25rem;
  line-height: 1.25rem; }

.ed-container, .container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  max-width: 75rem;
  margin-left: auto;
  margin-right: auto;
  width: 100%; }

.ed-item {
  margin: 0;
  padding-left: 0.9375em;
  padding-right: 0.9375em; }

.ed-item {
  width: auto; }
  .ed-item.ed-container {
    padding-left: 0;
    padding-right: 0; }

.button,
button, .button.round,
button.round, .button.radius,
button.radius {
  display: inline-block;
  line-height: 2.5em;
  padding: 0 1.5em;
  cursor: pointer;
  margin-bottom: 1em;
  border: none; }

.s-offset-5 {
  margin-left: 5%; }

.s-offset-10 {
  margin-left: 10%; }

.s-offset-15 {
  margin-left: 15%; }

.s-offset-20 {
  margin-left: 20%; }

.s-offset-25 {
  margin-left: 25%; }

.s-offset-30 {
  margin-left: 30%; }

.s-offset-35 {
  margin-left: 35%; }

.s-offset-40 {
  margin-left: 40%; }

.s-offset-45 {
  margin-left: 45%; }

.s-offset-50 {
  margin-left: 50%; }

.s-offset-55 {
  margin-left: 55%; }

.s-offset-60 {
  margin-left: 60%; }

.s-offset-65 {
  margin-left: 65%; }

.s-offset-70 {
  margin-left: 70%; }

.s-offset-75 {
  margin-left: 75%; }

.s-offset-80 {
  margin-left: 80%; }

.s-offset-85 {
  margin-left: 85%; }

.s-offset-90 {
  margin-left: 90%; }

.s-offset-95 {
  margin-left: 95%; }

.s-offset-100 {
  margin-left: 100%; }

.s-offset-1-3 {
  margin-left: 33.33333%; }

.s-offset-2-3 {
  margin-left: 66.66667%; }

.s-offset-1-6 {
  margin-left: 16.66667%; }

.s-offset-2-6 {
  margin-left: 33.33333%; }

@media all and (min-width: 40em) {
  .m-offset-5 {
    margin-left: 5%; }
  .m-offset-10 {
    margin-left: 10%; }
  .m-offset-15 {
    margin-left: 15%; }
  .m-offset-20 {
    margin-left: 20%; }
  .m-offset-25 {
    margin-left: 25%; }
  .m-offset-30 {
    margin-left: 30%; }
  .m-offset-35 {
    margin-left: 35%; }
  .m-offset-40 {
    margin-left: 40%; }
  .m-offset-45 {
    margin-left: 45%; }
  .m-offset-50 {
    margin-left: 50%; }
  .m-offset-55 {
    margin-left: 55%; }
  .m-offset-60 {
    margin-left: 60%; }
  .m-offset-65 {
    margin-left: 65%; }
  .m-offset-70 {
    margin-left: 70%; }
  .m-offset-75 {
    margin-left: 75%; }
  .m-offset-80 {
    margin-left: 80%; }
  .m-offset-85 {
    margin-left: 85%; }
  .m-offset-90 {
    margin-left: 90%; }
  .m-offset-95 {
    margin-left: 95%; }
  .m-offset-100 {
    margin-left: 100%; }
  .m-offset-1-3 {
    margin-left: 33.33333%; }
  .m-offset-2-3 {
    margin-left: 66.66667%; }
  .m-offset-1-6 {
    margin-left: 16.66667%; }
  .m-offset-2-6 {
    margin-left: 33.33333%; } }

@media all and (min-width: 64.0625em) {
  .l-offset-5 {
    margin-left: 5%; }
  .l-offset-10 {
    margin-left: 10%; }
  .l-offset-15 {
    margin-left: 15%; }
  .l-offset-20 {
    margin-left: 20%; }
  .l-offset-25 {
    margin-left: 25%; }
  .l-offset-30 {
    margin-left: 30%; }
  .l-offset-35 {
    margin-left: 35%; }
  .l-offset-40 {
    margin-left: 40%; }
  .l-offset-45 {
    margin-left: 45%; }
  .l-offset-50 {
    margin-left: 50%; }
  .l-offset-55 {
    margin-left: 55%; }
  .l-offset-60 {
    margin-left: 60%; }
  .l-offset-65 {
    margin-left: 65%; }
  .l-offset-70 {
    margin-left: 70%; }
  .l-offset-75 {
    margin-left: 75%; }
  .l-offset-80 {
    margin-left: 80%; }
  .l-offset-85 {
    margin-left: 85%; }
  .l-offset-90 {
    margin-left: 90%; }
  .l-offset-95 {
    margin-left: 95%; }
  .l-offset-100 {
    margin-left: 100%; }
  .l-offset-1-3 {
    margin-left: 33.33333%; }
  .l-offset-2-3 {
    margin-left: 66.66667%; }
  .l-offset-1-6 {
    margin-left: 16.66667%; }
  .l-offset-2-6 {
    margin-left: 33.33333%; } }

@media all and (min-width: 90em) {
  .xl-offset-5 {
    margin-left: 5%; }
  .xl-offset-10 {
    margin-left: 10%; }
  .xl-offset-15 {
    margin-left: 15%; }
  .xl-offset-20 {
    margin-left: 20%; }
  .xl-offset-25 {
    margin-left: 25%; }
  .xl-offset-30 {
    margin-left: 30%; }
  .xl-offset-35 {
    margin-left: 35%; }
  .xl-offset-40 {
    margin-left: 40%; }
  .xl-offset-45 {
    margin-left: 45%; }
  .xl-offset-50 {
    margin-left: 50%; }
  .xl-offset-55 {
    margin-left: 55%; }
  .xl-offset-60 {
    margin-left: 60%; }
  .xl-offset-65 {
    margin-left: 65%; }
  .xl-offset-70 {
    margin-left: 70%; }
  .xl-offset-75 {
    margin-left: 75%; }
  .xl-offset-80 {
    margin-left: 80%; }
  .xl-offset-85 {
    margin-left: 85%; }
  .xl-offset-90 {
    margin-left: 90%; }
  .xl-offset-95 {
    margin-left: 95%; }
  .xl-offset-100 {
    margin-left: 100%; }
  .xl-offset-1-3 {
    margin-left: 33.33333%; }
  .xl-offset-2-3 {
    margin-left: 66.66667%; }
  .xl-offset-1-6 {
    margin-left: 16.66667%; }
  .xl-offset-2-6 {
    margin-left: 33.33333%; } }

.s-order-1 {
  -webkit-order: 1;
  -ms-flex-order: 1;
  order: 1; }

.s-order-2 {
  -webkit-order: 2;
  -ms-flex-order: 2;
  order: 2; }

.s-order-3 {
  -webkit-order: 3;
  -ms-flex-order: 3;
  order: 3; }

.s-order-4 {
  -webkit-order: 4;
  -ms-flex-order: 4;
  order: 4; }

.s-order-5 {
  -webkit-order: 5;
  -ms-flex-order: 5;
  order: 5; }

.s-order-6 {
  -webkit-order: 6;
  -ms-flex-order: 6;
  order: 6; }

.s-order-7 {
  -webkit-order: 7;
  -ms-flex-order: 7;
  order: 7; }

.s-order-8 {
  -webkit-order: 8;
  -ms-flex-order: 8;
  order: 8; }

.s-order-9 {
  -webkit-order: 9;
  -ms-flex-order: 9;
  order: 9; }

.s-order-10 {
  -webkit-order: 10;
  -ms-flex-order: 10;
  order: 10; }

@media screen and (min-width: 40em) {
  .m-order-1 {
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1; }
  .m-order-2 {
    -webkit-order: 2;
    -ms-flex-order: 2;
    order: 2; }
  .m-order-3 {
    -webkit-order: 3;
    -ms-flex-order: 3;
    order: 3; }
  .m-order-4 {
    -webkit-order: 4;
    -ms-flex-order: 4;
    order: 4; }
  .m-order-5 {
    -webkit-order: 5;
    -ms-flex-order: 5;
    order: 5; }
  .m-order-6 {
    -webkit-order: 6;
    -ms-flex-order: 6;
    order: 6; }
  .m-order-7 {
    -webkit-order: 7;
    -ms-flex-order: 7;
    order: 7; }
  .m-order-8 {
    -webkit-order: 8;
    -ms-flex-order: 8;
    order: 8; }
  .m-order-9 {
    -webkit-order: 9;
    -ms-flex-order: 9;
    order: 9; }
  .m-order-10 {
    -webkit-order: 10;
    -ms-flex-order: 10;
    order: 10; } }

@media screen and (min-width: 64.0625em) {
  .l-order-1 {
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1; }
  .l-order-2 {
    -webkit-order: 2;
    -ms-flex-order: 2;
    order: 2; }
  .l-order-3 {
    -webkit-order: 3;
    -ms-flex-order: 3;
    order: 3; }
  .l-order-4 {
    -webkit-order: 4;
    -ms-flex-order: 4;
    order: 4; }
  .l-order-5 {
    -webkit-order: 5;
    -ms-flex-order: 5;
    order: 5; }
  .l-order-6 {
    -webkit-order: 6;
    -ms-flex-order: 6;
    order: 6; }
  .l-order-7 {
    -webkit-order: 7;
    -ms-flex-order: 7;
    order: 7; }
  .l-order-8 {
    -webkit-order: 8;
    -ms-flex-order: 8;
    order: 8; }
  .l-order-9 {
    -webkit-order: 9;
    -ms-flex-order: 9;
    order: 9; }
  .l-order-10 {
    -webkit-order: 10;
    -ms-flex-order: 10;
    order: 10; } }

@media screen and (min-width: 90em) {
  .xl-order-1 {
    -webkit-order: 1;
    -ms-flex-order: 1;
    order: 1; }
  .xl-order-2 {
    -webkit-order: 2;
    -ms-flex-order: 2;
    order: 2; }
  .xl-order-3 {
    -webkit-order: 3;
    -ms-flex-order: 3;
    order: 3; }
  .xl-order-4 {
    -webkit-order: 4;
    -ms-flex-order: 4;
    order: 4; }
  .xl-order-5 {
    -webkit-order: 5;
    -ms-flex-order: 5;
    order: 5; }
  .xl-order-6 {
    -webkit-order: 6;
    -ms-flex-order: 6;
    order: 6; }
  .xl-order-7 {
    -webkit-order: 7;
    -ms-flex-order: 7;
    order: 7; }
  .xl-order-8 {
    -webkit-order: 8;
    -ms-flex-order: 8;
    order: 8; }
  .xl-order-9 {
    -webkit-order: 9;
    -ms-flex-order: 9;
    order: 9; }
  .xl-order-10 {
    -webkit-order: 10;
    -ms-flex-order: 10;
    order: 10; } }

.s-justify {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between; }

@media all and (min-width: 40em) {
  .m-justify {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between; } }

@media all and (min-width: 64.0625em) {
  .l-justify {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between; } }

@media all and (min-width: 90em) {
  .xl-justify {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between; } }

.s-distribute {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-around;
  -ms-flex-pack: distribute;
  justify-content: space-around; }

@media all and (min-width: 40em) {
  .m-distribute {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: space-around;
    -ms-flex-pack: distribute;
    justify-content: space-around; } }

@media all and (min-width: 64.0625em) {
  .l-distribute {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: space-around;
    -ms-flex-pack: distribute;
    justify-content: space-around; } }

@media all and (min-width: 90em) {
  .xl-distribute {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: space-around;
    -ms-flex-pack: distribute;
    justify-content: space-around; } }

.s-main-start {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: flex-start;
  -ms-flex-pack: start;
  justify-content: flex-start; }

@media all and (min-width: 40em) {
  .m-main-start {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start; } }

@media all and (min-width: 64.0625em) {
  .l-main-start {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start; } }

@media all and (min-width: 90em) {
  .xl-main-start {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start; } }

.s-main-center {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center; }

@media all and (min-width: 40em) {
  .m-main-center {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center; } }

@media all and (min-width: 64.0625em) {
  .l-main-center {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center; } }

@media all and (min-width: 90em) {
  .xl-main-center {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center; } }

.s-main-end {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: flex-end;
  -ms-flex-pack: end;
  justify-content: flex-end; }

@media all and (min-width: 40em) {
  .m-main-end {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: flex-end;
    -ms-flex-pack: end;
    justify-content: flex-end; } }

@media all and (min-width: 64.0625em) {
  .l-main-end {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: flex-end;
    -ms-flex-pack: end;
    justify-content: flex-end; } }

@media all and (min-width: 90em) {
  .xl-main-end {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-justify-content: flex-end;
    -ms-flex-pack: end;
    justify-content: flex-end; } }

.s-cross-start {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-items: flex-start;
  -ms-flex-align: start;
  align-items: flex-start;
  -webkit-align-content: flex-start;
  -ms-flex-line-pack: start;
  align-content: flex-start; }

@media all and (min-width: 40em) {
  .m-cross-start {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-align-content: flex-start;
    -ms-flex-line-pack: start;
    align-content: flex-start; } }

@media all and (min-width: 64.0625em) {
  .l-cross-start {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-align-content: flex-start;
    -ms-flex-line-pack: start;
    align-content: flex-start; } }

@media all and (min-width: 90em) {
  .xl-cross-start {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-align-content: flex-start;
    -ms-flex-line-pack: start;
    align-content: flex-start; } }

@media all and (min-width: 0em) {
  .s-cross-center {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-align-content: center;
    -ms-flex-line-pack: center;
    align-content: center; } }

@media all and (min-width: 40em) {
  .m-cross-center {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-align-content: center;
    -ms-flex-line-pack: center;
    align-content: center; } }

@media all and (min-width: 64.0625em) {
  .l-cross-center {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-align-content: center;
    -ms-flex-line-pack: center;
    align-content: center; } }

@media all and (min-width: 90em) {
  .xl-cross-center {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-align-content: center;
    -ms-flex-line-pack: center;
    align-content: center; } }

.s-cross-end {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-items: flex-end;
  -ms-flex-align: end;
  align-items: flex-end;
  -webkit-align-content: flex-end;
  -ms-flex-line-pack: end;
  align-content: flex-end; }

@media all and (min-width: 40em) {
  .m-cross-end {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: flex-end;
    -ms-flex-align: end;
    align-items: flex-end;
    -webkit-align-content: flex-end;
    -ms-flex-line-pack: end;
    align-content: flex-end; } }

@media all and (min-width: 64.0625em) {
  .l-cross-end {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: flex-end;
    -ms-flex-align: end;
    align-items: flex-end;
    -webkit-align-content: flex-end;
    -ms-flex-line-pack: end;
    align-content: flex-end; } }

@media all and (min-width: 90em) {
  .xl-cross-end {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: flex-end;
    -ms-flex-align: end;
    align-items: flex-end;
    -webkit-align-content: flex-end;
    -ms-flex-line-pack: end;
    align-content: flex-end; } }

.s-reverse {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-flex-direction: row-reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse; }

@media all and (min-width: 40em) {
  .m-reverse {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-flex-direction: row-reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse; } }

@media all and (min-width: 64.0625em) {
  .l-reverse {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-flex-direction: row-reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse; } }

@media all and (min-width: 90em) {
  .xl-reverse {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-flex-direction: row-reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse; } }

.s-column {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column; }

@media all and (min-width: 40em) {
  .m-column {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column; } }

@media all and (min-width: 64.0625em) {
  .l-column {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column; } }

@media all and (min-width: 90em) {
  .xl-column {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column; } }

.s-column-reverse {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-flex-direction: column-reverse;
  -ms-flex-direction: column-reverse;
  flex-direction: column-reverse; }

@media all and (min-width: 40em) {
  .m-column-reverse {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-flex-direction: column-reverse;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse; } }

@media all and (min-width: 64.0625em) {
  .l-column-reverse {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-flex-direction: column-reverse;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse; } }

@media all and (min-width: 90em) {
  .xl-column-reverse {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-flex-direction: column-reverse;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse; } }

.grid-container.grid-1234 {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-left: -0.5em;
  margin-right: -0.5em; }
  .grid-container.grid-1234 > .grid-item {
    width: calc(100% - 1em);
    margin: 0.5em; }
  @media screen and (min-width: 40em) {
    .grid-container.grid-1234 > .grid-item {
      width: calc(50% - 1em); } }
  @media screen and (min-width: 64.0625em) {
    .grid-container.grid-1234 > .grid-item {
      width: calc(33.33333% - 1em); } }
  @media screen and (min-width: 90em) {
    .grid-container.grid-1234 > .grid-item {
      width: calc(25% - 1em); } }

.grid-container.grid-2345 {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-left: -0.5em;
  margin-right: -0.5em; }
  .grid-container.grid-2345 > .grid-item {
    width: calc(50% - 1em);
    margin: 0.5em; }
  @media screen and (min-width: 40em) {
    .grid-container.grid-2345 > .grid-item {
      width: calc(33.33333% - 1em); } }
  @media screen and (min-width: 64.0625em) {
    .grid-container.grid-2345 > .grid-item {
      width: calc(25% - 1em); } }
  @media screen and (min-width: 90em) {
    .grid-container.grid-2345 > .grid-item {
      width: calc(20% - 1em); } }

body.dev,
body.desarrollo {
  margin: 0 !important;
  position: relative;
  top: 66px; }
  body.dev:before,
  body.desarrollo:before {
    position: fixed;
    background: steelblue;
    color: #FFF;
    font-size: 0.875rem;
    text-align: center;
    line-height: 36px;
    height: 36px; }
  body.dev:before,
  body.desarrollo:before {
    content: "ed-grid: size s, from 0em (ed-containers: red, ed-items: blue, yellow)"; }
  @media screen and (min-width: 40em) {
    body.dev:before,
    body.desarrollo:before {
      content: "ed-grid: size m, from 40em (ed-containers: red, ed-items: blue, yellow)"; } }
  @media screen and (min-width: 64.0625em) {
    body.dev:before,
    body.desarrollo:before {
      content: "ed-grid: size l, from 64.0625em (ed-containers: red, ed-items: blue, yellow)"; } }
  @media screen and (min-width: 90em) {
    body.dev:before,
    body.desarrollo:before {
      content: "ed-grid: size xl, from 90em (ed-containers: red, ed-items: blue, yellow)"; } }
  body.dev .ed-container,
  body.desarrollo .ed-container {
    padding-top: 1.25rem;
    margin-bottom: 10px;
    outline: 1px solid tomato;
    position: relative; }
    body.dev .ed-container .ed-container,
    body.desarrollo .ed-container .ed-container {
      margin-bottom: 0; }
    body.dev .ed-container:before,
    body.desarrollo .ed-container:before {
      top: 0;
      background: rgba(255, 99, 71, 0.3);
      color: tomato; }
  body.dev .ed-item,
  body.desarrollo .ed-item {
    position: relative;
    padding-bottom: 1.25rem;
    background-color: rgba(255, 255, 0, 0.3);
    background-clip: content-box; }
    body.dev .ed-item:before,
    body.desarrollo .ed-item:before {
      background: rgba(70, 130, 180, 0.8);
      color: #FFF;
      bottom: 0; }
    body.dev .ed-item:nth-child(even):before,
    body.desarrollo .ed-item:nth-child(even):before {
      background: rgba(70, 130, 180, 0.4);
      color: steelblue; }

.button,
button {
  background: #ddd;
  color: #333; }
  .button:hover,
  button:hover {
    background: #d0d0d0;
    text-decoration: none; }
  .button:active,
  button:active {
    -webkit-transform: scale(0.97);
    -ms-transform: scale(0.97);
    transform: scale(0.97); }
  .button.round,
  button.round {
    background: #DDD;
    color: #333;
    border-radius: 1.25em; }
    .button.round:hover,
    button.round:hover {
      background: #d0d0d0;
      text-decoration: none; }
    .button.round:active,
    button.round:active {
      -webkit-transform: scale(0.97);
      -ms-transform: scale(0.97);
      transform: scale(0.97); }
  .button.radius,
  button.radius {
    background: #DDD;
    color: 333;
    border-radius: .25em; }
    .button.radius:hover,
    button.radius:hover {
      background: #d0d0d0;
      text-decoration: none; }
    .button.radius:active,
    button.radius:active {
      -webkit-transform: scale(0.97);
      -ms-transform: scale(0.97);
      transform: scale(0.97); }

.ed-menu.s-horizontal {
  width: 100%;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center; }
  .ed-menu.s-horizontal, .ed-menu.s-horizontal ul {
    margin-top: 0;
    margin-bottom: 0;
    padding-left: 0;
    list-style: none; }
  .ed-menu.s-horizontal li {
    position: relative;
    list-style: none;
    -webkit-flex: auto;
    -ms-flex: auto;
    flex: auto; }
    .ed-menu.s-horizontal li.parent-submenu {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
      .ed-menu.s-horizontal li.parent-submenu a {
        -webkit-flex: auto;
        -ms-flex: auto;
        flex: auto; }
  .ed-menu.s-horizontal ul {
    display: none; }
    .ed-menu.s-horizontal ul.show-submenu {
      display: block;
      width: 100%;
      -webkit-order: 3;
      -ms-flex-order: 3;
      order: 3;
      margin-left: 1em;
      margin-bottom: .5em; }
  .ed-menu.s-horizontal a {
    display: block;
    line-height: 3em;
    padding: 0 1em; }
    .ed-menu.s-horizontal a:hover {
      text-decoration: none; }
  .ed-menu.s-horizontal a {
    text-align: center; }
  .ed-menu.s-horizontal .expand {
    display: none; }
  .ed-menu.s-horizontal ul {
    position: absolute;
    top: 100%;
    min-width: 100%;
    white-space: nowrap; }
    .ed-menu.s-horizontal ul a {
      text-align: left; }
    .ed-menu.s-horizontal ul ul {
      top: 0;
      left: 100%; }
  .ed-menu.s-horizontal li:hover > ul {
    display: block; }
  .ed-menu.s-horizontal .expand-submenu {
    position: relative;
    right: 0;
    width: 3em;
    height: 3em;
    cursor: pointer;
    display: none;
    transition: all .3s; }
    .ed-menu.s-horizontal .expand-submenu::after {
      content: "";
      position: absolute;
      width: 40%;
      height: 40%;
      top: 20%;
      left: 30%;
      border-left: 0.45em solid #666;
      border-bottom: 0.45em solid #666;
      border-radius: 0.24em;
      -webkit-transform: rotate(-45deg);
      -ms-transform: rotate(-45deg);
      transform: rotate(-45deg);
      transition: all .3s; }
    .ed-menu.s-horizontal .expand-submenu.active {
      -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
      transform: rotate(180deg); }
  .ed-menu.s-horizontal.default {
    background: #eee; }
    .ed-menu.s-horizontal.default li:hover {
      background: rgba(0, 0, 0, 0.1); }
    .ed-menu.s-horizontal.default ul {
      background: #e1e1e1; }
    .ed-menu.s-horizontal.default a {
      color: #666; }
  .ed-menu.s-horizontal.nav-bar {
    background: #EEE;
    border: 1px solid rgba(0, 0, 0, 0.1); }
    .ed-menu.s-horizontal.nav-bar li:hover {
      background: rgba(0, 0, 0, 0.1); }
    .ed-menu.s-horizontal.nav-bar ul {
      background: #e1e1e1; }
    .ed-menu.s-horizontal.nav-bar a {
      color: #666; }
    .ed-menu.s-horizontal.nav-bar li {
      border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
      .ed-menu.s-horizontal.nav-bar li:last-child {
        border-right: none;
        border-bottom: none; }
    .ed-menu.s-horizontal.nav-bar ul {
      border: 1px solid rgba(0, 0, 0, 0.1); }
      .ed-menu.s-horizontal.nav-bar ul li {
        border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
        .ed-menu.s-horizontal.nav-bar ul li:last-child {
          border-bottom: none; }
    .ed-menu.s-horizontal.nav-bar > li {
      border-right: 1px solid rgba(0, 0, 0, 0.1);
      border-bottom: none; }
  .ed-menu.s-horizontal.button-bar li {
    margin-bottom: .5em;
    margin-right: .5em; }
  .ed-menu.s-horizontal.button-bar a {
    border: 1px solid rgba(0, 0, 0, 0.1);
    background: #EEE;
    line-height: 2.5em;
    padding: 0 1.5em;
    border-radius: 4px;
    color: #666; }
    .ed-menu.s-horizontal.button-bar a:hover {
      background: rgba(0, 0, 0, 0.1); }

.ed-menu.m-horizontal {
  width: 100%; }
  .ed-menu.m-horizontal, .ed-menu.m-horizontal ul {
    margin-top: 0;
    margin-bottom: 0;
    padding-left: 0;
    list-style: none; }
  .ed-menu.m-horizontal li {
    position: relative;
    list-style: none;
    -webkit-flex: auto;
    -ms-flex: auto;
    flex: auto; }
    .ed-menu.m-horizontal li.parent-submenu {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
      .ed-menu.m-horizontal li.parent-submenu a {
        -webkit-flex: auto;
        -ms-flex: auto;
        flex: auto; }
  .ed-menu.m-horizontal ul {
    display: none; }
    .ed-menu.m-horizontal ul.show-submenu {
      display: block;
      width: 100%;
      -webkit-order: 3;
      -ms-flex-order: 3;
      order: 3;
      margin-left: 1em;
      margin-bottom: .5em; }
  .ed-menu.m-horizontal a {
    display: block;
    line-height: 3em;
    padding: 0 1em; }
    .ed-menu.m-horizontal a:hover {
      text-decoration: none; }
  @media screen and (min-width: 40em) {
    .ed-menu.m-horizontal {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-align-items: center;
      -ms-flex-align: center;
      align-items: center; }
      .ed-menu.m-horizontal a {
        text-align: center; }
      .ed-menu.m-horizontal .expand {
        display: none; }
      .ed-menu.m-horizontal ul {
        position: absolute;
        top: 100%;
        min-width: 100%;
        white-space: nowrap; }
        .ed-menu.m-horizontal ul a {
          text-align: left; }
        .ed-menu.m-horizontal ul ul {
          top: 0;
          left: 100%; }
      .ed-menu.m-horizontal li:hover > ul {
        display: block; } }
  .ed-menu.m-horizontal .expand-submenu {
    position: relative;
    right: 0;
    width: 3em;
    height: 3em;
    cursor: pointer;
    transition: all .3s; }
    @media screen and (min-width: 40em) {
      .ed-menu.m-horizontal .expand-submenu {
        display: none; } }
    .ed-menu.m-horizontal .expand-submenu::after {
      content: "";
      position: absolute;
      width: 40%;
      height: 40%;
      top: 20%;
      left: 30%;
      border-left: 0.45em solid #666;
      border-bottom: 0.45em solid #666;
      border-radius: 0.24em;
      -webkit-transform: rotate(-45deg);
      -ms-transform: rotate(-45deg);
      transform: rotate(-45deg);
      transition: all .3s; }
    .ed-menu.m-horizontal .expand-submenu.active {
      -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
      transform: rotate(180deg); }
  .ed-menu.m-horizontal.default {
    background: #eee; }
    .ed-menu.m-horizontal.default li:hover {
      background: rgba(0, 0, 0, 0.1); }
    .ed-menu.m-horizontal.default ul {
      background: #e1e1e1; }
    .ed-menu.m-horizontal.default a {
      color: #666; }
  .ed-menu.m-horizontal.nav-bar {
    background: #EEE;
    border: 1px solid rgba(0, 0, 0, 0.1); }
    .ed-menu.m-horizontal.nav-bar li:hover {
      background: rgba(0, 0, 0, 0.1); }
    .ed-menu.m-horizontal.nav-bar ul {
      background: #e1e1e1; }
    .ed-menu.m-horizontal.nav-bar a {
      color: #666; }
    .ed-menu.m-horizontal.nav-bar li {
      border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
      .ed-menu.m-horizontal.nav-bar li:last-child {
        border-right: none;
        border-bottom: none; }
    .ed-menu.m-horizontal.nav-bar ul {
      border: 1px solid rgba(0, 0, 0, 0.1); }
      .ed-menu.m-horizontal.nav-bar ul li {
        border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
        .ed-menu.m-horizontal.nav-bar ul li:last-child {
          border-bottom: none; }
    @media screen and (min-width: 40em) {
      .ed-menu.m-horizontal.nav-bar > li {
        border-right: 1px solid rgba(0, 0, 0, 0.1);
        border-bottom: none; } }
  .ed-menu.m-horizontal.button-bar li {
    margin-bottom: .5em;
    margin-right: .5em; }
  .ed-menu.m-horizontal.button-bar a {
    border: 1px solid rgba(0, 0, 0, 0.1);
    background: #EEE;
    line-height: 2.5em;
    padding: 0 1.5em;
    border-radius: 4px;
    color: #666; }
    .ed-menu.m-horizontal.button-bar a:hover {
      background: rgba(0, 0, 0, 0.1); }

.ed-menu.l-horizontal {
  width: 100%; }
  .ed-menu.l-horizontal, .ed-menu.l-horizontal ul {
    margin-top: 0;
    margin-bottom: 0;
    padding-left: 0;
    list-style: none; }
  .ed-menu.l-horizontal li {
    position: relative;
    list-style: none;
    -webkit-flex: auto;
    -ms-flex: auto;
    flex: auto; }
    .ed-menu.l-horizontal li.parent-submenu {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
      .ed-menu.l-horizontal li.parent-submenu a {
        -webkit-flex: auto;
        -ms-flex: auto;
        flex: auto; }
  .ed-menu.l-horizontal ul {
    display: none; }
    .ed-menu.l-horizontal ul.show-submenu {
      display: block;
      width: 100%;
      -webkit-order: 3;
      -ms-flex-order: 3;
      order: 3;
      margin-left: 1em;
      margin-bottom: .5em; }
  .ed-menu.l-horizontal a {
    display: block;
    line-height: 3em;
    padding: 0 1em; }
    .ed-menu.l-horizontal a:hover {
      text-decoration: none; }
  @media screen and (min-width: 64.0625em) {
    .ed-menu.l-horizontal {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-align-items: center;
      -ms-flex-align: center;
      align-items: center; }
      .ed-menu.l-horizontal a {
        text-align: center; }
      .ed-menu.l-horizontal .expand {
        display: none; }
      .ed-menu.l-horizontal ul {
        position: absolute;
        top: 100%;
        min-width: 100%;
        white-space: nowrap; }
        .ed-menu.l-horizontal ul a {
          text-align: left; }
        .ed-menu.l-horizontal ul ul {
          top: 0;
          left: 100%; }
      .ed-menu.l-horizontal li:hover > ul {
        display: block; } }
  .ed-menu.l-horizontal .expand-submenu {
    position: relative;
    right: 0;
    width: 3em;
    height: 3em;
    cursor: pointer;
    transition: all .3s; }
    @media screen and (min-width: 64.0625em) {
      .ed-menu.l-horizontal .expand-submenu {
        display: none; } }
    .ed-menu.l-horizontal .expand-submenu::after {
      content: "";
      position: absolute;
      width: 40%;
      height: 40%;
      top: 20%;
      left: 30%;
      border-left: 0.45em solid #666;
      border-bottom: 0.45em solid #666;
      border-radius: 0.24em;
      -webkit-transform: rotate(-45deg);
      -ms-transform: rotate(-45deg);
      transform: rotate(-45deg);
      transition: all .3s; }
    .ed-menu.l-horizontal .expand-submenu.active {
      -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
      transform: rotate(180deg); }
  .ed-menu.l-horizontal.default {
    background: #eee; }
    .ed-menu.l-horizontal.default li:hover {
      background: rgba(0, 0, 0, 0.1); }
    .ed-menu.l-horizontal.default ul {
      background: #e1e1e1; }
    .ed-menu.l-horizontal.default a {
      color: #666; }
  .ed-menu.l-horizontal.nav-bar {
    background: #EEE;
    border: 1px solid rgba(0, 0, 0, 0.1); }
    .ed-menu.l-horizontal.nav-bar li:hover {
      background: rgba(0, 0, 0, 0.1); }
    .ed-menu.l-horizontal.nav-bar ul {
      background: #e1e1e1; }
    .ed-menu.l-horizontal.nav-bar a {
      color: #666; }
    .ed-menu.l-horizontal.nav-bar li {
      border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
      .ed-menu.l-horizontal.nav-bar li:last-child {
        border-right: none;
        border-bottom: none; }
    .ed-menu.l-horizontal.nav-bar ul {
      border: 1px solid rgba(0, 0, 0, 0.1); }
      .ed-menu.l-horizontal.nav-bar ul li {
        border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
        .ed-menu.l-horizontal.nav-bar ul li:last-child {
          border-bottom: none; }
    @media screen and (min-width: 64.0625em) {
      .ed-menu.l-horizontal.nav-bar > li {
        border-right: 1px solid rgba(0, 0, 0, 0.1);
        border-bottom: none; } }
  .ed-menu.l-horizontal.button-bar li {
    margin-bottom: .5em;
    margin-right: .5em; }
  .ed-menu.l-horizontal.button-bar a {
    border: 1px solid rgba(0, 0, 0, 0.1);
    background: #EEE;
    line-height: 2.5em;
    padding: 0 1.5em;
    border-radius: 4px;
    color: #666; }
    .ed-menu.l-horizontal.button-bar a:hover {
      background: rgba(0, 0, 0, 0.1); }

.ed-menu.xl-horizontal {
  width: 100%; }
  .ed-menu.xl-horizontal, .ed-menu.xl-horizontal ul {
    margin-top: 0;
    margin-bottom: 0;
    padding-left: 0;
    list-style: none; }
  .ed-menu.xl-horizontal li {
    position: relative;
    list-style: none;
    -webkit-flex: auto;
    -ms-flex: auto;
    flex: auto; }
    .ed-menu.xl-horizontal li.parent-submenu {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
      .ed-menu.xl-horizontal li.parent-submenu a {
        -webkit-flex: auto;
        -ms-flex: auto;
        flex: auto; }
  .ed-menu.xl-horizontal ul {
    display: none; }
    .ed-menu.xl-horizontal ul.show-submenu {
      display: block;
      width: 100%;
      -webkit-order: 3;
      -ms-flex-order: 3;
      order: 3;
      margin-left: 1em;
      margin-bottom: .5em; }
  .ed-menu.xl-horizontal a {
    display: block;
    line-height: 3em;
    padding: 0 1em; }
    .ed-menu.xl-horizontal a:hover {
      text-decoration: none; }
  @media screen and (min-width: 90em) {
    .ed-menu.xl-horizontal {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-align-items: center;
      -ms-flex-align: center;
      align-items: center; }
      .ed-menu.xl-horizontal a {
        text-align: center; }
      .ed-menu.xl-horizontal .expand {
        display: none; }
      .ed-menu.xl-horizontal ul {
        position: absolute;
        top: 100%;
        min-width: 100%;
        white-space: nowrap; }
        .ed-menu.xl-horizontal ul a {
          text-align: left; }
        .ed-menu.xl-horizontal ul ul {
          top: 0;
          left: 100%; }
      .ed-menu.xl-horizontal li:hover > ul {
        display: block; } }
  .ed-menu.xl-horizontal .expand-submenu {
    position: relative;
    right: 0;
    width: 3em;
    height: 3em;
    cursor: pointer;
    transition: all .3s; }
    @media screen and (min-width: 90em) {
      .ed-menu.xl-horizontal .expand-submenu {
        display: none; } }
    .ed-menu.xl-horizontal .expand-submenu::after {
      content: "";
      position: absolute;
      width: 40%;
      height: 40%;
      top: 20%;
      left: 30%;
      border-left: 0.45em solid #666;
      border-bottom: 0.45em solid #666;
      border-radius: 0.24em;
      -webkit-transform: rotate(-45deg);
      -ms-transform: rotate(-45deg);
      transform: rotate(-45deg);
      transition: all .3s; }
    .ed-menu.xl-horizontal .expand-submenu.active {
      -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
      transform: rotate(180deg); }
  .ed-menu.xl-horizontal.default {
    background: #eee; }
    .ed-menu.xl-horizontal.default li:hover {
      background: rgba(0, 0, 0, 0.1); }
    .ed-menu.xl-horizontal.default ul {
      background: #e1e1e1; }
    .ed-menu.xl-horizontal.default a {
      color: #666; }
  .ed-menu.xl-horizontal.nav-bar {
    background: #EEE;
    border: 1px solid rgba(0, 0, 0, 0.1); }
    .ed-menu.xl-horizontal.nav-bar li:hover {
      background: rgba(0, 0, 0, 0.1); }
    .ed-menu.xl-horizontal.nav-bar ul {
      background: #e1e1e1; }
    .ed-menu.xl-horizontal.nav-bar a {
      color: #666; }
    .ed-menu.xl-horizontal.nav-bar li {
      border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
      .ed-menu.xl-horizontal.nav-bar li:last-child {
        border-right: none;
        border-bottom: none; }
    .ed-menu.xl-horizontal.nav-bar ul {
      border: 1px solid rgba(0, 0, 0, 0.1); }
      .ed-menu.xl-horizontal.nav-bar ul li {
        border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
        .ed-menu.xl-horizontal.nav-bar ul li:last-child {
          border-bottom: none; }
    @media screen and (min-width: 90em) {
      .ed-menu.xl-horizontal.nav-bar > li {
        border-right: 1px solid rgba(0, 0, 0, 0.1);
        border-bottom: none; } }
  .ed-menu.xl-horizontal.button-bar li {
    margin-bottom: .5em;
    margin-right: .5em; }
  .ed-menu.xl-horizontal.button-bar a {
    border: 1px solid rgba(0, 0, 0, 0.1);
    background: #EEE;
    line-height: 2.5em;
    padding: 0 1.5em;
    border-radius: 4px;
    color: #666; }
    .ed-menu.xl-horizontal.button-bar a:hover {
      background: rgba(0, 0, 0, 0.1); }

.s-5 {
  width: 5%; }

.s-10 {
  width: 10%; }

.s-15 {
  width: 15%; }

.s-20 {
  width: 20%; }

.s-25 {
  width: 25%; }

.s-30 {
  width: 30%; }

.s-35 {
  width: 35%; }

.s-40 {
  width: 40%; }

.s-45 {
  width: 45%; }

.s-50 {
  width: 50%; }

.s-55 {
  width: 55%; }

.s-60 {
  width: 60%; }

.s-65 {
  width: 65%; }

.s-70 {
  width: 70%; }

.s-75 {
  width: 75%; }

.s-80 {
  width: 80%; }

.s-85 {
  width: 85%; }

.s-90 {
  width: 90%; }

.s-95 {
  width: 95%; }

.s-100 {
  width: 100%; }

.s-1-3 {
  width: 33.33333%; }

.s-2-3 {
  width: 66.66667%; }

.s-3-3 {
  width: 100%; }

.s-1-6 {
  width: 16.66667%; }

.s-2-6 {
  width: 33.33333%; }

.s-3-6 {
  width: 50%; }

.s-4-6 {
  width: 66.66667%; }

.s-5-6 {
  width: 83.33333%; }

.s-6-6 {
  width: 100%; }

@media all and (min-width: 40em) {
  .m-5 {
    width: 5%; }
  .m-10 {
    width: 10%; }
  .m-15 {
    width: 15%; }
  .m-20 {
    width: 20%; }
  .m-25 {
    width: 25%; }
  .m-30 {
    width: 30%; }
  .m-35 {
    width: 35%; }
  .m-40 {
    width: 40%; }
  .m-45 {
    width: 45%; }
  .m-50 {
    width: 50%; }
  .m-55 {
    width: 55%; }
  .m-60 {
    width: 60%; }
  .m-65 {
    width: 65%; }
  .m-70 {
    width: 70%; }
  .m-75 {
    width: 75%; }
  .m-80 {
    width: 80%; }
  .m-85 {
    width: 85%; }
  .m-90 {
    width: 90%; }
  .m-95 {
    width: 95%; }
  .m-100 {
    width: 100%; }
  .m-1-3 {
    width: 33.33333%; }
  .m-2-3 {
    width: 66.66667%; }
  .m-3-3 {
    width: 100%; }
  .m-1-6 {
    width: 16.66667%; }
  .m-2-6 {
    width: 33.33333%; }
  .m-3-6 {
    width: 50%; }
  .m-4-6 {
    width: 66.66667%; }
  .m-5-6 {
    width: 83.33333%; }
  .m-6-6 {
    width: 100%; } }

@media all and (min-width: 64.0625em) {
  .l-5 {
    width: 5%; }
  .l-10 {
    width: 10%; }
  .l-15 {
    width: 15%; }
  .l-20 {
    width: 20%; }
  .l-25 {
    width: 25%; }
  .l-30 {
    width: 30%; }
  .l-35 {
    width: 35%; }
  .l-40 {
    width: 40%; }
  .l-45 {
    width: 45%; }
  .l-50 {
    width: 50%; }
  .l-55 {
    width: 55%; }
  .l-60 {
    width: 60%; }
  .l-65 {
    width: 65%; }
  .l-70 {
    width: 70%; }
  .l-75 {
    width: 75%; }
  .l-80 {
    width: 80%; }
  .l-85 {
    width: 85%; }
  .l-90 {
    width: 90%; }
  .l-95 {
    width: 95%; }
  .l-100 {
    width: 100%; }
  .l-1-3 {
    width: 33.33333%; }
  .l-2-3 {
    width: 66.66667%; }
  .l-3-3 {
    width: 100%; }
  .l-1-6 {
    width: 16.66667%; }
  .l-2-6 {
    width: 33.33333%; }
  .l-3-6 {
    width: 50%; }
  .l-4-6 {
    width: 66.66667%; }
  .l-5-6 {
    width: 83.33333%; }
  .l-6-6 {
    width: 100%; } }

@media all and (min-width: 90em) {
  .xl-5 {
    width: 5%; }
  .xl-10 {
    width: 10%; }
  .xl-15 {
    width: 15%; }
  .xl-20 {
    width: 20%; }
  .xl-25 {
    width: 25%; }
  .xl-30 {
    width: 30%; }
  .xl-35 {
    width: 35%; }
  .xl-40 {
    width: 40%; }
  .xl-45 {
    width: 45%; }
  .xl-50 {
    width: 50%; }
  .xl-55 {
    width: 55%; }
  .xl-60 {
    width: 60%; }
  .xl-65 {
    width: 65%; }
  .xl-70 {
    width: 70%; }
  .xl-75 {
    width: 75%; }
  .xl-80 {
    width: 80%; }
  .xl-85 {
    width: 85%; }
  .xl-90 {
    width: 90%; }
  .xl-95 {
    width: 95%; }
  .xl-100 {
    width: 100%; }
  .xl-1-3 {
    width: 33.33333%; }
  .xl-2-3 {
    width: 66.66667%; }
  .xl-3-3 {
    width: 100%; }
  .xl-1-6 {
    width: 16.66667%; }
  .xl-2-6 {
    width: 33.33333%; }
  .xl-3-6 {
    width: 50%; }
  .xl-4-6 {
    width: 66.66667%; }
  .xl-5-6 {
    width: 83.33333%; }
  .xl-6-6 {
    width: 100%; } }

.to-center {
  display: table;
  width: auto;
  margin-left: auto;
  margin-right: auto;
  text-align: center; }

.to-left {
  float: left;
  width: auto;
  margin-right: 1em; }

.to-right {
  float: right;
  width: auto;
  margin-left: 1em; }

.full {
  max-width: 100%; }

.circle {
  border-radius: 50%; }

.clearfix:before, .clearfix:after {
  content: "";
  display: table;
  width: 100%;
  clear: both; }

.no-padding.ed-container > .ed-item {
  padding-left: 0em;
  padding-right: 0em; }

.no-padding.ed-item {
  padding-left: 0em;
  padding-right: 0em; }

.padding {
  padding-left: 0.9375em;
  padding-right: 0.9375em; }

.padding-2 {
  padding-left: 1.875em;
  padding-right: 1.875em; }

.padding-3 {
  padding-left: 2.8125em;
  padding-right: 2.8125em; }

body.sticky-footer {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  min-height: 100vh; }
  body.sticky-footer > footer {
    margin-top: auto; }

.main-justify {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between; }

.main-distribute {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-around;
  -ms-flex-pack: distribute;
  justify-content: space-around; }

.main-center {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center; }

.main-start {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: flex-start;
  -ms-flex-pack: start;
  justify-content: flex-start; }

.main-end {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: flex-end;
  -ms-flex-pack: end;
  justify-content: flex-end; }

.cross-start {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-items: flex-start;
  -ms-flex-align: start;
  align-items: flex-start;
  -webkit-align-content: flex-start;
  -ms-flex-line-pack: start;
  align-content: flex-start; }

.cross-center {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-align-content: center;
  -ms-flex-line-pack: center;
  align-content: center; }

.cross-end {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-items: flex-end;
  -ms-flex-align: end;
  align-items: flex-end;
  -webkit-align-content: flex-end;
  -ms-flex-line-pack: end;
  align-content: flex-end; }

.flex-reverse {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-flex-direction: row-reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse; }

.flex-column {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column; }

.flex-column-reverse {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-flex-direction: column-reverse;
  -ms-flex-direction: column-reverse;
  flex-direction: column-reverse; }

.abcenter {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  text-align: center; }

.from-s {
  display: none; }

.to-s {
  display: none; }

@media screen and (max-width: 40em) {
  .from-m {
    display: none; } }

@media screen and (min-width: 40em) {
  .to-m {
    display: none; } }

@media screen and (max-width: 64.0625em) {
  .from-l {
    display: none; } }

@media screen and (min-width: 64.0625em) {
  .to-l {
    display: none; } }

@media screen and (max-width: 90em) {
  .from-xl {
    display: none; } }

@media screen and (min-width: 90em) {
  .to-xl {
    display: none; } }

.ed-video {
  height: 0;
  overflow: hidden;
  padding-bottom: 56.25%;
  position: relative; }
  .ed-video > iframe,
  .ed-video > video > .video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }

.button {
  background: #ddd;
  color: #333; }
  .button:hover {
    background: #d0d0d0;
    text-decoration: none; }
  .button:active {
    -webkit-transform: scale(0.97);
    -ms-transform: scale(0.97);
    transform: scale(0.97); }

.container {
  max-width: 800px;
  height: 0;
  overflow: hidden;
  padding-bottom: 400px;
  position: relative; }
  .container > iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVkLWdyaWQvY29tcG9uZW50cy9fYmFzZS5zY3NzIiwiZWQtZ3JpZC9jb21wb25lbnRzL19kZXYuc2NzcyIsImVkLWdyaWQvY29tcG9uZW50cy9fZnVuY3Rpb25zLnNjc3MiLCJlZC1ncmlkL2NvbXBvbmVudHMvX2NvcmUuc2NzcyIsImVkLWdyaWQvY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiZWQtZ3JpZC9jb21wb25lbnRzL19vZmZzZXQuc2NzcyIsImVkLWdyaWQvY29tcG9uZW50cy9fZmxleGJveC5zY3NzIiwiZWQtZ3JpZC9jb21wb25lbnRzL19jc3Muc2NzcyIsImVkLWdyaWQvY29tcG9uZW50cy9fZ3JpZC5zY3NzIiwiZWQtZ3JpZC9jb21wb25lbnRzL19tZWRpYS1xdWVyaWVzLnNjc3MiLCJlZC1ncmlkL2NvbXBvbmVudHMvX2VkLW1lbnUuc2NzcyIsImVkLWdyaWQvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzIiwiZWQtZ3JpZC9jb21wb25lbnRzL19oZWxwZXJzLnNjc3MiLCJlZC1ncmlkL2NvbXBvbmVudHMvX3ZpZGVvLnNjc3MiLCJtYXBhLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7OztFQUdFLHVCQUF1QixFQUN4Qjs7QUFFRDtFQUNFLFVBQWdCO0VBQ2hCLHdCQUF5QixFQUMxQjs7QUFHRDtFQUNFLGVBQWU7RUFDZixZQUFhO0VBQ2IsYUFBaUIsRUFDbEI7O0FBRUQ7RUFDRSxzQkFBdUIsRUFHeEI7RUFKRDtJQUdZLDJCQUE2QixFQUFFOztBQ2xCM0M7Ozs7RUFDRSxxQkFBa0I7RUFDbEIsbUJBQXFCO0VBQ3JCLG1CQUx5QjtFQU16QixvQkFBcUI7RUFFckIsV0FBZ0I7RUFDaEIsU0FBZ0I7RUFDaEIsbUJBQXVCO0VBRXZCLGVBQW9CO0VBQ3BCLFlBQW1CO0VBQ25CLG9CQ2RjO0VEZWQsZ0JDUGM7RURRZCxxQkNSYyxFRFNmOztBRW5CRDtFQUNFLHNCQUFvQjtFQUFwQixxQkFBb0I7RUFBcEIsY0FBb0I7RUFD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RUFFVixrQkFGVTtFQUVWLFNBRlUsRUFHWDs7QUFGRDtFQUNFLGlCQUZVO0VBRVYsa0JBRlU7RUFFVixTQUZVLEVBR1g7O0FBRkQ7RUFDRSxpQkFGVTtFQUVWLGtCQUZVO0VBRVYsU0FGVSxFQUdYOztBQUZEO0VBQ0UsaUJBRlU7RUFFVixrQkFGVTtFQUVWLFNBRlUsRUFHWDs7QUFGRDtFQUNFLGlCQUZVO0VBRVYsa0JBRlU7RUFFVixTQUZVLEVBR1g7O0FBRkQ7RUFDRSxpQkFGVTtFQUVWLGtCQUZVO0VBRVYsU0FGVSxFQUdYOztBQUZEO0VBQ0Usa0JBRlU7RUFFVixtQkFGVTtFQUVWLFVBRlUsRUFHWDs7QUFHSDtFQUVJO0lBQ0UsaUJBRlU7SUFFVixrQkFGVTtJQUVWLFNBRlUsRUFHWDtFQUZEO0lBQ0UsaUJBRlU7SUFFVixrQkFGVTtJQUVWLFNBRlUsRUFHWDtFQUZEO0lBQ0UsaUJBRlU7SUFFVixrQkFGVTtJQUVWLFNBRlUsRUFHWDtFQUZEO0lBQ0UsaUJBRlU7SUFFVixrQkFGVTtJQUVWLFNBRlUsRUFHWDtFQUZEO0lBQ0UsaUJBRlU7SUFFVixrQkFGVTtJQUVWLFNBRlUsRUFHWDtFQUZEO0lBQ0UsaUJBRlU7SUFFVixrQkFGVTtJQUVWLFNBRlUsRUFHWDtFQUZEO0lBQ0UsaUJBRlU7SUFFVixrQkFGVTtJQUVWLFNBRlUsRUFHWDtFQUZEO0lBQ0UsaUJBRlU7SUFFVixrQkFGVTtJQUVWLFNBRlUsRUFHWDtFQUZEO0lBQ0UsaUJBRlU7SUFFVixrQkFGVTtJQUVWLFNBRlUsRUFHWDtFQUZEO0lBQ0Usa0JBRlU7SUFFVixtQkFGVTtJQUVWLFVBRlUsRUFHWCxFQUFBOztBQUpMO0VBRUk7SUFDRSxpQkFGVTtJQUVWLGtCQUZVO0lBRVYsU0FGVSxFQUdYO0VBRkQ7SUFDRSxpQkFGVTtJQUVWLGtCQUZVO0lBRVYsU0FGVSxFQUdYO0VBRkQ7SUFDRSxpQkFGVTtJQUVWLGtCQUZVO0lBRVYsU0FGVSxFQUdYO0VBRkQ7SUFDRSxpQkFGVTtJQUVWLGtCQUZVO0lBRVYsU0FGVSxFQUdYO0VBRkQ7SUFDRSxp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LDRCQUF5QjtFQUF6Qix1QkFBeUI7RUFBekIsb0JBQXlCO0VBQ3pCLG1CQUF5QixFQXNCMkI7O0FLcFNsRDtFQXpCQSxjQUFlLEVBeUJjOztBQUM3QjtFQXBCQSxjQUFlLEVBb0JZOztBRjRCekI7RUU3QkY7SUF6QkEsY0FBZSxFQXlCYyxFQUFBOztBRmUzQjtFRWRGO0lBcEJBLGNBQWUsRUFvQlksRUFBQTs7QUY0QnpCO0VFN0JGO0lBekJBLGNBQWUsRUF5QmMsRUFBQTs7QUZlM0I7RUVkRjtJQXBCQSxjQUFlLEVBb0JZLEVBQUE7O0FGNEJ6QjtFRTdCRjtJQXpCQSxjQUFlLEVBeUJjLEVBQUE7O0FGZTNCO0VFZEY7SUFwQkEsY0FBZSxFQW9CWSxFQUFBOztBSmdDN0I7RU0xREEsVUFBbUI7RUFDbkIsaUJBQXdCO0VBQ3hCLHVCQUF3QjtFQUN4QixtQkFBMEIsRU51REs7RU01QzNCOztJQUdBLG1CQUFvQjtJQUNwQixPQUFhO0lBQ2IsUUFBYTtJQUNiLFlBQWdCO0lBQ2hCLGFBQWdCLEVBQ2pCOztBTnFDSDtFSGxEQSxpQkFGMkI7RUFHM0IsWUFIOEMsRUdvRGY7RUFBL0I7SUg5Q0Usb0JBQXdCO0lBQ3hCLHNCQUF1QixFQUN4QjtFRzRDRDtJSHpDRSwrQkFBaUI7SUFBakIsMkJBQWlCO0lBQWpCLHVCQUFpQixFQUNsQjs7QVVwQkg7RUFFRSxpQkFBaUI7RUFDakIsVUFBbUI7RUFDbkIsaUJBQXdCO0VBQ3hCLHNCQUF1QjtFQUN2QixtQkFBMEIsRUFTM0I7RUFmRDtJQVFJLG1CQUFvQjtJQUNwQixPQUFhO0lBQ2IsUUFBYTtJQUNiLFlBQWdCO0lBQ2hCLGFBQWdCO0lBQ2hCLGFBQWEsRUFDZCIsImZpbGUiOiJtYXBhLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFJXRCBCYXNlc1xuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmJvZHkge1xuICBtYXJnaW4gICAgICA6IDA7XG4gIGZvbnQtZmFtaWx5IDogc2Fucy1zZXJpZjtcbn1cblxuLy8gSW3DoWdlbmVzIHJlc3BvbnNpdmVcbmltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aCA6IDEwMCU7XG4gIGhlaWdodCAgICA6IGF1dG87XG59XG5cbmEge1xuICB0ZXh0LWRlY29yYXRpb24gOiBub25lO1xuXG4gICY6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb24gOiB1bmRlcmxpbmUgfVxufVxuIiwiLy8gYWx0dXJhIGRlIGxvcyBwc2V1ZG9lbGVtZW50b3MgcXVlIGltcHJpbWlyYW4gY2xhc2VzXHJcbiRpbmZvSGVpZ2h0IDogcmVtKDIwcHgpO1xyXG4kaW5mb0ZvbnRTaXplIDogJGluZm9IZWlnaHQgKiAwLjY7XHJcblxyXG4laW5mbyB7XHJcbiAgY29udGVudCAgICAgOiBhdHRyKGNsYXNzKTtcclxuICBmb250LXN0eWxlICA6IGl0YWxpYztcclxuICBmb250LXNpemUgICA6ICRpbmZvRm9udFNpemU7XHJcbiAgZm9udC13ZWlnaHQgOiBub3JtYWw7XHJcblxyXG4gIHotaW5kZXggICAgIDogMTtcclxuICByaWdodCAgICAgICA6IDA7XHJcbiAgcG9zaXRpb24gICAgOiBhYnNvbHV0ZTtcclxuXHJcbiAgZGlzcGxheSAgICAgOiB0YWJsZTtcclxuICB3aWR0aCAgICAgICA6IDEwMCU7XHJcbiAgcGFkZGluZyAgICAgOiAwIGVtKDVweCk7XHJcbiAgaGVpZ2h0ICAgICAgOiAkaW5mb0hlaWdodDtcclxuICBsaW5lLWhlaWdodCA6ICRpbmZvSGVpZ2h0O1xyXG59XHJcblxyXG5AbWl4aW4gZGV2TW9kZUNvbnRhaW5lciB7XHJcbiAgcGFkZGluZy10b3AgICA6ICRpbmZvSGVpZ2h0O1xyXG4gIG1hcmdpbi1ib3R0b20gOiAxMHB4O1xyXG4gIG91dGxpbmUgICAgICAgOiAxcHggc29saWQgdG9tYXRvO1xyXG4gIHBvc2l0aW9uICAgICAgOiByZWxhdGl2ZTtcclxuXHJcbiAgLiN7JGNvbnRhaW5lcn0geyBtYXJnaW4tYm90dG9tIDogMCB9XHJcblxyXG4gICY6YmVmb3JlIHtcclxuICAgIEBleHRlbmQgJWluZm87XHJcbiAgICB0b3AgICAgICAgIDogMDtcclxuICAgIGJhY2tncm91bmQgOiByZ2JhKHRvbWF0bywgLjMpO1xyXG4gICAgY29sb3IgICAgICA6IHRvbWF0bztcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBkZXZNb2RlSXRlbSB7XHJcbiAgcG9zaXRpb24gICAgICAgICA6IHJlbGF0aXZlO1xyXG4gIHBhZGRpbmctYm90dG9tICAgOiAkaW5mb0hlaWdodDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yIDogcmdiYSh5ZWxsb3csIC4zKTtcclxuICBiYWNrZ3JvdW5kLWNsaXAgIDogY29udGVudC1ib3g7XHJcblxyXG4gICY6YmVmb3JlIHtcclxuICAgIEBleHRlbmQgJWluZm87XHJcbiAgICBiYWNrZ3JvdW5kIDogcmdiYShzdGVlbGJsdWUsIC44KTtcclxuICAgIGNvbG9yICAgICAgOiAjRkZGO1xyXG4gICAgYm90dG9tICAgICA6IDA7XHJcbiAgfVxyXG5cclxuICAmOm50aC1jaGlsZChldmVuKTpiZWZvcmUge1xyXG4gICAgYmFja2dyb3VuZCA6IHJnYmEoc3RlZWxibHVlLCAuNCk7XHJcbiAgICBjb2xvciAgICAgIDogc3RlZWxibHVlO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGRldk1vZGUoKSB7XHJcbiAgbWFyZ2luICAgOiAwICFpbXBvcnRhbnQ7XHJcbiAgcG9zaXRpb24gOiByZWxhdGl2ZTtcclxuICB0b3AgICAgICA6IDY2cHg7XHJcblxyXG4gICY6YmVmb3JlIHtcclxuICAgIEBleHRlbmQgJWluZm87XHJcbiAgICBwb3NpdGlvbiAgICA6IGZpeGVkO1xyXG4gICAgYmFja2dyb3VuZCAgOiBzdGVlbGJsdWU7XHJcbiAgICBjb2xvciAgICAgICA6ICNGRkY7XHJcbiAgICBmb250LXNpemUgICA6ICRpbmZvSGVpZ2h0ICogMC43O1xyXG4gICAgdGV4dC1hbGlnbiAgOiBjZW50ZXI7XHJcbiAgICBsaW5lLWhlaWdodCA6IDM2cHg7XHJcbiAgICBoZWlnaHQgICAgICA6IDM2cHg7XHJcbiAgfVxyXG5cclxuICBAZWFjaCAkc2l6ZSwgJHNjcmVlbi1zaXplIGluICRicmVha3BvaW50cyB7XHJcbiAgICBAaW5jbHVkZSBmcm9tKCRzaXplKSB7XHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50IDogXCJlZC1ncmlkOiBzaXplICN7JHNpemV9LCBmcm9tICN7JHNjcmVlbi1zaXplfSAoZWQtY29udGFpbmVyczogcmVkLCBlZC1pdGVtczogYmx1ZSwgeWVsbG93KVwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AaWYgJGRldk1vZGUgPT0gdHJ1ZSB7XHJcbiAgYm9keSB7XHJcbiAgICBAaW5jbHVkZSBkZXZNb2RlKCk7XHJcbiAgfVxyXG59XHJcbiIsIkBmdW5jdGlvbiBlbSgkZWwsJGNvbnRleHQ6MTZweCkge1xyXG4gIEBpZiB0eXBlX29mKCRlbCkgPT0gbnVtYmVyIGFuZCB1bml0KCRlbCkgPT0gJ3B4JyB7XHJcbiAgICBAcmV0dXJuICgkZWwgLyAkY29udGV4dCkgKiAxZW07XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAZXJyb3IgJ0Z1bmN0aW9uIGVtKCkgcmVxdWlyZXMgYSBweCB1bml0IGFzIGZpcnN0IGFyZ3VtZW50IC8gTGEgZnVuY2nDs24gZW0oKSByZXF1aWVyZSB1bmEgdW5pZGFkIGRlIHBpeGVsZXMgY29tbyBwcmltZXIgYXJndW1lbnRvIChlbCBzZWd1bmRvIGVzIG9wY2lvbmFsKSdcclxuICB9XHJcbn1cclxuXHJcbkBmdW5jdGlvbiByZW0oJGVsKSB7XHJcbiAgQGlmIHR5cGVfb2YoJGVsKSA9PSBudW1iZXIgYW5kIHVuaXQoJGVsKSA9PSAncHgnIHtcclxuICAgIEByZXR1cm4gKCRlbCAvIDE2cHgpICogMXJlbTtcclxuICB9IEBlbHNlIHtcclxuICAgIEBlcnJvciAnRnVuY3Rpb24gcmVtKCkgcmVxdWlyZXMgYSBweCB1bml0IGFzIGFyZ3VtZW50IC8gTGEgZnVuY2lvbiByZW0oKSByZXF1aWVyZSB1bmEgdW5pZGFkIGRlIHBpeGVsZXMgY29tbyBhcmd1bWVudG8nO1xyXG4gIH1cclxufVxyXG4iLCIlZWQtY29udGFpbmVyIHtcclxuICBkaXNwbGF5ICAgICAgOiBmbGV4O1xyXG4gIGZsZXgtd3JhcCAgICA6IHdyYXA7XHJcbiAgbWF4LXdpZHRoICAgIDogJG1heC13aWR0aDtcclxuICBtYXJnaW4tbGVmdCAgOiBhdXRvO1xyXG4gIG1hcmdpbi1yaWdodCA6IGF1dG87XHJcbiAgd2lkdGggICAgICAgIDogMTAwJTtcclxufVxyXG5cclxuJWVkLWl0ZW0ge1xyXG4gIG1hcmdpbiAgICAgICAgOiAwO1xyXG4gIHBhZGRpbmctbGVmdCAgOiAkZ3V0dGVyO1xyXG4gIHBhZGRpbmctcmlnaHQgOiAkZ3V0dGVyO1xyXG59XHJcblxyXG5AbWl4aW4gZWRDb250YWluZXIge1xyXG4gIEBleHRlbmQgJWVkLWNvbnRhaW5lcjtcclxuXHJcbiAgQGlmICRkZXZNb2RlID09IHRydWUge1xyXG4gICAgQGluY2x1ZGUgZGV2TW9kZUNvbnRhaW5lcigpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZ1bGwge1xyXG4gIG1heC13aWR0aCA6IDEwMCU7XHJcbn1cclxuXHJcbkBtaXhpbiBlZEl0ZW1XaWR0aCgkY3VycmVudEJwLCAkcHJldkJwLCAkY29yZUJwKXtcclxuICBAaWYgJGN1cnJlbnRCcCAhPSAkcHJldkJwe1xyXG4gICAgQGlmICRjdXJyZW50QnAgPCAxIHtcclxuICAgICAgQGluY2x1ZGUgZnJvbSgkY29yZUJwKXtcclxuICAgICAgICB3aWR0aCA6ICRjdXJyZW50QnAgKiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIEBpbmNsdWRlIGZyb20oJGNvcmVCcCl7XHJcbiAgICAgICAgd2lkdGggOiAkY3VycmVudEJwICogMSU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBlZEl0ZW0oJHM6YXV0bywkbTokcywkbDokbSwkeGw6JGwpIHtcclxuICBAZXh0ZW5kICVlZC1pdGVtO1xyXG5cclxuICBAaWYgJGRldk1vZGUgPT0gdHJ1ZSB7XHJcbiAgICBAaW5jbHVkZSBkZXZNb2RlSXRlbSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gZnJhY3Rpb25zIGRldGVjdGlvbiAoPjEpXHJcbiAgLy8gZGV0ZWN0YXIgc2kgc2UgcGFzw7MgdW5hIGZyYWNjaW9uICg+MSlcclxuICBAaWYgJHMgPT0gYXV0byB7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICB9IEBlbHNlIGlmICRzIDwgMSB7XHJcbiAgICB3aWR0aCA6ICRzICogMTAwJTtcclxuICB9IEBlbHNlIHtcclxuICAgIHdpZHRoIDogJHMgKiAxJTtcclxuICB9XHJcblxyXG4gIC8vIHdpZHRocyBmb3IgZWFjaCBicmVha3BvaW50XHJcbiAgLy8gYW5jaG9zIHBhcmEgY2FkYSBicmVha3BvaW50XHJcbiAgQGluY2x1ZGUgZWRJdGVtV2lkdGgoJG0sJHMsbSk7IC8vbWVkaXVtXHJcbiAgQGluY2x1ZGUgZWRJdGVtV2lkdGgoJGwsJG0sbCk7IC8vbGFyZ2VcclxuICBAaW5jbHVkZSBlZEl0ZW1XaWR0aCgkeGwsJGwseGwpOyAvL3hsYXJnZVxyXG59XHJcblxyXG4uI3skY29udGFpbmVyfSB7IEBpbmNsdWRlIGVkQ29udGFpbmVyKCkgfVxyXG5cclxuLiN7JGl0ZW19IHtcclxuICBAaW5jbHVkZSBlZEl0ZW0oKTtcclxuXHJcbiAgJi4jeyRjb250YWluZXJ9e1xyXG4gICAgcGFkZGluZy1sZWZ0IDogMDtcclxuICAgIHBhZGRpbmctcmlnaHQgOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLy8gQnJlYWtwb2ludHNcclxuQG1peGluIGNvcmVHcmlkKCl7XHJcbiAgQGVhY2ggJHNpemUsICRzY3JlZW4tc2l6ZSBpbiAkYnJlYWtwb2ludHN7XHJcbiAgICBAaWYgJHNpemUgPT0gcyB7XHJcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMjAge1xyXG4gICAgICAgIC5zLSN7JGkqNX0geyB3aWR0aDogdW5xdW90ZSgkaSo1ICsgXCIlXCIpIH1cclxuICAgICAgfVxyXG4gICAgICBAZWFjaCAkZnJhY3Rpb24gaW4gJGZyYWN0aW9uc3tcclxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRmcmFjdGlvbntcclxuICAgICAgICAgIC5zLSN7JGl9LSN7JGZyYWN0aW9ufSB7IHdpZHRoOiAoMTAwJSAvICRmcmFjdGlvbikgKiAkaSB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogJHNjcmVlbi1zaXplKXtcclxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDIwIHtcclxuICAgICAgICAgIC4jeyRzaXplfS0jeyRpKjV9IHsgd2lkdGg6IHVucXVvdGUoJGkqNSArIFwiJVwiKSB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlYWNoICRmcmFjdGlvbiBpbiAkZnJhY3Rpb25zIHtcclxuICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGZyYWN0aW9ue1xyXG4gICAgICAgICAgICAuI3skc2l6ZX0tI3skaX0tI3skZnJhY3Rpb259IHsgd2lkdGg6ICgxMDAlIC8gJGZyYWN0aW9uKSAqICRpIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiJWJ1dHRvbiB7XHJcbiAgZGlzcGxheSAgICAgICA6IGlubGluZS1ibG9jaztcclxuICBsaW5lLWhlaWdodCAgIDogMi41ZW07XHJcbiAgcGFkZGluZyAgICAgICA6IDAgMS41ZW07XHJcbiAgY3Vyc29yICAgICAgICA6IHBvaW50ZXI7XHJcbiAgbWFyZ2luLWJvdHRvbSA6IDFlbTtcclxuICBib3JkZXIgICAgICAgIDogbm9uZTtcclxufVxyXG5cclxuQG1peGluIGJ1dHRvbigkYmctY29sb3I6ICNkZGQsJGZyb250LWNvbG9yOiAjMzMzLCRzdHlsZTogZGVmYXVsdCkge1xyXG4gIEBleHRlbmQgICAgJWJ1dHRvbjtcclxuICBiYWNrZ3JvdW5kIDogJGJnLWNvbG9yO1xyXG4gIGNvbG9yICAgICAgOiAkZnJvbnQtY29sb3I7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZCAgICAgIDogZGFya2VuKCRiZy1jb2xvciwgNSk7XHJcbiAgICB0ZXh0LWRlY29yYXRpb24gOiBub25lO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmUge1xyXG4gICAgdHJhbnNmb3JtIDogc2NhbGUoLjk3KTtcclxuICB9XHJcblxyXG4gIC8vIGVzdGlsb3MgZGVsIGJvdG9uIChyYWRpdXMgbyByb3VuZClcclxuICBAaWYgJHN0eWxlID09IHJhZGl1cyB7XHJcbiAgICBib3JkZXItcmFkaXVzIDogLjI1ZW07XHJcbiAgfSBAZWxzZSBpZiAkc3R5bGUgPT0gcm91bmQge1xyXG4gICAgYm9yZGVyLXJhZGl1cyA6IDEuMjVlbTtcclxuICB9XHJcbn1cclxuIiwiQG1peGluIGNzc09mZnNldCB7XHJcbiAgQGVhY2ggJHNpemUsICRzY3JlZW4tc2l6ZSBpbiAkYnJlYWtwb2ludHN7XHJcblxyXG4gICAgQGlmICRzaXplID09IHMge1xyXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDIwIHtcclxuICAgICAgICAuI3skc2l6ZX0tb2Zmc2V0LSN7JGkqNX17XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogdW5xdW90ZSgkaSo1ICsgXCIlXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBAZWFjaCAkZnJhY3Rpb24gaW4gJGZyYWN0aW9uc3tcclxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkZnJhY3Rpb25zKXtcclxuICAgICAgICAgIC4jeyRzaXplfS1vZmZzZXQtI3skaX0tI3skZnJhY3Rpb259IHtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICgxMDAlIC8gJGZyYWN0aW9uKSAqICRpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIHtcclxuICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogJHNjcmVlbi1zaXplKXtcclxuICAgICAgICAvL3BvcmNlbnRhamVzXHJcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAyMCB7XHJcbiAgICAgICAgICAuI3skc2l6ZX0tb2Zmc2V0LSN7JGkqNX17XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB1bnF1b3RlKCRpKjUgKyBcIiVcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vZnJhY2Npb25lc1xyXG4gICAgICAgIEBlYWNoICRmcmFjdGlvbiBpbiAkZnJhY3Rpb25ze1xyXG4gICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGZyYWN0aW9ucyl7XHJcbiAgICAgICAgICAgIC4jeyRzaXplfS1vZmZzZXQtI3skaX0tI3skZnJhY3Rpb259IHtcclxuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogKDEwMCUgLyAkZnJhY3Rpb24pICogJGk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5AbWl4aW4gb2Zmc2V0V2lkdGgoJGN1cnJlbnRCcCwgJHByZXZCcCwgJGNvcmVCcCl7XHJcbiAgQGlmICRjdXJyZW50QnAgIT0gJHByZXZCcHtcclxuICAgIEBpZiAkY3VycmVudEJwIDwgMSB7XHJcbiAgICAgIEBpbmNsdWRlIGZyb20oJGNvcmVCcCl7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQgOiAkY3VycmVudEJwICogMTAwJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAaW5jbHVkZSBmcm9tKCRjb3JlQnApe1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0IDogJGN1cnJlbnRCcCAqIDElO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gb2Zmc2V0KCRzLCRtOiRzLCRsOiRtLCR4bDokbCl7XHJcbiAgQGlmICRzIDwgMSB7XHJcbiAgICBtYXJnaW4tbGVmdCA6ICRzICogMTAwJTtcclxuICB9IEBlbHNlIHtcclxuICAgIG1hcmdpbi1sZWZ0IDogJHMgKiAxJTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG9mZnNldFdpZHRoKCRtLCRzLG0pO1xyXG4gIEBpbmNsdWRlIG9mZnNldFdpZHRoKCRsLCRtLGwpO1xyXG4gIEBpbmNsdWRlIG9mZnNldFdpZHRoKCR4bCwkbCx4bCk7XHJcbn1cclxuIiwiQG1peGluIGZsZXhPcmRlciB7XHJcbiAgLy8gU29sbyBleGlzdGUgcGFyYSBjc3MsIGVzIGlubmVjZXNhcmlvIGVuIFNhc3MgKHVuYSBzb2xhIGzDrW5lYSlcclxuICBAZWFjaCAkc2l6ZSwgJHNjcmVlbi1zaXplIGluICRicmVha3BvaW50c3tcclxuICAgIEBpZiAkc2l6ZSA9PSBzIHtcclxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxMCB7XHJcbiAgICAgICAgLiN7JHNpemV9LW9yZGVyLSN7JGl9IHtcclxuICAgICAgICAgIG9yZGVyOiAkaTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkc2NyZWVuLXNpemUpe1xyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTAge1xyXG4gICAgICAgICAgLiN7JHNpemV9LW9yZGVyLSN7JGl9IHtcclxuICAgICAgICAgICAgb3JkZXI6ICRpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gQWxpbmVhY2lvbiBlbiBlbCBtYWluIGF4aXNcclxuLy8gQXBsaWNhbiBhbCBmbGV4LWNvbnRhaW5lclxyXG5AbWl4aW4gZmxleCB7XHJcbiAgZGlzcGxheSAgIDogZmxleDtcclxuICBmbGV4LXdyYXAgOiB3cmFwO1xyXG59XHJcblxyXG5AbWl4aW4gbWFpbkp1c3RpZnkge1xyXG4gIEBpbmNsdWRlIGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50IDogc3BhY2UtYmV0d2VlbjtcclxufVxyXG5cclxuQG1peGluIGNzc01haW5KdXN0aWZ5IHtcclxuICBAZWFjaCAkc2l6ZSwgJHNjcmVlbi1zaXplIGluICRicmVha3BvaW50cyB7XHJcbiAgICBAaWYgJHNpemUgPT0gcyB7XHJcbiAgICAgIC4jeyRzaXplfS1qdXN0aWZ5IHtcclxuICAgICAgICBAaW5jbHVkZSBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudCA6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAkc2NyZWVuLXNpemUpe1xyXG4gICAgICAgIC4jeyRzaXplfS1qdXN0aWZ5IHtcclxuICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XHJcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQgOiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1haW5EaXN0cmlidXRlIHtcclxuICBAaW5jbHVkZSBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudCA6IHNwYWNlLWFyb3VuZDtcclxufVxyXG5cclxuQG1peGluIGNzc01haW5EaXN0cmlidXRlIHtcclxuICBAZWFjaCAkc2l6ZSwgJHNjcmVlbi1zaXplIGluICRicmVha3BvaW50cyB7XHJcbiAgICBAaWYgJHNpemUgPT0gcyB7XHJcbiAgICAgIC4jeyRzaXplfS1kaXN0cmlidXRlIHtcclxuICAgICAgICBAaW5jbHVkZSBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudCA6IHNwYWNlLWFyb3VuZDtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6ICRzY3JlZW4tc2l6ZSl7XHJcbiAgICAgICAgLiN7JHNpemV9LWRpc3RyaWJ1dGUge1xyXG4gICAgICAgICAgQGluY2x1ZGUgZmxleDtcclxuICAgICAgICAgIGp1c3RpZnktY29udGVudCA6IHNwYWNlLWFyb3VuZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtYWluQ2VudGVyIHtcclxuICBAaW5jbHVkZSBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudCA6IGNlbnRlcjtcclxufVxyXG5cclxuQG1peGluIGNzc01haW5DZW50ZXIge1xyXG4gIEBlYWNoICRzaXplLCAkc2NyZWVuLXNpemUgaW4gJGJyZWFrcG9pbnRzIHtcclxuICAgIEBpZiAkc2l6ZSA9PSBzIHtcclxuICAgICAgLiN7JHNpemV9LW1haW4tY2VudGVyIHtcclxuICAgICAgICBAaW5jbHVkZSBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudCA6IGNlbnRlcjtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6ICRzY3JlZW4tc2l6ZSl7XHJcbiAgICAgICAgLiN7JHNpemV9LW1haW4tY2VudGVyIHtcclxuICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XHJcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQgOiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbWFpblN0YXJ0e1xyXG4gIEBpbmNsdWRlIGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50IDogZmxleC1zdGFydDtcclxufVxyXG5cclxuQG1peGluIGNzc01haW5TdGFydHtcclxuICBAZWFjaCAkc2l6ZSwgJHNjcmVlbi1zaXplIGluICRicmVha3BvaW50cyB7XHJcbiAgICBAaWYgJHNpemUgPT0gcyB7XHJcbiAgICAgIC4jeyRzaXplfS1tYWluLXN0YXJ0IHtcclxuICAgICAgICBAaW5jbHVkZSBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudCA6IGZsZXgtc3RhcnQ7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAkc2NyZWVuLXNpemUpe1xyXG4gICAgICAgIC4jeyRzaXplfS1tYWluLXN0YXJ0IHtcclxuICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XHJcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQgOiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG1haW5FbmR7XHJcbiAgQGluY2x1ZGUgZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQgOiBmbGV4LWVuZDtcclxufVxyXG5cclxuQG1peGluIGNzc01haW5FbmR7XHJcbiAgQGVhY2ggJHNpemUsICRzY3JlZW4tc2l6ZSBpbiAkYnJlYWtwb2ludHMge1xyXG4gICAgQGlmICRzaXplID09IHMge1xyXG4gICAgICAuI3skc2l6ZX0tbWFpbi1lbmQge1xyXG4gICAgICAgIEBpbmNsdWRlIGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50IDogZmxleC1lbmQ7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAkc2NyZWVuLXNpemUpe1xyXG4gICAgICAgIC4jeyRzaXplfS1tYWluLWVuZCB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4O1xyXG4gICAgICAgICAganVzdGlmeS1jb250ZW50IDogZmxleC1lbmQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBBbGluZWFjacOzbiBlbiBlbCBjcm9zcyBheGlzLiBBcGxpY2FuIGFsIGZsZXgtY29udGFpbmVyXHJcbkBtaXhpbiBjcm9zc1N0YXJ0e1xyXG4gIEBpbmNsdWRlIGZsZXg7XHJcbiAgYWxpZ24taXRlbXMgICA6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24tY29udGVudCA6IGZsZXgtc3RhcnQ7XHJcbn1cclxuXHJcbkBtaXhpbiBjc3NDcm9zc1N0YXJ0e1xyXG4gIEBlYWNoICRzaXplLCAkc2NyZWVuLXNpemUgaW4gJGJyZWFrcG9pbnRzIHtcclxuICAgIEBpZiAkc2l6ZSA9PSBzIHtcclxuICAgICAgLiN7JHNpemV9LWNyb3NzLXN0YXJ0IHtcclxuICAgICAgICBAaW5jbHVkZSBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zICAgOiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgIGFsaWduLWNvbnRlbnQgOiBmbGV4LXN0YXJ0O1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogJHNjcmVlbi1zaXplKXtcclxuICAgICAgICAuI3skc2l6ZX0tY3Jvc3Mtc3RhcnQge1xyXG4gICAgICAgICAgQGluY2x1ZGUgZmxleDtcclxuICAgICAgICAgIGFsaWduLWl0ZW1zICAgOiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgICAgYWxpZ24tY29udGVudCA6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gY3Jvc3NDZW50ZXIge1xyXG4gIEBpbmNsdWRlIGZsZXg7XHJcbiAgYWxpZ24taXRlbXMgICA6IGNlbnRlcjtcclxuICBhbGlnbi1jb250ZW50IDogY2VudGVyO1xyXG59XHJcblxyXG5AbWl4aW4gY3NzQ3Jvc3NDZW50ZXIge1xyXG4gIEBlYWNoICRzaXplLCAkc2NyZWVuLXNpemUgaW4gJGJyZWFrcG9pbnRzIHtcclxuICAgIEBpZiAkc2l6ZSA9PSAwIHtcclxuICAgICAgLiN7JHNpemV9LWNyb3NzLWNlbnRlciB7XHJcbiAgICAgICAgQGluY2x1ZGUgZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtcyAgIDogY2VudGVyO1xyXG4gICAgICAgIGFsaWduLWNvbnRlbnQgOiBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAkc2NyZWVuLXNpemUpe1xyXG4gICAgICAgIC4jeyRzaXplfS1jcm9zcy1jZW50ZXIge1xyXG4gICAgICAgICAgQGluY2x1ZGUgZmxleDtcclxuICAgICAgICAgIGFsaWduLWl0ZW1zICAgOiBjZW50ZXI7XHJcbiAgICAgICAgICBhbGlnbi1jb250ZW50IDogY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGNyb3NzRW5kIHtcclxuICBAaW5jbHVkZSBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zICAgOiBmbGV4LWVuZDtcclxuICBhbGlnbi1jb250ZW50IDogZmxleC1lbmQ7XHJcbn1cclxuXHJcbkBtaXhpbiBjc3NDcm9zc0VuZCB7XHJcbiAgQGVhY2ggJHNpemUsICRzY3JlZW4tc2l6ZSBpbiAkYnJlYWtwb2ludHMge1xyXG4gICAgQGlmICRzaXplID09IHMge1xyXG4gICAgICAuI3skc2l6ZX0tY3Jvc3MtZW5kIHtcclxuICAgICAgICBAaW5jbHVkZSBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zICAgOiBmbGV4LWVuZDtcclxuICAgICAgICBhbGlnbi1jb250ZW50IDogZmxleC1lbmQ7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAkc2NyZWVuLXNpemUpe1xyXG4gICAgICAgIC4jeyRzaXplfS1jcm9zcy1lbmQge1xyXG4gICAgICAgICAgQGluY2x1ZGUgZmxleDtcclxuICAgICAgICAgIGFsaWduLWl0ZW1zICAgOiBmbGV4LWVuZDtcclxuICAgICAgICAgIGFsaWduLWNvbnRlbnQgOiBmbGV4LWVuZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIE9yaWVudGFjacOzbiBkZWwgY29udGFpbmVyXHJcbkBtaXhpbiBmbGV4UmV2ZXJzZSB7XHJcbiAgQGluY2x1ZGUgZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbiA6IHJvdy1yZXZlcnNlO1xyXG59XHJcblxyXG5AbWl4aW4gY3NzRmxleFJldmVyc2V7XHJcbiAgQGVhY2ggJHNpemUsICRzY3JlZW4tc2l6ZSBpbiAkYnJlYWtwb2ludHMge1xyXG4gICAgQGlmICRzaXplID09IHMge1xyXG4gICAgICAuI3skc2l6ZX0tcmV2ZXJzZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbiA6IHJvdy1yZXZlcnNlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogJHNjcmVlbi1zaXplKXtcclxuICAgICAgICAuI3skc2l6ZX0tcmV2ZXJzZSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4O1xyXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb24gOiByb3ctcmV2ZXJzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmbGV4Q29sdW1uIHtcclxuICBAaW5jbHVkZSBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uIDogY29sdW1uO1xyXG59XHJcblxyXG5AbWl4aW4gY3NzRmxleENvbHVtbiB7XHJcbiAgQGVhY2ggJHNpemUsICRzY3JlZW4tc2l6ZSBpbiAkYnJlYWtwb2ludHMge1xyXG4gICAgQGlmICRzaXplID09IHMge1xyXG4gICAgICAuI3skc2l6ZX0tY29sdW1uIHtcclxuICAgICAgICBAaW5jbHVkZSBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uIDogY29sdW1uO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogJHNjcmVlbi1zaXplKXtcclxuICAgICAgICAuI3skc2l6ZX0tY29sdW1uIHtcclxuICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XHJcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbiA6IGNvbHVtbjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmbGV4Q29sdW1uUmV2ZXJzZSB7XHJcbiAgQGluY2x1ZGUgZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbiA6IGNvbHVtbi1yZXZlcnNlO1xyXG59XHJcblxyXG5AbWl4aW4gY3NzRmxleENvbHVtblJldmVyc2Uge1xyXG4gIEBlYWNoICRzaXplLCAkc2NyZWVuLXNpemUgaW4gJGJyZWFrcG9pbnRzIHtcclxuICAgIEBpZiAkc2l6ZSA9PSBzIHtcclxuICAgICAgLiN7JHNpemV9LWNvbHVtbi1yZXZlcnNlIHtcclxuICAgICAgICBAaW5jbHVkZSBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uIDogY29sdW1uLXJldmVyc2U7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAkc2NyZWVuLXNpemUpe1xyXG4gICAgICAgIC4jeyRzaXplfS1jb2x1bW4tcmV2ZXJzZSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4O1xyXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb24gOiBjb2x1bW4tcmV2ZXJzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIENlbnRyYWRvIGFic29sdXRvICh2ZXJ0aWNhbCB5IGhvcml6b250YWwpXHJcbkBtaXhpbiBmbGV4Q2VudGVyKCRjaGlsZDogbnVsbCkge1xyXG4gIGRpc3BsYXkgICAgICAgICA6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50IDogY2VudGVyO1xyXG4gIGFsaWduLWl0ZW1zICAgICA6IGNlbnRlcjtcclxuICB0ZXh0LWFsaWduICAgICAgOiBjZW50ZXI7XHJcblxyXG4gIEBpZiAkY2hpbGQgIT0gbnVsbCB7XHJcbiAgICAjeyRjaGlsZH17XHJcbiAgICAgIG1hcmdpbiA6IGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBWZXJzaW9uZXMgQ1NTXHJcbkBtaXhpbiBmbGV4Q3NzSGVscGVycyB7XHJcbiAgLm1haW4tanVzdGlmeSAgICAgICAgeyBAaW5jbHVkZSBtYWluSnVzdGlmeSAgICAgICB9XHJcbiAgLm1haW4tZGlzdHJpYnV0ZSAgICAgeyBAaW5jbHVkZSBtYWluRGlzdHJpYnV0ZSAgICB9XHJcbiAgLm1haW4tY2VudGVyICAgICAgICAgeyBAaW5jbHVkZSBtYWluQ2VudGVyICAgICAgICB9XHJcbiAgLm1haW4tc3RhcnQgICAgICAgICAgeyBAaW5jbHVkZSBtYWluU3RhcnQgICAgICAgICB9XHJcbiAgLm1haW4tZW5kICAgICAgICAgICAgeyBAaW5jbHVkZSBtYWluRW5kICAgICAgICAgICB9XHJcbiAgLmNyb3NzLXN0YXJ0ICAgICAgICAgeyBAaW5jbHVkZSBjcm9zc1N0YXJ0ICAgICAgICB9XHJcbiAgLmNyb3NzLWNlbnRlciAgICAgICAgeyBAaW5jbHVkZSBjcm9zc0NlbnRlciAgICAgICB9XHJcbiAgLmNyb3NzLWVuZCAgICAgICAgICAgeyBAaW5jbHVkZSBjcm9zc0VuZCAgICAgICAgICB9XHJcbiAgLmZsZXgtcmV2ZXJzZSAgICAgICAgeyAgQGluY2x1ZGUgZmxleFJldmVyc2UgICAgICB9XHJcbiAgLmZsZXgtY29sdW1uICAgICAgICAgeyBAaW5jbHVkZSBmbGV4Q29sdW1uICAgICAgICB9XHJcbiAgLmZsZXgtY29sdW1uLXJldmVyc2UgeyBAaW5jbHVkZSBmbGV4Q29sdW1uUmV2ZXJzZSB9XHJcbiAgLmFiY2VudGVyICAgICAgICAgICAgeyBAaW5jbHVkZSBmbGV4Q2VudGVyICAgICAgICB9XHJcbn1cclxuIiwiQGlmICRjc3NDb3JlID09IHRydWUge1xyXG4gIC8vIG9mZnNldFxyXG4gIEBpbmNsdWRlIGNzc09mZnNldCgpO1xyXG5cclxuICAvLyBmbGV4Ym94XHJcbiAgQGluY2x1ZGUgZmxleE9yZGVyKCk7XHJcblxyXG4gIEBpbmNsdWRlIGNzc01haW5KdXN0aWZ5KCk7XHJcbiAgQGluY2x1ZGUgY3NzTWFpbkRpc3RyaWJ1dGUoKTtcclxuICBAaW5jbHVkZSBjc3NNYWluU3RhcnQoKTtcclxuICBAaW5jbHVkZSBjc3NNYWluQ2VudGVyKCk7XHJcbiAgQGluY2x1ZGUgY3NzTWFpbkVuZCgpO1xyXG5cclxuICBAaW5jbHVkZSBjc3NDcm9zc1N0YXJ0KCk7XHJcbiAgQGluY2x1ZGUgY3NzQ3Jvc3NDZW50ZXIoKTtcclxuICBAaW5jbHVkZSBjc3NDcm9zc0VuZCgpO1xyXG5cclxuICBAaW5jbHVkZSBjc3NGbGV4UmV2ZXJzZSgpO1xyXG4gIEBpbmNsdWRlIGNzc0ZsZXhDb2x1bW4oKTtcclxuICBAaW5jbHVkZSBjc3NGbGV4Q29sdW1uUmV2ZXJzZSgpO1xyXG5cclxuICAvL2dyaWRzXHJcbiAgLmdyaWQtY29udGFpbmVyLmdyaWQtMTIzNCB7IEBpbmNsdWRlIGdyaWQoJy5ncmlkLWl0ZW0nLCAxLCAyLCAzLCA0LCAxZW0pIH1cclxuICAuZ3JpZC1jb250YWluZXIuZ3JpZC0yMzQ1IHsgQGluY2x1ZGUgZ3JpZCgnLmdyaWQtaXRlbScsIDIsIDMsIDQsIDUsIDFlbSkgfVxyXG5cclxuICAvLyBkZXZNb2RlXHJcbiAgYm9keS5kZXYsXHJcbiAgYm9keS5kZXNhcnJvbGxvIHtcclxuICAgIEBpbmNsdWRlIGRldk1vZGUoKTtcclxuICAgIC5lZC1jb250YWluZXIgeyBAaW5jbHVkZSBkZXZNb2RlQ29udGFpbmVyOyB9XHJcbiAgICAuZWQtaXRlbSAgICAgIHsgQGluY2x1ZGUgZGV2TW9kZUl0ZW07IH1cclxuICB9XHJcblxyXG4gIC8vIEJvdG9uZXNcclxuICAuYnV0dG9uLFxyXG4gIGJ1dHRvbiB7XHJcbiAgICBAaW5jbHVkZSBidXR0b24oKTtcclxuICAgICYucm91bmQgIHsgQGluY2x1ZGUgYnV0dG9uKCNEREQsICMzMzMsIHJvdW5kKSB9XHJcbiAgICAmLnJhZGl1cyB7IEBpbmNsdWRlIGJ1dHRvbigjRERELCAzMzMsIHJhZGl1cykgfVxyXG4gIH1cclxuXHJcbiAgLy8gTWVudXNcclxuICAvLyBzZSByZXF1aWVyZSBsYSBjbGFzZSAuZWQtbWVudVxyXG4gIC8vIHkgbGEgY2xhc2UgcGFyYSBjYW1iaW8gYSBob3Jpem9udGFsXHJcbiAgLmVkLW1lbnUge1xyXG4gICAgJi5zLWhvcml6b250YWwgIHsgQGluY2x1ZGUgZWRNZW51KHMpICB9XHJcbiAgICAmLm0taG9yaXpvbnRhbCAgeyBAaW5jbHVkZSBlZE1lbnUobSkgIH1cclxuICAgICYubC1ob3Jpem9udGFsICB7IEBpbmNsdWRlIGVkTWVudShsKSAgfVxyXG4gICAgJi54bC1ob3Jpem9udGFsIHsgQGluY2x1ZGUgZWRNZW51KHhsKSB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyB0b2RvOiB2ZXIgcXVlIGNvbXBvbmVudGVzIG1vdmVyIGEgY3NzQ29yZSAocXVpemFzIGZsZXhib3gpXHJcbi8vIHRvZG86IG8gcXVpemFzIHNlcGFyYXJsb3MgcGFyYSBhY3RpdmFyIHVub3MgdSBvdHJvc1xyXG5AaWYgJGNzc0hlbHBlcnMgPT0gdHJ1ZSB7XHJcbiAgQGluY2x1ZGUgY29yZUdyaWQoKTtcclxuICBAaW5jbHVkZSBoZWxwZXJzKCk7XHJcbiAgQGluY2x1ZGUgZmxleENzc0hlbHBlcnMoKTtcclxuICBAaW5jbHVkZSB2aXNpYmlsaXR5KCk7XHJcblxyXG4gIC5lZC12aWRlbyB7IEBpbmNsdWRlIGVkVmlkZW8gfVxyXG4gIC5idXR0b24gICB7IEBpbmNsdWRlIGJ1dHRvbiAgfVxyXG59XHJcbiIsIi8vIHJldHVybnMgZ3JpZC1pdGVtIHdpZHRoIGJhc2VkIG9uIGNvbHVtbnMgbnVtYmVyIGFuZCBndXR0ZXJcclxuLy8gcmV0b3JuYSBlbCBhbmNobyBkZWwgZ3JpZC1pdGVtIGJhc2FkbyBlbiBlbCBuw7ptZXJvIGRlIGNvbHVtbmFzIHkgZWwgZ3V0dGVyXHJcbkBmdW5jdGlvbiBpdGVtLXdpZHRoKCR3aWR0aCwkZ3V0dGVyKXtcclxuICBAcmV0dXJuIGNhbGMoI3skd2lkdGh9IC0gI3skZ3V0dGVyfSk7XHJcbn1cclxuXHJcbi8vIGFzaWducyBncmlkLWl0ZW0gd2lkdGggZm9yIGVhY2ggYnJlYWtwb2ludFxyXG5AbWl4aW4gY29sdW1uV2lkdGgoJGN1cnJlbnRCcCwgJHByZXZCcCwgJGNvcmVCcCwkZ3V0dGVyLCRzZWxlY3Rvcil7XHJcbiAgLy8gY2hlY2sgaWYgY3VycmVudCBicmVha3BvaW50IGlzIG5vdCBlcXVhbCB0byBwcmV2aW91cyBicmVha3BvaW50XHJcbiAgQGlmICRjdXJyZW50QnAgIT0gJHByZXZCcHtcclxuICAgIEBpbmNsdWRlIGZyb20oJGNvcmVCcCl7XHJcbiAgICAgICR3aWR0aDogMTAwJSAvICRjdXJyZW50QnA7XHJcbiAgICAgICYgPiAjeyRzZWxlY3Rvcn17XHJcbiAgICAgICAgd2lkdGggOiBpdGVtLXdpZHRoKCR3aWR0aCwkZ3V0dGVyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gY3JlYXRlIGdyaWRcclxuLy8gcGFyYW1zOiBzZWxlY3RvciAocXVvdGVkIHN0cmluZylcclxuLy8gJHMsICRtLCAkbCwgJHhsIC0+IG51bWJlciBvZiBjb2x1bW5zIGluIGVhY2ggYnJlYWtwb2ludFxyXG4vLyBndXR0ZXIgLT4gZ3V0dGVyIGJldHdlZW4gZ3JpZCBpdGVtc1xyXG5AbWl4aW4gZ3JpZCgkc2VsZWN0b3IsJHMsJG06JHMsJGw6JG0sJHhsOiRsLCRndXR0ZXI6MWVtKXtcclxuICAkd2lkdGggICAgICAgOiAxMDAlIC8gJHM7XHJcbiAgZGlzcGxheSAgICAgIDogZmxleDtcclxuICBmbGV4LXdyYXAgICAgOiB3cmFwO1xyXG4gIG1hcmdpbi1sZWZ0ICA6IC0oJGd1dHRlciAvIDIpO1xyXG4gIG1hcmdpbi1yaWdodCA6IC0oJGd1dHRlciAvIDIpO1xyXG5cclxuICAvLyBwb3Igc2kgZWwgY29udGVuZWRvciBlcyB1biB1bFxyXG4gIEBpZiAkc2VsZWN0b3IgPT0gbGkge1xyXG4gICAgbWFyZ2luICAgICA6IDA7XHJcbiAgICBwYWRkaW5nICAgIDogMDtcclxuICAgIGxpc3Qtc3R5bGUgOiBub25lO1xyXG5cclxuICAgIGxpIHtcclxuICAgICAgbWFyZ2luLWxlZnQgOiAwO1xyXG4gICAgICBsaXN0LXN0eWxlICA6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmID4gI3skc2VsZWN0b3J9IHtcclxuICAgIHdpZHRoICA6IGl0ZW0td2lkdGgoJHdpZHRoLCRndXR0ZXIpO1xyXG4gICAgbWFyZ2luIDogJGd1dHRlciAvIDI7XHJcbiAgfVxyXG5cclxuICAvLyBjYWxjdWxhdGUgZ3JpZCBpdGVtIHdpZHRoIGZvciBlYWNoIGJyZWFrcG9pbnRcclxuICBAaW5jbHVkZSBjb2x1bW5XaWR0aCgkbSwkcyxtLCRndXR0ZXIsJHNlbGVjdG9yKTsgICAgLy8gbWVkaXVtXHJcbiAgQGluY2x1ZGUgY29sdW1uV2lkdGgoJGwsJG0sbCwkZ3V0dGVyLCRzZWxlY3Rvcik7ICAgIC8vIGxhcmdlXHJcbiAgQGluY2x1ZGUgY29sdW1uV2lkdGgoJHhsLCRsLHhsLCRndXR0ZXIsJHNlbGVjdG9yKTsgIC8vIHhsYXJnZVxyXG59XHJcbiIsIkBmdW5jdGlvbiBpc0NvcmVCcmVha3BvaW50KCRicCl7XG4gIEBpZiBtYXAtZ2V0KCRicmVha3BvaW50cywkYnApIHtcbiAgICBAcmV0dXJuIHRydWVcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZVxuICB9XG59XG5cbkBmdW5jdGlvbiBpc1ZhbGlkQnJlYWtwb2ludCgkYnApe1xuICBAaWYgdHlwZS1vZigkYnApID09IG51bWJlciBhbmQgKHVuaXQoJGJwKSA9PSAncHgnIG9yIHVuaXQoJGJwKSA9PSAnZW0nIG9yIHVuaXQoJGJwKSA9PSAncmVtJykge1xuICAgIEByZXR1cm4gdHJ1ZVxuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuQGZ1bmN0aW9uIGdldEJyZWFrcG9pbnQoJGJwKXtcbiAgQHJldHVybiBtYXAtZ2V0KCRicmVha3BvaW50cywkYnApXG59XG5cbkBmdW5jdGlvbiB0b1B4KCR2YWx1ZSl7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbnVtYmVyIHtcbiAgICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbSd7XG4gICAgICBAcmV0dXJuICgkdmFsdWUgLyAxZW0pICogMTZweDtcbiAgICB9IEBlbHNlIGlmIHVuaXQoJHZhbHVlKSA9PSAncmVtJ3tcbiAgICAgIEByZXR1cm4gKCR2YWx1ZSAvIDFyZW0pICogMTZweFxuICAgIH0gQGVsc2UgaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgICAgQHJldHVybiAkdmFsdWU7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAZXJyb3IgXCJMYSBmdW5jaW9uIHRvUHgoKSBzb2xvIGFjZXB0YSBudW1lcm9zIGVuIGVtIG8gcmVtIG8gcHhcIlxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGVycm9yIFwiTGEgZnVuY2lvbiB0b1B4KCkgc29sbyBhY2VwdGEgbnVtZXJvcyBlbiBlbSBvIHJlbVwiXG4gIH1cbn1cblxuQG1peGluIGZyb20oJGZyb20pe1xuICBAaWYgaXNDb3JlQnJlYWtwb2ludCgkZnJvbSl7XG4gICAgQGlmICRmcm9tID09IHMge1xuICAgICAgQGNvbnRlbnRcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogZ2V0QnJlYWtwb2ludCgkZnJvbSkpeyBAY29udGVudCB9XG4gICAgfVxuICB9IEBlbHNlIGlmIGlzVmFsaWRCcmVha3BvaW50KCRmcm9tKXtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkZnJvbSl7IEBjb250ZW50IH1cbiAgfSBAZWxzZSB7XG4gICAgQGVycm9yICdFbCBtaXhpbiBmcm9tKCkgc29sbyBwdWVkZSByZWNpYmlyIHVuIGJyZWFrcG9pbnQgZGVsIENvcmUgKCN7bWFwLWtleXMoJGJyZWFrcG9pbnRzKX0pIG8gdW4gbsO6bWVybyBlbiBweCwgZW0gbyByZW0nXG4gIH1cbn1cblxuQG1peGluIHRvKCR0byl7XG4gIEBpZiBpc0NvcmVCcmVha3BvaW50KCR0byl7XG4gICAgQGlmICR0byA9PSBzIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH0gQGVsc2Uge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aCA6IGdldEJyZWFrcG9pbnQoJHRvKSkgeyBAY29udGVudCB9XG4gICAgfVxuICB9IEBlbHNlIGlmIGlzVmFsaWRCcmVha3BvaW50KCR0byl7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHRvKXsgQGNvbnRlbnQgfVxuICB9IEBlbHNlIHtcbiAgICBAZXJyb3IgJ0VsIG1peGluIHRvKCkgc29sbyBwdWVkZSByZWNpYmlyIHVuIGJyZWFrcG9pbnQgZGVsIENvcmUgKCN7bWFwLWtleXMoJGJyZWFrcG9pbnRzKX0pIG8gdW4gbsO6bWVybyBlbiBweCwgZW0gbyByZW0nXG4gIH1cbn1cblxuQG1peGluIGZyb21UbygkZnJvbSwkdG8pe1xuICBAaWYgaXNDb3JlQnJlYWtwb2ludCgkZnJvbSkgYW5kIGlzQ29yZUJyZWFrcG9pbnQoJHRvKXtcbiAgICBAaWYgZ2V0QnJlYWtwb2ludCgkdG8pID4gZ2V0QnJlYWtwb2ludCgkZnJvbSkge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IGdldEJyZWFrcG9pbnQoJGZyb20pKSBhbmQgKG1heC13aWR0aCA6IGdldEJyZWFrcG9pbnQoJHRvKSkge1xuICAgICAgICBAY29udGVudFxuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGVycm9yIFwiRWwgc2VndW5kbyBhcmd1bWVudG8gZGVsIG1peGluIGZyb21UbyBkZWJlIHNlciBtYXlvciBxdWUgZWwgcHJpbWVyb1wiXG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgaXNDb3JlQnJlYWtwb2ludCgkZnJvbSkgYW5kIG5vdCBpc0NvcmVCcmVha3BvaW50KCR0byl7XG4gICAgQGlmIGlzVmFsaWRCcmVha3BvaW50KCR0bykge1xuICAgICAgQGlmIHRvUHgoJHRvKSA+IHRvUHgoZ2V0QnJlYWtwb2ludCgkZnJvbSkpIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6IGdldEJyZWFrcG9pbnQoJGZyb20pKSBhbmQgKG1heC13aWR0aCA6ICR0bykge1xuICAgICAgICAgIEBjb250ZW50XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAZXJyb3IgXCJFbCBzZWd1bmRvIGFyZ3VtZW50byBkZWwgbWl4aW4gZnJvbVRvIGRlYmUgc2VyIG1heW9yIHF1ZSBlbCBwcmltZXJvXCJcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBlcnJvciBcIkVsIHNlZ3VuZG8gYXJndW1lbnRvIGRlbCBtaXhpbiBmcm9tVG8oKSBkZWJlIHNlciB1biBicmVha3BvaW50IGRlbCBDb3JlICgje21hcC1rZXlzKCRicmVha3BvaW50cyl9KSBvIHVuIG7Dum1lcm8gZW4gcHgsIGVtIG8gcmVtXCJcbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiBub3QgaXNDb3JlQnJlYWtwb2ludCgkZnJvbSkgYW5kIGlzQ29yZUJyZWFrcG9pbnQoJHRvKSB7XG4gICAgQGlmIGlzVmFsaWRCcmVha3BvaW50KCRmcm9tKSB7XG4gICAgICBAaWYgdG9QeChnZXRCcmVha3BvaW50KCR0bykpID4gdG9QeCgkZnJvbSl7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiAkZnJvbSkgYW5kIChtYXgtd2lkdGggOiBnZXRCcmVha3BvaW50KCR0bykpIHtcbiAgICAgICAgICBAY29udGVudFxuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgQGVycm9yIFwiRWwgc2VndW5kbyBhcmd1bWVudG8gZGVsIG1peGluIGZyb21UbyBkZWJlIHNlciBtYXlvciBxdWUgZWwgcHJpbWVyb1wiXG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBlcnJvciBcIkVsIHByaW1lciBhcmd1bWVudG8gZGVsIG1peGluIGZyb21UbygpIGRlYmUgc2VyIHVuIGJyZWFrcG9pbnQgZGVsIENvcmUgKCN7bWFwLWtleXMoJGJyZWFrcG9pbnRzKX0pIG8gdW4gbsO6bWVybyBlbiBweCwgZW0gbyByZW1cIlxuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmIGlzVmFsaWRCcmVha3BvaW50KCRmcm9tKSBhbmQgaXNWYWxpZEJyZWFrcG9pbnQoJHRvKXtcbiAgICBAaWYgdG9QeCgkdG8pID4gdG9QeCgkZnJvbSkge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6ICRmcm9tKSBhbmQgKG1heC13aWR0aCA6ICR0bykge1xuICAgICAgICBAY29udGVudFxuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGVycm9yIFwiRWwgc2VndW5kbyBhcmd1bWVudG8gZGVsIG1peGluIGZyb21UbyBkZWJlIHNlciBtYXlvciBxdWUgZWwgcHJpbWVyb1wiXG4gICAgfVxuICB9XG5cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnTG9zIGFyZ3VtZW50b3MgZGVsIG1peGluIGZyb21UbygpIGRlYmVuIHNlciBicmVha3BvaW50cyBkZWwgQ29yZSAoI3ttYXAta2V5cygkYnJlYWtwb2ludHMpfSkgbyBuw7ptZXJvcyBlbiBweCwgZW0gbyByZW0nO1xuICB9XG59XG5AbWl4aW4gb3JpZW50YXRpb25Ubygkc2ljZSwkb3JpZW50YXRpb24pe1xuICBAaWYgJG9yaWVudGF0aW9uPT1cImxhbmRzY2FwZVwiIG9yICRvcmllbnRhdGlvbj09XCJwb3J0cmFpdFwie1xuICAgIEBtZWRpYSBhbGwgYW5kKG1heC13aWR0aDogJHNpY2UpIGFuZCAob3JpZW50YXRpb246ICRvcmllbnRhdGlvbikge1xuICAgICAgQGNvbnRlbnRcbiAgICB9XG4gIH1AZWxzZSB7XG4gICAgQGVycm9yIFwibGEgb3JpZW50YWNpb24gZGViZSBkZSBzZXIgJ2xhbmRzY2FwZScgbyAncG9ydHJhaXQnXCJcbiAgfVxufVxuQG1peGluIG9yaWVudGF0aW9uRnJvbSgkc2ljZSwkb3JpZW50YXRpb24pe1xuICBAaWYgJG9yaWVudGF0aW9uPT1cImxhbmRzY2FwZVwiIG9yICRvcmllbnRhdGlvbj09XCJwb3J0cmFpdFwie1xuICAgIEBtZWRpYSBhbGwgYW5kKG1heC13aWR0aDogJHNpY2UpIGFuZCAob3JpZW50YXRpb246ICRvcmllbnRhdGlvbikge1xuICAgICAgQGNvbnRlbnRcbiAgICB9XG4gIH1AZWxzZSB7XG4gICAgQGVycm9yIFwibGEgb3JpZW50YWNpb24gZGViZSBkZSBzZXIgJ2xhbmRzY2FwZScgbyAncG9ydHJhaXQnXCJcbiAgfVxufVxuIiwiLy8gZXN0aWxvIGRlZmF1bHQgZGVsIG1lbnVcclxuQG1peGluIG1lbnVTdHlsZURlZmF1bHQge1xyXG4gIGJhY2tncm91bmQgOiAjZWVlO1xyXG4gIGxpOmhvdmVyIHsgYmFja2dyb3VuZCA6IHJnYmEoIzAwMCwgLjEpICB9XHJcbiAgdWwgICAgICAgeyBiYWNrZ3JvdW5kIDogZGFya2VuKCNlZWUsIDUpIH1cclxuICBhICAgICAgICB7IGNvbG9yICAgICAgOiAjNjY2ICAgICAgICAgICAgfVxyXG59XHJcblxyXG4vLyBlc3RpbG8gbmF2IHBhcmEgZWwgbWVudVxyXG4vLyBpbmNsdXllIGVsIGJyZWFrcG9pbnQgcXVlIGxvIGNhbWJpYSBhIGhvcml6b250YWxcclxuQG1peGluIG1lbnVTdHlsZU5hdigkYnApIHtcclxuICAkYm9yZGVyICAgIDogMXB4IHNvbGlkIHJnYmEoIzAwMCwgLjEpO1xyXG4gIGJhY2tncm91bmQgOiAjRUVFO1xyXG4gIGJvcmRlciAgICAgOiAkYm9yZGVyO1xyXG5cclxuICBsaTpob3ZlciB7IGJhY2tncm91bmQgOiByZ2JhKCMwMDAsIC4xKSAgfVxyXG4gIHVsICAgICAgIHsgYmFja2dyb3VuZCA6IGRhcmtlbigjZWVlLCA1KSB9XHJcbiAgYSAgICAgICAgeyBjb2xvciAgICAgIDogIzY2NiAgICAgICAgICAgIH1cclxuXHJcbiAgbGkge1xyXG4gICAgYm9yZGVyLWJvdHRvbSA6ICRib3JkZXI7XHJcblxyXG4gICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgYm9yZGVyLXJpZ2h0ICA6IG5vbmU7XHJcbiAgICAgIGJvcmRlci1ib3R0b20gOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdWwge1xyXG4gICAgYm9yZGVyIDogJGJvcmRlcjtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIGJvcmRlci1ib3R0b20gOiAkYm9yZGVyO1xyXG5cclxuICAgICAgJjpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbSA6IG5vbmUgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgZnJvbSgkYnApIHtcclxuICAgID4gbGkge1xyXG4gICAgICBib3JkZXItcmlnaHQgIDogMXB4IHNvbGlkIHJnYmEoIzAwMCwgLjEpO1xyXG4gICAgICBib3JkZXItYm90dG9tIDogbm9uZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIGVzdGlsbyBidXR0b24gcGFyYSBlbCBtZW7DulxyXG5AbWl4aW4gbWVudVN5bGVCdXR0b24ge1xyXG4gIGxpIHtcclxuICAgIG1hcmdpbi1ib3R0b20gOiAuNWVtO1xyXG4gICAgbWFyZ2luLXJpZ2h0ICA6IC41ZW07XHJcbiAgfVxyXG5cclxuICBhIHtcclxuICAgIGJvcmRlciAgICAgICAgOiAxcHggc29saWQgcmdiYSgjMDAwLCAuMSk7XHJcbiAgICBiYWNrZ3JvdW5kICAgIDogI0VFRTtcclxuICAgIGxpbmUtaGVpZ2h0ICAgOiAyLjVlbTtcclxuICAgIHBhZGRpbmcgICAgICAgOiAwIDEuNWVtO1xyXG4gICAgYm9yZGVyLXJhZGl1cyA6IDRweDtcclxuICAgIGNvbG9yICAgICAgICAgOiAjNjY2O1xyXG5cclxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kIDogcmdiYSgjMDAwLCAuMSkgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gbWl4aW4gcXVlIGNvbnN0cnV5ZSBlbCBtZW7DuiBzaW4gdW4gdGVtYSwgc29sbyBtYXF1ZXRhXHJcbi8vIHJlY2liZSBlbCBicmVha3BvaW50IGVuIHF1ZSBzZSB2dWVsdmUgaG9yaXpvbnRhbFxyXG4vLyB5IGVsIGVzdGlsbyAob3BjaW9uYWwpOiBkZWZhdWx0fG5hdnxidXR0b25cclxuQG1peGluIGVkTWVudSgkYnAsJHN0eWxlOm51bGwpIHtcclxuICB3aWR0aCA6IDEwMCU7XHJcblxyXG4gICYsIHVsIHtcclxuICAgIG1hcmdpbi10b3AgICAgOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbSA6IDA7XHJcbiAgICBwYWRkaW5nLWxlZnQgIDogMDtcclxuICAgIGxpc3Qtc3R5bGUgICAgOiBub25lO1xyXG4gIH1cclxuXHJcbiAgbGkge1xyXG4gICAgcG9zaXRpb24gICA6IHJlbGF0aXZlO1xyXG4gICAgbGlzdC1zdHlsZSA6IG5vbmU7XHJcbiAgICBmbGV4ICAgICAgIDogYXV0bztcclxuXHJcbiAgICAvLyBTaSBlcyBwYWRyZSBkZSB1biBzdWJtZW51XHJcbiAgICAmLnBhcmVudC1zdWJtZW51IHtcclxuICAgICAgZGlzcGxheSA6IGZsZXg7XHJcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuXHJcbiAgICAgIGEgeyBmbGV4OiBhdXRvIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vc3VibWVudXNcclxuICB1bCB7XHJcbiAgICBkaXNwbGF5ICA6IG5vbmU7XHJcblxyXG4gICAgJi5zaG93LXN1Ym1lbnUge1xyXG4gICAgICBkaXNwbGF5IDogYmxvY2s7XHJcbiAgICAgIHdpZHRoIDogMTAwJTtcclxuICAgICAgb3JkZXI6IDM7XHJcbiAgICAgIG1hcmdpbi1sZWZ0IDogMWVtO1xyXG4gICAgICBtYXJnaW4tYm90dG9tIDogLjVlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGEge1xyXG4gICAgZGlzcGxheSAgICAgOiBibG9jaztcclxuICAgIGxpbmUtaGVpZ2h0IDogM2VtO1xyXG4gICAgcGFkZGluZyAgICAgOiAwIDFlbTtcclxuXHJcbiAgICAmOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uIDogbm9uZSB9XHJcbiAgfVxyXG5cclxuICAvLyBjYW1iaW8gYSBob3Jpem9udGFsXHJcbiAgQGluY2x1ZGUgZnJvbSgkYnApIHtcclxuICAgIGRpc3BsYXkgICAgIDogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zIDogY2VudGVyO1xyXG5cclxuICAgIGEgeyB0ZXh0LWFsaWduIDogY2VudGVyIH1cclxuXHJcbiAgICAvLyBPY3VsdGFyIGVsIGJvdMOzbiBkZSBleHBhbmRpciBlbiBob3Jpem9udGFsXHJcbiAgICAuZXhwYW5kIHsgZGlzcGxheSA6IG5vbmV9XHJcblxyXG4gICAgdWwge1xyXG4gICAgICBwb3NpdGlvbiAgICA6IGFic29sdXRlO1xyXG4gICAgICB0b3AgICAgICAgICA6IDEwMCU7XHJcbiAgICAgIG1pbi13aWR0aCAgIDogMTAwJTtcclxuICAgICAgd2hpdGUtc3BhY2UgOiBub3dyYXA7XHJcblxyXG4gICAgICBhIHsgdGV4dC1hbGlnbiA6IGxlZnQgfVxyXG5cclxuICAgICAgdWwge1xyXG4gICAgICAgIHRvcCAgOiAwO1xyXG4gICAgICAgIGxlZnQgOiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbW9zdHJhciBzdWJtZW51XHJcbiAgICBsaTpob3ZlciA+IHVsIHsgZGlzcGxheSA6IGJsb2NrIH1cclxuICB9XHJcblxyXG4gIC8vIGV4cGFuZCBzdWJtZW51IGJ1dHRvblxyXG4gIC5leHBhbmQtc3VibWVudSB7XHJcbiAgICAkc2l6ZTogM2VtO1xyXG4gICAgcG9zaXRpb24gOiByZWxhdGl2ZTtcclxuICAgIHJpZ2h0IDogMDtcclxuICAgIHdpZHRoIDogJHNpemU7XHJcbiAgICBoZWlnaHQgOiAkc2l6ZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIEBpbmNsdWRlIGhpZGVGcm9tKCRicCk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xyXG5cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgcG9zaXRpb24gOiBhYnNvbHV0ZTtcclxuICAgICAgd2lkdGggOiA0MCU7XHJcbiAgICAgIGhlaWdodCA6IDQwJTtcclxuICAgICAgdG9wIDogMjAlO1xyXG4gICAgICBsZWZ0IDogMzAlO1xyXG4gICAgICBib3JkZXItbGVmdCA6ICgkc2l6ZSAqIDAuMTUpIHNvbGlkICM2NjY7XHJcbiAgICAgIGJvcmRlci1ib3R0b20gOiAoJHNpemUgKiAwLjE1KSBzb2xpZCAjNjY2O1xyXG4gICAgICBib3JkZXItcmFkaXVzIDogKCRzaXplICogMC4wOCk7XHJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XHJcbiAgICAgIHRyYW5zaXRpb246IGFsbCAuM3M7XHJcbiAgICB9XHJcblxyXG4gICAgJi5hY3RpdmUge1xyXG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gaW5jbHVpciBlbCBlc3RpbG8gZGVsIG1lbnUgc2kgc2UgaGEgZGVmaW5pZG9cclxuICBAaWYgJHN0eWxlID09IGRlZmF1bHQgeyBAaW5jbHVkZSBtZW51U3R5bGVEZWZhdWx0ICB9XHJcbiAgQGlmICRzdHlsZSA9PSBuYXYgICAgIHsgQGluY2x1ZGUgbWVudVN0eWxlTmF2KCRicCkgfVxyXG4gIEBpZiAkc3R5bGUgPT0gYnV0dG9uICB7IEBpbmNsdWRlIG1lbnVTeWxlQnV0dG9uICAgIH1cclxuXHJcbiAgLy8gY29tcGlsYXIgbG9zIG1peGlucyBlbiBtb2RvIENTU1xyXG4gIEBpZiAkY3NzQ29yZSA9PSB0cnVlIHtcclxuICAgICYuZGVmYXVsdCAgICB7IEBpbmNsdWRlIG1lbnVTdHlsZURlZmF1bHQgIH1cclxuICAgICYubmF2LWJhciAgICB7IEBpbmNsdWRlIG1lbnVTdHlsZU5hdigkYnApIH1cclxuICAgICYuYnV0dG9uLWJhciB7IEBpbmNsdWRlIG1lbnVTeWxlQnV0dG9uICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIG1peGluIE5hdiAocGFyYSBlbCBjb250ZW5lZG9yIGRlbCBtZW7DuilcclxuQG1peGluIGVkTmF2KCRkaXJlY3Rpb24sICRicCl7XHJcbiAgQGluY2x1ZGUgdG8oJGJwKSB7XHJcbiAgICAkbHJXaWR0aCA6IDg1JTtcclxuICAgIHBvc2l0aW9uICAgOiBmaXhlZDtcclxuICAgIHRyYW5zaXRpb24gOiBhbGwgLjNzO1xyXG4gICAgaGVpZ2h0ICAgICA6IDEwMHZoO1xyXG4gICAgei1pbmRleCAgICA6IDIwMDtcclxuXHJcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IG9yICRkaXJlY3Rpb24gPT0gcmlnaHQge1xyXG4gICAgICB3aWR0aCA6ICRscldpZHRoO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIHdpZHRoIDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcclxuICAgICAgbGVmdCA6ICRscldpZHRoICogLTE7XHJcblxyXG4gICAgICAmLnNob3ctbWVudSB7IGxlZnQgOiAwIH1cclxuICAgIH1cclxuXHJcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XHJcbiAgICAgIHJpZ2h0IDogJGxyV2lkdGggKiAtMTtcclxuXHJcbiAgICAgICYuc2hvdy1tZW51IHsgcmlnaHQgOiAwIH1cclxuICAgIH1cclxuXHJcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB0b3Age1xyXG4gICAgICB0b3AgOiAtMTAwJTtcclxuXHJcbiAgICAgICYuc2hvdy1tZW51IHsgdG9wIDogMCB9XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gYm90dG9tIHtcclxuICAgICAgYm90dG9tIDogLTEwMCU7XHJcblxyXG4gICAgICAmLnNob3ctbWVudSB7IGJvdHRvbSA6IDAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbkBtaXhpbiBuYXZUb2dnbGUoJHNpemUsICRjb2xvcikge1xyXG4gICRzZWdtZW50SGVpZ2h0IDogKCRzaXplIC8gOCk7XHJcbiAgcG9zaXRpb24gICAgICAgOiByZWxhdGl2ZTtcclxuICB6LWluZGV4ICAgICAgICA6IDMwMDtcclxuICB3aWR0aCAgICAgICAgICA6ICRzaXplICogMS4zO1xyXG4gIGhlaWdodCAgICAgICAgIDogJHNpemU7XHJcbiAgYm94LXNoYWRvdyAgICAgOiAwICgkc2VnbWVudEhlaWdodCAqIDIpICRjb2xvciBpbnNldDtcclxuICBjdXJzb3IgICAgICAgICA6IHBvaW50ZXI7XHJcblxyXG4gICY6OmFmdGVyLFxyXG4gICY6OmJlZm9yZSB7XHJcbiAgICBjb250ZW50ICAgICAgICAgIDogXCJcIjtcclxuICAgIHBvc2l0aW9uICAgICAgICAgOiBhYnNvbHV0ZTtcclxuICAgIHdpZHRoICAgICAgICAgICAgOiAxMDAlO1xyXG4gICAgaGVpZ2h0ICAgICAgICAgICA6ICgkc2VnbWVudEhlaWdodCAqIDIpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvciA6ICRjb2xvcjtcclxuICAgIGJvdHRvbSAgICAgICAgICAgOiAwO1xyXG4gIH1cclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgYm90dG9tIDogJHNlZ21lbnRIZWlnaHQgKiAzO1xyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gc2hvd0Zyb20oJGJwKXtcclxuICBAaW5jbHVkZSB0bygkYnApe1xyXG4gICAgZGlzcGxheSA6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gc2hvd1RvKCRicCl7XHJcbiAgQGluY2x1ZGUgZnJvbSgkYnApe1xyXG4gICAgZGlzcGxheSA6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gaGlkZUZyb20oJGJwKXtcclxuICBAaW5jbHVkZSBmcm9tKCRicCl7XHJcbiAgICBkaXNwbGF5IDogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBoaWRlVG8oJGJwKXtcclxuICBAaW5jbHVkZSB0bygkYnApe1xyXG4gICAgZGlzcGxheSA6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBWZXJzaW9uIGNzc1xyXG5AbWl4aW4gdmlzaWJpbGl0eSB7XHJcbiAgQGVhY2ggJHNpemUsICRzY3JlZW5TaXplIGluICRicmVha3BvaW50cyB7XHJcbiAgICAuZnJvbS0jeyRzaXplfSB7IEBpbmNsdWRlIHNob3dGcm9tKCRzaXplKSB9XHJcbiAgICAudG8tI3skc2l6ZX0geyBAaW5jbHVkZSBzaG93VG8oJHNpemUpIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIHBhZGRpbmcoJG51bWVybzoxKXtcclxuICBwYWRkaW5nLWxlZnQgIDogJGd1dHRlciAqICRudW1lcm87XHJcbiAgcGFkZGluZy1yaWdodCA6ICRndXR0ZXIgKiAkbnVtZXJvO1xyXG59XHJcblxyXG5AbWl4aW4gbm9QYWRkaW5nQ29udGFpbmVyKCl7XHJcbiAgPiAuI3skaXRlbX0geyBAaW5jbHVkZSBwYWRkaW5nKDApIH1cclxufVxyXG5cclxuQG1peGluIHJhdGlvKCRoLCR2KSB7XHJcbiAgJHdpZHRoICAgICAgICAgOiAxMDAlO1xyXG4gIHdpZHRoICAgICAgICAgIDogJHdpZHRoO1xyXG4gIGhlaWdodCAgICAgICAgIDogMDtcclxuICBvdmVyZmxvdyAgICAgICA6IGhpZGRlbjtcclxuICBwYWRkaW5nLWJvdHRvbSA6ICR3aWR0aCAqICgkdi8kaCk7XHJcbn1cclxuXHJcbkBtaXhpbiBjbGVhcmZpeCB7XHJcbiAgJjpiZWZvcmUsXHJcbiAgJjphZnRlciB7XHJcbiAgICBjb250ZW50IDogXCJcIjtcclxuICAgIHdpZHRoICAgOiAxMDAlO1xyXG4gICAgZGlzcGxheSA6IHRhYmxlO1xyXG4gICAgY2xlYXIgICA6IGJvdGg7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gdG9SaWdodCgkd2lkdGg6YXV0bywkbWFyZ2luLWxlZnQ6MWVtKXtcclxuICBmbG9hdCAgICAgICA6IHJpZ2h0O1xyXG4gIHdpZHRoICAgICAgIDogJHdpZHRoO1xyXG4gIG1hcmdpbi1sZWZ0IDogJG1hcmdpbi1sZWZ0O1xyXG59XHJcblxyXG5AbWl4aW4gdG9MZWZ0KCR3aWR0aDphdXRvLCRtYXJnaW4tcmlnaHQ6MWVtKXtcclxuICBmbG9hdCAgICAgICAgOiBsZWZ0O1xyXG4gIHdpZHRoICAgICAgICA6ICR3aWR0aDtcclxuICBtYXJnaW4tcmlnaHQgOiAkbWFyZ2luLXJpZ2h0O1xyXG59XHJcblxyXG5AbWl4aW4gdG9DZW50ZXIoJHdpZHRoOmF1dG8pe1xyXG4gIGRpc3BsYXkgICAgICA6IHRhYmxlO1xyXG4gIHdpZHRoICAgICAgICA6ICR3aWR0aDtcclxuICBtYXJnaW4tbGVmdCAgOiBhdXRvO1xyXG4gIG1hcmdpbi1yaWdodCA6IGF1dG87XHJcbiAgdGV4dC1hbGlnbiAgIDogY2VudGVyO1xyXG59XHJcblxyXG5AbWl4aW4gY2lyY2xlIHsgYm9yZGVyLXJhZGl1cyA6IDUwJSB9XHJcblxyXG5AbWl4aW4gY2xlYXJmaXgoKXtcclxuICAmOmJlZm9yZSwgJjphZnRlciB7XHJcbiAgICBjb250ZW50IDogXCJcIjtcclxuICAgIGRpc3BsYXkgOiB0YWJsZTtcclxuICAgIHdpZHRoICAgOiAxMDAlO1xyXG4gICAgY2xlYXIgICA6IGJvdGg7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZnVsbCgpe1xyXG4gIHdpZHRoICAgICA6IDEwMCU7XHJcbiAgbWF4LXdpZHRoIDogMTAwJTtcclxuICBjbGVhciAgICAgOiBib3RoO1xyXG59XHJcblxyXG5AbWl4aW4gc3RpY2t5Rm9vdGVyIHtcclxuICBAYXQtcm9vdCB7XHJcbiAgICBib2R5IHtcclxuICAgICAgZGlzcGxheSAgICAgICAgOiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbiA6IGNvbHVtbjtcclxuICAgICAgbWluLWhlaWdodCAgICAgOiAxMDB2aDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hcmdpbi10b3AgOiBhdXRvO1xyXG59XHJcblxyXG5AbWl4aW4gY3NzU3R5Y2t5Rm9vdGVyIHtcclxuICBkaXNwbGF5ICAgICAgICA6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb24gOiBjb2x1bW47XHJcbiAgbWluLWhlaWdodCAgICAgOiAxMDB2aDtcclxuXHJcbiAgPiBmb290ZXIgeyBtYXJnaW4tdG9wIDogYXV0byB9XHJcbn1cclxuXHJcbi8vIFZlcnNpb25lcyBDU1NcclxuQG1peGluIGhlbHBlcnMge1xyXG4gIC50by1jZW50ZXIgICAgICAgICAgICAgICAgeyBAaW5jbHVkZSB0b0NlbnRlcigpICAgICAgICAgICB9XHJcbiAgLnRvLWxlZnQgICAgICAgICAgICAgICAgICB7IEBpbmNsdWRlIHRvTGVmdCgpICAgICAgICAgICAgIH1cclxuICAudG8tcmlnaHQgICAgICAgICAgICAgICAgIHsgQGluY2x1ZGUgdG9SaWdodCgpICAgICAgICAgICAgfVxyXG4gIC5mdWxsICAgICAgICAgICAgICAgICAgICAgeyBAaW5jbHVkZSBmdWxsKCkgICAgICAgICAgICAgICB9XHJcbiAgLmNpcmNsZSAgICAgICAgICAgICAgICAgICB7IEBpbmNsdWRlIGNpcmNsZSgpICAgICAgICAgICAgIH1cclxuICAuY2xlYXJmaXggICAgICAgICAgICAgICAgIHsgQGluY2x1ZGUgY2xlYXJmaXgoKSAgICAgICAgICAgfVxyXG4gIC5uby1wYWRkaW5nLiN7JGNvbnRhaW5lcn0geyBAaW5jbHVkZSBub1BhZGRpbmdDb250YWluZXIoKSB9XHJcbiAgLm5vLXBhZGRpbmcuI3skaXRlbX0gICAgICB7IEBpbmNsdWRlIHBhZGRpbmcoMCkgICAgICAgICAgIH1cclxuICAucGFkZGluZyAgICAgICAgICAgICAgICAgIHsgQGluY2x1ZGUgcGFkZGluZygxKSAgICAgICAgICAgfVxyXG4gIC5wYWRkaW5nLTIgICAgICAgICAgICAgICAgeyBAaW5jbHVkZSBwYWRkaW5nKDIpICAgICAgICAgICB9XHJcbiAgLnBhZGRpbmctMyAgICAgICAgICAgICAgICB7IEBpbmNsdWRlIHBhZGRpbmcoMykgICAgICAgICAgIH1cclxuICBib2R5LnN0aWNreS1mb290ZXIgICAgICAgIHsgQGluY2x1ZGUgY3NzU3R5Y2t5Rm9vdGVyKCkgICAgfVxyXG59XHJcblxyXG4iLCIvLyBWaWRlb3MgcmVzcG9uc2l2ZVxyXG5AbWl4aW4gZWRWaWRlbyAoJHZpZGVvOiBudWxsKSB7XHJcbiAgaGVpZ2h0ICAgICAgICAgOiAwO1xyXG4gIG92ZXJmbG93ICAgICAgIDogaGlkZGVuO1xyXG4gIHBhZGRpbmctYm90dG9tIDogNTYuMjUlO1xyXG4gIHBvc2l0aW9uICAgICAgIDogcmVsYXRpdmU7XHJcblxyXG4gIEBpZiAkdmlkZW8gIT0gbnVsbCB7XHJcbiAgICAjeyR2aWRlb30ge1xyXG4gICAgICBwb3NpdGlvbiA6IGFic29sdXRlO1xyXG4gICAgICB0b3AgICAgICA6IDA7XHJcbiAgICAgIGxlZnQgICAgIDogMDtcclxuICAgICAgd2lkdGggICAgOiAxMDAlO1xyXG4gICAgICBoZWlnaHQgICA6IDEwMCU7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA+IGlmcmFtZSxcclxuICAgID4gdmlkZW9cclxuICAgID4gLnZpZGVvIHtcclxuICAgICAgcG9zaXRpb24gOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wICAgICAgOiAwO1xyXG4gICAgICBsZWZ0ICAgICA6IDA7XHJcbiAgICAgIHdpZHRoICAgIDogMTAwJTtcclxuICAgICAgaGVpZ2h0ICAgOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAaW1wb3J0IFwiZWQtZ3JpZC9lZC1ncmlkXCI7XG4uY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZWRDb250YWluZXI7XG4gIG1heC13aWR0aDogODAwcHg7XG4gIGhlaWdodCAgICAgICAgIDogMDtcbiAgb3ZlcmZsb3cgICAgICAgOiBoaWRkZW47XG4gIHBhZGRpbmctYm90dG9tIDogNDAwcHg7XG4gIHBvc2l0aW9uICAgICAgIDogcmVsYXRpdmU7XG4gID4gaWZyYW1lIHtcbiAgICBwb3NpdGlvbiA6IGFic29sdXRlO1xuICAgIHRvcCAgICAgIDogMDtcbiAgICBsZWZ0ICAgICA6IDA7XG4gICAgd2lkdGggICAgOiAxMDAlO1xuICAgIGhlaWdodCAgIDogMTAwJTtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cbn1cbiJdfQ== */
