article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
video {
  display: inline-block;
  *display: inline;
  zoom: 1;
}
audio:not([controls]) {
  display: none;
}
[hidden] {
  display: none;
}
html {
  font-size: 100%;
  overflow-y: scroll;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}
html,
button,
input,
select,
textarea {
  font-family: sans-serif;
}
body {
  margin: 0;
}
a:focus {
  outline: none;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
h2 {
  font-size: 1.5em;
  margin: 0.83em 0;
}
h3 {
  font-size: 1.17em;
  margin: 1em 0;
}
h4 {
  font-size: 1em;
  margin: 1.33em 0;
}
h5 {
  font-size: 0.83em;
  margin: 1.67em 0;
}
h6 {
  font-size: 0.75em;
  margin: 2.33em 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
blockquote {
  margin: 1px 40px;
}
dfn {
  font-style: italic;
}
mark {
  background: #ff0;
  color: #000;
}
p,
pre {
  margin: 1em 0;
}
pre,
code,
kbd,
samp {
  font-family: monospace, serif;
  _font-family: 'courier new', monospace;
  font-size: 1em;
}
pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word;
}
q {
  quotes: none;
}
q:before,
q:after {
  content: '';
  content: none;
}
small {
  font-size: 75%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
dl,
menu,
ol,
ul {
  margin: 1em 0;
}
dd {
  margin: 0 0 0 40px;
}
menu,
ol,
ul {
  padding: 0 0 0 40px;
}
nav ul,
nav ol {
  list-style: none;
  list-style-image: none;
}
img {
  border: 0;
  -ms-interpolation-mode: bicubic;
}
svg:not(:root) {
  overflow: hidden;
}
img,
iframe,
object,
embed {
  vertical-align: middle;
}
figure {
  margin: 0;
}
form {
  margin: 0;
}
fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}
button,
input,
select,
textarea {
  font-size: 100%;
  margin: 0;
  vertical-align: baseline;
  *vertical-align: middle;
  box-sizing: content-box;
  outline: none;
  box-shadow: none;
}
button,
input {
  line-height: normal;
}
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
  cursor: pointer;
  -webkit-appearance: button;
  *overflow: visible;
}
button[disabled],
input[disabled] {
  cursor: default;
}
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
  *height: 13px;
  *width: 13px;
}
input[type="search"] {
  -webkit-appearance: textfield;
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
  -webkit-appearance: none;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
  vertical-align: top;
  resize: vertical;
}
label {
  cursor: default;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
caption {
  text-align: left;
  caption-side: top;
}
th {
  text-align: left;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
video {
  display: inline-block;
  *display: inline;
  zoom: 1;
}
audio:not([controls]) {
  display: none;
}
[hidden] {
  display: none;
}
html {
  font-size: 100%;
  overflow-y: scroll;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}
html,
button,
input,
select,
textarea {
  font-family: sans-serif;
}
body {
  margin: 0;
}
a:focus {
  outline: none;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
h2 {
  font-size: 1.5em;
  margin: 0.83em 0;
}
h3 {
  font-size: 1.17em;
  margin: 1em 0;
}
h4 {
  font-size: 1em;
  margin: 1.33em 0;
}
h5 {
  font-size: 0.83em;
  margin: 1.67em 0;
}
h6 {
  font-size: 0.75em;
  margin: 2.33em 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
blockquote {
  margin: 1px 40px;
}
dfn {
  font-style: italic;
}
mark {
  background: #ff0;
  color: #000;
}
p,
pre {
  margin: 1em 0;
}
pre,
code,
kbd,
samp {
  font-family: monospace, serif;
  _font-family: 'courier new', monospace;
  font-size: 1em;
}
pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word;
}
q {
  quotes: none;
}
q:before,
q:after {
  content: '';
  content: none;
}
small {
  font-size: 75%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
dl,
menu,
ol,
ul {
  margin: 1em 0;
}
dd {
  margin: 0 0 0 40px;
}
menu,
ol,
ul {
  padding: 0 0 0 40px;
}
nav ul,
nav ol {
  list-style: none;
  list-style-image: none;
}
img {
  border: 0;
  -ms-interpolation-mode: bicubic;
}
svg:not(:root) {
  overflow: hidden;
}
img,
iframe,
object,
embed {
  vertical-align: middle;
}
figure {
  margin: 0;
}
form {
  margin: 0;
}
fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}
button,
input,
select,
textarea {
  font-size: 100%;
  margin: 0;
  vertical-align: baseline;
  *vertical-align: middle;
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  outline: none;
  -webkit-box-shadow: none;
  box-shadow: none;
}
button,
input {
  line-height: normal;
}
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
  cursor: pointer;
  -webkit-appearance: button;
  *overflow: visible;
}
button[disabled],
input[disabled] {
  cursor: default;
}
input[type="checkbox"],
input[type="radio"] {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding: 0;
  *height: 13px;
  *width: 13px;
}
input[type="search"] {
  -webkit-appearance: textfield;
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
  -webkit-appearance: none;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
  vertical-align: top;
  resize: vertical;
}
label {
  cursor: default;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
caption {
  text-align: left;
  caption-side: top;
}
th {
  text-align: left;
}
/*
 * Typo
 */
body {
  font: normal 14px/1.714 'Roboto', Arial, Helvetica, sans-serif;
  font-weight: 300;
  letter-spacing: 0.005em;
  color: #000;
  overflow-x: hidden;
}
h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  font-family: 'Roboto', Arial, Helvetica, sans-serif;
  font-weight: 400;
  margin: 1.5em 0 0.5em;
}
h1,
.h1 {
  font-size: 30px;
  line-height: 40px;
  margin-top: 0;
}
@media (min-width: 750px) {
  h1,
  .h1 {
    font-size: 45px;
    line-height: 52px;
  }
}
h2,
.h2 {
  font-size: 20px;
  line-height: 34px;
}
@media (min-width: 750px) {
  h2,
  .h2 {
    font-size: 34px;
    line-height: 42px;
  }
}
h3,
.h3 {
  font-size: 18px;
  line-height: 26px;
}
@media (min-width: 750px) {
  h3,
  .h3 {
    font-size: 24px;
    line-height: 32px;
  }
}
h4,
.h4 {
  font-size: 16px;
  line-height: 24px;
}
@media (min-width: 750px) {
  h4,
  .h4 {
    font-size: 20px;
    line-height: 30px;
  }
}
h5,
.h5 {
  font-size: 16px;
  line-height: 24px;
  font-weight: 500;
}
h6,
.h6 {
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
}
h6.alternate,
.h6.alternate {
  font-size: 16px;
  font-weight: 300;
}
p {
  margin: 0 0 1.25em;
}
p.alternate {
  font-size: 12px;
  line-height: 22px;
}
hr {
  border: none;
  border-top: 1px solid #ddd;
  margin: 40px 0;
  height: 1px;
  overflow: hidden;
}
blockquote {
  margin: 0 0 1.25em;
  padding: 0;
  font-size: 12px;
  line-height: 22px;
  font-weight: 300;
}
blockquote p {
  margin: 0;
}
a {
  color: #4386fc;
  text-decoration: underline;
  -webkit-transition: color 0.3s;
  -moz-transition: color 0.3s;
  -o-transition: color 0.3s;
  -ms-transition: color 0.3s;
  transition: color 0.3s;
}
.no-touch a:hover {
  color: #000;
}
ul,
ol {
  margin: 0 0 1.25em;
  list-style: none;
  padding: 0;
}
li {
  padding: 0 0 0 20px;
  margin: 0 0 6px;
}
li:last-child {
  margin-bottom: 0;
}
li ol,
li ul {
  margin: 0.25em 0 0;
}
ul li {
  position: relative;
}
ul li:before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 6px;
  height: 6px;
  border-radius: 2px;
  background-color: #b4cad9;
}
ol {
  counter-reset: item;
}
ol li {
  background: none;
  position: relative;
}
ol li:before {
  content: counter(item) ".";
  counter-increment: item;
  position: absolute;
  left: 0;
  top: 0;
  font-weight: bold;
  text-align: left;
}
dl {
  margin: 0 0 1.25em;
}
dt {
  font-weight: bold;
  margin: 0;
}
dd {
  margin: 0 0 0.75em;
  padding: 0;
}
table {
  width: 100%;
  clear: both;
  margin: 0 0 1.25em;
  empty-cells: show;
  border-collapse: collapse;
  border: 1px solid #ddd;
}
caption {
  font-weight: bold;
  text-align: left;
  padding: 0px 0px 10px;
  caption-side: top;
}
td,
th {
  vertical-align: top;
  padding: 7px 8px;
  border: 1px solid #ddd;
}
th {
  font-weight: bold;
}
thead th {
  background: #eee;
}
b,
strong {
  font-weight: 500;
}
img.l {
  margin: 0.25em 20px 20px 0;
}
img.r {
  margin: 0.25em 0 20px 20px;
}
@media (max-width: 1319px) {
  img {
    max-width: 100%;
    height: auto;
  }
}
/*
 *	Simply fast class
 */
.reset {
  border: none;
  margin: 0;
  padding: 0;
  background: none;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.reset td,
.reset th {
  border: none;
  background: none;
  padding: 0;
}
.reset > li,
.reset > dt,
.reset > dd {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  float: none;
  width: auto;
}
.l {
  float: left;
}
.r {
  float: right;
}
.cb {
  clear: both;
}
.cl {
  clear: left;
}
.cr {
  clear: right;
}
.cfx {
  zoom: 1;
}
.cfx:after,
.cfx:before {
  content: '';
  display: table;
  clear: both;
}
.break {
  height: 1px;
  font-size: 1px;
  line-height: 1px;
  clear: both;
  overflow: hidden;
  visibility: hidden;
  display: block;
  margin: 0 !important;
  padding: 0 !important;
  width: 100%;
}
.ctx {
  zoom: 1;
  display: table-cell;
}
.ie7 .ctx {
  display: block;
}
.ctx:after {
  clear: both;
  display: block;
  visibility: hidden;
  overflow: hidden;
  height: 0px !important;
  line-height: 0px;
  font-size: xx-large;
  content: " x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x ";
}
.hide,
.js .jsHide {
  display: none;
}
.out,
.js .jsOut {
  position: absolute;
  left: -5000px;
  top: -5000px;
}
.vhide {
  position: absolute;
  height: 1px;
  width: 1px;
  overflow: hidden;
  border: 0;
  clip: rect(0 0 0 0);
  margin: -1px;
  padding: 0;
}
.left {
  text-align: left;
}
.right {
  text-align: right;
}
.center {
  text-align: center;
}
.lower {
  text-transform: lowercase;
}
.upper {
  text-transform: uppercase;
}
.bold {
  font-weight: bold;
}
.thin {
  font-weight: normal;
}
.medium {
  font-weight: 500;
}
.thinner {
  font-weight: 300;
}
.italic {
  font-style: italic;
}
.normal {
  font-style: normal;
}
.top {
  vertical-align: top;
}
.middle {
  vertical-align: middle;
}
.big {
  font-size: 16px;
}
.small {
  font-size: 12px;
}
.error,
.red {
  color: #f02020;
}
.green {
  color: #5fbb2e;
}
.gray {
  color: #8c9aa4;
}
.nowrap {
  white-space: nowrap;
}
.pos-rel {
  position: relative;
}
@media (max-width: 749px) {
  .mobile-hide {
    display: none;
  }
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: bold;
  line-height: 1.2;
}
h1 {
  font-size: 22pt;
  margin: 0 0 0.5cm;
}
h2 {
  font-size: 18pt;
  margin: 0.75cm 0 0.2cm;
}
h3 {
  font-size: 14pt;
  margin: 0.5cm 0 0.15cm;
}
h4,
h5,
h6 {
  font-size: 12pt;
  margin: 1cm 0 0.5cm;
}
blockquote {
  padding-left: 0;
  padding-right: 0;
  margin: 0.5cm 0;
}
table {
  margin: 15px 1pt 35px;
  text-align: left;
  border-collapse: collapse;
  width: 98% !important;
  font-size: 8pt;
}
tr {
  page-break-inside: avoid;
}
th,
td {
  border: 1pt solid #000;
  padding: 4px 10px 4px 10px;
}
th {
  font-weight: bold;
}
.menu-main,
.menu-accessibility,
.menu-breadcrumb,
.menu-top,
.menu-mobile,
.menu-side,
form,
.tab-nav,
.btn,
.button,
.more,
.paging,
.pager,
.prev,
.next {
  display: none;
}
.header {
  border-bottom: 2pt solid #000;
  padding: 0 0 20pt;
  margin: 0 auto 20pt;
}
.logo {
  font-size: 100%;
  line-height: 1;
  margin: 0;
  padding: 0;
  font-weight: normal;
}
.logo img {
  border: none;
}
.footer {
  border-top: 2pt solid #000;
  padding: 20pt 0 0;
  margin: 20pt 0 0;
}
body {
  width: 100% !important;
  font-family: arial, Verdana, sans-serif;
  color: #000;
  background: none;
  font-size: 8pt;
  line-height: 12pt;
}
.reset {
  border: none;
  margin: 0;
  padding: 0;
  background: none;
}
.reset td,
.reset th {
  border: none;
  background: none;
  padding: 0;
}
.reset > li,
.reset > dt,
.reset > dd {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  font-weight: inherit;
  float: none;
  display: inherit;
  text-align: inherit;
  width: auto;
}
fieldset {
  border: none;
  padding: 0;
  margin: 0;
}
p,
ul,
table {
  margin: 0 0 0.4cm;
}
a {
  color: #000;
  text-decoration: none;
}
img {
  border: none;
  max-width: 100%;
  height: auto !important;
}
img.left,
img.l,
img.right,
img.r {
  margin: 4px 0 30px 29px;
  float: right;
  display: inline;
  background: #fff;
}
img.left,
img.l {
  float: left;
  margin: 4px 29px 30px 0;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJhc2Uvbm9ybWFsaXplLnN0eWwiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmliL2xpYi9uaWIvZmxleC5zdHlsIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25pYi9saWIvbmliL2JvcmRlci5zdHlsIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25pYi9saWIvbmliL3ZlbmRvci5zdHlsIiwiLi4vLi4vbm9kZV9tb2R1bGVzL25pYi9saWIvbmliL292ZXJmbG93LnN0eWwiLCJiYXNlL3R5cG9ncmFwaHkuc3R5bCIsImJhc2UvbWl4aW5zLnN0eWwiLCIuLi8uLi9ub2RlX21vZHVsZXMvbmliL2xpYi9uaWIvYm9yZGVyLXJhZGl1cy5zdHlsIiwiYmFzZS91dGlsaXRpZXMuc3R5bCIsInByaW50L3R5cG9ncmFwaHkuc3R5bCIsInByaW50L2hpZGUuc3R5bCIsInByaW50L2xheW91dC5zdHlsIiwicHJpbnQuc3R5bCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VDUUksU0FBUyxNQUFUOztBREpKO0FBQ0E7QUFDQTtFQ0VJLFNBQVMsYUFBVDtFREFGLFVBQVEsT0FBUjtFQUNELE1BQUssRUFBTDs7QUFHRDtFQ0pJLFNBQVMsS0FBVDs7QURTSjtFQ1RJLFNBQVMsS0FBVDs7QURzQko7RUFDQyxXQUFVLEtBQVY7RUFDQSxZQUFXLE9BQVg7RUFDQSwwQkFBeUIsS0FBekI7RUFDQSxzQkFBcUIsS0FBckI7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNDLGFBQVksV0FBWjs7QUFHRDtFQUNDLFFBQU8sRUFBUDs7QUFPRDtFQUNDLFNBQVEsS0FBUjs7QUFRRDtFQUNDLFdBQVUsSUFBVjtFQUNBLFFBQU8sU0FBUDs7QUFFRDtFQUNDLFdBQVUsTUFBVjtFQUNBLFFBQU8sU0FBUDs7QUFFRDtFQUNDLFdBQVUsT0FBVjtFQUNBLFFBQU8sTUFBUDs7QUFFRDtFQUNDLFdBQVUsSUFBVjtF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LEtBQU47RVhQRSxTQUFTLFFBQVQ7RVdTRixZQUFXLFFBQVg7RUFDQSxPQUFNLEtBQU47O0FBRUY7RVZ6QkksUUFBUSxLQUFSO0VVMkJILFNBQVEsRUFBUjtFQUNBLFFBQU8sRUFBUDs7QUFFRDtBQUNBO0FBQ0E7RUFDQyxRQUFPLFVBQVA7O0FBQ0Q7RUFDQyxPQUFNLEtBQU47RUFDQSxpQkFBZ0IsS0FBaEI7O0FBRUQ7RVZ0Q0ksUUFBUSxLQUFSO0VVd0NILFdBQVUsS0FBVjtFQUNBLFFBQU8sZ0JBQVA7O0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7RUFDQyxRQUFPLGdCQUFQO0VBQ0EsT0FBTSxNQUFOO0VYbENHLFNBQVMsT0FBVDtFRTRkQSxZQUFXLEtBQVg7O0FTdmJKO0FBQ0E7RUFDQyxPQUFNLEtBQU47RUFDQSxRQUFPLGdCQUFQIiwiZmlsZSI6InByaW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vQC1tcy12aWV3cG9ydFxuLy9cdHdpZHRoIGRldmljZS13aWR0aFxuXG4vLyBDb3JyZWN0cyBibG9jayBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFNi83LzgvOSAmIEZGM1xuYXJ0aWNsZVxuYXNpZGVcbmRldGFpbHNcbmZpZ2NhcHRpb25cbmZpZ3VyZVxuZm9vdGVyXG5oZWFkZXJcbmhncm91cFxubmF2XG5zZWN0aW9uXG5zdW1tYXJ5XG5cdGRpc3BsYXkgYmxvY2tcblxuLy8gQ29ycmVjdHMgaW5saW5lLWJsb2NrIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUU2LzcvOC85ICYgRkYzXG5hdWRpb1xuY2FudmFzXG52aWRlb1xuXHRkaXNwbGF5IGlubGluZS1ibG9ja1xuXHQqZGlzcGxheSBpbmxpbmVcblx0em9vbSAxXG5cbi8vIFByZXZlbnRzIG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgJ2F1ZGlvJyB3aXRob3V0IGNvbnRyb2xzXG5hdWRpbzpub3QoW2NvbnRyb2xzXSlcblx0ZGlzcGxheSBub25lXG5cbi8vIEFkZHJlc3NlcyBzdHlsaW5nIGZvciAnaGlkZGVuJyBhdHRyaWJ1dGUgbm90IHByZXNlbnQgaW4gSUU3LzgvOSwgRkYzLCBTNFxuLy8gS25vd24gaXNzdWU6IG5vIElFNiBzdXBwb3J0XG5baGlkZGVuXVxuXHRkaXNwbGF5IG5vbmVcblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIEJhc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIDEuIENvcnJlY3RzIHRleHQgcmVzaXppbmcgb2RkbHkgaW4gSUU2Lzcgd2hlbiBib2R5IGZvbnQtc2l6ZSBpcyBzZXQgdXNpbmcgZW0gdW5pdHNcbi8vICAgIGh0dHA6Ly9jbGFnbnV0LmNvbS9ibG9nLzM0OC8jYzc5MFxuLy8gMi4gS2VlcHMgcGFnZSBjZW50cmVkIGluIGFsbCBicm93c2VycyByZWdhcmRsZXNzIG9mIGNvbnRlbnQgaGVpZ2h0XG4vLyAzLiBQcmV2ZW50cyBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbVxuLy8gICAgd3d3LjQ1NmJlcmVhc3RyZWV0LmNvbS9hcmNoaXZlLzIwMTAxMi9jb250cm9sbGluZ190ZXh0X3NpemVfaW5fc2FmYXJpX2Zvcl9pb3Nfd2l0aG91dF9kaXNhYmxpbmdfdXNlcl96b29tL1xuaHRtbFxuXHRmb250LXNpemUgMTAwJVxuXHRvdmVyZmxvdy15IHNjcm9sbFxuXHQtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3QgMTAwJVxuXHQtbXMtdGV4dC1zaXplLWFkanVzdCAxMDAlXG5cbmh0bWxcbmJ1dHRvblxuaW5wdXRcbnNlbGVjdFxudGV4dGFyZWFcblx0Zm9udC1mYW1pbHkgc2Fucy1zZXJpZlxuXG4vLyBBZGRyZXNzZXMgbWFyZ2lucyBoYW5kbGVkIGluY29ycmVjdGx5IGluIElFNi83XG5ib2R5XG5cdG1hcmdpbiAwXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgTGlua3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEFkZHJlc3NlcyBvdXRsaW5lIGRpc3BsYXllZCBvZGRseSBpbiBDaHJvbWVcbmE6Zm9jdXNcblx0b3V0bGluZSBub25lXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgVHlwb2dyYXBoeVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gQWRkcmVzc2VzIGZvbnQgc2l6ZXMgYW5kIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIElFNi83XG4vLyBBZGRyZXNzZXMgZm9udCBzaXplcyB3aXRoaW4gJ3NlY3Rpb24nIGFuZCAnYXJ0aWNsZScgaW4gRkY0KywgQ2hyb21lLCBTNVxuaDFcblx0Zm9udC1zaXplIDJlbVxuXHRtYXJnaW4gMC42N2VtIDBcblxuaDJcblx0Zm9udC1zaXplIDEuNWVtXG5cdG1hcmdpbiAwLjgzZW0gMFxuXG5oM1xuXHRmb250LXNpemUgMS4xN2VtXG5cdG1hcmdpbiAxZW0gMFxuXG5oNFxuXHRmb250LXNpemUgMWVtXG5cdG1hcmdpbiAxLjMzZW0gMFxuXG5oNVxuXHRmb250LXNpemUgMC44M2VtXG5cdG1hcmdpbiAxLjY3ZW0gMFxuXG5oNlxuXHRmb250LXNpemUgMC43NWVtXG5cdG1hcmdpbiAyLjMzZW0gMFxuXG4vLyBBZGRyZXNzZXMgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRTcvOC85LCBTNSwgQ2hyb21lXG5hYmJyW3RpdGxlXVxuXHRib3JkZXItYm90dG9tIDFweCBkb3R0ZWRcblxuLy8gQWRkcmVzc2VzIHN0eWxlIHNldCB0byAnYm9sZGVyJyBpbiBGRjMrLCBTNC81LCBDaHJvbWVcbmJcbnN0cm9uZ1xuXHRmb250LXdlaWdodCBib2xkXG5cbmJsb2NrcXVvdGVcblx0bWFyZ2luIDFweCA0MHB4XG5cbi8vIEFkZHJlc3NlcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFM1LCBDaHJvbWVcbmRmblxuXHRmb250LXN0eWxlIGl0YWxpY1xuXG5tYXJrXG5cdGJhY2tncm91bmQgI2ZmMFxuXHRjb2xvciAjMDAwXG5cbi8vQWRkcmVzc2VzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIElFNi83XG5wXG5wcmVcblx0bWFyZ2luIDFlbSAwXG5cbi8vIENvcnJlY3RzIGZvbnQgZmFtaWx5IHNldCBvZGRseSBpbiBJRTYsIFM0LzUsIENocm9tZVxuLy8gZW4ud2lraXBlZGlhLm9yZy93aWtpL1VzZXI6RGF2aWRnb3RoYmVyZy9UZXN0NTlcbnByZVxuY29kZVxua2JkXG5zYW1wXG5cdGZvbnQtZmFtaWx5IG1vbm9zcGFjZSwgc2VyaWZcblx0X2ZvbnQtZmFtaWx5ICdjb3VyaWVyIG5ldycsIG1vbm9zcGFjZVxuXHRmb250LXNpemUgMWVtXG5cbi8vIEltcHJvdmVzIHJlYWRhYmlsaXR5IG9mIHByZS1mb3JtYXR0ZWQgdGV4dCBpbiBhbGwgYnJvd3NlcnNcbnByZVxuXHR3aGl0ZS1zcGFjZSBwcmVcblx0d2hpdGUtc3BhY2UgcHJlLXdyYXBcblx0d29yZC13cmFwIGJyZWFrLXdvcmRcblxuLy8gQWRkcmVzc2VzIENTUyBxdW90ZXMgbm90IHN1cHBvcnRlZCBpbiBJRTYvN1xucVxuXHRxdW90ZXMgbm9uZVxuXG4vLyBBZGRyZXNzZXMgcXVvdGUgcHJvcGVydHkgbm90IHN1cHBvcnRlZCBpbiBTNFxucTpiZWZvcmVcbnE6YWZ0ZXJcblx0Y29udGVudCAnJ1xuXHRjb250ZW50IG5vbmVcblxuc21hbGxcblx0Zm9udC1zaXplIDc1JVxuXG4vLyBQcmV2ZW50cyBzdWIgYW5kIHN1cCBhZmZlY3RpbmcgbGluZS1oZWlnaHQgaW4gYWxsIGJyb3dzZXJzXG4vLyBnaXN0LmdpdGh1Yi5jb20vNDEzOTMwXG5zdWJcbnN1cFxuXHRmb250LXNpemUgNzUlXG5cdGxpbmUtaGVpZ2h0IDBcblx0cG9zaXRpb24gcmVsYXRpdmVcblx0dmVydGljYWwtYWxpZ24gYmFzZWxpbmVcblxuc3VwXG5cdHRvcCAtMC41ZW1cblxuc3ViXG5cdGJvdHRvbSAtMC4yNWVtXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgTGlzdHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEFkZHJlc3NlcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBJRTYvN1xuZGxcbm1lbnVcbm9sXG51bFxuXHRtYXJnaW4gMWVtIDBcblxuZGRcblx0bWFyZ2luIDAgMCAwIDQwcHhcblxuLy8gQWRkcmVzc2VzIHBhZGRpbmdzIHNldCBkaWZmZXJlbnRseSBpbiBJRTYvN1xubWVudVxub2xcbnVsXG5cdHBhZGRpbmdcdDAgMCAwIDQwcHhcblxuLy8gQ29ycmVjdHMgbGlzdCBpbWFnZXMgaGFuZGxlZCBpbmNvcnJlY3RseSBpbiBJRTdcbm5hdiB1bFxubmF2IG9sXG5cdGxpc3Qtc3R5bGUgbm9uZVxuXHRsaXN0LXN0eWxlLWltYWdlIG5vbmVcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBFbWJlZGRlZCBjb250ZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyAxLiBSZW1vdmVzIGJvcmRlciB3aGVuIGluc2lkZSAnYScgZWxlbWVudCBpbiBJRTYvNy84LzksIEZGM1xuLy8gMi4gSW1wcm92ZXMgaW1hZ2UgcXVhbGl0eSB3aGVuIHNjYWxlZCBpbiBJRTdcbi8vICAgIGNvZGUuZmxpY2tyLmNvbS9ibG9nLzIwMDgvMTEvMTIvb24tdWktcXVhbGl0eS10aGUtbGl0dGxlLXRoaW5ncy1jbGllbnQtc2lkZS1pbWFnZS1yZXNpemluZy9cbmltZ1xuXHRib3JkZXIgMFxuXHQtbXMtaW50ZXJwb2xhdGlvbi1tb2RlIGJpY3ViaWNcblxuLy8gQ29ycmVjdHMgb3ZlcmZsb3cgZGlzcGxheWVkIG9kZGx5IGluIElFOVxuc3ZnOm5vdCg6cm9vdClcblx0b3ZlcmZsb3cgaGlkZGVuXG5cbmltZ1xuaWZyYW1lXG5vYmplY3RcbmVtYmVkXG5cdHZlcnRpY2FsLWFsaWduIG1pZGRsZVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIEZpZ3VyZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEFkZHJlc3NlcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUU2LzcvOC85LCBTNSwgTzExXG5maWd1cmVcblx0bWFyZ2luIDBcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBGb3Jtc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gQ29ycmVjdHMgbWFyZ2luIGRpc3BsYXllZCBvZGRseSBpbiBJRTYvN1xuZm9ybVxuXHRtYXJnaW4gMFxuXG5maWVsZHNldFxuXHRib3JkZXIgMFxuXHRtYXJnaW4gMFxuXHRwYWRkaW5nIDBcblxuLy8gMS4gQ29ycmVjdHMgZm9udCBzaXplIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gYWxsIGJyb3dzZXJzXG4vLyAyLiBBZGRyZXNzZXMgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gSUU2LzcsIEZGMy80LCBTNSwgQ2hyb21lXG4vLyAzLiBJbXByb3ZlcyBhcHBlYXJhbmNlIGFuZCBjb25zaXN0ZW5jeSBpbiBhbGwgYnJvd3NlcnNcbmJ1dHRvblxuaW5wdXRcbnNlbGVjdFxudGV4dGFyZWFcblx0Zm9udC1zaXplIDEwMCVcblx0bWFyZ2luIDBcblx0dmVydGljYWwtYWxpZ24gYmFzZWxpbmVcblx0KnZlcnRpY2FsLWFsaWduIG1pZGRsZVxuXHRib3gtc2l6aW5nIGNvbnRlbnQtYm94XG5cdG91dGxpbmUgbm9uZVxuXHRib3JkZXItcmFkaXVzIG5vbmVcblx0Ym94LXNoYWRvdyBub25lXG5cbi8vIEFkZHJlc3NlcyBGRjMvNCBzZXR0aW5nIGxpbmUtaGVpZ2h0IG9uICdpbnB1dCcgdXNpbmcgIWltcG9ydGFudCBpbiB0aGUgVUEgc3R5bGVzaGVldFxuYnV0dG9uXG5pbnB1dFxuXHRsaW5lLWhlaWdodCBub3JtYWxcblxuXG4vLyAxLiBJbXByb3ZlcyB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGUgJ2lucHV0JyBhbmQgb3RoZXJzXG4vLyAyLiBDb3JyZWN0cyBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlICdpbnB1dCcgdHlwZXMgaW4gaU9TXG4vLyAzLiBDb3JyZWN0cyBpbm5lciBzcGFjaW5nIGRpc3BsYXllZCBvZGRseSBpbiBJRTcgd2l0aG91dCBlZmZlY3Rpbmcgbm9ybWFsIHRleHQgaW5wdXRzXG4vLyAgICBLbm93biBpc3N1ZTogaW5uZXIgc3BhY2luZyByZW1haW5zIGluIElFNlxuYnV0dG9uXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdXG5pbnB1dFt0eXBlPVwicmVzZXRcIl1cbmlucHV0W3R5cGU9XCJzdWJtaXRcIl1cblx0Y3Vyc29yIHBvaW50ZXIgLy8gMVxuXHQtd2Via2l0LWFwcGVhcmFuY2UgYnV0dG9uIC8vIDJcblx0Km92ZXJmbG93IHZpc2libGUgLy8gMlxuXG4vLyBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzXG5idXR0b25bZGlzYWJsZWRdXG5pbnB1dFtkaXNhYmxlZF1cblx0Y3Vyc29yIGRlZmF1bHRcblxuLy8gMS4gQWRkcmVzc2VzIGJveCBzaXppbmcgc2V0IHRvIGNvbnRlbnQtYm94IGluIElFOC85XG4vLyAyLiBSZW1vdmVzIGV4Y2VzcyBwYWRkaW5nIGluIElFOC85XG4vLyAzLiBSZW1vdmVzIGV4Y2VzcyBwYWRkaW5nIGluIElFN1xuLy8gICAgS25vd24gaXNzdWU6IGV4Y2VzcyBwYWRkaW5nIHJlbWFpbnMgaW4gSUU2XG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl1cbmlucHV0W3R5cGU9XCJyYWRpb1wiXVxuXHRib3gtc2l6aW5nIGJvcmRlci1ib3ggLy8gMVxuXHRwYWRkaW5nIDAgLy8gMlxuXHQqaGVpZ2h0IDEzcHggLy8gM1xuXHQqd2lkdGggMTNweCAvLyAzXG5cblxuLy8gMS4gQWRkcmVzc2VzIGFwcGVhcmFuY2Ugc2V0IHRvIHNlYXJjaGZpZWxkIGluIFM1LCBDaHJvbWVcbi8vIDIuIEFkZHJlc3NlcyBib3gtc2l6aW5nIHNldCB0byBib3JkZXItYm94IGluIFM1LCBDaHJvbWUgKGluY2x1ZGUgLW1veiB0byBmdXR1cmUtcHJvb2YpXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdXG5cdC13ZWJraXQtYXBwZWFyYW5jZSB0ZXh0ZmllbGQgLy8gMVxuXG4vLyBSZW1vdmVzIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFM1LCBDaHJvbWUgb24gT1MgWFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvblxuXHQtd2Via2l0LWFwcGVhcmFuY2Ugbm9uZVxuXG5cbi8vIFJlbW92ZXMgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZGMytcbi8vIHd3dy5zaXRlcGVuLmNvbS9ibG9nLzIwMDgvMDUvMTQvdGhlLWRldmlscy1pbi10aGUtZGV0YWlscy1maXhpbmctZG9qb3MtdG9vbGJhci1idXR0b25zXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXJcbmlucHV0OjotbW96LWZvY3VzLWlubmVyXG5cdGJvcmRlciAwXG5cdHBhZGRpbmcgMFxuXG4vLyAxLiBSZW1vdmVzIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFNi83LzgvOVxuLy8gMi4gSW1wcm92ZXMgcmVhZGFiaWxpdHkgYW5kIGFsaWdubWVudCBpbiBhbGwgYnJvd3NlcnNcbnRleHRhcmVhXG5cdG92ZXJmbG93IGF1dG8gLy8gMVxuXHR2ZXJ0aWNhbC1hbGlnbiB0b3AgLy8gMlxuXHRyZXNpemUgdmVydGljYWwgLy8gVEtcblxubGFiZWxcblx0Y3Vyc29yIGRlZmF1bHRcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBUYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxsc1xudGFibGVcblx0Ym9yZGVyLWNvbGxhcHNlIGNvbGxhcHNlXG5cdGJvcmRlci1zcGFjaW5nIDBcblxuY2FwdGlvblxuXHR0ZXh0LWFsaWduIGxlZnRcblx0Y2FwdGlvbi1zaWRlIHRvcFxudGhcblx0dGV4dC1hbGlnbiBsZWZ0XG4iLCIvKlxuICogVmVuZG9yIFwiZGlzcGxheTogZmxleFwiIHN1cHBvcnQgd2l0aCBmYWxsYmFjayB0byBvYnNvbGV0ZSB2ZXJzaW9ucy5cbiAqL1xuXG5mbGV4LXZlcnNpb24gPz0gYm94IGZsZXhcblxuLy9cbi8vIDEuIERpc3BsYXkgdmFsdWVzXG4vLyAgICAtIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtZmxleGJveC8jZmxleC1jb250YWluZXJzXG4vL1xuZGlzcGxheSh0eXBlLCBhcmdzLi4uKVxuICBpZiBmbGV4ID09IHR5cGUgfHwgaW5saW5lLWZsZXggPT0gdHlwZVxuICAgIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICAgIGlmIGZsZXggPT0gdHlwZVxuICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveCBhcmdzXG4gICAgICAgIGRpc3BsYXk6IHZlbmRvci12YWx1ZShib3ggYXJncywgb25seTogbW96IHdlYmtpdClcbiAgICAgIGVsc2VcbiAgICAgICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94IGFyZ3NcbiAgICAgICAgZGlzcGxheTogdmVuZG9yLXZhbHVlKGlubGluZS1ib3ggYXJncywgb25seTogbW96IHdlYmtpdClcbiAgICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgICAgZGlzcGxheTogdmVuZG9yLXZhbHVlKGFyZ3VtZW50cywgb25seTogd2Via2l0IG9mZmljaWFsKSAvLyBvdmVyd3JpdGVzIG9sZCB3ZWJraXRcbiAgZWxzZVxuICAgIGRpc3BsYXk6IGFyZ3VtZW50c1xuXG4vKlxuICogTmV3IHN5bnRheCBmb3IgYnJvd3NlcnMgbGlrZSBHb29nbGUgQ2hyb21lLlxuICogUGx1cyBhIHRyYW5zbGF0aW9uIHRvIHRoZSBvbGQgc3ludGF4LCBpZiBwb3NzaWJsZS5cbiAqL1xuXG5cbi8vXG4vLyA1LiBPcmRlcmluZyBhbmQgT3JpZW50YXRpb25cbi8vICAgIC0gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1mbGV4Ym94LyNvcmRlcmluZy1hbmQtb3JpZW50YXRpb25cbi8vXG4tZmxleC1vYnNvbGV0ZS1kaXJlY3Rpb24oZGlyZWN0aW9uKVxuICBpZiBib3ggaW4gZmxleC12ZXJzaW9uXG4gICAgaWYgcm93LXJldmVyc2UgPT0gZGlyZWN0aW9uIHx8IGNvbHVtbi1yZXZlcnNlID09IGRpcmVjdGlvblxuICAgICAgdmVuZG9yKCdib3gtZGlyZWN0aW9uJywgcmV2ZXJzZSwgaWdub3JlOiBtcyBvZmZpY2lhbClcblxuICAgIGlmIHJvdyA9PSBkaXJlY3Rpb24gfHwgcm93LXJldmVyc2UgPT0gZGlyZWN0aW9uXG4gICAgICB2ZW5kb3IoJ2JveC1vcmllbnQnLCBob3Jpem9udGFsLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuICAgIGVsc2UgaWYgY29sdW1uID09IGRpcmVjdGlvbiB8fCBjb2x1bW4tcmV2ZXJzZSA9PSBkaXJlY3Rpb25cbiAgICAgIHZlbmRvcignYm94LW9yaWVudCcsIHZlcnRpY2FsLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuXG4tZmxleC1vYnNvbGV0ZS13cmFwKHZhbHVlKVxuICBpZiBib3ggaW4gZmxleC12ZXJzaW9uXG4gICAgLy8gV0FSTjogd3JhcC1yZXZlcnNlIGRvZXMgbm90IGhhdmUgYSBib3ggZXF1aXZhbGVudC4gVGhpcyB3aWxsIHJlbmRlciBpbiBkaWZmZXJlbnQgbWFubmVyc1xuICAgIC8vICAgIG9uIGJveCB2cy4gZmxleCB2YWx1ZXMuXG4gICAgaWYgJ3dyYXAnID09IHZhbHVlIHx8IHdyYXAtcmV2ZXJzZSA9PSB2YWx1ZVxuICAgICAgdmVuZG9yKCdib3gtbGluZXMnLCBtdWx0aXBsZSwgaWdub3JlOiBtcyBvZmZpY2lhbClcbiAgICBlbHNlIGlmIG5vd3JhcCA9PSB2YWx1ZVxuICAgICAgdmVuZG9yKCdib3gtbGluZXMnLCBzaW5nbGUsIGlnbm9yZTogbXMgb2ZmaWNpYWwpXG5cbmZsZXgtZGlyZWN0aW9uKGRpcmVjdGlvbilcbiAgLy8gb2Jzb2xldGVcbiAgLWZsZXgtb2Jzb2xldGUtZGlyZWN0aW9uKGRpcmVjdGlvbilcblxuICAvLyBuZXdcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtZGlyZWN0aW9uJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbXMgb2ZmaWNpYWwpXG5cbmZsZXgtd3JhcCh2YWx1ZSlcbiAgLy8gb2Jzb2xldGVcbiAgLWZsZXgtb2Jzb2xldGUtd3JhcCh2YWx1ZSlcblxuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC13cmFwJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbXMgb2ZmaWNpYWwpXG5cbmZsZXgtZmxvdygpXG4gIC8vIG9ic29sZXRlXG4gIC1mbGV4LW9ic29sZXRlLWRpcmVjdGlvbihhcmd1bWVudHNbMF0pXG4gIC1mbGV4LW9ic29sZXRlLWRpcmVjdGlvbihhcmd1bWVudHNbMV0pXG4gIC1mbGV4LW9ic29sZXRlLXdyYXAoYXJndW1lbnRzWzBdKVxuICAtZmxleC1vYnNvbGV0ZS13cmFwKGFyZ3VtZW50c1sxXSlcblxuICAvLyBuZXdcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtZmxvdycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1zIG9mZmljaWFsKVxuXG5cbm9yZGVyKClcbiAgLy8gb2Jzb2xldGVcbiAgaWYgYm94IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignYm94LW9yZGluYWwtZ3JvdXAnLCBhcmd1bWVudHMsIGlnbm9yZTogbXMgb2ZmaWNpYWwpXG5cbiAgLy8gbmV3XG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LW9yZGVyJywgYXJndW1lbnRzLCBvbmx5OiBtcylcbiAgICB2ZW5kb3IoJ29yZGVyJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cblxuLy9cbi8vIDcuIEZsZXhpYmlsaXR5XG4vLyAgICAtIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtZmxleGJveC8jZmxleGliaWxpdHlcbi8vXG5mbGV4LWdyb3coZ3Jvd3RoKVxuICAvLyBvYnNvbGV0ZVxuICBpZiBib3ggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdib3gtZmxleCcsIGdyb3d0aClcblxuICAvLyBuZXdcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtZ3JvdycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG5mbGV4LWJhc2lzKClcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtYmFzaXMnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuZmxleC1zaHJpbmsoKVxuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1zaHJpbmsnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuZmxleChncm93dGgpXG5cbiAgLy8gb2Jzb2xldGVcbiAgaWYgYm94IGluIGZsZXgtdmVyc2lvblxuICAgIHNocmluayA9IDFcblxuICAgIGlmIG5vbmUgPT0gZ3Jvd3RoIHx8IGluaXRpYWwgPT0gZ3Jvd3RoXG4gICAgICAvLyBXZWxsIGtub3duIHZhbHVlc1xuICAgICAgc2hyaW5rID0gMCBpZiBub25lID09IGdyb3d0aFxuICAgICAgZ3Jvd3RoID0gMFxuICAgIGVsc2UgaWYgaXMtd2lkdGgoZ3Jvd3RoKSA9PSB0cnVlXG4gICAgICAvLyBCYXNpcyBpcyBkZWZpbmVkIGFzIHRoZSBmaXJzdCBwYXJhbWV0ZXJcbiAgICAgIGdyb3d0aCA9IGFyZ3VtZW50c1sxXSB8fCAwXG4gICAgICBzaHJpbmsgPSBhcmd1bWVudHNbMl0gaWYgMyA8PSBsZW5ndGgoYXJndW1lbnRzKVxuICAgIGVsc2UgaWYgYXJndW1lbnRzWzFdICYmIGlzLXdpZHRoKGFyZ3VtZW50c1sxXSkgPT0gZmFsc2VcbiAgICAgIC8vIEdyb3d0aCBpcyBmaXJzdCBhbmQgc2hyaW5rIGlzIHNlY29uZFxuICAgICAgc2hyaW5rID0gYXJndW1lbnRzWzFdXG5cbiAgICAvLyBTaW5jZSB3ZSBjYW4ndCBtYWtlIHRoZSBkaXN0aW5jdGlvbiBiZXR3ZWVuIGdyb3dpbmcgYW5kIHNocmlua2luZyBpbiB0aGUgYm94IG1vZGVsLCB0YWtlXG4gICAgLy8gdGhlIG9uZSB0aGF0IHByb3ZpZGVzIHRoZSBtb3N0IGZsZXhpYmlsaXR5LlxuICAgIHZlbmRvcignYm94LWZsZXgnLCBtYXgoZ3Jvd3RoLCBzaHJpbmspLCBpZ25vcmU6IG1zKVxuXG4gIC8vIG5ld1xuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1zIG9mZmljaWFsKVxuXG5cbi8vIGNvbnZlcnRzIHRoZSBqdXN0aWZpY2F0aW9uIGFsaWdubWVudFxuLWNvbnZlcnQtanVzdGlmeShhbGlnbilcbiAgaWYgZmxleC1zdGFydCA9PSBhbGlnblxuICAgIHJldHVybiBzdGFydFxuICBlbHNlIGlmIGZsZXgtZW5kID09IGFsaWduXG4gICAgcmV0dXJuIGVuZFxuICBlbHNlIGlmIHNwYWNlLWFyb3VuZCA9PSBhbGlnblxuICAgIHJldHVybiBkaXN0cmlidXRlXG4gIGVsc2UgaWYgc3BhY2UtYmV0d2VlbiA9PSBhbGlnblxuICAgIHJldHVybiBqdXN0aWZ5XG4gIGVsc2VcbiAgICByZXR1cm4gYWxpZ25cblxuLy9cbi8vIDguIEFsaWdubWVudFxuLy8gICAgLSBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWZsZXhib3gvI2FsaWdubWVudFxuLy9cbmp1c3RpZnktY29udGVudChhbGlnbilcbiAgLy8gb2Jzb2xldGVcbiAgaWYgYm94IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignYm94LXBhY2snLCAtY29udmVydC1qdXN0aWZ5KGFsaWduKSwgaWdub3JlOiBtcyBvZmZpY2lhbClcblxuICAvLyBuZXdcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtcGFjaycsIC1jb252ZXJ0LWp1c3RpZnkoYWxpZ24pLCBvbmx5OiBtcylcbiAgICB2ZW5kb3IoJ2p1c3RpZnktY29udGVudCcsIGFsaWduLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbmFsaWduLWNvbnRlbnQoYWxpZ24pXG4gIC8vIFdBUk46IE9ic29sZXRlIHNwZWMgZG9lcyBub3QgYWxsb3cgZm9yIGFkanVzdG1lbnQgaGVyZVxuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1saW5lLXBhY2snLCAtY29udmVydC1qdXN0aWZ5KGFsaWduKSwgb25seTogbXMpXG4gICAgdmVuZG9yKCdhbGlnbi1jb250ZW50JywgYWxpZ24sIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuLy8gY29udmVydHMgYWxpZ25tZW50IGZyb20gJ2ZsZXgnIHRvIG5vcm1hbCB2YWx1ZVxuLWNvbnZlcnQtYWxpZ25tZW50KGFsaWduKVxuICBpZiBmbGV4LXN0YXJ0ID09IGFsaWduXG4gICAgcmV0dXJuIHN0YXJ0XG4gIGVsc2UgaWYgZmxleC1lbmQgPT0gYWxpZ25cbiAgICByZXR1cm4gZW5kXG4gIGVsc2VcbiAgICByZXR1cm4gYWxpZ25cblxuYWxpZ24taXRlbXMoYWxpZ24pXG4gIC8vIG9ic29sZXRlXG4gIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2JveC1hbGlnbicsIC1jb252ZXJ0LWFsaWdubWVudChhbGlnbiksIGlnbm9yZTogbXMgb2ZmaWNpYWwpXG5cbiAgLy8gbmV3XG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LWFsaWduJywgLWNvbnZlcnQtYWxpZ25tZW50KGFsaWduKSwgb25seTogbXMpXG4gICAgdmVuZG9yKCdhbGlnbi1pdGVtcycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG5hbGlnbi1zZWxmKGFsaWduKVxuICAvLyBXQVJOOiBPYnNvbGV0ZSBzcGVjIGRvZXMgbm90IGFsbG93IGZvciBvdmVycmlkaW5nIGFsaWdubWVudCBvbiBpbmRpdmlkdWFsIGl0ZW1zLlxuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignYWxpZ24tc2VsZicsIGFsaWduLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG4gICAgdmVuZG9yKCdmbGV4LWl0ZW0tYWxpZ24nLCAtY29udmVydC1hbGlnbm1lbnQoYWxpZ24pLCBvbmx5OiBtcylcbiIsIi8qXG4gKiBib3JkZXI6IDxjb2xvcj5cbiAqIGJvcmRlcjogLi4uXG4gKi9cblxuYm9yZGVyKGNvbG9yLCBhcmdzLi4uKVxuICBpZiBjb2xvciBpcyBhICdjb2xvcidcbiAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvciBhcmdzXG4gIGVsc2VcbiAgICBib3JkZXI6IGFyZ3VtZW50c1xuIiwidXNlKCcuLi9ub2Rlcy92ZW5kb3ItaGVscGVycy5qcycpXG5AaW1wb3J0ICdjb25maWcnXG5cbi8qXG4gKiBBbGlhcyBcIm5vd3JhcFwiIGFzIFwibm8td3JhcFwiLlxuICovXG5cbm5vLXdyYXAgPSB1bnF1b3RlKCdub3dyYXAnKVxuXG4vKlxuICogSGVscGVyIHRvIGZpbmQgb3V0IGlmIGEgZ2l2ZW4gdmFsdWUgaXMgYSB3aWR0aFxuICovXG5cbmlzLXdpZHRoKHZhbClcbiAgaWYgYXV0byA9PSB2YWxcbiAgICByZXR1cm4gdHJ1ZVxuICBlbHNlIGlmIHZhbCAmJiAndW5pdCcgPT0gdHlwZSh2YWwpXG4gICAgLy8gU3R5bHVzIGRvZXMgbm90IHNob3J0IGNpcmN1aXQgc28gd2UgbmVlZCB0byBwZXJmb3JtIHRoaXMgYXMgYSBkaXN0aW5jdFxuICAgIC8vIG9wZXJhdGlvbiB0byBwcmV2ZW50IGVycm9yc1xuICAgIHJldHVybiAnJyAhPSB1bml0KHZhbClcbiAgcmV0dXJuIGZhbHNlXG5cbi8qXG4gKiBWZW5kb3Igc3VwcG9ydCBmb3IgdGhlIGdpdmVuIHByb3AgLyBhcmd1bWVudHMsIG9wdGlvbmFsbHkgc3BlY2lmeWluZyB0aGVcbiAqIG9ubHkgcHJlZml4ZXMgdG8gdXRpbGl6ZSwgb3IgdGhvc2Ugd2hpY2ggc2hvdWxkIGJlIGlnbm9yZWQuXG4gKi9cblxudmVuZG9yKHByb3AsIGFyZ3MsIG9ubHkgPSBudWxsLCBpZ25vcmUgPSBudWxsLCB2ZW5kb3ItcHJvcGVydHkgPSB0cnVlKVxuICBuZWVkX25vcm1hbGl6ZSA9ICF2ZW5kb3ItcHJvcGVydHkgb3IgcHJvcCBpbiAoJ3RyYW5zaXRpb24nICd0cmFuc2l0aW9uLXByb3BlcnR5JyAnYm9yZGVyLWltYWdlJyAnYm9yZGVyLWltYWdlLXNsaWNlJylcbiAgZm9yIHByZWZpeCBpbiB2ZW5kb3ItcHJlZml4ZXNcbiAgICB1bmxlc3MgKG9ubHkgYW5kICEocHJlZml4IGluIG9ubHkpKSBvciAoaWdub3JlIGFuZCBwcmVmaXggaW4gaWdub3JlKVxuICAgICAgaWYgb2ZmaWNpYWwgPT0gcHJlZml4XG4gICAgICAgIGlmIG5lZWRfbm9ybWFsaXplXG4gICAgICAgICAge3Byb3B9OiBub3JtYWxpemUocHJvcCwoJyVzJyAlIGFyZ3MpKVxuICAgICAgICBlbHNlXG4gICAgICAgICAge3Byb3B9OiBhcmdzXG4gICAgICBlbHNlXG4gICAgICAgIG5ld3Byb3AgPSBwcm9wXG4gICAgICAgIG5ld3Byb3AgPSAnLScgKyBwcmVmaXggKyAnLScgKyBwcm9wIGlmIHZlbmRvci1wcm9wZXJ0eVxuXG4gICAgICAgIGlmIG5lZWRfbm9ybWFsaXplXG4gICAgICAgICAge25ld3Byb3B9OiBub3JtYWxpemUocHJvcCwoJyVzJyAlIGFyZ3MpLHByZWZpeClcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHtuZXdwcm9wfTogYXJnc1xuLypcbiAqIFZlbmRvcml6ZSB0aGUgZ2l2ZW4gdmFsdWUuXG4gKi9cblxudmVuZG9yLXZhbHVlKGFyZywgb25seSA9IG51bGwsIGlnbm9yZSA9IG51bGwpXG4gIHByb3AgPSBjdXJyZW50LXByb3BlcnR5WzBdXG4gIGZvciBwcmVmaXggaW4gdmVuZG9yLXByZWZpeGVzXG4gICAgdW5sZXNzIChvbmx5IGFuZCAhKHByZWZpeCBpbiBvbmx5KSkgb3IgKGlnbm9yZSBhbmQgcHJlZml4IGluIGlnbm9yZSkgb3Igb2ZmaWNpYWwgPT0gcHJlZml4XG4gICAgICBhZGQtcHJvcGVydHkocHJvcCwgJy0lcy0lcycgJSAocHJlZml4IGFyZykpXG4gIGFyZ1xuXG4vKlxuICogVmVuZG9yIFwiYm94LXNoYWRvd1wiIHN1cHBvcnQuXG4gKi9cblxuYm94LXNoYWRvdygpXG4gIHZlbmRvcignYm94LXNoYWRvdycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwidXNlci1zZWxlY3RcIiBzdXBwb3J0LlxuICovXG5cbnVzZXItc2VsZWN0KClcbiAgdmVuZG9yKCd1c2VyLXNlbGVjdCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1jb3VudFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLWNvdW50KClcbiAgdmVuZG9yKCdjb2x1bW4tY291bnQnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tZ2FwXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tZ2FwKClcbiAgdmVuZG9yKCdjb2x1bW4tZ2FwJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiY29sdW1uLXJ1bGVcIiBzdXBwb3J0LlxuICovXG5cbmNvbHVtbi1ydWxlKClcbiAgdmVuZG9yKCdjb2x1bW4tcnVsZScsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1ydWxlLWNvbG9yXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tcnVsZS1jb2xvcigpXG4gIHZlbmRvcignY29sdW1uLXJ1bGUtY29sb3InLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tcnVsZS13aWR0aFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXJ1bGUtd2lkdGgoKVxuICB2ZW5kb3IoJ2NvbHVtbi1ydWxlLXdpZHRoJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiY29sdW1uLXJ1bGUtc3R5bGVcIiBzdXBwb3J0LlxuICovXG5cbmNvbHVtbi1ydWxlLXN0eWxlKClcbiAgdmVuZG9yKCdjb2x1bW4tcnVsZS1zdHlsZScsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi13aWR0aFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXdpZHRoKClcbiAgdmVuZG9yKCdjb2x1bW4td2lkdGgnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tc3BhblwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXNwYW4oKVxuICB2ZW5kb3IoJ2NvbHVtbi1zcGFuJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tZmlsbFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLWZpbGwoKVxuICB2ZW5kb3IoJ2NvbHVtbi1maWxsJywgYXJndW1lbnRzLCBvbmx5OiBtb3opXG5cbi8qXG4gKiBMZWdhY3kgc3ludGF4IHN1cHBvcnQgZm9yIGJhY2tncm91bmQtY2xpcCBhbmQgYmFja2dyb3VuZC1vcmlnaW5cbiAqL1xuXG5sZWdhY3ktYmctdmFsdWVzKHByb3BlcnR5LCBhcmdzKVxuICBsZWdhY3lfYXJncyA9ICgpXG4gIGltcG9ydGFuY2UgPSB1bnF1b3RlKCcnKVxuICBmb3Igc3ViYXJncyBpbiBhcmdzXG4gICAgZm9yIGFyZyBpbiBzdWJhcmdzXG4gICAgICBpZiBhcmcgaW4gKGJvcmRlci1ib3ggcGFkZGluZy1ib3ggY29udGVudC1ib3gpXG4gICAgICAgIGFyZyA9IHVucXVvdGUoJ2JvcmRlcicpICBpZiBhcmcgPT0gYm9yZGVyLWJveFxuICAgICAgICBhcmcgPSB1bnF1b3RlKCdwYWRkaW5nJykgaWYgYXJnID09IHBhZGRpbmctYm94XG4gICAgICAgIGFyZyA9IHVucXVvdGUoJ2NvbnRlbnQnKSBpZiBhcmcgPT0gY29udGVudC1ib3hcbiAgICAgIGlmIGFyZyAhPSAnIWltcG9ydGFudCdcbiAgICAgICAgcHVzaChsZWdhY3lfYXJncyxhcmcpXG4gICAgICBlbHNlXG4gICAgICAgIGltcG9ydGFuY2UgPSAhaW1wb3J0YW50XG4gIHZlbmRvcihwcm9wZXJ0eSwgdW5xdW90ZShqb2luKCcsICcsbGVnYWN5X2FyZ3MpKSBpbXBvcnRhbmNlLCBvbmx5OiBtb3ogd2Via2l0KVxuXG4vKlxuICogVmVuZG9yIFwiYmFja2dyb3VuZC1jbGlwXCIgc3VwcG9ydC5cbiAqL1xuXG5iYWNrZ3JvdW5kLWNsaXAoKVxuICBpZiBhcmd1bWVudHNbMF0gPT0gdGV4dFxuICAgIHZlbmRvcignYmFja2dyb3VuZC1jbGlwJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQpXG4gIGVsc2VcbiAgICBsZWdhY3ktYmctdmFsdWVzKCdiYWNrZ3JvdW5kLWNsaXAnLCBhcmd1bWVudHMpXG4gICAgYmFja2dyb3VuZC1jbGlwOiBhcmd1bWVudHNcblxuLypcbiAqIFZlbmRvciBcImJhY2tncm91bmQtb3JpZ2luXCIgc3VwcG9ydC5cbiAqL1xuXG5iYWNrZ3JvdW5kLW9yaWdpbigpXG4gIGxlZ2FjeS1iZy12YWx1ZXMoJ2JhY2tncm91bmQtb3JpZ2luJywgYXJndW1lbnRzKVxuICBiYWNrZ3JvdW5kLW9yaWdpbjogYXJndW1lbnRzXG5cbi8qXG4gKiBWZW5kb3IgXCJiYWNrZ3JvdW5kLXNpemVcIiBzdXBwb3J0LlxuICovXG5cbmJhY2tncm91bmQtc2l6ZSgpXG4gIHZlbmRvcignYmFja2dyb3VuZC1zaXplJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNmb3JtXCIgc3VwcG9ydC5cbiAqL1xuXG50cmFuc2Zvcm0oKVxuICB2ZW5kb3IoJ3RyYW5zZm9ybScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcInRyYW5zZm9ybS1vcmlnaW5cIiBzdXBwb3J0LlxuICovXG50cmFuc2Zvcm0tb3JpZ2luKClcbiAgICB2ZW5kb3IoJ3RyYW5zZm9ybS1vcmlnaW4nLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2Zvcm0tc3R5bGVcIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zZm9ybS1zdHlsZSgpXG4gIHZlbmRvcigndHJhbnNmb3JtLXN0eWxlJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYm9yZGVyLWltYWdlXCIgc3VwcG9ydC5cbiAqL1xuXG5ib3JkZXItaW1hZ2UoKVxuICB2ZW5kb3IoJ2JvcmRlci1pbWFnZScsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvIG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNpdGlvblwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbigpXG4gIHZlbmRvcigndHJhbnNpdGlvbicsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcInRyYW5zaXRpb24tcHJvcGVydHlcIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zaXRpb24tcHJvcGVydHkoKVxuICB2ZW5kb3IoJ3RyYW5zaXRpb24tcHJvcGVydHknLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2l0aW9uLWR1cmF0aW9uXCIgc3VwcG9ydC5cbiAqL1xuXG50cmFuc2l0aW9uLWR1cmF0aW9uKClcbiAgdmVuZG9yKCd0cmFuc2l0aW9uLWR1cmF0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb25cIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKClcbiAgdmVuZG9yKCd0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbicsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcInRyYW5zaXRpb24tZGVsYXlcIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zaXRpb24tZGVsYXkoKVxuICB2ZW5kb3IoJ3RyYW5zaXRpb24tZGVsYXknLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJiYWNrZmFjZS12aXNpYmlsaXR5XCIgc3VwcG9ydC5cbiAqL1xuXG5iYWNrZmFjZS12aXNpYmlsaXR5KClcbiAgdmVuZG9yKCdiYWNrZmFjZS12aXNpYmlsaXR5JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG1zIG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwicGVyc3BlY3RpdmVcIiBzdXBwb3J0LlxuICovXG5cbnBlcnNwZWN0aXZlKClcbiAgaWYgbWl4aW5cbiAgICB2ZW5kb3IoJ3BlcnNwZWN0aXZlJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG1zIG9mZmljaWFsKVxuICBlbHNlXG4gICAgJ3BlcnNwZWN0aXZlKCVzKScgJSBhcmd1bWVudHNcblxuLypcbiAqIFZlbmRvciBcInBlcnNwZWN0aXZlLW9yaWdpblwiIHN1cHBvcnQuXG4gKi9cblxucGVyc3BlY3RpdmUtb3JpZ2luKClcbiAgdmVuZG9yKCdwZXJzcGVjdGl2ZS1vcmlnaW4nLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cbi8qXG4gKiBPcGFjaXR5IHdpdGggY29uZGl0aW9uYWwgSUUgc3VwcG9ydC5cbiAqL1xuXG5vcGFjaXR5KG4sIGFyZ3MuLi4pXG4gIG9wYWNpdHk6IG4gYXJnc1xuICBpZiBzdXBwb3J0LWZvci1pZVxuICAgIGlmIG4gPT0gaW5oZXJpdCBvciBuID09IGluaXRpYWxcbiAgICAgIC1tcy1maWx0ZXI6IG4gYXJnc1xuICAgICAgZmlsdGVyOiBuIGFyZ3NcbiAgICBlbHNlXG4gICAgICB2YWwgPSByb3VuZChuICogMTAwKVxuICAgICAgaWYgdmFsID09IDEwMFxuICAgICAgICAtbXMtZmlsdGVyOiBub25lIGFyZ3NcbiAgICAgICAgZmlsdGVyOiBub25lIGFyZ3NcbiAgICAgIGVsc2VcbiAgICAgICAgLW1zLWZpbHRlcjogJ1wicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9JXMpXCInICUgdmFsIGFyZ3NcbiAgICAgICAgZmlsdGVyOiAnYWxwaGEob3BhY2l0eT0lcyknICUgdmFsIGFyZ3NcblxuLypcbiAqIFZlbmRvciBcInRleHQtc2l6ZS1hZGp1c3RcIlxuICovXG5cbnRleHQtc2l6ZS1hZGp1c3QoKVxuICB2ZW5kb3IoJ3RleHQtc2l6ZS1hZGp1c3QnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBBbGlhcyB0aGUgXCJ3aGl0ZS1zcGFjZVwiIHByb3BlcnR5LlxuICovXG5cbndoaXRlc3BhY2UoKVxuICB3aGl0ZS1zcGFjZTogYXJndW1lbnRzXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtc2l6aW5nXCIgc3VwcG9ydC5cbiAqL1xuXG5ib3gtc2l6aW5nKClcbiAgdmVuZG9yKCdib3gtc2l6aW5nJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiYm94LW9yaWVudFwiIHN1cHBvcnQuXG4gKi9cblxuYm94LW9yaWVudCgpXG4gIHZlbmRvcignYm94LW9yaWVudCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImJveC1mbGV4LWdyb3VwXCIgc3VwcG9ydC5cbiAqL1xuXG5ib3gtZmxleC1ncm91cCgpXG4gIHZlbmRvcignYm94LWZsZXgtZ3JvdXAnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtb3JkaW5hbC1ncm91cFwiIHN1cHBvcnQuXG4gKi9cblxuYm94LW9yZGluYWwtZ3JvdXAoKVxuICB2ZW5kb3IoJ2JveC1vcmRpbmFsLWdyb3VwJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG1zIG9mZmljaWFsKVxuXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtYWxpZ25cIiBzdXBwb3J0LlxuICovXG5cbmJveC1hbGlnbigpXG4gIHZlbmRvcignYm94LWFsaWduJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG1zIG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiYm94LXBhY2tcIiBzdXBwb3J0LlxuICovXG5cbmJveC1wYWNrKClcbiAgdmVuZG9yKCdib3gtcGFjaycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImJveC1kaXJlY3Rpb25cIiBzdXBwb3J0LlxuICovXG5cbmJveC1kaXJlY3Rpb24oKVxuICB2ZW5kb3IoJ2JveC1kaXJlY3Rpb24nLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb25cIiBzdXBwb3J0LlxuICovXG5cbmFuaW1hdGlvbigpXG4gIHZlbmRvcignYW5pbWF0aW9uJywgYXJndW1lbnRzKVxuXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24tbmFtZVwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uLW5hbWUoKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi1uYW1lJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYW5pbWF0aW9uLWR1cmF0aW9uXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tZHVyYXRpb24oKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi1kdXJhdGlvbicsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1kZWxheVwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uLWRlbGF5KClcbiAgdmVuZG9yKCdhbmltYXRpb24tZGVsYXknLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24tZGlyZWN0aW9uXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tZGlyZWN0aW9uKClcbiAgdmVuZG9yKCdhbmltYXRpb24tZGlyZWN0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudFwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgpXG4gIHZlbmRvcignYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCcsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb25cIiBzdXBwb3J0LlxuICovXG5cbmFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24nLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24tcGxheS1zdGF0ZVwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uLXBsYXktc3RhdGUoKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi1wbGF5LXN0YXRlJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYW5pbWF0aW9uLWZpbGwtbW9kZVwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uLWZpbGwtbW9kZSgpXG4gIHZlbmRvcignYW5pbWF0aW9uLWZpbGwtbW9kZScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImh5cGhlbnNcIiBzdXBwb3J0LlxuICovXG5cbmh5cGhlbnMoKVxuICB2ZW5kb3IoJ2h5cGhlbnMnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJhcHBlYXJhbmNlXCIgc3VwcG9ydC5cbiAqL1xuXG5hcHBlYXJhbmNlKClcbiAgdmVuZG9yKCdhcHBlYXJhbmNlJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwidGFiLXNpemVcIiBzdXBwb3J0LlxuICovXG5cbnRhYi1zaXplKClcbiAgdmVuZG9yKCd0YWItc2l6ZScsIGFyZ3VtZW50cywgb25seTogbW96IG8gb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJvdmVyZmxvdy1zY3JvbGxpbmdcIiBzdXBwb3J0LlxuICovXG5cbm92ZXJmbG93LXNjcm9sbGluZygpXG4gIHZlbmRvcignb3ZlcmZsb3ctc2Nyb2xsaW5nJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0ZXh0LW92ZXJmbG93XCIgc3VwcG9ydCwgLCAtby0gZm9yIG9wZXJhIDkuKiAtIDEwLipcbiAqL1xuXG50ZXh0LW92ZXJmbG93KClcbiAgdmVuZG9yKCd0ZXh0LW92ZXJmbG93JywgYXJndW1lbnRzLCBvbmx5OiBvZmZpY2lhbCBvKVxuXG4vKlxuICogVmVuZG9yIFwidGV4dC1zaXplLWFkanVzdFwiIHN1cHBvcnQuXG4gKi9cbnRleHQtc2l6ZS1hZGp1c3QoKVxuICB2ZW5kb3IoJ3RleHQtc2l6ZS1hZGp1c3QnLCBhcmd1bWVudHMsIG9ubHk6IG9mZmljaWFsIHdlYmtpdCBtcylcblxuLypcbiAqIFZlbmRvciBcImZvbnQtc21vb3RoaW5nXCIgc3VwcG9ydCwgd2Via2l0IG9ubHkuXG4gKi9cbmZvbnQtc21vb3RoaW5nKClcbiAgdmVuZG9yKCdmb250LXNtb290aGluZycsIGFyZ3VtZW50cywgb25seTogd2Via2l0KVxuXG5cbi8qKlxuICogVmVuZG9yIGlucHV0LXBsYWNlaG9sZGVyL3BsYWNlaG9sZGVyIHN1cHBvcnQuXG4gKlxuICogRXhhbXBsZXM6XG4gKiAgICAvLyBEZWZhdWx0IHN5bnRheFxuICogICAgYm9keVxuICogICAgICBwbGFjZWhvbGRlcihjb2xvciAjMzMzLCBmb250LXdlaWdodCBub3JtYWwpXG4gKlxuICogICAgLy8gVGhlIGNvbW1hIGlzIGltcG9ydGFudFxuICogICAgLnBsYWNlaG9sZGVyLXJlZFxuICogICAgICBwbGFjZWhvbGRlcihjb2xvciByZWQsKVxuICpcbiAqICAgIC8vIFdlIGNhbiBwYXNzIGEgZnVuY3Rpb25cbiAqICAgIGdyZWVuLXBsYWNlaG9sZGVyKClcbiAqICAgICAgY29sb3IgZ3JlZW5cbiAqICAgIC5wbGFjZWhvbGRlci1ncmVlblxuICogICAgICBwbGFjZWhvbGRlcihncmVlbi1wbGFjZWhvbGRlcilcbiAqXG4gKiAgICAvLyBXZSBjYW4gcGFzcyBhIGhhc2hcbiAqICAgIHRleHRhcmVhXG4gKiAgICAgIHBsYWNlaG9sZGVyKChmb250LXN0eWxlIGl0YWxpYykgKGZvbnQtd2VpZ2h0IGJvbGQpIChwYWRkaW5nICc0cHggMTBweCcpKVxuICovXG5wbGFjZWhvbGRlcigpXG4gIGZvciB2IGluICc6LXdlYmtpdC1pbnB1dCcgJy1tb3onICc6LW1veicgJy1tcy1pbnB1dCdcbiAgICAmOnt2fS1wbGFjZWhvbGRlclxuICAgICAgZm9yIHBhaXIgaW4gYXJndW1lbnRzXG4gICAgICAgIGlmIHR5cGVvZihwYWlyKSA9PSAnZnVuY3Rpb24nXG4gICAgICAgICAgcGFpcigpXG4gICAgICAgIGVsc2UgaWYgcGFpciBpcyBub3QgbnVsbCAmJiBwYWlyWzBdIGlzIG5vdCBudWxsXG4gICAgICAgICAge3BhaXJbMF19OiB0eXBlKHBhaXJbMV0pID09ICdzdHJpbmcnID8gcyhwYWlyWzFdKSA6IHBhaXJbMV1cbmlucHV0LXBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXJcblxuLypcbiAqIFZlbmRvciBiYWNrZ3JvdW5kIHN1cHBvcnQgKGdyYWRpZW50cykuXG4gKi9cblxuYmFja2dyb3VuZCgpXG4gIGlmIG1hdGNoKCctZ3JhZGllbnRcXCgnLCAnJythcmd1bWVudHMpXG4gICAgdmVuZG9yKCdiYWNrZ3JvdW5kJywgYXJndW1lbnRzLCB2ZW5kb3ItcHJvcGVydHk6IGZhbHNlKVxuICBlbHNlXG4gICAgYmFja2dyb3VuZCBhcmd1bWVudHNcblxuYmFja2dyb3VuZC1pbWFnZSgpXG4gIGlmIG1hdGNoKCctZ3JhZGllbnRcXCgnLCAnJythcmd1bWVudHMpXG4gICAgdmVuZG9yKCdiYWNrZ3JvdW5kLWltYWdlJywgYXJndW1lbnRzLCB2ZW5kb3ItcHJvcGVydHk6IGZhbHNlKVxuICBlbHNlXG4gICAgYmFja2dyb3VuZC1pbWFnZSBhcmd1bWVudHNcblxuY3Vyc29yKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2N1cnNvcicsIGFyZ3VtZW50cywgdmVuZG9yLXByb3BlcnR5OiBmYWxzZSlcbiAgZWxzZVxuICAgIGN1cnNvciBhcmd1bWVudHNcblxubGlzdC1zdHlsZSgpXG4gIGlmIG1hdGNoKCctZ3JhZGllbnRcXCgnLCAnJythcmd1bWVudHMpXG4gICAgdmVuZG9yKCdsaXN0LXN0eWxlJywgYXJndW1lbnRzLCB2ZW5kb3ItcHJvcGVydHk6IGZhbHNlKVxuICBlbHNlXG4gICAgbGlzdC1zdHlsZSBhcmd1bWVudHNcblxubGlzdC1zdHlsZS1pbWFnZSgpXG4gIGlmIG1hdGNoKCctZ3JhZGllbnRcXCgnLCAnJythcmd1bWVudHMpXG4gICAgdmVuZG9yKCdsaXN0LXN0eWxlLWltYWdlJywgYXJndW1lbnRzLCB2ZW5kb3ItcHJvcGVydHk6IGZhbHNlKVxuICBlbHNlXG4gICAgbGlzdC1zdHlsZS1pbWFnZSBhcmd1bWVudHNcbiIsIi8qXG4gKiBPdmVyZmxvdyB1dGlsaXR5LiBNYXBzIHRvIHJlZ3VsYXIgb3ZlcmZsb3csIGFuZCBhZGRzIGFuIGVsbGlwc2lzIHZhbHVlLlxuICpcbiAqIFN5bm9wc2lzOlxuICpcbiAqICAgb3ZlcmZsb3c6IDx0eXBlPlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICBvdmVyZmxvdzogYXV0b1xuICogICAgIG92ZXJmbG93OiBoaWRkZW5cbiAqICAgICBvdmVyZmxvdzogZWxsaXBzaXNcbiAqXG4gKi9cblxub3ZlcmZsb3coKVxuICBpZiBhcmd1bWVudHNbMF0gPT0gZWxsaXBzaXNcbiAgICBlbGxpcHNpcygpXG4gIGVsc2VcbiAgICBvdmVyZmxvdzogYXJndW1lbnRzXG4iLCIvKiFcbiAqIFR5cG9cbiAqL1xuYm9keVxuXHRmb250IG5vcm1hbCAkZm9udFNpemUvJGxpbmVIZWlnaHQgJGZvbnRcblx0Zm9udC13ZWlnaHQgMzAwXG5cdGxldHRlci1zcGFjaW5nIC4wMDVlbVxuXHRjb2xvciAjMDAwXG5cdG92ZXJmbG93LXggaGlkZGVuXG5cbi8qIFRpdGxlcyovXG5oMVxuLmgxXG5oMlxuLmgyXG5oM1xuLmgzXG5oNFxuLmg0XG5oNVxuLmg1XG5oNlxuLmg2XG5cdGZvbnQtZmFtaWx5ICRmb250VGl0bGVzXG5cdGZvbnQtd2VpZ2h0IDQwMFxuXHRtYXJnaW4gMS41ZW0gMCAuNWVtXG5cbmgxXG4uaDFcblx0Zm9udC1zaXplIDMwcHhcblx0bGluZS1oZWlnaHQgNDBweFxuXHRtYXJnaW4tdG9wIDBcblx0QG1lZGlhIChtaW4td2lkdGggJHRhYmxldClcblx0XHRmb250LXNpemUgNDVweFxuXHRcdGxpbmUtaGVpZ2h0IDUycHhcbmgyXG4uaDJcblx0Zm9udC1zaXplIDIwcHhcblx0bGluZS1oZWlnaHQgMzRweFxuXHRAbWVkaWEgKG1pbi13aWR0aCAkdGFibGV0KVxuXHRcdGZvbnQtc2l6ZSAzNHB4XG5cdFx0bGluZS1oZWlnaHQgNDJweFxuXG5oM1xuLmgzXG5cdGZvbnQtc2l6ZSAxOHB4XG5cdGxpbmUtaGVpZ2h0IDI2cHhcblx0QG1lZGlhIChtaW4td2lkdGggJHRhYmxldClcblx0XHRmb250LXNpemUgMjRweFxuXHRcdGxpbmUtaGVpZ2h0IDMycHhcblxuaDRcbi5oNFxuXHRmb250LXNpemUgMTZweFxuXHRsaW5lLWhlaWdodCAyNHB4XG5cdEBtZWRpYSAobWluLXdpZHRoICR0YWJsZXQpXG5cdFx0Zm9udC1zaXplIDIwcHhcblx0XHRsaW5lLWhlaWdodCAzMHB4XG5cbmg1XG4uaDVcblx0Zm9udC1zaXplIDE2cHhcblx0bGluZS1oZWlnaHQgMjRweFxuXHRmb250LXdlaWdodCA1MDBcbmg2XG4uaDZcblx0Zm9udC1zaXplIDE0cHhcblx0bGluZS1oZWlnaHQgMjRweFxuXHRmb250LXdlaWdodCA1MDBcblx0Ji5hbHRlcm5hdGVcblx0XHRmb250LXNpemUgMTZweFxuXHRcdGZvbnQtd2VpZ2h0IDMwMFxuXG4vKiBQYXJhZ3JhcGggKi9cbnBcblx0bWFyZ2luIDAgMCAxLjI1ZW1cblx0Ji5hbHRlcm5hdGVcblx0XHRmb250LXNpemUgMTJweFxuXHRcdGxpbmUtaGVpZ2h0IDIycHhcbmhyXG5cdGJvcmRlciBub25lXG5cdGJvcmRlci10b3AgMXB4IHNvbGlkICNkZGRcblx0bWFyZ2luIDQwcHggMFxuXHRoZWlnaHQgMXB4XG5cdG92ZXJmbG93IGhpZGRlblxuXG4vKiBCbG9ja3F1b3RlICovXG5ibG9ja3F1b3RlXG5cdG1hcmdpbiAwIDAgMS4yNWVtXG5cdHBhZGRpbmcgMFxuXHRmb250LXNpemUgMTJweFxuXHRsaW5lLWhlaWdodCAyMnB4XG5cdGZvbnQtd2VpZ2h0IDMwMFxuXHRwXG5cdFx0bWFyZ2luIDBcblxuLyogTGlua3MgKi9cbmFcblx0Y29sb3IgJGNvbG9yTGlua1xuXHR0YXAtaGlnaGxpZ2h0LWNvbG9yIHJnYmEoMCwwLDAsMCk7XG5cdHRleHQtZGVjb3JhdGlvbiB1bmRlcmxpbmVcblx0dHJhbnNpdGlvbiBjb2xvciAuM3Ncblx0Lm5vLXRvdWNoICY6aG92ZXJcblx0XHRjb2xvciAkY29sb3JIb3ZlclxuXG5cbi8qIExpc3RzICovXG51bFxub2xcblx0bWFyZ2luIDAgMCAxLjI1ZW1cblx0bGlzdC1zdHlsZSBub25lXG5cdHBhZGRpbmcgMFxubGlcblx0cGFkZGluZyAwIDAgMCAyMHB4XG5cdG1hcmdpbiAwIDAgNnB4XG5cdCY6bGFzdC1jaGlsZFxuXHRcdG1hcmdpbi1ib3R0b20gMFxuXHRvbFxuXHR1bFxuXHRcdG1hcmdpbiAuMjVlbSAwIDBcbnVsXG5cdGxpXG5cdFx0cG9zaXRpb24gcmVsYXRpdmVcblx0XHQmOmJlZm9yZVxuXHRcdFx0Y29udGVudCBcIlwiXG5cdFx0XHRwb3NpdGlvbiBhYnNvbHV0ZVxuXHRcdFx0bGVmdCAwXG5cdFx0XHR0b3AgOXB4XG5cdFx0XHRzaXplIDZweFxuXHRcdFx0Ym9yZGVyLXJhZGl1cyAycHhcblx0XHRcdGJhY2tncm91bmQtY29sb3IgJGNvbG9yTGlcbm9sXG5cdGNvdW50ZXItcmVzZXQgaXRlbVxuXHRsaVxuXHRcdGJhY2tncm91bmQgbm9uZVxuXHRcdHBvc2l0aW9uIHJlbGF0aXZlXG5cdFx0JjpiZWZvcmVcblx0XHRcdGNvbnRlbnQgY291bnRlcihpdGVtKVwiLlwiXG5cdFx0XHRjb3VudGVyLWluY3JlbWVudCBpdGVtXG5cdFx0XHRwb3NpdGlvbiBhYnNvbHV0ZVxuXHRcdFx0bGVmdCAwXG5cdFx0XHR0b3AgMFxuXHRcdFx0Zm9udC13ZWlnaHQgYm9sZFxuXHRcdFx0dGV4dC1hbGlnbiBsZWZ0XG5cbmRsXG5cdG1hcmdpbiAwIDAgMS4yNWVtXG5kdFxuXHRmb250LXdlaWdodCBib2xkXG5cdG1hcmdpbiAwXG5kZFxuXHRtYXJnaW4gMCAwIC43NWVtXG5cdHBhZGRpbmcgMFxuXG4vKiBUYWJsZXMgKi9cbnRhYmxlXG5cdHdpZHRoIDEwMCVcblx0Y2xlYXIgYm90aFxuXHRtYXJnaW4gMCAwIDEuMjVlbVxuXHRlbXB0eS1jZWxscyBzaG93XG5cdGJvcmRlci1jb2xsYXBzZSBjb2xsYXBzZVxuXHRib3JkZXIgMXB4IHNvbGlkICNkZGRcblxuY2FwdGlvblxuXHRmb250LXdlaWdodCBib2xkXG5cdHRleHQtYWxpZ24gbGVmdFxuXHRwYWRkaW5nIDBweCAwcHggMTBweFxuXHRjYXB0aW9uLXNpZGUgdG9wXG50ZFxudGhcblx0dmVydGljYWwtYWxpZ24gdG9wXG5cdHBhZGRpbmcgN3B4IDhweFxuXHRib3JkZXIgMXB4IHNvbGlkICNkZGRcbnRoXG5cdGZvbnQtd2VpZ2h0IGJvbGRcbnRoZWFkIHRoXG5cdGJhY2tncm91bmQgI2VlZVxuXG4vKiBib2xkICovXG5iXG5zdHJvbmdcblx0Zm9udC13ZWlnaHQgNTAwXG5cbi8qIEltYWdlcyAqL1xuaW1nLmxcblx0bWFyZ2luIC4yNWVtIDIwcHggMjBweCAwXG5pbWcuclxuXHRtYXJnaW4gLjI1ZW0gMCAyMHB4IDIwcHhcbmltZ1xuXHRAbWVkaWEobWF4LXdpZHRoICRkZXNrdG9wV2lkZSAtIDEpXG5cdFx0bWF4LXdpZHRoIDEwMCVcblx0XHRoZWlnaHQgYXV0b1xuIiwiJHJlc2V0LXVsXG5cdG1hcmdpbiAwXG5cbiRyZXNldC11bC1saVxuXHRwYWRkaW5nIDBcblx0bWFyZ2luIDBcblx0YmFja2dyb3VuZCBub25lXG5cdG92ZXJmbG93IHZpc2libGVcblx0YmFja2dyb3VuZC1zaXplIGF1dG9cblx0YmFja2dyb3VuZC1wb3NpdGlvbiBhdXRvIGF1dG9cblx0JjpiZWZvcmVcblx0XHRjb250ZW50IG5vcm1hbFxuXG4kcmVzZXQtb2xcblx0QGV4dGVuZCAkcmVzZXQtdWxcblxuJHJlc2V0LW9sLWxpXG5cdEBleHRlbmQgJHJlc2V0LXVsLWxpXG5cdHBvc2l0aW9uIHN0YXRpY1xuXHQmOmJlZm9yZVxuXHRcdGNvbnRlbnQgbm9ybWFsXG5cdFx0cG9zaXRpb24gc3RhdGljXG5cdFx0bGVmdCBhdXRvXG5cdFx0dG9wIGF1dG9cblxuJGdyaWRcblx0Zm9udC1zaXplIDBweFxuXHR0ZXh0LWFsaWduIGp1c3RpZnlcblx0bGV0dGVyLXNwYWNpbmcgLTFweFxuXHQvLyB0ZXh0LWp1c3RpZnkgZGlzdHJpYnV0ZS1hbGwtbGluZXNcblx0Ly8gQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8gMClcblx0Ly8gXHRsZXR0ZXItc3BhY2luZyAtMXB4XG5cbiRncmlkX19jZWxsXG5cdGRpc3BsYXkgaW5saW5lLWJsb2NrXG5cdHZlcnRpY2FsLWFsaWduIHRvcFxuXHQvLyB0ZXh0LWp1c3RpZnkgYXV0b1xuXHRmb250LXNpemUgJGZvbnRTaXplXG5cdHRleHQtYWxpZ24gbGVmdFxuXHRib3gtc2l6aW5nIGJvcmRlci1ib3hcblx0bGV0dGVyLXNwYWNpbmcgbm9ybWFsXG5cdHdoaXRlLXNwYWNlIG5vcm1hbFxuXG4kZ3JpZC0tc2Nyb2xsXG5cdHBvc2l0aW9uIHJlbGF0aXZlXG5cdHdoaXRlLXNwYWNlIG5vd3JhcFxuXHRvdmVyZmxvdyBoaWRkZW5cblx0b3ZlcmZsb3cteCBhdXRvXG5cdC5qcyAmXG5cdFx0b3ZlcmZsb3cteCBoaWRkZW5cblxuJGljb25cblx0Zm9udC1mYW1pbHkgJ2ljb25zJ1xuXHRzcGVhayBub25lXG5cdGZvbnQtc3R5bGUgbm9ybWFsXG5cdGZvbnQtd2VpZ2h0IG5vcm1hbFxuXHRmb250LXZhcmlhbnQgbm9ybWFsXG5cdHRleHQtdHJhbnNmb3JtIG5vbmVcblx0bGluZS1oZWlnaHQgMVxuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nIGFudGlhbGlhc2VkXG5cdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nIGdyYXlzY2FsZVxuXG5ncmlkKCRzZWxlY3RvciA9ICdjb2wtLScsICRzZXBhcmF0b3IgPSAnLScsICRjb2x1bW5zID0gMTIsICRydWxlID0gJ3dpZHRoJywgJGNvZWYgPSAxLCAkb3RoZXJzID0ge30pXG5cdGZvciAkaSBpbiAxLi4kY29sdW1uc1xuXHRcdHskc2VsZWN0b3IgKyAkaSArICRzZXBhcmF0b3IgKyAkY29sdW1uc31cblx0XHRcdHskcnVsZX0gdW5pdCgxMDAgLyAkY29sdW1ucyAqICRpICogJGNvZWYsICclJylcblx0XHRcdHskb3RoZXJzfVxuXG5pbmxpbmUtYmxvY2soJGFsaWduID0gdG9wLCAkaXNCbG9jayA9IHRydWUpXG5cdGRpc3BsYXkgaW5saW5lLWJsb2NrXG5cdHZlcnRpY2FsLWFsaWduICRhbGlnblxuXHRpZiAkaXNCbG9jayAmJiBzdXBwb3J0LWZvci1pZVxuXHRcdC5pZTcgJlxuXHRcdFx0ZGlzcGxheSBpbmxpbmVcblx0XHRcdHpvb20gMVxuXG5pbmxpbmUtbGlzdCgkd2lkdGgsICRmb250U2l6ZSlcblx0Zm9udC1zaXplIDBweFxuXHQ+ICpcblx0XHRpbmxpbmUtYmxvY2soKVxuXHRcdGlmICR3aWR0aCBpc250IGZhbHNlXG5cdFx0XHR3aWR0aCAkd2lkdGhcblx0XHRmb250LXNpemUgJGZvbnRTaXplXG5cbmlubGluZS1saXN0LXNjcm9sbC1leHRlbmQoKVxuXHRwb3NpdGlvbiByZWxhdGl2ZVxuXHR3aGl0ZS1zcGFjZSBub3dyYXBcblx0b3ZlcmZsb3cgaGlkZGVuXG5cdG92ZXJmbG93LXggYXV0b1xuXHQ+ICogPiAqXG5cdFx0d2hpdGUtc3BhY2Ugbm9ybWFsXG5cdC5qcyAmXG5cdFx0b3ZlcmZsb3cteCBoaWRkZW5cblxuaW5saW5lLWxpc3Qtc2Nyb2xsKCR3aWR0aCwgJGZvbnQpXG5cdGlubGluZS1saXN0KCR3aWR0aCwgJGZvbnQpXG5cdGlubGluZS1saXN0LXNjcm9sbC1leHRlbmQoKVxuXG4vLyBDbGVhcm92w6Fuw60gZmxvdMWvXG5jbGVhcmZpeCgpXG5cdHpvb20gMSBpZiBzdXBwb3J0LWZvci1pZVxuXHQmOmFmdGVyXG5cdCY6YmVmb3JlXG5cdFx0Y29udGVudCAnJ1xuXHRcdGRpc3BsYXkgdGFibGVcblx0XHRjbGVhciBib3RoXG5cblxuLy8gU2tyeXTDrSB0ZXh0dVxudGV4dC1oaWRlKClcblx0Zm9udCAwcHgvMHB4IGFcblx0Y29sb3IgdHJhbnNwYXJlbnRcblx0dGV4dC1kZWNvcmF0aW9uIG5vbmVcblxuLy8gUm96bcSbcnlcbnNpemUoJHdpZHRoID0gZmFsc2UsICRoZWlnaHQgPSBmYWxzZSlcblx0aWYgdW5pdCgkd2lkdGgpIGlzICcnXG5cdFx0JHdpZHRoID0gdW5pdCgkd2lkdGgsICdweCcpXG5cblx0aWYgJGhlaWdodFxuXHRcdGlmIHVuaXQoJGhlaWdodCkgaXMgJydcblx0XHRcdCRoZWlnaHQgPSB1bml0KCRoZWlnaHQsICdweCcpXG5cdFx0d2lkdGggJHdpZHRoXG5cdFx0aGVpZ2h0ICRoZWlnaHRcblx0ZWxzZVxuXHRcdHdpZHRoICR3aWR0aFxuXHRcdGhlaWdodCAkd2lkdGhcblxuXG4vLyBQWCBkbyBFTVxucHhUb0VtKCRmcm9tLCAkdG8pXG5cdHVuaXQoKCR0by8kZnJvbSksIGVtKVxuXG4vLyBWZXJ0aWvDoWxuw60gemFyb3Zuw6Fuw60gb2JzYWh1XG5ib3gtdmVydGljYWwoJGFsaWduID0gbWlkZGxlKVxuXHQmOmJlZm9yZVxuXHQuYmVmb3JlXG5cdFx0Y29udGVudCAnJ1xuXHRcdGRpc3BsYXkgaW5saW5lLWJsb2NrXG5cdFx0aGVpZ2h0IDEwMCVcblx0XHRtYXJnaW4tcmlnaHQgLTAuMjVlbVxuXHRcdHZlcnRpY2FsLWFsaWduICRhbGlnblxuXG4vLyBQxZlldsOhZMOtIHogTmliIGJhc2U2NCBkbyBvYnLDoXprdVxudG8taW1hZ2UodXJsLCBiYXNlNjQpXG5cdCd1cmwoJXMpJyAlIGRhdGEtdG8taW1hZ2UodW5xdW90ZSh1cmwpLCBiYXNlNjQpXG5cbi8vIFZ5dHZvxZllbsOtIHRyb2rDumhlbG7DrWt1IHBvbW9jw60gYm9yZGVyxa9cbnRyaWFuZ2xlKGRpcmVjdGlvbiA9ICdkb3duJywgd2lkdGggPSAxMHB4LCBoZWlnaHQgPSAxMHB4LCBjb2xvciA9ICMwMDApXG5cdHdpZHRoIDBcblx0aGVpZ2h0IDBcblx0Ym9yZGVyLXN0eWxlIHNvbGlkXG5cblx0ZGlyZWN0aW9ucyA9IHtcblx0XHR1cDoge1xuXHRcdFx0Ym9yZGVyLXdpZHRoOiAwICh3aWR0aCAqIC41KSBoZWlnaHQgKHdpZHRoICogLjUpLFxuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCBjb2xvciB0cmFuc3BhcmVudFxuXHRcdH0sXG5cdFx0ZG93bjoge1xuXHRcdFx0Ym9yZGVyLXdpZHRoOiBoZWlnaHQgKHdpZHRoICogLjUpIDAgKHdpZHRoICogLjUpLFxuXHRcdFx0Ym9yZGVyLWNvbG9yOiBjb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudFxuXHRcdH0sXG5cdFx0bGVmdDoge1xuXHRcdFx0Ym9yZGVyLXdpZHRoOiAoaGVpZ2h0ICogLjUpIHdpZHRoIChoZWlnaHQgKiAuNSkgMCxcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnRcblx0XHR9LFxuXHRcdHJpZ2h0OiB7XG5cdFx0XHRib3JkZXItd2lkdGg6IChoZWlnaHQgKiAuNSkgMCAoaGVpZ2h0ICouNSkgd2lkdGgsXG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IGNvbG9yXG5cdFx0fSxcblx0XHR1cC1sZWZ0OiB7XG5cdFx0XHRib3JkZXItd2lkdGg6IGhlaWdodCB3aWR0aCAwIDAsXG5cdFx0XHRib3JkZXItY29sb3I6IGNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50XG5cdFx0fSxcblx0XHRkb3duLWxlZnQ6IHtcblx0XHRcdGJvcmRlci13aWR0aDogd2lkdGggMCAwIGhlaWdodCxcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgY29sb3Jcblx0XHR9LFxuXHRcdHVwLXJpZ2h0OiB7XG5cdFx0XHRib3JkZXItd2lkdGg6IDAgd2lkdGggaGVpZ2h0IDAsXG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IGNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50XG5cdFx0fSxcblx0XHRkb3duLXJpZ2h0OiB7XG5cdFx0XHRib3JkZXItd2lkdGg6IDAgMCBoZWlnaHQgd2lkdGgsXG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IGNvbG9yIHRyYW5zcGFyZW50XG5cdFx0fVxuXHR9XG5cblx0c3R5bGVzID0gZGlyZWN0aW9uc1tkaXJlY3Rpb25dXG5cdHtzdHlsZXN9XG4iLCIvKlxuICogSGVscGVyIGZvciBib3JkZXItcmFkaXVzKCkuXG4gKi9cblxuLWFwcGx5LWJvcmRlci1yYWRpdXMocG9zLCBpbXBvcnRhbmNlKVxuICBpZiBsZW5ndGgocG9zKSA9PSAzXG4gICAgLy8gYm9yZGVyLXJhZGl1czogPHRvcCB8IGJvdHRvbT4gPGxlZnQgfCByaWdodD4gPG4+XG4gICAgeSA9IHBvc1swXVxuICAgIHggPSBwb3NbMV1cbiAgICAvLyBXZSBkb24ndCB1c2UgdmVuZG9yIGZvciBib2Rlci1yYWRpdXMgYW55bW9yZVxuICAgIC8vIHZlbmRvcignYm9yZGVyLXJhZGl1cy0lcyVzJyAlIHBvcywgcG9zWzJdLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG4gICAgeydib3JkZXItJXMtJXMtcmFkaXVzJyAlIHBvc306IHBvc1syXSBpbXBvcnRhbmNlXG4gIGVsc2UgaWYgcG9zWzBdIGluICh0b3AgYm90dG9tKVxuICAgIC8vIGJvcmRlci1yYWRpdXM6IDx0b3AgfCBib3R0b20+IDxuPlxuICAgIC1hcHBseS1ib3JkZXItcmFkaXVzKHBvc1swXSBsZWZ0IHBvc1sxXSwgaW1wb3J0YW5jZSlcbiAgICAtYXBwbHktYm9yZGVyLXJhZGl1cyhwb3NbMF0gcmlnaHQgcG9zWzFdLCBpbXBvcnRhbmNlKVxuICBlbHNlIGlmIHBvc1swXSBpbiAobGVmdCByaWdodClcbiAgICAvLyBib3JkZXItcmFkaXVzOiA8bGVmdCB8IHJpZ2h0PiA8bj5cbiAgICB1bnNoaWZ0KHBvcywgdG9wKTtcbiAgICAtYXBwbHktYm9yZGVyLXJhZGl1cyhwb3MsIGltcG9ydGFuY2UpXG4gICAgcG9zWzBdID0gYm90dG9tXG4gICAgLWFwcGx5LWJvcmRlci1yYWRpdXMocG9zLCBpbXBvcnRhbmNlKVxuXG4vKlxuICogYm9yZGVyLXJhZGl1cyBzdXBwb3J0aW5nIGF1Z21lbnRlZCBiZWhhdmlvci5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICBib3JkZXItcmFkaXVzOiAycHggNXB4XG4gKiAgICBib3JkZXItcmFkaXVzOiB0b3AgNXB4IGJvdHRvbSAxMHB4XG4gKiAgICBib3JkZXItcmFkaXVzOiBsZWZ0IDVweFxuICogICAgYm9yZGVyLXJhZGl1czogdG9wIGxlZnQgNXB4XG4gKiAgICBib3JkZXItcmFkaXVzOiB0b3AgbGVmdCAxMHB4IGJvdHRvbSByaWdodCA1cHhcbiAqICAgIGJvcmRlci1yYWRpdXM6IHRvcCBsZWZ0IDEwcHgsIGJvdHRvbSByaWdodCA1cHhcbiAqXG4gKi9cblxuYm9yZGVyLXJhZGl1cygpXG4gIHBvcyA9ICgpXG4gIGF1Z21lbnRlZCA9IGZhbHNlXG4gIGltcG9ydGFuY2UgPSBhcmd1bWVudHNbbGVuZ3RoKGFyZ3VtZW50cykgLSAxXSA9PSAhaW1wb3J0YW50ID8gIWltcG9ydGFudCA6IHVucXVvdGUoJycpXG5cbiAgZm9yIGFyZ3MgaW4gYXJndW1lbnRzXG4gICAgZm9yIGFyZyBpbiBhcmdzXG4gICAgICBpZiBhcmcgaXMgYSAnaWRlbnQnXG4gICAgICAgIGFwcGVuZChwb3MsIGFyZylcbiAgICAgICAgYXVnbWVudGVkID0gdHJ1ZVxuICAgICAgZWxzZVxuICAgICAgICBhcHBlbmQocG9zLCBhcmcpXG4gICAgICAgIGlmIGF1Z21lbnRlZFxuICAgICAgICAgIC1hcHBseS1ib3JkZXItcmFkaXVzKHBvcywgaW1wb3J0YW5jZSlcbiAgICAgICAgICBwb3MgPSAoKVxuICBib3JkZXItcmFkaXVzIHBvcyB1bmxlc3MgYXVnbWVudGVkXG4iLCIvKiFcbiAqXHRTaW1wbHkgZmFzdCBjbGFzc1xuICovXG4ucmVzZXRcblx0Ym9yZGVyIG5vbmVcblx0bWFyZ2luIDBcblx0cGFkZGluZyAwXG5cdGJhY2tncm91bmQgbm9uZVxuXHRib3gtc2hhZG93IG5vbmVcblx0dGRcblx0dGhcblx0XHRib3JkZXIgbm9uZVxuXHRcdGJhY2tncm91bmQgbm9uZVxuXHRcdHBhZGRpbmcgMFxuXHQ+IGxpXG5cdD4gZHRcblx0PiBkZFxuXHRcdG1hcmdpbiAwXG5cdFx0cGFkZGluZyAwXG5cdFx0YmFja2dyb3VuZCBub25lXG5cdFx0Ym9yZGVyIG5vbmVcblx0XHRmbG9hdCBub25lXG5cdFx0d2lkdGggYXV0b1xuXG4vLyBmbG9hdFxuLmxcblx0ZmxvYXQgbGVmdFxuLnJcblx0ZmxvYXQgcmlnaHRcblxuLy8gY2xlYXJcbi5jYlxuXHRjbGVhciBib3RoXG4uY2xcblx0Y2xlYXIgbGVmdFxuLmNyXG5cdGNsZWFyIHJpZ2h0XG4uY2Z4XG5cdHpvb20gMVxuXHQmOmFmdGVyXG5cdCY6YmVmb3JlXG5cdFx0Y29udGVudCAnJ1xuXHRcdGRpc3BsYXkgdGFibGVcblx0XHRjbGVhciBib3RoXG4uYnJlYWtcblx0aGVpZ2h0IDFweFxuXHRmb250LXNpemUgMXB4XG5cdGxpbmUtaGVpZ2h0IDFweFxuXHRjbGVhciBib3RoXG5cdG92ZXJmbG93IGhpZGRlblxuXHR2aXNpYmlsaXR5IGhpZGRlblxuXHRkaXNwbGF5IGJsb2NrXG5cdG1hcmdpbiAwICFpbXBvcnRhbnRcblx0cGFkZGluZyAwICFpbXBvcnRhbnRcblx0d2lkdGggMTAwJVxuLmN0eFxuXHR6b29tIDFcblx0ZGlzcGxheSB0YWJsZS1jZWxsXG5cdC5pZTcgJlxuXHRcdGRpc3BsYXkgYmxvY2tcblx0JjphZnRlclxuXHRcdGNsZWFyIGJvdGhcblx0XHRkaXNwbGF5IGJsb2NrXG5cdFx0dmlzaWJpbGl0eSBoaWRkZW5cblx0XHRvdmVyZmxvdyBoaWRkZW5cblx0XHRoZWlnaHQgMHB4ICFpbXBvcnRhbnRcblx0XHRsaW5lLWhlaWdodCAwcHhcblx0XHRmb250LXNpemUgeHgtbGFyZ2Vcblx0XHRjb250ZW50IFwiIHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggeCB4IHggXCJcblxuLy8gaGlkZVxuLmhpZGVcbi5qcyAuanNIaWRlXG5cdGRpc3BsYXkgbm9uZVxuLm91dFxuLmpzIC5qc091dFxuXHRwb3NpdGlvbiBhYnNvbHV0ZVxuXHRsZWZ0IC01MDAwcHhcblx0dG9wIC01MDAwcHhcbi52aGlkZVxuXHRwb3NpdGlvbiBhYnNvbHV0ZVxuXHRoZWlnaHQgMXB4XG5cdHdpZHRoIDFweFxuXHRvdmVyZmxvdyBoaWRkZW5cblx0Ym9yZGVyIDBcblx0Y2xpcCByZWN0KDAgMCAwIDApXG5cdG1hcmdpbiAtMXB4XG5cdHBhZGRpbmcgMFxuXG4vLyBhbGlnblxuLmxlZnRcblx0dGV4dC1hbGlnbiBsZWZ0XG4ucmlnaHRcblx0dGV4dC1hbGlnbiByaWdodFxuLmNlbnRlclxuXHR0ZXh0LWFsaWduIGNlbnRlclxuXG4vLyB0cmFuc2Zvcm1cbi5sb3dlclxuXHR0ZXh0LXRyYW5zZm9ybSBsb3dlcmNhc2Vcbi51cHBlclxuXHR0ZXh0LXRyYW5zZm9ybSB1cHBlcmNhc2VcblxuLy8gd2VpZ2h0XG4uYm9sZFxuXHRmb250LXdlaWdodCBib2xkXG4udGhpblxuXHRmb250LXdlaWdodCBub3JtYWxcbi5tZWRpdW1cblx0Zm9udC13ZWlnaHQgNTAwXG4udGhpbm5lclxuXHRmb250LXdlaWdodCAzMDBcblxuLy8gc3R5bGVcbi5pdGFsaWNcblx0Zm9udC1zdHlsZSBpdGFsaWNcbi5ub3JtYWxcblx0Zm9udC1zdHlsZSBub3JtYWxcblxuLy8gdmFsaWduXG4udG9wXG5cdHZlcnRpY2FsLWFsaWduIHRvcFxuLm1pZGRsZVxuXHR2ZXJ0aWNhbC1hbGlnbiBtaWRkbGVcblxuLy8gc2l6ZVxuLmJpZ1xuXHRmb250LXNpemUgMTZweFxuLnNtYWxsXG5cdGZvbnQtc2l6ZSAxMnB4XG5cbi8vIGNvbG9yXG4uZXJyb3Jcbi5yZWRcblx0Y29sb3IgJGNvbG9yUmVkXG4uZ3JlZW5cblx0Y29sb3IgJGNvbG9yR3JlZW5cbi5ncmF5XG5cdGNvbG9yICRjb2xvckdyYXlcblxuLy8gbm93cmFwXG4ubm93cmFwXG5cdHdoaXRlLXNwYWNlIG5vd3JhcFxuXG4ucG9zLXJlbFxuXHRwb3NpdGlvbiByZWxhdGl2ZVxuXG5AbWVkaWEobWF4LXdpZHRoICR0YWJsZXQgLSAxKVxuXHQubW9iaWxlLWhpZGVcblx0XHRkaXNwbGF5IG5vbmVcblxuIiwiaDFcbmgyXG5oM1xuaDRcbmg1XG5oNlxuXHRmb250LXdlaWdodCBib2xkXG5cdGxpbmUtaGVpZ2h0IDEuMlxuaDFcblx0Zm9udC1zaXplIDIycHRcblx0bWFyZ2luIDAgMCAuNWNtXG5oMlxuXHRmb250LXNpemUgMThwdFxuXHRtYXJnaW4gLjc1Y20gMCAuMmNtXG5oM1xuXHRmb250LXNpemUgMTRwdFxuXHRtYXJnaW4gLjVjbSAwIC4xNWNtXG5oNFxuaDVcbmg2XG5cdGZvbnQtc2l6ZSAxMnB0XG5cdG1hcmdpbiAxY20gMCAuNWNtXG5cbmJsb2NrcXVvdGVcblx0cGFkZGluZy1sZWZ0IDBcblx0cGFkZGluZy1yaWdodCAwXG5cdG1hcmdpbiAuNWNtIDBcblxudGFibGVcblx0bWFyZ2luIDE1cHggMXB0IDM1cHhcblx0dGV4dC1hbGlnbiBsZWZ0XG5cdGJvcmRlci1jb2xsYXBzZSBjb2xsYXBzZVxuXHR3aWR0aCA5OCUgIWltcG9ydGFudFxuXHRmb250LXNpemUgOHB0XG50clxuXHRwYWdlLWJyZWFrLWluc2lkZSBhdm9pZFxudGhcbnRkXG5cdGJvcmRlciAxcHQgc29saWQgIzAwMFxuXHRwYWRkaW5nIDRweCAxMHB4IDRweCAxMHB4XG50aFxuXHRmb250LXdlaWdodCBib2xkXG4iLCIubWVudS1tYWluXG4ubWVudS1hY2Nlc3NpYmlsaXR5XG4ubWVudS1icmVhZGNydW1iXG4ubWVudS10b3Bcbi5tZW51LW1vYmlsZVxuLm1lbnUtc2lkZVxuZm9ybVxuLnRhYi1uYXZcbi5idG5cbi5idXR0b25cbi5tb3JlXG4ucGFnaW5nXG4ucGFnZXJcbi5wcmV2XG4ubmV4dFxuXHRkaXNwbGF5IG5vbmVcbiIsIi5oZWFkZXJcblx0Ym9yZGVyLWJvdHRvbSAycHQgc29saWQgIzAwMFxuXHRwYWRkaW5nIDAgMCAyMHB0XG5cdG1hcmdpbiAwIGF1dG8gMjBwdFxuXG4ubG9nb1xuXHRmb250LXNpemUgMTAwJVxuXHRsaW5lLWhlaWdodCAxXG5cdG1hcmdpbiAwXG5cdHBhZGRpbmcgMFxuXHRmb250LXdlaWdodCBub3JtYWxcblx0aW1nXG5cdFx0Ym9yZGVyIG5vbmVcblxuLmZvb3RlclxuXHRib3JkZXItdG9wIDJwdCBzb2xpZCAjMDAwXG5cdHBhZGRpbmcgMjBwdCAwIDBcblx0bWFyZ2luIDIwcHQgMCAwXG4iLCJAaW1wb3J0ICdiYXNlL2luZGV4J1xuQGltcG9ydCAncHJpbnQvaW5kZXgnXG5cbmJvZHlcblx0d2lkdGggMTAwJSAhaW1wb3J0YW50XG5cdGZvbnQtZmFtaWx5IGFyaWFsLFZlcmRhbmEsc2Fucy1zZXJpZlxuXHRjb2xvciAjMDAwXG5cdGJhY2tncm91bmQgbm9uZVxuXHRmb250LXNpemUgOHB0XG5cdGxpbmUtaGVpZ2h0IDEycHRcblxuLnJlc2V0XG5cdGJvcmRlciBub25lXG5cdG1hcmdpbiAwXG5cdHBhZGRpbmcgMFxuXHRiYWNrZ3JvdW5kIG5vbmVcblx0dGRcblx0dGhcblx0XHRib3JkZXIgbm9uZVxuXHRcdGJhY2tncm91bmQgbm9uZVxuXHRcdHBhZGRpbmcgMFxuXHQ+IGxpXG5cdD4gZHRcblx0PiBkZFxuXHRcdG1hcmdpbiAwXG5cdFx0cGFkZGluZyAwXG5cdFx0YmFja2dyb3VuZCBub25lXG5cdFx0Ym9yZGVyIG5vbmVcblx0XHRmb250LXdlaWdodCBpbmhlcml0XG5cdFx0ZmxvYXQgbm9uZVxuXHRcdGRpc3BsYXkgaW5oZXJpdFxuXHRcdHRleHQtYWxpZ24gaW5oZXJpdFxuXHRcdHdpZHRoIGF1dG9cblxuZmllbGRzZXRcblx0Ym9yZGVyIG5vbmVcblx0cGFkZGluZyAwXG5cdG1hcmdpbiAwXG5cbnBcbnVsXG50YWJsZVxuXHRtYXJnaW4gMCAwIC40Y21cbmFcblx0Y29sb3IgIzAwMFxuXHR0ZXh0LWRlY29yYXRpb24gbm9uZVxuXG5pbWdcblx0Ym9yZGVyIG5vbmVcblx0bWF4LXdpZHRoIDEwMCVcblx0aGVpZ2h0IGF1dG8gIWltcG9ydGFudFxuaW1nLmxlZnRcbmltZy5sXG5pbWcucmlnaHRcbmltZy5yXG5cdG1hcmdpbiA0cHggMCAzMHB4IDI5cHhcblx0ZmxvYXQgcmlnaHRcblx0ZGlzcGxheSBpbmxpbmVcblx0YmFja2dyb3VuZCAjZmZmXG5pbWcubGVmdFxuaW1nLmxcblx0ZmxvYXQgbGVmdFxuXHRtYXJnaW4gNHB4IDI5cHggMzBweCAwXG4iXX0= */
