/*! Compiled SASS file | Do NOT modify from here !*/
body.sidebar .page__section--content, .page__section--sidebar-first, .page__section--sidebar-second {
  position: relative;
  width: 100%;
  min-height: 1px; }

.page__section {
  position: relative; }
  .page__section--tools .block--language {
    top: 0.3125rem;
    position: absolute;
    z-index: 1; }
  .page__section--header {
    margin-bottom: 0.875rem;
    height: 16.0625rem;
    position: relative; }
    .page__section--header .block--system--fagg-branding {
      top: 1.0625rem;
      position: absolute; }
      @media (min-width: 972px) {
        .page__section--header .block--system--fagg-branding {
          left: -2.125rem; } }
    .page__section--header .block--menu-header {
      top: 1.0625rem;
      position: absolute;
      right: 15px; }
    .page__section--header .block--menu-main {
      bottom: 0.625rem;
      left: 0.9375rem;
      right: 0.9375rem;
      position: absolute; }
  .page__section--content {
    margin-bottom: 0.9375rem; }
    body.sidebar .page__section--content {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; }
    body.two-sidebars .page__section--content {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%; }
    body.one-sidebar.is-visible--sidebar-first .page__section--content {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 75%;
              flex: 0 0 75%;
      max-width: 75%; }
    body.one-sidebar.is-visible--sidebar-second .page__section--content {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 66.66667%;
              flex: 0 0 66.66667%;
      max-width: 66.66667%; }
    .page__section--content__inner {
      border: 1px solid #eaeaeb;
      padding-top: 0.5rem;
      padding-right: 0.625rem;
      padding-bottom: 0;
      padding-left: 0.625rem;
      background: url("../../images/pattern-spot.png") repeat left bottom; }
  .page__section--sidebar-first {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }
    .page__section--sidebar-first.hide-sidebar {
      display: none; }
  .page__section--sidebar-second {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
    body.two-sidebars .page__section--sidebar-second {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 25%;
              flex: 0 0 25%;
      max-width: 25%; }
    body.one-sidebar .page__section--sidebar-second {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 33.33333%;
              flex: 0 0 33.33333%;
      max-width: 33.33333%; }
    .page__section--sidebar-second .block--region-sidebar-second {
      margin-bottom: 1.5625rem;
      line-height: 1.125rem;
      background: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#eaeaea));
      background: linear-gradient(#f5f5f5, #eaeaea); }
  .page__section--footer {
    color: #fff; }
    .page__section--footer a {
      color: #fff; }
    .page__section--footer .copyright {
      margin-right: 0.625rem;
      display: inline-block; }

.page__wrapper {
  min-width: 60.625rem; }
  .page__wrapper .container {
    max-width: 60.625rem; }
  .page__wrapper--header {
    background-size: 109.625rem 15.4375rem;
    background-image: url("../../images/banner.jpg");
    background-repeat: no-repeat;
    background-position: center top; }
    .page--fr .page__wrapper--header {
      background-image: url("../../images/banner-fr.jpg"); }
    .page--en .page__wrapper--header {
      background-image: url("../../images/banner-en.jpg"); }
    .page--nl .page__wrapper--header {
      background-image: url("../../images/banner-nl.jpg"); }
  .page__wrapper--content ul {
    padding-left: 1.125rem;
    margin-bottom: 1.125rem; }
  .page__wrapper--content li {
    list-style: none;
    padding-top: 0.3rem;
    padding-left: 1.125rem;
    background-position: left 0.5625rem;
    background-size: 0.5625rem 0.375rem;
    background-image: url("../../images/bullet-square-blue.png");
    background-repeat: no-repeat; }
  .page__wrapper--content img {
    margin-bottom: 0.75rem;
    margin-right: 0.225rem;
    margin-top: 0.1125rem; }
  .page__wrapper--footer {
    background-color: #5579a4;
    padding-top: 0.3125rem;
    padding-bottom: 1.0625rem; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbmZpZy9faW1wb3J0cy5zY3NzIiwiLi4vX3Nhc3MtZnJhbWV3b3JrL3BsYWNlaG9sZGVycy9sYXlvdXQvZ3JpZC1zeXN0ZW0vX2dyaWQuc2NzcyIsImxheW91dC9wYWdlL19zZWN0aW9uLnNjc3MiLCIuLi9fc2Fzcy1mcmFtZXdvcmsvbWl4aW5zL3R5cG9ncmFwaHkvZ2VuZXJhbC9fcmVtLnNjc3MiLCIuLi9fc2Fzcy1mcmFtZXdvcmsvbWl4aW5zL2xheW91dC9nZW5lcmFsL19icmVha3BvaW50LnNjc3MiLCIuLi9fc2Fzcy1mcmFtZXdvcmsvbWl4aW5zL2xheW91dC9ncmlkLXN5c3RlbS9fZ3JpZC5zY3NzIiwiY29uZmlnL192YXJpYWJsZS1vdmVycmlkZXMuc2NzcyIsImxheW91dC9wYWdlL193cmFwcGVyLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsbURBQUE7QUNzREE7RUFDRSxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLGVBQWUsRUFBQTs7QUN2RGY7RUFDRSxrQkFBa0IsRUFBQTtFQU1qQjtJQ3NFQyxjQXRCNkM7SUQ3QzNDLGtCQUFrQjtJQUNsQixVQUFVLEVBQUE7RUFRZDtJQzBERSx1QkF0QjZDO0lBc0I3QyxrQkF0QjZDO0lEakM3QyxrQkFBa0IsRUFBQTtJQUhuQjtNQzBEQyxjQXRCNkM7TUQ1QjNDLGtCQUFrQixFQUFBO01FVXRCO1FGbEJDO1VDMERDLGVBdEI2QyxFQUFBLEVEdkI1QztJQWJGO01DMERDLGNBdEI2QztNRGxCM0Msa0JBQWtCO01BQ2xCLFdBQTZCLEVBQUE7SUFuQmhDO01DMERDLGdCQXRCNkM7TUFzQjdDLGVBdEI2QztNQXNCN0MsZ0JBdEI2QztNRFQzQyxrQkFBa0IsRUFBQTtFQVF0QjtJQ3VCRSx3QkF0QjZDLEVBQUE7SURHN0M7TUNtQkEsd0JBdEI2QztNQXNCN0MsdUJBdEI2QyxFQUFBO0lEUTdDO01HMklKLG1CQUZvQztVQUVwQyxpQkFGb0M7Y0FFcEMsYUFGb0M7TUFHcEMsY0FIb0MsRUFBQTtJSHBJaEM7TUdzSUosbUJBRm9DO1VBRXBDLGlCQUZvQztjQUVwQyxhQUZvQztNQUdwQyxjQUhvQyxFQUFBO0lIL0hoQztNR2lJSixtQkFGb0M7VUFFcEMsdUJBRm9DO2NBRXBDLG1CQUZvQztNQUdwQyxvQkFIb0MsRUFBQTtJSDNIaEM7TUNQQSx5Qkc1Q21DO01IbURuQyxtQkF0QjZDO01Bc0I3Qyx1QkF0QjZDO01BZTdDLGlCRFk0QjtNQ0w1QixzQkF0QjZDO01EOEIzQyxtRUFBbUUsRUFBQTtFQU92RTtJQ2ZFLHdCQXRCNkM7SUFzQjdDLHVCQXRCNkM7SUV3TmpELDRCSGpMaUM7UUdpTGpDLGtCSGpMaUM7WUdpTGpDLFNIakxpQztJRzRHakMsbUJBRm9DO1FBRXBDLGlCQUZvQztZQUVwQyxhQUZvQztJQUdwQyxjQUhvQyxFQUFBO0lINUdqQztNQU1HLGFBQWEsRUFBQTtFQVFqQjtJQzdCRSx3QkF0QjZDO0lBc0I3Qyx1QkF0QjZDLEVBQUE7SUR1RDdDO01HNEZKLG1CQUZvQztVQUVwQyxpQkFGb0M7Y0FFcEMsYUFGb0M7TUFHcEMsY0FIb0MsRUFBQTtJSHJGaEM7TUd1RkosbUJBRm9DO1VBRXBDLHVCQUZvQztjQUVwQyxtQkFGb0M7TUFHcEMsb0JBSG9DLEVBQUE7SUg5RmpDO01DN0JDLHdCQXRCNkM7TUFzQjdDLHFCQXRCNkM7TURvRTNDLHVGQUFnRDtNQUFoRCw2Q0FBZ0QsRUFBQTtFQVFwRDtJQUNFLFdJL0dnQyxFQUFBO0lKOEdqQztNQUlHLFdJbEg4QixFQUFBO0lKOEdqQztNQ3REQyxzQkF0QjZDO01EcUYzQyxxQkFBcUIsRUFBQTs7QUsvSTNCO0VKZ0ZJLG9CQXRCNkMsRUFBQTtFSTFEaEQ7SUpnRkcsb0JBdEI2QyxFQUFBO0VJakQvQztJSnVFRSxzQ0F0QjZDO0lJOUMzQyxnREFBcUM7SUFDckMsNEJBQWlCO0lBQ2pCLCtCQUFvQixFQUFBO0lBSXRCO01BQ0UsbURBQW1ELEVBQUE7SUFHckQ7TUFDRSxtREFBbUQsRUFBQTtJQUdyRDtNQUNFLG1EQUFtRCxFQUFBO0VBTXREO0lKK0NDLHNCQXRCNkM7SUFzQjdDLHVCQXRCNkMsRUFBQTtFSXpCOUM7SUFPRyxnQkFBZ0I7SUp3Q2xCLG1CQXRCNkM7SUFzQjdDLHNCQXRCNkM7SUFzQjdDLG1DQXRCNkM7SUFzQjdDLG1DQXRCNkM7SUlWekMsNERBQWlEO0lBQ2pELDRCQUFpQixFQUFBO0VBaEJ0QjtJSitDQyxzQkF0QjZDO0lBc0I3QyxzQkF0QjZDO0lBc0I3QyxxQkF0QjZDLEVBQUE7RUlNL0M7SUFDRSx5QkRmbUM7SUg4Qm5DLHNCQXRCNkM7SUFzQjdDLHlCQXRCNkMsRUFBQSIsImZpbGUiOiJsYXlvdXQvcGFnZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vXG4vLyBAZmlsZVxuLy8gRmluYWwgaW1wb3J0cy5cbi8vXG4vLyBFYWNoIGNvbXBpbGVkIFNBU1MgZmlsZSBpbXBvcnRzIHRoaXMgZmlsZSB1c2luZyB0aGUgQGltcG9ydCBcIi4uL2NvbmZpZy9pbXBvcnRzXCJcbi8vIEAtUnVsZSB3aGljaCBpbXBvcnRzIGl0c2VsZiBhbGwgcmVxdWlyZWQgY29uZmlndXJhdGlvbiBwYXJ0aWFscy5cbi8vXG5cbi8vIFRoZSBmb2xsb3dpbmcgY29tbWVudCBzdGFydHMgd2l0aCBhIFwiIVwiLiBTbyBpdCB3aWxsIG5vdCBiZSByZW1vdmVkIGR1cmluZ1xuLy8gdGhlIChTQVNTKSBjb21waWxhdGlvbi4gSXQgaXMganVzdCB0byBhbGVydCBwcm9qZWN0IGNvbnRyaWJ1dG9ycyB0aGF0IHRoZVxuLy8gKENTUykgb3V0cHV0IGZpbGUgY2FuIG5vdCBiZSBtb2RpZmllZCB1bmRlciBhbnkgY2lyY3Vtc3RhbmNlcy5cblxuLyohIENvbXBpbGVkIFNBU1MgZmlsZSB8IERvIE5PVCBtb2RpZnkgZnJvbSBoZXJlICEqL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVmFyaWFibGVzIG92ZXJyaWRlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGltcG9ydCAndmFyaWFibGUtb3ZlcnJpZGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEN1c3RvbSBmdW5jdGlvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbXBvcnQgJ2Z1bmN0aW9ucy9jb2xvci1zY2hlbWUnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ3VzdG9tIG1peGluc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGltcG9ydCAnbWl4aW5zL2J1dHRvbic7XG5AaW1wb3J0ICdtaXhpbnMvZm9ybS1zZWxlY3QnO1xuQGltcG9ydCAnbWl4aW5zL2xpc3QnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2FzcyBGcmFtZXdvcmtcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbXBvcnQgJy4uLy4uL19zYXNzLWZyYW1ld29yay9pbmNsdWRlLWFsbCc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNYXAgcmVtb3ZhbHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbXBvcnQgJ21hcC1yZW1vdmFscyc7XG4iLCJAY2hhcnNldCAndXRmLTgnO1xuXG5cbi8vLyBHcmlkIGNvbnRhaW5lciBkZWZhdWx0IHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy9cbi8vLyBAc2VlIHttaXhpbn0gbWFrZS1jb250YWluZXJcblxuJWNvbnRhaW5lci1kZWZhdWx0cyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG59XG5cblxuLy8vIEdyaWQgcm93IGRlZmF1bHQgcHJvcGVydGllcy5cbi8vL1xuLy8vIEBncm91cCBsYXlvdXRcbi8vL1xuLy8vIEBzZWUge21peGlufSBtYWtlLXJvd1xuXG4lcm93LWRlZmF1bHRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG5cbi8vLyBSZXNldCBncmlkIHJvdyBkZWZhdWx0IHByb3BlcnRpZXMuXG4vLy9cbi8vLyBSZW1vdmUgdGhlIG5lZ2F0aXZlIG1hcmdpbiBmcm9tIGRlZmF1bHQgZ3JpZCByb3csIHRoZW4gdGhlIGhvcml6b250YWwgcGFkZGluZ1xuLy8vIGZyb20gYWxsIGltbWVkaWF0ZSBjaGlsZHJlbiBjb2x1bW5zIGVsZW1lbnRzICh0byBwcmV2ZW50IHJ1bmF3YXkgc3R5bGUgaW5oZXJpdGFuY2UpLlxuLy8vXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vXG4vLy8gQHNlZSBzY3NzL2xheW91dC9ncmlkLnNjc3NcblxuJXJvdy1yZXNldC1kZWZhdWx0cyB7XG4gIG1hcmdpbjoge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICAvLyBBbGwgaW1tZWRpYXRlIGNoaWxkcmVuIGNvbHVtbnMgZWxlbWVudFxuICAvL1xuICA+ICoge1xuICAgIHBhZGRpbmc6IHtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gR3JpZCBjb2x1bW4gKEZpcnN0LCBhcHBseWluZyBldmVyeXRoaW5nIGJ1dCB0aGUgcGFkZGluZ3MpIGRlZmF1bHQgcHJvcGVydGllcy5cbi8vL1xuLy8vIEBncm91cCBsYXlvdXRcbi8vL1xuLy8vIEBzZWUge21peGlufSBtYWtlLWNvbHVtbi1yZWFkeVxuLy8vXG4vLy8gMS4gUHJldmVudCBjb2x1bW5zIGZyb20gYmVjb21pbmcgdG9vIG5hcnJvdyB3aGVuIGF0IHNtYWxsZXIgZ3JpZCB0aWVycyBieVxuLy8vICAgIGFsd2F5cyBzZXR0aW5nIGB3aWR0aDogMTAwJTtgLiBUaGlzIHdvcmtzIGJlY2F1c2Ugd2UgdXNlIGBmbGV4YCB2YWx1ZXNcbi8vLyAgICBsYXRlciBvbiB0byBvdmVycmlkZSB0aGlzIGluaXRpYWwgd2lkdGguXG4vLy8gMi4gUHJldmVudCBjb2xsYXBzaW5nLlxuXG4lY29sdW1uLWRlZmF1bHRzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTsgLy8gMVxuICBtaW4taGVpZ2h0OiAxcHg7IC8vIDJcbn1cblxuXG4vLy8gR3JpZCBjb2x1bW4gKE5leHQsIGFwcGx5IHRoZSBwYWRkaW5ncykgZGVmYXVsdCBwcm9wZXJ0aWVzLlxuLy8vXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vXG4vLy8gQHNlZSBzY3NzL2xheW91dC9ncmlkLnNjc3Ncbi8vL1xuLy8vIEByZXF1aXJlcyB7cGxhY2Vob2xkZXJ9IGNvbHVtbi1kZWZhdWx0c1xuLy8vIEByZXF1aXJlcyB7bWl4aW59IHJlbVxuXG4lY29sdW1uLXJlYWR5LWRlZmF1bHRzIHtcbiAgQGV4dGVuZCAlY29sdW1uLWRlZmF1bHRzO1xuICBwYWRkaW5nOiB7XG4gICAgQGluY2x1ZGUgcmVtKCdyaWdodCcsICgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSk7XG4gICAgQGluY2x1ZGUgcmVtKCdsZWZ0JywgKCRncmlkLWd1dHRlci13aWR0aCAvIDIpKTtcbiAgfVxufVxuIiwiLy9cbi8vIEBmaWxlXG4vLyBcIlBhZ2VcIiBzZWN0aW9ucy5cbi8vXG5cblxuLy8gUGFnZSBzZWN0aW9uc1xuLy9cblxuLnBhZ2Uge1xuXG5cbiAgLy8gQWxsIHNlY3Rpb25zXG4gIC8vXG5cbiAgJl9fc2VjdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG5cbiAgICAvLyBUb29scyBzZWN0aW9uXG4gICAgLy9cblxuICAgICYtLXRvb2xzIHtcbiAgICAgIC5ibG9jay0tbGFuZ3VhZ2Uge1xuICAgICAgICBAaW5jbHVkZSByZW0oJ3RvcCcsIDVweCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIC8vIEhlYWRlciBzZWN0aW9uXG4gICAgLy9cblxuICAgICYtLWhlYWRlciB7XG4gICAgICBAaW5jbHVkZSByZW0oJ21hcmdpbi1ib3R0b20nLCAxNHB4KTtcbiAgICAgIEBpbmNsdWRlIHJlbSgnaGVpZ2h0JywgMjU3cHgpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAvLyBCcmFuZGluZyBibG9jayBwb3NpdGlvbmluZy5cbiAgICAgIC5ibG9jay0tc3lzdGVtLS1mYWdnLWJyYW5kaW5nIHtcbiAgICAgICAgQGluY2x1ZGUgcmVtKCd0b3AnLCAxN3B4KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtdXAoJ2xhcmdlJykge1xuICAgICAgICAgIEBpbmNsdWRlIHJlbSgnbGVmdCcsIC0zNHB4KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBIZWFkZXIgbWVudSBwb3NpdGlvbmluZy5cbiAgICAgIC5ibG9jay0tbWVudS1oZWFkZXIge1xuICAgICAgICBAaW5jbHVkZSByZW0oJ3RvcCcsIDE3cHgpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAkZ3JpZC1ndXR0ZXItd2lkdGggLyAyO1xuICAgICAgfVxuXG4gICAgICAvLyBNYWluIG1lbnUgcG9zaXRpb25pbmcuXG4gICAgICAuYmxvY2stLW1lbnUtbWFpbiB7XG4gICAgICAgIEBpbmNsdWRlIHJlbSgnYm90dG9tJywgMTBweCk7XG4gICAgICAgIEBpbmNsdWRlIHJlbSgnbGVmdCcsICRncmlkLWd1dHRlci13aWR0aCAvIDIpO1xuICAgICAgICBAaW5jbHVkZSByZW0oJ3JpZ2h0JywgJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMik7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIC8vIENvbnRlbnQgKE1haW4pIHNlY3Rpb25cbiAgICAvL1xuXG4gICAgJi0tY29udGVudCB7XG4gICAgICBAaW5jbHVkZSByZW0oJ21hcmdpbi1ib3R0b20nLCAxNXB4KTtcblxuICAgICAgLy8gQ29udGVudCAoTWFpbikgc2VjdGlvbiB3aGVuIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSB2aXNpYmxlIHNpZGViYXIuXG4gICAgICAjeyRzaWRlYmFyLXZpc2libGV9ICYge1xuICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbHVtbi1yZWFkeTtcbiAgICAgIH1cblxuICAgICAgLy8gQ29udGVudCAoTWFpbikgc2VjdGlvbiB3aGVuIHNpZGViYXJzIHRvZ2V0aGVyLlxuICAgICAgI3skc2lkZWJhci1ib3RoLXZpc2libGV9ICYge1xuICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbHVtbig2KTtcbiAgICAgIH1cblxuICAgICAgLy8gQ29udGVudCAoTWFpbikgc2VjdGlvbiB3aGVuIHRoZXJlIGlzIHRoZSBOYXZpZ2F0aW9uIHNpZGViYXIgKExlZnQpIG9ubHkuXG4gICAgICAjeyRzaWRlYmFyLW5hdmlnYXRpb24tdmlzaWJsZX0gJiB7XG4gICAgICAgIEBpbmNsdWRlIG1ha2UtY29sdW1uKDkpO1xuICAgICAgfVxuXG4gICAgICAvLyBDb250ZW50IChNYWluKSBzZWN0aW9uIHdoZW4gdGhlcmUgaXMgdGhlIFJlbGF0ZWQgY29udGVudCBzaWRlYmFyIChSaWdodCkgb25seS5cbiAgICAgICN7JHNpZGViYXItY29tcGxlbWVudGFyeS12aXNpYmxlfSAmIHtcbiAgICAgICAgQGluY2x1ZGUgbWFrZS1jb2x1bW4oOCk7XG4gICAgICB9XG5cbiAgICAgICZfX2lubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgcmVtKCdib3JkZXInLCAxcHggc29saWQgJHdoaXRlLWRhcmstc2Vjb25kYXJ5KTtcbiAgICAgICAgcGFkZGluZzoge1xuICAgICAgICAgIEBpbmNsdWRlIHJlbSgndG9wJywgOHB4KTtcbiAgICAgICAgICBAaW5jbHVkZSByZW0oJ3JpZ2h0JywgMTBweCk7XG4gICAgICAgICAgQGluY2x1ZGUgcmVtKCdib3R0b20nLCAwKTtcbiAgICAgICAgICBAaW5jbHVkZSByZW0oJ2xlZnQnLCAxMHB4KTtcbiAgICAgICAgfVxuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uL2ltYWdlcy9wYXR0ZXJuLXNwb3QucG5nJykgcmVwZWF0IGxlZnQgYm90dG9tO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5hdmlnYXRpb24gc2lkZWJhciAoTGVmdCkgc2VjdGlvblxuICAgIC8vXG5cbiAgICAmLS1zaWRlYmFyLWZpcnN0IHtcbiAgICAgIEBpbmNsdWRlIG1ha2UtY29sdW1uLXJlYWR5O1xuICAgICAgQGluY2x1ZGUgbWFrZS1jb2x1bW4tb3JkZXIoLTEpO1xuICAgICAgQGluY2x1ZGUgbWFrZS1jb2x1bW4oMyk7XG5cbiAgICAgICYuaGlkZS1zaWRlYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIC8vIFJlbGF0ZWQgY29udGVudCBzaWRlYmFyIChSaWdodCkgc2VjdGlvblxuICAgIC8vXG5cbiAgICAmLS1zaWRlYmFyLXNlY29uZCB7XG4gICAgICBAaW5jbHVkZSBtYWtlLWNvbHVtbi1yZWFkeTtcblxuICAgICAgLy8gUmVsYXRlZCBjb250ZW50IHNpZGViYXIgKFJpZ2h0KSBzZWN0aW9uIHdoZW4gc2lkZWJhcnMgdG9nZXRoZXIuXG4gICAgICAjeyRzaWRlYmFyLWJvdGgtdmlzaWJsZX0gJiB7XG4gICAgICAgIEBpbmNsdWRlIG1ha2UtY29sdW1uKDMpO1xuICAgICAgfVxuXG4gICAgICAvLyBSZWxhdGVkIGNvbnRlbnQgc2lkZWJhciAoUmlnaHQpIHNlY3Rpb24gd2hlbiBpdCBpcyB0aGUgb25seSBvbmUgdG8gYmUgdmlzaWJsZS5cbiAgICAgICN7JHNpZGViYXItb25lLXZpc2libGV9ICYge1xuICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbHVtbig0KTtcbiAgICAgIH1cblxuICAgICAgLy8gUmlnaHQgc2lkZWJhciBibG9jay5cbiAgICAgIC5ibG9jay0tcmVnaW9uLXNpZGViYXItc2Vjb25kIHtcbiAgICAgICAgQGluY2x1ZGUgcmVtKCdtYXJnaW4tYm90dG9tJywgMjVweCk7XG4gICAgICAgIEBpbmNsdWRlIHJlbSgnbGluZS1oZWlnaHQnLCAgMThweCk7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgkd2hpdGUtbGlnaHQsICRncmF5KTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIC8vIEZvb3RlciBzZWN0aW9uXG4gICAgLy9cblxuICAgICYtLWZvb3RlciB7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIH1cblxuICAgICAgLmNvcHlyaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIHJlbSgnbWFyZ2luLXJpZ2h0JywgMTBweCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIiwiQGNoYXJzZXQgJ3V0Zi04JztcblxuXG4vLy8gR2VuZXJhdGUgUFgvUkVNIHZhbHVlIHdoaWNoIGlzIHJlbGF0aXZlIHRvIHRoZSBmb250LXNpemUgZGVmaW5lZCBmb3IgdGhlIGh0bWwgZWxlbWVudC5cbi8vL1xuLy8vIFJFTSBzdGFuZHMgZm9yIHJvb3QgZW0uIEJhc2ljYWxseSwgaW5zdGVhZCBvZiBiZWluZyByZWxhdGl2ZSB0byB0aGUgZm9udC1zaXplIG9mIGl0c1xuLy8vIGRpcmVjdCBwYXJlbnQsIGl0J3MgcmVsYXRpdmUgdG8gdGhlIGZvbnQtc2l6ZSBkZWZpbmVkIGZvciB0aGUgaHRtbCBlbGVtZW50LlxuLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHlcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcbi8vLyAgIC0gQWNjZXB0cyAoYWxtb3N0KSBhbnkgcHJvcGVydHkgYXMgYW4gaW5wdXQsIG5vdCBvbmx5IFwiZm9udC1zaXplXCIuXG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZXNcbi8vLyAgIC0gQWNjZXB0cyBlaXRoZXIgXCJweFwiIG9yIFwicmVtXCIgYXMgYW4gaW5wdXQgdmFsdWUuIEFsc28gYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXMsXG4vLy8gICAgIGxpa2UgXCIxMHB4IDIwcHhcIiAoZm9yIHBhZGRpbmcgb3IgbWFyZ2luIGFzIGFuIGV4YW1wbGUpLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyb290IFsxNnB4XVxuLy8vICAgLSBUaGUgYnJvd3NlciBkZWZhdWx0ICgxNiBwaXhlbHMpIGZvbnQtc2l6ZS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZS5cbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcmVtKCdwYWRkaW5nLXJpZ2h0JywgMTVweCk7XG4vLy8gICAgIEBpbmNsdWRlIHJlbSgncGFkZGluZy1sZWZ0JywgMTVweCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC8vXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7IC8vIEZhbGxiYWNrIGZvciBJRTguXG4vLy8gICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiAxNXB4OyAvLyBGYWxsYmFjayBmb3IgSUU4LlxuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlcyB7dmFyaWFibGV9IGVuYWJsZS1sZWdhY3ktc3VwcG9ydC1mb3ItaWU4XG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gc3RyaXAtdW5pdHNcblxuQG1peGluIHJlbShcbiAgJHByb3BlcnR5LFxuICAkdmFsdWVzLFxuICAkcm9vdDogMTZweFxuKSB7XG5cbiAgJHB4OiAgKCk7XG4gICRyZW06ICgpO1xuXG4gIEBpZiBub3QgdW5pdGxlc3MoJHJvb3QpIHtcbiAgICAkcm9vdDogc3RyaXAtdW5pdHMoJHJvb3QpO1xuICB9XG5cbiAgQGlmICR2YWx1ZXMge1xuICAgIFxuICAgIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcblxuICAgICAgQGlmICR2YWx1ZSA9PSAwIG9yIHR5cGUtb2YoJHZhbHVlKSAhPSAnbnVtYmVyJyB7XG4gICAgICAgICRweDogIGFwcGVuZCgkcHgsICR2YWx1ZSk7XG4gICAgICAgICRyZW06IGFwcGVuZCgkcmVtLCAkdmFsdWUpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdW5pdDogdW5pdCgkdmFsdWUpO1xuICAgICAgICAkdmFsOiAgc3RyaXAtdW5pdHMoJHZhbHVlKTtcblxuICAgICAgICBAaWYgJHVuaXQgPT0gJ3B4JyB7XG4gICAgICAgICAgJHB4OiAgYXBwZW5kKCRweCwgJHZhbHVlKTtcbiAgICAgICAgICBcbiAgICAgICAgICBAaWYgJHZhbCA9PSAxIHtcbiAgICAgICAgICAgICRyZW06IGFwcGVuZCgkcmVtLCAkdmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAkcmVtOiBhcHBlbmQoJHJlbSwgKCR2YWwgLyAkcm9vdCArIHJlbSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSBpZiAkdW5pdCA9PSAncmVtJyB7XG4gICAgICAgICAgJHB4OiAgYXBwZW5kKCRweCwgKCR2YWwgKiAkcm9vdCArIHB4KSk7XG4gICAgICAgICAgJHJlbTogYXBwZW5kKCRyZW0sICR2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICRweDogIGFwcGVuZCgkcHgsICR2YWx1ZSk7XG4gICAgICAgICAgJHJlbTogYXBwZW5kKCRyZW0sICR2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJHB4ID09ICRyZW0ge1xuICAgICAgI3skcHJvcGVydHl9OiAkcHg7XG4gICAgfVxuICAgIEBlbHNlIHtcblxuICAgICAgQGlmICRlbmFibGUtbGVnYWN5LXN1cHBvcnQtZm9yLWllOCB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHB4OyAvLyBGYWxsYmFjayBmb3IgSUU4LlxuICAgICAgfVxuICAgICAgI3skcHJvcGVydHl9OiAkcmVtO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgJ3V0Zi04JztcblxuXG4vLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLFxuLy8vIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2UuIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYFxuLy8vIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0XG4vLy8gd2hlbiBubyBhcmd1bWVudCBpcyBwcm92aWRlZC5cblxuXG4vLy8gR2VuZXJhdGUgTWVkaWEgUXVlcnkgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC5cbi8vL1xuLy8vIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgKHhzbWFsbCkgYnJlYWtwb2ludCwgbWFrZXMgdGhlICdAY29udGVudCdcbi8vLyBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG4vLy9cbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWVcbi8vLyAgIC0gVGhlIG5hbWUgb2YgdGhlIHJlZmVyZW5jZSBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyBbJGdyaWQtYnJlYWtwb2ludHNdXG4vLy8gICAtIE1hcCBvZiBhbGwgYnJlYWtwb2ludHMgdG8gc2VhcmNoIGluLlxuLy8vXG4vLy8gQGNvbnRlbnRcbi8vLyAgIEFueSBDU1MgcHJvcGVydGllcyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgJ0BpbmNsdWRlJyBkaXJlY3RpdmUgd2lsbCBiZVxuLy8vICAgb3V0cHV0IHdpdGhpbiB0aGUgYEBtZWRpYWAgZGVjbGFyYXRpb24uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2UuXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtdXAoJ3NtYWxsJywgKCd4c21hbGwnOiAwLCAnc21hbGwnOiA1NzZweCwgJ21lZGl1bSc6IDc2OHB4LCAnbGFyZ2UnOiA5OTJweCwgJ3hsYXJnZSc6IDEyMzBweCkpIHtcbi8vLyAgICAgICAuLi5cbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAvL1xuLy8vICAgQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4vLy8gICAgIC5lbGVtZW50IHtcbi8vLyAgICAgICAuLi5cbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gYnJlYWtwb2ludC1taW5cbi8vLyBAcmVxdWlyZXMge3ZhcmlhYmxlfSBncmlkLWJyZWFrcG9pbnRzXG5cbkBtaXhpbiBicmVha3BvaW50LXVwKFxuICAkbmFtZSxcbiAgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50c1xuKSB7XG5cbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuLy8vIEdlbmVyYXRlIE1lZGlhIFF1ZXJ5IG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC5cbi8vL1xuLy8vIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCAoeGxhcmdlKSBicmVha3BvaW50LCBtYWtlcyB0aGUgJ0Bjb250ZW50J1xuLy8vIGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbi8vL1xuLy8vIEBncm91cCBsYXlvdXRcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZVxuLy8vICAgLSBUaGUgbmFtZSBvZiB0aGUgcmVmZXJlbmNlIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzIFskZ3JpZC1icmVha3BvaW50c11cbi8vLyAgIC0gTWFwIG9mIGFsbCBicmVha3BvaW50cyB0byBzZWFyY2ggaW4uXG4vLy9cbi8vLyBAY29udGVudFxuLy8vICAgQW55IENTUyBwcm9wZXJ0aWVzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoZSAnQGluY2x1ZGUnIGRpcmVjdGl2ZSB3aWxsIGJlXG4vLy8gICBvdXRwdXQgd2l0aGluIHRoZSBgQG1lZGlhYCBkZWNsYXJhdGlvbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZS5cbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYnJlYWtwb2ludC1kb3duKCdsYXJnZScsICgneHNtYWxsJzogMCwgJ3NtYWxsJzogNTc2cHgsICdtZWRpdW0nOiA3NjhweCwgJ2xhcmdlJzogOTkycHgsICd4bGFyZ2UnOiAxMjMwcHgpKSB7XG4vLy8gICAgICAgLi4uXG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLy9cbi8vLyAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbi8vLyAgICAgLmVsZW1lbnQge1xuLy8vICAgICAgIC4uLlxuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBicmVha3BvaW50LW1heFxuLy8vIEByZXF1aXJlcyB7dmFyaWFibGV9IGdyaWQtYnJlYWtwb2ludHNcblxuQG1peGluIGJyZWFrcG9pbnQtZG93bihcbiAgJG5hbWUsXG4gICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHNcbikge1xuXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5cbi8vLyBHZW5lcmF0ZSBNZWRpYSBRdWVyeSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8vXG4vLy8gTWFrZXMgdGhlICdAY29udGVudCcgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHMuXG4vLy9cbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGxvd2VyXG4vLy8gICAtIE5hbWUgb2YgdGhlIG1pbmltdW0gYnJlYWtwb2ludC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdXBwZXJcbi8vLyAgIC0gTmFtZSBvZiB0aGUgbWF4aW11bSBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyBbJGdyaWQtYnJlYWtwb2ludHNdXG4vLy8gICAtIE1hcCBvZiBhbGwgYnJlYWtwb2ludHMgdG8gc2VhcmNoIGluLlxuLy8vXG4vLy8gQGNvbnRlbnRcbi8vLyAgIEFueSBDU1MgcHJvcGVydGllcyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgJ0BpbmNsdWRlJyBkaXJlY3RpdmUgd2lsbCBiZVxuLy8vICAgb3V0cHV0IHdpdGhpbiB0aGUgYEBtZWRpYWAgZGVjbGFyYXRpb24uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2UuXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtYmV0d2Vlbignc21hbGwnLCAnbGFyZ2UnLCAoJ3hzbWFsbCc6IDAsICdzbWFsbCc6IDU3NnB4LCAnbWVkaXVtJzogNzY4cHgsICdsYXJnZSc6IDk5MnB4LCAneGxhcmdlJzogMTIzMHB4KSkge1xuLy8vICAgICAgIC4uLlxuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC8vXG4vLy8gICBAbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuLy8vICAgICAuZWxlbWVudCB7XG4vLy8gICAgICAgLi4uXG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IGJyZWFrcG9pbnQtbWluXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gYnJlYWtwb2ludC1tYXhcbi8vLyBAcmVxdWlyZXMge3ZhcmlhYmxlfSBncmlkLWJyZWFrcG9pbnRzXG5cbkBtaXhpbiBicmVha3BvaW50LWJldHdlZW4oXG4gICRsb3dlcixcbiAgJHVwcGVyLFxuICAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzXG4pIHtcblxuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5cbi8vLyBHZW5lcmF0ZSBNZWRpYSBRdWVyeSBiZXR3ZWVuIHRoZSBicmVha3BvaW504oCZcyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vL1xuLy8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCAoeHNtYWxsKSBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3QgKHhsYXJnZSkgb25lLlxuLy8vIE1ha2VzIHRoZSAnQGNvbnRlbnQnIGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuLy8vXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lXG4vLy8gICAtIFRoZSBuYW1lIG9mIHRoZSByZWZlcmVuY2UgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgWyRncmlkLWJyZWFrcG9pbnRzXVxuLy8vICAgLSBNYXAgb2YgYWxsIGJyZWFrcG9pbnRzIHRvIHNlYXJjaCBpbi5cbi8vL1xuLy8vIEBjb250ZW50XG4vLy8gICBBbnkgQ1NTIHByb3BlcnRpZXMgdGhhdCBhcmUgaW5jbHVkZWQgaW4gdGhlICdAaW5jbHVkZScgZGlyZWN0aXZlIHdpbGwgYmVcbi8vLyAgIG91dHB1dCB3aXRoaW4gdGhlIGBAbWVkaWFgIGRlY2xhcmF0aW9uLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlLlxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBicmVha3BvaW50KCdzbWFsbCcsICgneHNtYWxsJzogMCwgJ3NtYWxsJzogNTc2cHgsICdtZWRpdW0nOiA3NjhweCwgJ2xhcmdlJzogOTkycHgsICd4bGFyZ2UnOiAxMjMwcHgpKSB7XG4vLy8gICAgICAgLi4uXG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLy9cbi8vLyAgIEBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4vLy8gICAgIC5lbGVtZW50IHtcbi8vLyAgICAgICAuLi5cbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gYnJlYWtwb2ludC1taW5cbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBicmVha3BvaW50LW1heFxuLy8vIEByZXF1aXJlcyB7dmFyaWFibGV9IGdyaWQtYnJlYWtwb2ludHNcbi8vLyBAcmVxdWlyZXMge21peGlufSBicmVha3BvaW50LXVwXG4vLy8gQHJlcXVpcmVzIHttaXhpbn0gYnJlYWtwb2ludC1kb3duXG5cbkBtaXhpbiBicmVha3BvaW50KFxuICAkbmFtZSxcbiAgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50c1xuKSB7XG5cbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXVwKCRuYW1lKTtcbiAgfVxuICBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtZG93bigkbmFtZSk7XG4gIH1cbn1cbiIsIkBjaGFyc2V0ICd1dGYtOCc7XG5cblxuLy8vIEdlbmVyYXRlIGNvbnRhaW5lciB3aWR0aCwgYW5kIG92ZXJyaWRlIGl0IGluIG1lZGlhIHF1ZXJpZXMuXG4vLy9cbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtZ3V0dGVyLXdpZHRoXVxuLy8vICAgLSBXaWR0aCB2YWx1ZSBvZiB0aGUgZ3V0dGVycy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZS5cbi8vLyAgIC5jb250YWluZXIge1xuLy8vICAgICBAaW5jbHVkZSBtYWtlLWNvbnRhaW5lcigyMHB4KTtcbi8vLyAgICAgLi4uXG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC8vXG4vLy8gICAuY29udGFpbmVyIHtcbi8vLyAgICAgd2lkdGg6IDEwMCU7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogYXV0bztcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4vLy8gICB9XG4vLy8gICAuY29udGFpbmVyIHtcbi8vLyAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuLy8vICAgICAuLi5cbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlcyB7dmFyaWFibGV9IGdyaWQtZ3V0dGVyLXdpZHRoXG4vLy8gQHJlcXVpcmVzIHttaXhpbn0gcmVtXG4vLy8gQHJlcXVpcmVzIHtwbGFjZWhvbGRlcn0gY29udGFpbmVyLWRlZmF1bHRzXG5cbkBtaXhpbiBtYWtlLWNvbnRhaW5lcihcbiAgJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoXG4pIHtcblxuICBAZXh0ZW5kICVjb250YWluZXItZGVmYXVsdHM7XG4gIHBhZGRpbmc6IHtcbiAgICBAaW5jbHVkZSByZW0oJ3JpZ2h0JywgKCRndXR0ZXIgLyAyKSk7XG4gICAgQGluY2x1ZGUgcmVtKCdsZWZ0JywgKCRndXR0ZXIgLyAyKSk7XG4gIH1cbn1cblxuXG4vLy8gRm9yIGVhY2ggYnJlYWtwb2ludCwgZGVmaW5lIHRoZSBtYXhpbXVtIHdpZHRoIG9mIHRoZSBjb250YWluZXIgaW4gYSBtZWRpYSBxdWVyeS5cbi8vL1xuLy8vIEBncm91cCBsYXlvdXRcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWF4LXdpZHRocyBbJGNvbnRhaW5lci1tYXgtd2lkdGhzXVxuLy8vICAgLSBNYXAgb2YgYWxsIGNvbnRhaW5lciBtYXhpbXVtIHdpZHRocy5cbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgWyRncmlkLWJyZWFrcG9pbnRzXVxuLy8vICAgLSBNYXAgb2YgYWxsIGJyZWFrcG9pbnRzIHRvIHNlYXJjaCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZS5cbi8vLyAgIC5jb250YWluZXIge1xuLy8vICAgICAuLi5cbi8vLyAgICAgQGluY2x1ZGUgbWFrZS1jb250YWluZXItbWF4LXdpZHRocztcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLy9cbi8vLyAgIC5jb250YWluZXIge1xuLy8vICAgICAuLi5cbi8vLyAgIH1cbi8vLyAgIEBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuLy8vICAgICAuY29udGFpbmVyIHtcbi8vLyAgICAgICBtYXgtd2lkdGg6IDQ4MHB4O1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy8gICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbi8vLyAgICAgLmNvbnRhaW5lciB7XG4vLy8gICAgICAgbWF4LXdpZHRoOiA3NTBweDtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vICAgLi4uXG4vLy8gICBAbWVkaWEgKG1pbi13aWR0aDogMTIzMHB4KSB7XG4vLy8gICAgIC5jb250YWluZXIge1xuLy8vICAgICAgIG1heC13aWR0aDogMTIwMHB4O1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZXMge3ZhcmlhYmxlfSBjb250YWluZXItbWF4LXdpZHRoc1xuLy8vIEByZXF1aXJlcyB7dmFyaWFibGV9IGdyaWQtYnJlYWtwb2ludHNcbi8vLyBAcmVxdWlyZXMge21peGlufSByZW1cbi8vLyBAcmVxdWlyZXMge21peGlufSBicmVha3BvaW50LXVwXG5cbkBtaXhpbiBtYWtlLWNvbnRhaW5lci1tYXgtd2lkdGhzKFxuICAkbWF4LXdpZHRoczogJGNvbnRhaW5lci1tYXgtd2lkdGhzLFxuICAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzXG4pIHtcblxuICBAZWFjaCAkYnJlYWtwb2ludCwgJGNvbnRhaW5lci1tYXgtd2lkdGggaW4gJG1heC13aWR0aHMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cykge1xuICAgICAgQGluY2x1ZGUgcmVtKCdtYXgtd2lkdGgnLCAkY29udGFpbmVyLW1heC13aWR0aCk7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIEdlbmVyYXRlIGEgcm93ICh3cmFwcGVyKSBmb3IgYSBzZXJpZXMgb2YgY29sdW1ucy5cbi8vL1xuLy8vIEBncm91cCBsYXlvdXRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZ3V0dGVyIFskZ3JpZC1ndXR0ZXItd2lkdGhdXG4vLy8gICAtIFdpZHRoIHZhbHVlIG9mIHRoZSBndXR0ZXJzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlLlxuLy8vICAgLnJvdyB7XG4vLy8gICAgIEBpbmNsdWRlIG1ha2Utcm93KDIwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAvL1xuLy8vICAgLnJvdyB7XG4vLy8gICAgIGRpc3BsYXk6IGZsZXg7XG4vLy8gICAgIGZsZXgtd3JhcDogd3JhcDtcbi8vLyAgIH1cbi8vLyAgIC5yb3cge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmVzIHt2YXJpYWJsZX0gZ3JpZC1ndXR0ZXItd2lkdGhcbi8vLyBAcmVxdWlyZXMge21peGlufSByZW1cbi8vLyBAcmVxdWlyZXMge3BsYWNlaG9sZGVyfSByb3ctZGVmYXVsdHNcblxuQG1peGluIG1ha2Utcm93KFxuICAkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGhcbikge1xuXG4gIEBleHRlbmQgJXJvdy1kZWZhdWx0cztcbiAgbWFyZ2luOiB7XG4gICAgQGluY2x1ZGUgcmVtKCdyaWdodCcsICgkZ3V0dGVyIC8gLTIpKTtcbiAgICBAaW5jbHVkZSByZW0oJ2xlZnQnLCAoJGd1dHRlciAvIC0yKSk7XG4gIH1cbn1cblxuXG4vLy8gTWFrZSB0aGUgZWxlbWVudCBncmlkLXJlYWR5IChhcHBseWluZyBldmVyeXRoaW5nIGJ1dCB0aGUgd2lkdGgpLlxuLy8vXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWd1dHRlci13aWR0aF1cbi8vLyAgIC0gV2lkdGggdmFsdWUgb2YgdGhlIGd1dHRlcnMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2UuXG4vLy8gICAuY29sdW1uIHtcbi8vLyAgICAgQGluY2x1ZGUgbWFrZS1jb2x1bW4tcmVhZHkoMjBweCk7XG4vLy8gICAgIC4uLlxuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAvL1xuLy8vICAgLmNvbHVtbiB7XG4vLy8gICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbi8vLyAgICAgd2lkdGg6IDEwMCU7XG4vLy8gICAgIG1pbi1oZWlnaHQ6IDFweDtcbi8vLyAgIH1cbi8vLyAgIC5jb2x1bW4ge1xuLy8vICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4vLy8gICAgIC4uLlxuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmVzIHt2YXJpYWJsZX0gZ3JpZC1ndXR0ZXItd2lkdGhcbi8vLyBAcmVxdWlyZXMge21peGlufSByZW1cbi8vLyBAcmVxdWlyZXMge3BsYWNlaG9sZGVyfSBjb2x1bW4tZGVmYXVsdHNcblxuQG1peGluIG1ha2UtY29sdW1uLXJlYWR5KFxuICAkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGhcbikge1xuXG4gIEBleHRlbmQgJWNvbHVtbi1kZWZhdWx0cztcbiAgcGFkZGluZzoge1xuICAgIEBpbmNsdWRlIHJlbSgncmlnaHQnLCAoJGd1dHRlciAvIDIpKTtcbiAgICBAaW5jbHVkZSByZW0oJ2xlZnQnLCAoJGd1dHRlciAvIDIpKTtcbiAgfVxufVxuXG5cbi8vLyBHZW5lcmF0ZSBzcGVjaWZpYyB3aWR0aCB0aGF0IHNwYW4gbXVsdGlwbGUgY29sdW1ucy5cbi8vL1xuLy8vIEBncm91cCBsYXlvdXRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byBzcGFuLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFskZ3JpZC1jb2x1bW5zXVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZS5cbi8vLyAgIC5jb2x1bW4tNSB7XG4vLy8gICAgIEBpbmNsdWRlIG1ha2UtY29sdW1uKDUpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAvL1xuLy8vICAgLmNvbHVtbi01IHtcbi8vLyAgICAgZmxleDogMCAwIDQxLjY2NjY3JTtcbi8vLyAgICAgbWF4LXdpZHRoOiA0MS42NjY2NyU7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZXMge3ZhcmlhYmxlfSBncmlkLWNvbHVtbnNcbi8vL1xuLy8vIDEuIEFkZCBhICdtYXgtd2lkdGgnIHRvIGVuc3VyZSBjb250ZW50IHdpdGhpbiBlYWNoIGNvbHVtbiBkb2VzIG5vdCBibG93IG91dFxuLy8vICAgIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uLiBBcHBsaWVzIHRvIElFMTArIGFuZCBGaXJlZm94LiBDaHJvbWUgYW5kIFNhZmFyaVxuLy8vICAgIGRvIG5vdCBhcHBlYXIgdG8gcmVxdWlyZSB0aGlzLlxuXG5AbWl4aW4gbWFrZS1jb2x1bW4oXG4gICRzaXplLFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uc1xuKSB7XG5cbiAgJHdpZHRoOiBwZXJjZW50YWdlKCRzaXplIC8gJGNvbHVtbnMpO1xuXG4gIGZsZXg6IDAgMCAkd2lkdGg7XG4gIG1heC13aWR0aDogJHdpZHRoOyAvLyAxXG59XG5cblxuLy8vIE1vdmUgY29sdW1ucyB0byB0aGUgcmlnaHQgYnkgaW5jcmVhc2luZyB0aGUgbGVmdCBtYXJnaW5cbi8vLyBvZiBhIGNvbHVtbiBieSAqIGNvbHVtbnMuXG4vLy9cbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9mZnNldFxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byBvZmZzZXQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgWyRncmlkLWNvbHVtbnNdXG4vLy8gICAtIE51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBncmlkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlLlxuLy8vICAgLm9mZnNldC0zIHtcbi8vLyAgICAgQGluY2x1ZGUgbWFrZS1jb2x1bW4tb2Zmc2V0KDMpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAvL1xuLy8vICAgLm9mZnNldC0zIHtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDI1JTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlcyB7dmFyaWFibGV9IGdyaWQtY29sdW1uc1xuXG5AbWl4aW4gbWFrZS1jb2x1bW4tb2Zmc2V0KFxuICAkb2Zmc2V0LFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uc1xuKSB7XG5cbiAgJHdpZHRoOiBwZXJjZW50YWdlKCRvZmZzZXQgLyAkY29sdW1ucyk7XG5cbiAgbWFyZ2luLWxlZnQ6ICR3aWR0aDtcbn1cblxuXG4vLy8gRWFzaWx5IGNvbnRyb2wgdGhlIHZpc3VhbCBvcmRlciBvZiB5b3VyIGNvbHVtbnMuXG4vLy9cbi8vLyBAZ3JvdXAgbGF5b3V0XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9yZGVyXG4vLy8gICAtIFBvc2l0aW9uIG9mIHRoZSBjb2x1bW4gdG8gcmVvcmRlcmVkLiBRdWlja2x5IG9yZGVyXG4vLy8gICAgIGZpcnN0IG9uZSBlbGVtZW50IGJ5IGFwcGx5aW5nIG9yZGVyOiAtMS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uc11cbi8vLyAgIC0gTnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2UuXG4vLy8gICAub3JkZXItNyB7XG4vLy8gICAgIEBpbmNsdWRlIG1ha2UtY29sdW1uLW9yZGVyKDcpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAvL1xuLy8vICAgLm9yZGVyLTcge1xuLy8vICAgICBvcmRlcjogNztcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlcyB7dmFyaWFibGV9IGdyaWQtY29sdW1uc1xuXG5AbWl4aW4gbWFrZS1jb2x1bW4tb3JkZXIoXG4gICRvcmRlcixcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbnNcbikge1xuXG4gIG9yZGVyOiBpZigkb3JkZXIgPD0gJGNvbHVtbnMsICRvcmRlciwgJGNvbHVtbnMpO1xufVxuIiwiXG4vL1xuLy8gQGZpbGVcbi8vIFZhcmlhYmxlcyBvdmVycmlkZXNcbi8vXG4vLyBFdmVyeSBTYXNzIHZhcmlhYmxlIGFuZCBtYXAgaW4gdGhlIFwiU2FzcyBGcmFtZXdvcmtcIiBpbmNsdWRlcyB0aGUgJyFkZWZhdWx0J1xuLy8gZmxhZyBhbGxvd2luZyB5b3UgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgdmFsdWUgZnJvbSBoZXJlIHdpdGhvdXQgbW9kaWZ5aW5nXG4vLyB0aGUgXCJTYXNzIEZyYW1ld29ya1wiIHNvdXJjZSBjb2RlLiBDb3B5IGFuZCBwYXN0ZSB2YXJpYWJsZXMgb3IgbWFwcyBhcyBuZWVkZWQsXG4vLyBtb2RpZnkgdGhlaXIgdmFsdWVzLCBhbmQgcmVtb3ZlIHRoZSAnIWRlZmF1bHQnIGZsYWcuXG4vL1xuLy8gSWYgYSB2YXJpYWJsZSBoYXMgYWxyZWFkeSBiZWVuIGFzc2lnbmVkLCB0aGVuIGl0IHdvbuKAmXQgYmUgcmUtYXNzaWduZWQgYnlcbi8vIHRoZSBkZWZhdWx0IHZhbHVlcyBpbiB0aGUgXCJTYXNzIEZyYW1ld29ya1wiLlxuLy9cbi8vIFlvdSB3aWxsIGZpbmQgdGhlIGNvbXBsZXRlIGxpc3Qgb2YgdGhlIFwiU2FzcyBGcmFtZXdvcmtcIiB2YXJpYWJsZXMgYW5kIG1hcHNcbi8vIGluIHRoZSBmb2xsb3dpbmcgZmlsZXM6XG4vLyAuL1RIRU1FTkFNRS9fc2Fzcy1mcmFtZXdvcmsvdmFyaWFibGVzL19vcHRpb25zLnNjc3Ncbi8vIC4vVEhFTUVOQU1FL19zYXNzLWZyYW1ld29yay92YXJpYWJsZXMvX2NvbG9ycy5zY3NzXG4vLyAuL1RIRU1FTkFNRS9fc2Fzcy1mcmFtZXdvcmsvdmFyaWFibGVzL19iYXNlLnNjc3Ncbi8vIC4vVEhFTUVOQU1FL19zYXNzLWZyYW1ld29yay92YXJpYWJsZXMvX2xheW91dC5zY3NzXG4vLyAuL1RIRU1FTkFNRS9fc2Fzcy1mcmFtZXdvcmsvdmFyaWFibGVzL19jb21wb25lbnRzLnNjc3Ncbi8vXG5cblxuLy8gRm9udHNcbi8vXG4vLyBGb250LCBsaW5lLWhlaWdodCwgYW5kIGNvbG9yIGZvciBib2R5IHRleHQsIGhlYWRpbmdzLCBhbmQgbW9yZS5cblxuJGFyaWFsOiBhcmlhbCwgaGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuXG5cbi8vIENvbG9yc1xuLy9cbi8vIEZBR0cgY29sb3JzLlxuXG4vLyBHcmF5cy5cblxuJHdoaXRlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICNmZmY7XG4kd2hpdGUtc2Vjb25kYXJ5OiAgICAgICAgICAgICAgICAgI2YwZjVmMTtcbiR3aGl0ZS10ZXJ0aWFyeTogICAgICAgICAgICAgICAgICAjZWFlYWVhO1xuJHdoaXRlLXF1YXRlcm5hcnk6ICAgICAgICAgICAgICAgICNlNWNmZWQ7XG4kd2hpdGUtZGFyazogICAgICAgICAgICAgICAgICAgICAgI2RjZWNmNTtcbiR3aGl0ZS1kYXJrLXNlY29uZGFyeTogICAgICAgICAgICAjZWFlYWViO1xuJHdoaXRlLWxpZ2h0OiAgICAgICAgICAgICAgICAgICAgICNmNWY1ZjU7XG4kd2hpdGUtbGlnaHQtc2Vjb25kYXJ5OiAgICAgICAgICAgI2RmZGZkZjtcbiRncmF5LWxpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAjY2NjO1xuJGdyYXktbGlnaHQtc2Vjb25kYXJ5OiAgICAgICAgICAgICNlM2U0ZTQ7XG4kZ3JheS1saWdodC10ZXJ0aWFyeTogICAgICAgICAgICAgI2RkZThlZjtcbiRncmF5LWxpZ2h0ZXI6ICAgICAgICAgICAgICAgICAgICAjZGRkO1xuJGdyYXktbGlnaHRlci1zZWNvbmRhcnk6ICAgICAgICAgICNhYWE7XG4kZ3JheS1saWdodGVyLXRlcnRpYXJ5OiAgICAgICAgICAgI2U1ZWRmMjtcbiRncmF5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOTk5O1xuJGdyYXktZGFyazogICAgICAgICAgICAgICAgICAgICAgICM2NjY7XG4kZ3JheS1kYXJrLXNlY29uZGFyeTogICAgICAgICAgICAgIzQ0NDtcbiRncmF5LWRhcmstdGVydGlhcnk6ICAgICAgICAgICAgICAjNjk2OTY5O1xuJGdyYXktZGFyay1xdWF0ZXJuYXJ5OiAgICAgICAgICAgICMzNjM2MzY7XG4kZ3JheS1kYXJrLXF1aW5hcnk6ICAgICAgICAgICAgICAgIzU2NTY1NjtcbiRncmF5LWRhcmtlcjogICAgICAgICAgICAgICAgICAgICAjMzMzO1xuJGJsYWNrOiAgICAgICAgICAgICAgICAgICAgICAgICAgICMwMDA7XG4kYmxhY2stbGlnaHQ6ICAgICAgICAgICAgICAgICAgICAgIzIyMjtcblxuLy8gVGhlbWUgY29sb3JzLlxuJGJsdWUtd2hpdGU6ICAgICAgICAgICAgICAgICAgICAgICNlZmY2ZmI7XG4kYmx1ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIzU1NzlhNDtcbiRibHVlLWJyaWdodDogICAgICAgICAgICAgICAgICAgICAjMTg2ZGEwO1xuJGJsdWUtYnJpZ2h0LXNlY29uZGFyeTogICAgICAgICAgICMzNzk7XG4kYmx1ZS1icmlnaHQtdGVydGlhcnk6ICAgICAgICAgICAgIzM4YjtcbiRibHVlLWRhcms6ICAgICAgICAgICAgICAgICAgICAgICAjMWY2M2E2O1xuJGJsdWUtZGFyay1zZWNvbmRhcnk6ICAgICAgICAgICAgICMwMTYzODY7XG4kYmx1ZS1saWdodDogICAgICAgICAgICAgICAgICAgICAgI2RlZTllZjtcbiRibHVlLWxpZ2h0LXNlY29uZGFyeTogICAgICAgICAgICAjYzJkYmU4O1xuJGJsdWUtbGlnaHQtdGVydGlhcnk6ICAgICAgICAgICAgICM4ZmIxZDI7XG4kYmx1ZS1saWdodC1xdWF0ZXJuYXJ5OiAgICAgICAgICAgIzhmYWZiZjtcbiRibHVlLWxpZ2h0ZXI6ICAgICAgICAgICAgICAgICAgICAjYzZkOWUwO1xuJGdyZWVuOiAgICAgICAgICAgICAgICAgICAgICAgICAgICM0Nzc2MDA7XG4kZ3JlZW4tZGFya2VyOiAgICAgICAgICAgICAgICAgICAgIzRlODYwZTtcbiRncmF5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZWFlYWVhO1xuXG4vLyBCdXR0b24gY29sb3JzXG4kYnRuLWJsdWU6ICAgICAgICAgICAgICAgICAgICAgICAgI2IyYzNkODtcbiRidG4tYmx1ZS1kYXJrZXI6ICAgICAgICAgICAgICAgICAjN2Q5YmJlO1xuJGJ0bi1ncmVlbjogICAgICAgICAgICAgICAgICAgICAgICM5YmJkNzQ7XG4kYnRuLWdyZWVuLWRhcmtlcjogICAgICAgICAgICAgICAgIzZkOWUzNDtcblxuLy8gVGFiIGNvbG9yc1xuJHRhYi1ncmF5LWxpZ2h0OiAgICAgICAgICAgICAgICAgICNlZWU7XG4kdGFiLWdyYXktbGlnaHRlcjogICAgICAgICAgICAgICAgI2JiYjtcblxuLy8gTWFwIG9mIEZBR0cgY29sb3JzLlxuJGZhZ2c6ICgpICFkZWZhdWx0O1xuJGZhZ2c6IG1hcC1tZXJnZShcbiAgKFxuICAgICdibHVlJzogICAgICAgICRibHVlLFxuICAgICdncmVlbic6ICAgICAgICRncmVlbixcbiAgKSxcbiAgJGZhZ2dcbik7XG5cbi8vIEZvbnQgd2VpZ2h0c1xuJGZvbnQtd2VpZ2h0LWxpZ2h0OiAgICAgICAgICAgMzAwO1xuJGZvbnQtd2VpZ2h0LW5vcm1hbDogICAgICAgICAgNDAwO1xuJGZvbnQtd2VpZ2h0LWJvbGQ6ICAgICAgICAgICAgNzAwO1xuXG4vLyBCb2R5XG4vL1xuLy8gU2V0dGluZ3MgZm9yIHRoZSBgPGJvZHk+YCBlbGVtZW50LlxuXG4kYm9keS1iYXNlLWZvbnQtZmFtaWx5OiAgICAgICAgICAgJGFyaWFsO1xuJGJvZHktYmFzZS1mb250LXNpemU6ICAgICAgICAgICAgIDEycHg7XG4kYm9keS1iYXNlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbiRib2R5LWJhc2UtbGluZS1oZWlnaHQ6ICAgICAgICAgICAxLjU7XG4kYm9keS1iYXNlLWJhY2tncm91bmQtY29sb3I6ICAgICAgJHdoaXRlO1xuJGJvZHktYmFzZS1jb2xvcjogICAgICAgICAgICAgICAgICRncmF5LWRhcmtlcjtcbiRib2R5LWJhc2UtbGluay1jb2xvcjogICAgICAgICAgICAkYmx1ZS1icmlnaHQ7XG5cblxuLy8gR3JpZCBicmVha3BvaW50c1xuLy9cbi8vIERlZmluZSB0aGUgbWluaW11bSBkaW1lbnNpb25zIGF0IHdoaWNoIHlvdXIgbGF5b3V0IHdpbGwgY2hhbmdlLFxuLy8gYWRhcHRpbmcgdG8gZGlmZmVyZW50IHNjcmVlbiBzaXplcywgZm9yIHVzZSBpbiBtZWRpYSBxdWVyaWVzLlxuXG4kZ3JpZC1icmVha3BvaW50czogKFxuICAnbGFyZ2UnOiAgOTcycHgsXG4pO1xuXG5cbi8vIEdyaWQgY29udGFpbmVyc1xuLy9cbi8vIERlZmluZSB0aGUgbWF4aW11bSB3aWR0aCBvZiBgLmNvbnRhaW5lcmAgZm9yIGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMuXG4kY29udGFpbmVyLW1heC13aWR0aHM6IChcbiAgJ2xhcmdlJzogIDk3MHB4LFxuKTtcblxuLy8gU3lzdGVtXG4vL1xuLy8gRGVmaW5lIGFsbCBDU1Mgc2VsZWN0b3JzIGZvciBcIlN5c3RlbVwiIChtb2R1bGUpIGNvbXBvbmVudHMuXG5cbi8vIFNpZGViYXJzIHZpc2liaWxpdHkuXG4kc2lkZWJhci1jb21wbGVtZW50YXJ5LXZpc2libGU6ICdib2R5Lm9uZS1zaWRlYmFyLmlzLXZpc2libGUtLXNpZGViYXItc2Vjb25kJztcblxuLy8gTWlzYyBkaW1lbnNpb25zXG4vL1xuXG4kbm8tc2NyaXB0LWhlaWdodC1zOiAxMTVweDtcbiRuby1zY3JpcHQtaGVpZ2h0LW06IDgwcHg7XG4iLCIvL1xuLy8gQGZpbGVcbi8vIFwiUGFnZVwiIHdyYXBwZXJzLlxuLy9cblxuXG4vLyBQYWdlIHdyYXBwZXJzXG4vL1xuLnBhZ2Uge1xuXG4gIC8vIEFsbCB3cmFwcGVyc1xuICAvL1xuICAmX193cmFwcGVyIHtcbiAgICBAaW5jbHVkZSByZW0oJ21pbi13aWR0aCcsIG1hcC1nZXQoJGNvbnRhaW5lci1tYXgtd2lkdGhzLCAnbGFyZ2UnKSk7XG5cbiAgICAuY29udGFpbmVyIHtcbiAgICAgIEBpbmNsdWRlIHJlbSgnbWF4LXdpZHRoJywgbWFwLWdldCgkY29udGFpbmVyLW1heC13aWR0aHMsICdsYXJnZScpKTtcbiAgICB9XG5cbiAgICAvLyBIZWFkZXIgd3JhcHBlclxuICAgIC8vXG4gICAgJi0taGVhZGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHtcbiAgICAgICAgQGluY2x1ZGUgcmVtKCdzaXplJywgMTc1NHB4IDI0N3B4KTtcbiAgICAgICAgaW1hZ2U6IHVybChcIi4uLy4uL2ltYWdlcy9iYW5uZXIuanBnXCIpO1xuICAgICAgICByZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgcG9zaXRpb246IGNlbnRlciB0b3A7XG4gICAgICB9XG5cbiAgICAgIC8vIFNldCBoZWFkZXIgYmFzZWQgb24gbGFuZ3VhZ2UuXG4gICAgICAucGFnZS0tZnIgJiB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2ltYWdlcy9iYW5uZXItZnIuanBnXCIpO1xuICAgICAgfVxuXG4gICAgICAucGFnZS0tZW4gJiB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2ltYWdlcy9iYW5uZXItZW4uanBnXCIpO1xuICAgICAgfVxuXG4gICAgICAucGFnZS0tbmwgJiB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2ltYWdlcy9iYW5uZXItbmwuanBnXCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENvbnRlbnQgd3JhcHBlclxuICAgIC8vXG4gICAgJi0tY29udGVudCB7XG4gICAgICB1bCB7XG4gICAgICAgIEBpbmNsdWRlIHJlbSgncGFkZGluZy1sZWZ0JywgMThweCk7XG4gICAgICAgIEBpbmNsdWRlIHJlbSgnbWFyZ2luLWJvdHRvbScsIDE4cHgpO1xuICAgICAgfVxuXG4gICAgICBsaSB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IHtcbiAgICAgICAgICBAaW5jbHVkZSByZW0oJ3RvcCcsIDQuOHB4KTtcbiAgICAgICAgICBAaW5jbHVkZSByZW0oJ2xlZnQnLCAxOHB4KTtcbiAgICAgICAgfVxuICAgICAgICBiYWNrZ3JvdW5kOiB7XG4gICAgICAgICAgQGluY2x1ZGUgcmVtKCdwb3NpdGlvbicsIGxlZnQgOXB4KTtcbiAgICAgICAgICBAaW5jbHVkZSByZW0oJ3NpemUnLCA5cHggNnB4KTtcbiAgICAgICAgICBpbWFnZTogdXJsKCcuLi8uLi9pbWFnZXMvYnVsbGV0LXNxdWFyZS1ibHVlLnBuZycpO1xuICAgICAgICAgIHJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGltZyB7XG4gICAgICAgIG1hcmdpbjoge1xuICAgICAgICAgIEBpbmNsdWRlIHJlbSgnYm90dG9tJywgMTJweCk7XG4gICAgICAgICAgQGluY2x1ZGUgcmVtKCdyaWdodCcsIDMuNnB4KTtcbiAgICAgICAgICBAaW5jbHVkZSByZW0oJ3RvcCcsIDEuOHB4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZvb3RlciB3cmFwcGVyXG4gICAgLy9cbiAgICAmLS1mb290ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZmFnZygnYmx1ZScpO1xuICAgICAgcGFkZGluZzoge1xuICAgICAgICBAaW5jbHVkZSByZW0oJ3RvcCcsIDVweCk7XG4gICAgICAgIEBpbmNsdWRlIHJlbSgnYm90dG9tJywgMTdweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0= */
