@charset "UTF-8";

/**
 * 値が2つ以上の配列かどうか判定する関数
 * @param  {array} $_list 配列か判定したい値
 * @return {boole}        値が2つ以上の配列ならtrue
 */

/**
 * 数値をremに変換する関数です
 * @param  {Number} $target        remにしたい数値
 * @param  {Number} $threshold [1] しきい値
 * @return {Number}                数値にremが付いた数値を返します
 */

/**
 * 数値をemに変換する関数です
 * @param  {Number} $target           emにしたい数値
 * @param  {Number} $parentValue [16] しきい値
 * @return {Number}                   数値にremが付いた数値を返します
 */

/**
 * 数値をpxに変換する関数です
 * @param  {Number} $arget          pxにしたい数値
 * @param  {Number} $threshold [1]  しきい値
 * @return {Number}                 数値にpxが付いた数値を返します
 */

/**
 * line-heightが1の時と同じになるようにline-height分の差分を返す関数です
 * @param  {Number} $lineHeight lineHeightの値
 * @param  {Number} $fontSize   fontの値
 * @return {Number}             差分の数値
 */

/**
 * 深い階層のmapの値を取得して返す関数です。
 * @param  {map} $map   map本体
 * @param  {map} $keys  mapのkey
 * @return {map}        指定したmapのkey
 */

/**
 * $breakpointsの中の数値を@mediaに入れてemにして返すmixin
 * @param  {array}  $breakpoint [sm]  $breakpointsのkeyのarray
 * @param  {string} $key        [min] min or max
 * @return {void}                     @media ($key-width) {}
 */

/**
 * font-weightの数値を返す関数
 * @param  {String} $weight weightのキーワード値
 * @return {Number}         weightのnumber
 */

/**
 * 色をmapから取得する関数です
 * @param  {array}  $keys      配列
 * @param  {number} $_opacity  0.0 ~ 1
 * @return {map}               $colorsの任意のkey
 */

/**
 * z-indexをmapから取得する関数です
 * @param  {array} $keys  配列
 * @return {map}   $z-indexの任意のkey
 */

/**
 * 擬似要素でアスペクト比の領域を確保するmixin
 * @param  {$_width}                   横の値
 * @param  {$_height}                  縦の値
 * @param  {$_pseudo_element} [before] 消費する疑似要素 before or after
 * @return {void}
 */

/**
 * fontをmapから取得する関数です
 * @param  {array} $keys  配列
 * @return {map}   $fontsの任意のkey
 */

.blog-pagenation {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 320px;
  padding-top: 30px;
  margin: auto;
}

.blog-pagenation__prev > a, .blog-pagenation__next > a {
  padding-bottom: 2px;
  font-size: 0.875rem;
  color: #231815;
  text-decoration: underline;
  transition: opacity 0.4s;
}

.blog-pagenation__prev > a:hover, .blog-pagenation__next > a:hover {
  opacity: 0.7;
}

.blog-pagenation__numbers {
  display: inline-block;
  padding: 0;
  margin: 0 18px;
  list-style-type: none;
}

.blog-pagenation__numbers > li {
  display: inline-block;
  width: 33px;
  height: 33px;
  margin: 0 3px;
  background-color: #efefef;
  border-radius: 5px;
}

.blog-pagenation__numbers > li > a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding-bottom: 3px;
  font-size: 1rem;
  color: #575757;
  text-decoration: none;
  border-radius: 5px;
  transition: background-color 0.4s, color 0.4s;
}

.blog-pagenation__numbers > li > a:hover {
  color: #fff;
  background-color: #dc263f;
}

.blog-pagenation__numbers > li.is-current {
  background-color: #dc263f;
}

.blog-pagenation__numbers > li.is-current > a {
  color: #fff;
  transition: opacity 0.4s;
}

.blog-pagenation__numbers > li.is-current > a:hover {
  opacity: 0.7;
}

.blog-pagenation__toindex {
  width: 133px;
  height: 33px;
  background-color: #dc263f;
  border-radius: 5px;
}

.blog-pagenation__toindex > a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding-bottom: 2px;
  font-size: 0.875rem;
  color: #fff;
  text-decoration: none;
  transition: opacity 0.4s;
}

.blog-pagenation__toindex > a:hover {
  opacity: 0.7;
}

.arrow-item {
  position: relative;
}

.arrow-item:not(:last-child)::before {
  position: absolute;
  bottom: -28px;
  left: 50%;
  display: block;
  width: 12px;
  height: 14px;
  content: "";
  background-image: url(/assets/img/car-share/tryangle_arrow.svg);
  background-position: center;
  background-size: cover;
  transform: translateY(-50%) rotate(90deg);
}

@media (min-width: 73.125rem) {
  .arrow-item:not(:last-child)::before {
    top: 50%;
    right: -4px;
    bottom: auto;
    left: auto;
    transform: translate(-50%, -7px);
  }
}

.main .wrapper {
  max-width: 1020px;
  margin: 0 auto;
  padding: 0 20px 0;
}

.main .tw-img {
  position: relative;
  overflow: hidden;
}

.main .tw-img img, .main .tw-img svg, .main .tw-img iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  transform: translate(-50%, -50%);
  -o-object-fit: cover;
     font-family: "object-fit:cover;object-position:center center";
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
}

.main a {
  display: block;
  text-decoration: none;
}

.main p {
  margin-bottom: 0;
}

.main ul[class],
.main ol[class] {
  list-style-type: none;
}

.main img {
  width: 100%;
}

.main svg {
  overflow: hidden;
}

.main img, .main svg, .main video, .main canvas {
  height: auto;
}

.main img, .main svg, .main video, .main canvas, .main audio, .main iframe, .main embed, .main object {
  display: block;
}

.main table {
  border-spacing: 0;
  border-collapse: collapse;
}

.main dd {
  margin: 0;
}

.main ol, .main ul, .main dl {
  padding: 0;
  margin: 0;
}

.main .hidden {
  visibility: visible !important;
}

.footer {
  margin-top: 0;
}

.page-top {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 148px;
  height: 38px;
  margin-left: auto;
  background-color: #efefef;
  border-radius: 4px;
  transition: opacity 0.3s;
  color: #000;
}

.page-top:hover {
  text-decoration: none;
  color: #000;
  opacity: 0.75;
}

.page-top::before {
  position: absolute;
  top: 50%;
  left: 14px;
  display: block;
  width: 0;
  height: 0;
  content: "";
  border-color: transparent transparent #000;
  border-style: solid;
  border-width: 0 4px 5px;
  transform: translateY(-50%);
}

.page-top__text {
  display: inline-block;
  padding-left: 10px;
  font-size: 0.8125rem;
  font-weight: lighter;
}

.price-table {
  width: 100%;
  min-width: 940px;
  font-size: 0.875rem;
  line-height: 1.625;
}

.price-table tbody {
  border-top: 1px solid #c9c9c9;
  border-left: 1px solid #c9c9c9;
}

.price-table th, .price-table td {
  padding: 18px 16px;
  border-right: 1px solid #c9c9c9;
  border-bottom: 1px solid #c9c9c9;
}

.price-table th {
  background-color: #eee;
}

.price-table .col-1 {
  width: 197px;
}

.price-table .col-2 {
  width: 508px;
}

.price-table .col-3 {
  width: 145px;
}

.price-table .col-4 {
  width: 128px;
}

.price-table .col-3-4 {
  width: calc(145px + 128px);
}

.section__title {
  position: relative;
  font-size: 1.25rem;
  line-height: 1.5;
  padding-bottom: 1rem;
  margin-bottom: 2.5rem;
}

.section__title::before, .section__title::after {
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 4px;
  content: "";
  background-color: #e5e5e5;
}

.section__title::after {
  width: 40px;
  background-color: #e9001e;
}

.section__sub-title {
  font-size: 1.0625rem;
  border-bottom: 6px solid #eb0a1e;
  font-weight: 700;
  line-height: 1.5;
  padding-bottom: 0.5rem;
}

@media (min-width: 48.0625rem) {
  .section__sub-title {
    font-size: 2rem;
  }
}

.show-table {
  display: flex;
  flex-wrap: wrap;
  border-top: 1px solid #c9c9c9;
  border-left: 1px solid #c9c9c9;
  font-size: 0.75rem;
  line-height: 1.5;
}

.show-table__title, .show-table__text {
  padding: 8px;
  border-right: 1px solid #c9c9c9;
  border-bottom: 1px solid #c9c9c9;
}

.show-table__title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 120px;
  font-weight: bold;
  text-align: center;
  background-color: #fafafa;
}

@media (min-width: 48.0625rem) {
  .show-table__title {
    width: 240px;
  }
}

.show-table__text {
  width: calc(100% - 120px);
}

@media (min-width: 48.0625rem) {
  .show-table__text {
    width: calc(100% - 240px);
  }
}

.news a {
  display: inline-block;
  text-decoration: underline;
}

.news a:hover {
  text-decoration: none;
}

.movie .iframe-wrapper {
  position: relative;
  height: 0;
  padding-bottom: 56.25% !important;
  overflow: hidden;
}

.movie .iframe-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.movie .step_item{
  display: flex;
  gap: 15px;
  margin-top: 8px;
}

@media (min-width: 48.0625rem){
  .movie .step_item{
    gap: 20px;
  }
}

.movie .step_item:first-of-type{
  margin-top: 10px;
}

.movie .step_text{
  color: #E50012;
  white-space: nowrap;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vY2FyLXNoYXJlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vY29tbW9uL3Njc3MvQGZvdW5kYXRpb24vX2Z1bmN0aW9ucy5zY3NzIiwid2VicGFjazovLy8uL2NvbW1vbi9zY3NzL0Bmb3VuZGF0aW9uL2JyZWFrcG9pbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vY29tbW9uL3Njc3MvQGZvdW5kYXRpb24vZm9udC13ZWlnaHQuc2NzcyIsIndlYnBhY2s6Ly8vLi9jb21tb24vc2Nzcy9AZm91bmRhdGlvbi9jb2xvcnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9jb21tb24vc2Nzcy9AZm91bmRhdGlvbi96LWluZGV4LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vY29tbW9uL3Njc3MvQGZvdW5kYXRpb24vYXNwZWN0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vY29tbW9uL3Njc3MvQGZvdW5kYXRpb24vX2ZvbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vY29tbW9uL3Njc3MvQGZvdW5kYXRpb24vX2Jsb2ctcGFnZW5hdGlvbi5zY3NzIiwid2VicGFjazovLy8uL3BhZ2VzL2Nhci1zaGFyZS9tb2R1bGVzL2Fycm93LWl0ZW0uc2NzcyIsIndlYnBhY2s6Ly8vLi9wYWdlcy9jYXItc2hhcmUvbW9kdWxlcy9iYXNlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcGFnZXMvY2FyLXNoYXJlL21vZHVsZXMvcGFnZS10b3Auc2NzcyIsIndlYnBhY2s6Ly8vPG5vIHNvdXJjZT4iLCJ3ZWJwYWNrOi8vLy4vcGFnZXMvY2FyLXNoYXJlL21vZHVsZXMvcHJpY2UtdGFibGUuc2NzcyIsIndlYnBhY2s6Ly8vLi9wYWdlcy9jYXItc2hhcmUvbW9kdWxlcy9zZWN0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vcGFnZXMvY2FyLXNoYXJlL21vZHVsZXMvc2hvdy10YWJsZS5zY3NzIiwid2VicGFjazovLy8uL3BhZ2VzL2Nhci1zaGFyZS9jYXItc2hhcmUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7O0FDQWhCOzs7O0VBQUE7O0FBU0E7Ozs7O0VBQUE7O0FBK0JBOzs7OztFQUFBOztBQWdDQTs7Ozs7RUFBQTs7QUErQkE7Ozs7O0VBQUE7O0FBZ0JBOzs7OztFQUFBOztBQ3ZHQTs7Ozs7RUFBQTs7QUNQQTs7OztFQUFBOztBQ3FEQTs7Ozs7RUFBQTs7QUNqREE7Ozs7RUFBQTs7QUNiQTs7Ozs7O0VBQUE7O0FDWUE7Ozs7RUFBQTs7QUNaQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBUnVFRjs7QVFwRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FSdUVGOztBUXBFQTtFQUNFO0FSdUVGOztBUXBFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FSdUVGOztBUXBFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBUnVFRjs7QVFwRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FSdUVGOztBUXBFQTtFQUNFO0VBQ0E7QVJ1RUY7O0FRcEVBO0VBQ0U7QVJ1RUY7O0FRcEVBO0VBQ0U7RUFDQTtBUnVFRjs7QVFwRUE7RUFDRTtBUnVFRjs7QVFwRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBUnVFRjs7QVFwRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBUnVFRjs7QVFwRUE7RUFDRTtBUnVFRjs7QVNqS0E7RUFDRTtBVG9LRjs7QVNqS0k7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FUbUtOOztBU2pLTTtFQWJGO0lBY0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFVG9LTjtBQUNGOztBVXZMRTtFQUNFO0VBQ0E7RUFFRTtBVnlMTjs7QVVyTEU7RUFDRTtFQUNBO0FWdUxKOztBVXRMSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0tBQUE7S0FBQTtFQUNBO0tBQUE7QVZ3TE47O0FVcExFO0VBQ0U7RUFDQTtBVnNMSjs7QVVuTEU7RUFDRTtBVnFMSjs7QVVqTEU7O0VBRUU7QVZtTEo7O0FVaExFO0VBQ0U7QVZrTEo7O0FVL0tFO0VBQ0U7QVZpTEo7O0FVOUtFO0VBQ0U7QVZnTEo7O0FVN0tFO0VBQ0U7QVYrS0o7O0FVNUtFO0VBQ0U7RUFDQTtBVjhLSjs7QVUzS0U7RUFDRTtBVjZLSjs7QVUxS0U7RUFDRTtFQUNBO0FWNEtKOztBVXpLRTtFQUNFO0FWMktKOztBVXZLQTtFQUNFO0FWMEtGOztBV3hQQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VDVkY7QVpzUUE7O0FXMVBFO0VBQ0U7RUNiSjtFQUFBO0FaMFFBOztBVzFQRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVg0UEo7O0FXelBFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QVgyUEo7O0FhN1JBO0VBQ0U7RUFDQTtFREZGO0VBQUE7QVptU0E7O0FhOVJFO0VBQ0U7RUFDQTtBYmdTSjs7QWE3UkU7RUFDRTtFQUNBO0VBQ0E7QWIrUko7O0FhNVJFO0VBQ0U7QWI4Uko7O0FhM1JFO0VBQ0U7QWI2Uko7O0FhMVJFO0VBQ0U7QWI0Uko7O0FhelJFO0VBQ0U7QWIyUko7O0FheFJFO0VBQ0U7QWIwUko7O0FhdlJFO0VBQ0U7QWJ5Uko7O0FjNVRFO0VGRkY7RUFBQTtFQUFBO0VBQUE7RUFBQTtBWmtVQTs7QWM5VEk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FkZ1VOOztBYzdUSTtFQUNFO0VBQ0E7QWQrVE47O0FjM1RFO0VBQ0U7RUFDQTtFRnZCSjtFQUFBO0VBQUE7QVpxVkE7O0FjM1RJO0VBTEY7SUZyQkY7RVp5VkU7QUFDRjs7QWUxVkE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFSEpGO0VBQUE7QVprV0E7O0FlM1ZFO0VBQ0U7RUFDQTtFQUNBO0FmNlZKOztBZTFWRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FmNFZKOztBZTFWSTtFQVRGO0lBVUk7RWY2Vko7QUFDRjs7QWUxVkU7RUFDRTtBZjRWSjs7QWUxVkk7RUFIRjtJQUlJO0VmNlZKO0FBQ0Y7O0FnQnBYRTtFQUNFO0VBQ0E7QWhCdVhKOztBZ0JyWEk7RUFDRTtBaEJ1WE4sQyIsImZpbGUiOiJkYWloYXRzdS9hc3NldHMvY3NzL2Nhci1zaGFyZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAqIOWApOOBjDLjgaTku6XkuIrjga7phY3liJfjgYvjganjgYbjgYvliKTlrprjgZnjgovplqLmlbBcbiAqIEBwYXJhbSAge2FycmF5fSAkX2xpc3Qg6YWN5YiX44GL5Yik5a6a44GX44Gf44GE5YCkXG4gKiBAcmV0dXJuIHtib29sZX0gICAgICAgIOWApOOBjDLjgaTku6XkuIrjga7phY3liJfjgarjgol0cnVlXG4gKi9cbi8qKlxuICog5pWw5YCk44KScmVt44Gr5aSJ5o+b44GZ44KL6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICR0YXJnZXQgICAgICAgIHJlbeOBq+OBl+OBn+OBhOaVsOWApFxuICogQHBhcmFtICB7TnVtYmVyfSAkdGhyZXNob2xkIFsxXSDjgZfjgY3jgYTlgKRcbiAqIEByZXR1cm4ge051bWJlcn0gICAgICAgICAgICAgICAg5pWw5YCk44GrcmVt44GM5LuY44GE44Gf5pWw5YCk44KS6L+U44GX44G+44GZXG4gKi9cbi8qKlxuICog5pWw5YCk44KSZW3jgavlpInmj5vjgZnjgovplqLmlbDjgafjgZlcbiAqIEBwYXJhbSAge051bWJlcn0gJHRhcmdldCAgICAgICAgICAgZW3jgavjgZfjgZ/jgYTmlbDlgKRcbiAqIEBwYXJhbSAge051bWJlcn0gJHBhcmVudFZhbHVlIFsxNl0g44GX44GN44GE5YCkXG4gKiBAcmV0dXJuIHtOdW1iZXJ9ICAgICAgICAgICAgICAgICAgIOaVsOWApOOBq3JlbeOBjOS7mOOBhOOBn+aVsOWApOOCkui/lOOBl+OBvuOBmVxuICovXG4vKipcbiAqIOaVsOWApOOCknB444Gr5aSJ5o+b44GZ44KL6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICRhcmdldCAgICAgICAgICBweOOBq+OBl+OBn+OBhOaVsOWApFxuICogQHBhcmFtICB7TnVtYmVyfSAkdGhyZXNob2xkIFsxXSAg44GX44GN44GE5YCkXG4gKiBAcmV0dXJuIHtOdW1iZXJ9ICAgICAgICAgICAgICAgICDmlbDlgKTjgatweOOBjOS7mOOBhOOBn+aVsOWApOOCkui/lOOBl+OBvuOBmVxuICovXG4vKipcbiAqIGxpbmUtaGVpZ2h044GMMeOBruaZguOBqOWQjOOBmOOBq+OBquOCi+OCiOOBhuOBq2xpbmUtaGVpZ2h05YiG44Gu5beu5YiG44KS6L+U44GZ6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICRsaW5lSGVpZ2h0IGxpbmVIZWlnaHTjga7lgKRcbiAqIEBwYXJhbSAge051bWJlcn0gJGZvbnRTaXplICAgZm9udOOBruWApFxuICogQHJldHVybiB7TnVtYmVyfSAgICAgICAgICAgICDlt67liIbjga7mlbDlgKRcbiAqL1xuLyoqXG4gKiDmt7HjgYTpmo7lsaTjga5tYXDjga7lgKTjgpLlj5blvpfjgZfjgabov5TjgZnplqLmlbDjgafjgZnjgIJcbiAqIEBwYXJhbSAge21hcH0gJG1hcCAgIG1hcOacrOS9k1xuICogQHBhcmFtICB7bWFwfSAka2V5cyAgbWFw44Gua2V5XG4gKiBAcmV0dXJuIHttYXB9ICAgICAgICDmjIflrprjgZfjgZ9tYXDjga5rZXlcbiAqL1xuLyoqXG4gKiAkYnJlYWtwb2ludHPjga7kuK3jga7mlbDlgKTjgpJAbWVkaWHjgavlhaXjgozjgaZlbeOBq+OBl+OBpui/lOOBmW1peGluXG4gKiBAcGFyYW0gIHthcnJheX0gICRicmVha3BvaW50IFtzbV0gICRicmVha3BvaW50c+OBrmtleeOBrmFycmF5XG4gKiBAcGFyYW0gIHtzdHJpbmd9ICRrZXkgICAgICAgIFttaW5dIG1pbiBvciBtYXhcbiAqIEByZXR1cm4ge3ZvaWR9ICAgICAgICAgICAgICAgICAgICAgQG1lZGlhICgka2V5LXdpZHRoKSB7fVxuICovXG4vKipcbiAqIGZvbnQtd2VpZ2h044Gu5pWw5YCk44KS6L+U44GZ6Zai5pWwXG4gKiBAcGFyYW0gIHtTdHJpbmd9ICR3ZWlnaHQgd2VpZ2h044Gu44Kt44O844Ov44O844OJ5YCkXG4gKiBAcmV0dXJuIHtOdW1iZXJ9ICAgICAgICAgd2VpZ2h044GubnVtYmVyXG4gKi9cbi8qKlxuICog6Imy44KSbWFw44GL44KJ5Y+W5b6X44GZ44KL6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHthcnJheX0gICRrZXlzICAgICAg6YWN5YiXXG4gKiBAcGFyYW0gIHtudW1iZXJ9ICRfb3BhY2l0eSAgMC4wIH4gMVxuICogQHJldHVybiB7bWFwfSAgICAgICAgICAgICAgICRjb2xvcnPjga7ku7vmhI/jga5rZXlcbiAqL1xuLyoqXG4gKiB6LWluZGV444KSbWFw44GL44KJ5Y+W5b6X44GZ44KL6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHthcnJheX0gJGtleXMgIOmFjeWIl1xuICogQHJldHVybiB7bWFwfSAgICR6LWluZGV444Gu5Lu75oSP44Gua2V5XG4gKi9cbi8qKlxuICog5pOs5Ly86KaB57Sg44Gn44Ki44K544Oa44Kv44OI5q+U44Gu6aCY5Z+f44KS56K65L+d44GZ44KLbWl4aW5cbiAqIEBwYXJhbSAgeyRfd2lkdGh9ICAgICAgICAgICAgICAgICAgIOaoquOBruWApFxuICogQHBhcmFtICB7JF9oZWlnaHR9ICAgICAgICAgICAgICAgICAg57im44Gu5YCkXG4gKiBAcGFyYW0gIHskX3BzZXVkb19lbGVtZW50fSBbYmVmb3JlXSDmtojosrvjgZnjgovnlpHkvLzopoHntKAgYmVmb3JlIG9yIGFmdGVyXG4gKiBAcmV0dXJuIHt2b2lkfVxuICovXG4vKipcbiAqIGZvbnTjgpJtYXDjgYvjgonlj5blvpfjgZnjgovplqLmlbDjgafjgZlcbiAqIEBwYXJhbSAge2FycmF5fSAka2V5cyAg6YWN5YiXXG4gKiBAcmV0dXJuIHttYXB9ICAgJGZvbnRz44Gu5Lu75oSP44Gua2V5XG4gKi9cbi5ibG9nLXBhZ2VuYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiAzMjBweDtcbiAgcGFkZGluZy10b3A6IDMwcHg7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fcHJldiA+IGEsIC5ibG9nLXBhZ2VuYXRpb25fX25leHQgPiBhIHtcbiAgcGFkZGluZy1ib3R0b206IDJweDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6ICMyMzE4MTU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHM7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX3ByZXYgPiBhOmhvdmVyLCAuYmxvZy1wYWdlbmF0aW9uX19uZXh0ID4gYTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fbnVtYmVycyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwIDE4cHg7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fbnVtYmVycyA+IGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMzNweDtcbiAgaGVpZ2h0OiAzM3B4O1xuICBtYXJnaW46IDAgM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX251bWJlcnMgPiBsaSA+IGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjb2xvcjogIzU3NTc1NztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC40cywgY29sb3IgMC40cztcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fbnVtYmVycyA+IGxpID4gYTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGMyNjNmO1xufVxuXG4uYmxvZy1wYWdlbmF0aW9uX19udW1iZXJzID4gbGkuaXMtY3VycmVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYzI2M2Y7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX251bWJlcnMgPiBsaS5pcy1jdXJyZW50ID4gYSB7XG4gIGNvbG9yOiAjZmZmO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHM7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX251bWJlcnMgPiBsaS5pcy1jdXJyZW50ID4gYTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fdG9pbmRleCB7XG4gIHdpZHRoOiAxMzNweDtcbiAgaGVpZ2h0OiAzM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGMyNjNmO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX3RvaW5kZXggPiBhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAycHg7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cztcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fdG9pbmRleCA+IGE6aG92ZXIge1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5hcnJvdy1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmFycm93LWl0ZW06bm90KDpsYXN0LWNoaWxkKTo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0yOHB4O1xuICBsZWZ0OiA1MCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBjb250ZW50OiBcIlwiO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvY2FyLXNoYXJlL3RyeWFuZ2xlX2Fycm93LnN2Zyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg5MGRlZyk7XG59XG5Ac2NyZWVuIGxnIHtcbiAgLmFycm93LWl0ZW06bm90KDpsYXN0LWNoaWxkKTo6YmVmb3JlIHtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogLTRweDtcbiAgICBib3R0b206IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtN3B4KTtcbiAgfVxufVxuXG4ubWFpbiAud3JhcHBlciB7XG4gIG1heC13aWR0aDogMTAyMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCAyMHB4IDA7XG59XG4ubWFpbiAudHctaW1nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm1haW4gLnR3LWltZyBpbWcsIC5tYWluIC50dy1pbWcgc3ZnLCAubWFpbiAudHctaW1nIGlmcmFtZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG59XG4ubWFpbiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5tYWluIHAge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm1haW4gdWxbY2xhc3NdLFxuLm1haW4gb2xbY2xhc3NdIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuLm1haW4gaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4ubWFpbiBzdmcge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm1haW4gaW1nLCAubWFpbiBzdmcsIC5tYWluIHZpZGVvLCAubWFpbiBjYW52YXMge1xuICBoZWlnaHQ6IGF1dG87XG59XG4ubWFpbiBpbWcsIC5tYWluIHN2ZywgLm1haW4gdmlkZW8sIC5tYWluIGNhbnZhcywgLm1haW4gYXVkaW8sIC5tYWluIGlmcmFtZSwgLm1haW4gZW1iZWQsIC5tYWluIG9iamVjdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm1haW4gdGFibGUge1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cbi5tYWluIGRkIHtcbiAgbWFyZ2luOiAwO1xufVxuLm1haW4gb2wsIC5tYWluIHVsLCAubWFpbiBkbCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cbi5tYWluIC5oaWRkZW4ge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbi5mb290ZXIge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ucGFnZS10b3Age1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxNDhweDtcbiAgaGVpZ2h0OiAzOHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gIEBhcHBseSB0ZXh0LWJsYWNrO1xufVxuLnBhZ2UtdG9wOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBAYXBwbHkgdGV4dC1ibGFjayBvcGFjaXR5LTc1O1xufVxuLnBhZ2UtdG9wOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAxNHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMDAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAgNHB4IDVweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuLnBhZ2UtdG9wX190ZXh0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBmb250LXdlaWdodDogbGlnaHRlcjtcbn1cblxuLnByaWNlLXRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogOTQwcHg7XG4gIEBhcHBseSB0ZXh0LTE0IGxlYWRpbmctcmVsYXhlZDtcbn1cbi5wcmljZS10YWJsZSB0Ym9keSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYzljOWM5O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjOWM5Yzk7XG59XG4ucHJpY2UtdGFibGUgdGgsIC5wcmljZS10YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDE4cHggMTZweDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2M5YzljOTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjOWM5Yzk7XG59XG4ucHJpY2UtdGFibGUgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLnByaWNlLXRhYmxlIC5jb2wtMSB7XG4gIHdpZHRoOiAxOTdweDtcbn1cbi5wcmljZS10YWJsZSAuY29sLTIge1xuICB3aWR0aDogNTA4cHg7XG59XG4ucHJpY2UtdGFibGUgLmNvbC0zIHtcbiAgd2lkdGg6IDE0NXB4O1xufVxuLnByaWNlLXRhYmxlIC5jb2wtNCB7XG4gIHdpZHRoOiAxMjhweDtcbn1cbi5wcmljZS10YWJsZSAuY29sLTMtNCB7XG4gIHdpZHRoOiBjYWxjKDE0NXB4ICsgMTI4cHgpO1xufVxuXG4uc2VjdGlvbl9fdGl0bGUge1xuICBAYXBwbHkgcmVsYXRpdmUgdGV4dC0yMCBsZWFkaW5nLW5vcm1hbCBwYi00IG1iLTEwO1xufVxuLnNlY3Rpb25fX3RpdGxlOjpiZWZvcmUsIC5zZWN0aW9uX190aXRsZTo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgY29udGVudDogXCJcIjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTtcbn1cbi5zZWN0aW9uX190aXRsZTo6YWZ0ZXIge1xuICB3aWR0aDogNDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5MDAxZTtcbn1cbi5zZWN0aW9uX19zdWItdGl0bGUge1xuICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkICNlYjBhMWU7XG4gIEBhcHBseSBmb250LWJvbGQgbGVhZGluZy1ub3JtYWwgcGItMjtcbn1cbkBzY3JlZW4gc20ge1xuICAuc2VjdGlvbl9fc3ViLXRpdGxlIHtcbiAgICBAYXBwbHkgdGV4dC0zMjtcbiAgfVxufVxuXG4uc2hvdy10YWJsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjOWM5Yzk7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2M5YzljOTtcbiAgQGFwcGx5IHRleHQtMTIgbGVhZGluZy1ub3JtYWw7XG59XG4uc2hvdy10YWJsZV9fdGl0bGUsIC5zaG93LXRhYmxlX190ZXh0IHtcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzljOWM5O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M5YzljOTtcbn1cbi5zaG93LXRhYmxlX190aXRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG59XG5Ac2NyZWVuIHNtIHtcbiAgLnNob3ctdGFibGVfX3RpdGxlIHtcbiAgICB3aWR0aDogMjQwcHg7XG4gIH1cbn1cbi5zaG93LXRhYmxlX190ZXh0IHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDEyMHB4KTtcbn1cbkBzY3JlZW4gc20ge1xuICAuc2hvdy10YWJsZV9fdGV4dCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDI0MHB4KTtcbiAgfVxufVxuXG4ubmV3cyBhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5uZXdzIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59IiwiLyoqXG4gKiDlgKTjgYwy44Gk5Lul5LiK44Gu6YWN5YiX44GL44Gp44GG44GL5Yik5a6a44GZ44KL6Zai5pWwXG4gKiBAcGFyYW0gIHthcnJheX0gJF9saXN0IOmFjeWIl+OBi+WIpOWumuOBl+OBn+OBhOWApFxuICogQHJldHVybiB7Ym9vbGV9ICAgICAgICDlgKTjgYwy44Gk5Lul5LiK44Gu6YWN5YiX44Gq44KJdHJ1ZVxuICovXG5AZnVuY3Rpb24gaXNfYXJyYXkoJF9saXN0KSB7XG4gIEByZXR1cm4gdHlwZS1vZigkX2xpc3QpID09IGxpc3Qgb3IgdHlwZS1vZigkX2xpc3QpID09IGFyZ2xpc3Q7XG59XG5cbi8qKlxuICog5pWw5YCk44KScmVt44Gr5aSJ5o+b44GZ44KL6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICR0YXJnZXQgICAgICAgIHJlbeOBq+OBl+OBn+OBhOaVsOWApFxuICogQHBhcmFtICB7TnVtYmVyfSAkdGhyZXNob2xkIFsxXSDjgZfjgY3jgYTlgKRcbiAqIEByZXR1cm4ge051bWJlcn0gICAgICAgICAgICAgICAg5pWw5YCk44GrcmVt44GM5LuY44GE44Gf5pWw5YCk44KS6L+U44GX44G+44GZXG4gKi9cbkBmdW5jdGlvbiBfcmVtKCR0YXJnZXQsICR0aHJlc2hvbGQpIHtcbiAgQGlmKHVuaXQoJHRhcmdldCkgIT0gJycpIHtcbiAgICBAZXJyb3IgJ3JlbeOBq+OBl+OBn+OBhOaVsOWApOOBq+WNmOS9jeOCkuS7mOOBkeOBquOBhOOBp+OBj+OBoOOBleOBhCc7XG4gIH0gQGVsc2UgaWYodW5pdCgkdGhyZXNob2xkKSAhPSAnJykge1xuICAgIEBlcnJvciAn44GX44GN44GE5YCk44Gr5Y2Y5L2N44KS5LuY44GR44Gq44GE44Gn44GP44Gg44GV44GEJ1xuICB9IEBlbHNlIGlmKCR0YXJnZXQgPT0gMCkge1xuICAgIEByZXR1cm4gJHRhcmdldDtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAoKCgkdGFyZ2V0IC8gMTYpICogJHRocmVzaG9sZCkgKiAxcmVtKTtcbiAgfVxufVxuXG4vL+esrOS4gOW8leaVsOOBq+mFjeWIl+OCkua4oeOBmeOBk+OBqOOBjOWPr+iDveOBq+OBquOBo+OBn1xuQGZ1bmN0aW9uIHJlbSgkdGFyZ2V0LCAkdGhyZXNob2xkOiAxKSB7XG4gIEBpZihpc19hcnJheSgkdGFyZ2V0KSkge1xuICAgICRuZXdfcmVtX2FycmF5OiAoKTtcbiAgICBAZWFjaCAkdGFyZ2V0X2l0ZW0gaW4gJHRhcmdldCB7XG4gICAgICAkbmV3X3JlbV9hcnJheTogYXBwZW5kKCRuZXdfcmVtX2FycmF5LCBfcmVtKCR0YXJnZXRfaXRlbSwgJHRocmVzaG9sZCkpO1xuICAgIH1cbiAgICBAcmV0dXJuICRuZXdfcmVtX2FycmF5O1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIF9yZW0oJHRhcmdldCwkdGhyZXNob2xkKTtcbiAgfVxufVxuXG4vKipcbiAqIOaVsOWApOOCkmVt44Gr5aSJ5o+b44GZ44KL6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICR0YXJnZXQgICAgICAgICAgIGVt44Gr44GX44Gf44GE5pWw5YCkXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICRwYXJlbnRWYWx1ZSBbMTZdIOOBl+OBjeOBhOWApFxuICogQHJldHVybiB7TnVtYmVyfSAgICAgICAgICAgICAgICAgICDmlbDlgKTjgatyZW3jgYzku5jjgYTjgZ/mlbDlgKTjgpLov5TjgZfjgb7jgZlcbiAqL1xuQGZ1bmN0aW9uIF9lbSgkdGFyZ2V0LCAkcGFyZW50VmFsdWUpIHtcbiAgQGlmKHVuaXQoJHRhcmdldCkgIT0gJycpIHtcbiAgICBAZXJyb3IgJ2Vt44Gr44GX44Gf44GE5pWw5YCk44Gr5Y2Y5L2N44KS5LuY44GR44Gq44GE44Gn44GP44Gg44GV44GEJztcbiAgfSBAZWxzZSBpZih1bml0KCRwYXJlbnRWYWx1ZSkgIT0gJycpIHtcbiAgICBAZXJyb3IgJ+imquimgee0oOOBruaVsOWApOOBq+WNmOS9jeOCkuS7mOOBkeOBquOBhOOBp+OBj+OBoOOBleOBhCdcbiAgfSBAZWxzZSBpZigkdGFyZ2V0ID09IDApIHtcbiAgICBAcmV0dXJuICR0YXJnZXQ7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gKCgkdGFyZ2V0IC8gMTYpICogMWVtKTtcbiAgfVxufVxuXG4vL+esrOS4gOW8leaVsOOBq+mFjeWIl+OCkua4oeOBmeOBk+OBqOOBjOWPr+iDveOBq+OBquOBo+OBn1xuQGZ1bmN0aW9uIGVtKCR0YXJnZXQsICRwYXJlbnRWYWx1ZTogMTYpIHtcbiAgQGlmKGlzX2FycmF5KCR0YXJnZXQpKSB7XG4gICAgJG5ld19lbV9hcnJheTogKCk7XG4gICAgQGVhY2ggJHRhcmdldF9pdGVtIGluICR0YXJnZXQge1xuICAgICAgJG5ld19lbV9hcnJheTogYXBwZW5kKCRuZXdfZW1fYXJyYXksIF9lbSgkdGFyZ2V0X2l0ZW0sICRwYXJlbnRWYWx1ZSkpO1xuICAgIH1cbiAgICBAcmV0dXJuICRuZXdfZW1fYXJyYXk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gX2VtKCR0YXJnZXQsJHBhcmVudFZhbHVlKTtcbiAgfVxufVxuXG5cbi8qKlxuICog5pWw5YCk44KScHjjgavlpInmj5vjgZnjgovplqLmlbDjgafjgZlcbiAqIEBwYXJhbSAge051bWJlcn0gJGFyZ2V0ICAgICAgICAgIHB444Gr44GX44Gf44GE5pWw5YCkXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICR0aHJlc2hvbGQgWzFdICDjgZfjgY3jgYTlgKRcbiAqIEByZXR1cm4ge051bWJlcn0gICAgICAgICAgICAgICAgIOaVsOWApOOBq3B444GM5LuY44GE44Gf5pWw5YCk44KS6L+U44GX44G+44GZXG4gKi9cbkBmdW5jdGlvbiBfcHgoJHRhcmdldCwgJHRocmVzaG9sZCkge1xuICBAaWYodW5pdCgkdGFyZ2V0KSAhPSAnJykge1xuICAgIEBlcnJvciAncHjjgavjgZfjgZ/jgYTmlbDlgKTjgavljZjkvY3jgpLku5jjgZHjgarjgYTjgafjgY/jgaDjgZXjgYQnO1xuICB9IEBlbHNlIGlmKHVuaXQoJHRocmVzaG9sZCkgIT0gJycpIHtcbiAgICBAZXJyb3IgJ+OBl+OBjeOBhOWApOOBq+WNmOS9jeOCkuS7mOOBkeOBquOBhOOBp+OBj+OBoOOBleOBhCdcbiAgfSBAZWxzZSBpZigkdGFyZ2V0ID09IDApIHtcbiAgICBAcmV0dXJuICR0YXJnZXQ7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gKCgkdGFyZ2V0ICogJHRocmVzaG9sZCkgKiAxcHgpO1xuICB9XG59XG5cbi8v56ys5LiA5byV5pWw44Gr6YWN5YiX44KS5rih44GZ44GT44Go44GM5Y+v6IO944Gr44Gq44Gj44GfXG5AZnVuY3Rpb24gcHgoJHRhcmdldCwgJHRocmVzaG9sZDogMSkge1xuICBAaWYoaXNfYXJyYXkoJHRhcmdldCkpIHtcbiAgICAkbmV3X3B4X2FycmF5OiAoKTtcbiAgICBAZWFjaCAkdGFyZ2V0X2l0ZW0gaW4gJHRhcmdldCB7XG4gICAgICAkbmV3X3B4X2FycmF5OiBhcHBlbmQoJG5ld19weF9hcnJheSwgX3B4KCR0YXJnZXRfaXRlbSwgJHRocmVzaG9sZCkpO1xuICAgIH1cbiAgICBAcmV0dXJuICRuZXdfcHhfYXJyYXk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gX3B4KCR0YXJnZXQsJHRocmVzaG9sZCk7XG4gIH1cbn1cblxuLyoqXG4gKiBsaW5lLWhlaWdodOOBjDHjga7mmYLjgajlkIzjgZjjgavjgarjgovjgojjgYbjgatsaW5lLWhlaWdodOWIhuOBruW3ruWIhuOCkui/lOOBmemWouaVsOOBp+OBmVxuICogQHBhcmFtICB7TnVtYmVyfSAkbGluZUhlaWdodCBsaW5lSGVpZ2h044Gu5YCkXG4gKiBAcGFyYW0gIHtOdW1iZXJ9ICRmb250U2l6ZSAgIGZvbnTjga7lgKRcbiAqIEByZXR1cm4ge051bWJlcn0gICAgICAgICAgICAg5beu5YiG44Gu5pWw5YCkXG4gKi9cbkBmdW5jdGlvbiBtYXJnaW4oJF9saW5lSGVpZ2h0LCAkX2ZvbnRTaXplKSB7XG4gIEBpZih1bml0KCRfbGluZUhlaWdodCkgIT0gJycpIHtcbiAgICBAZXJyb3IgJ2xpbmUtaGVpZ2h044Gr5Y2Y5L2N44KS5LuY44GR44Gq44GE44Gn44GP44Gg44GV44GEJztcbiAgfSBAZWxzZSBpZih1bml0KCRfZm9udFNpemUpICE9ICcnKSB7XG4gICAgQGVycm9yICdmb250LXNpemXjgavljZjkvY3jgpLku5jjgZHjgarjgYTjgafjgY/jgaDjgZXjgYQnO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICgkX2ZvbnRTaXplICogJF9saW5lSGVpZ2h0IC0gJF9mb250U2l6ZSkgLyAyO1xuICB9XG59XG5cbi8qKlxuICog5rex44GE6ZqO5bGk44GubWFw44Gu5YCk44KS5Y+W5b6X44GX44Gm6L+U44GZ6Zai5pWw44Gn44GZ44CCXG4gKiBAcGFyYW0gIHttYXB9ICRtYXAgICBtYXDmnKzkvZNcbiAqIEBwYXJhbSAge21hcH0gJGtleXMgIG1hcOOBrmtleVxuICogQHJldHVybiB7bWFwfSAgICAgICAg5oyH5a6a44GX44GfbWFw44Gua2V5XG4gKi9cbkBmdW5jdGlvbiBtYXAtZGVlcC1nZXQoJG1hcCwgJGtleXMuLi4pIHtcbiAgQGVhY2ggJGtleSBpbiAka2V5cyB7XG4gICAgQGlmIChub3QgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgJG1hcDogbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgfVxuICBAcmV0dXJuICRtYXA7XG59XG4iLCIvL+ODluODrOODvOOCr+ODneOCpOODs+ODiOOBruWumue+qVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8v44Oh44OH44Kj44Ki44Kv44Ko44Oq44Gu5aSJ5pWwXG4kYnJlYWtwb2ludHM6IChcbiAgeHM6IDM2NSxcbiAgc206IDcyMCxcbiAgbWQ6IDk4MCxcbiAgbGc6IDEyMDAsXG4pO1xuXG4vL+OCq+ODs+ODl+OBruOCpOODs+ODiuODvOaoquW5hVxuJHdyYXBwZXItd2lkdGg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBtZCApO1xuLy/jgrnjg57jg5vmmYLjga7lt6blj7Pjga5wYWRkaW5nXG4kd3JhcHBlci1wYWRkaW5nOiAyMDtcblxuLyoqXG4gKiAkYnJlYWtwb2ludHPjga7kuK3jga7mlbDlgKTjgpJAbWVkaWHjgavlhaXjgozjgaZlbeOBq+OBl+OBpui/lOOBmW1peGluXG4gKiBAcGFyYW0gIHthcnJheX0gICRicmVha3BvaW50IFtzbV0gICRicmVha3BvaW50c+OBrmtleeOBrmFycmF5XG4gKiBAcGFyYW0gIHtzdHJpbmd9ICRrZXkgICAgICAgIFttaW5dIG1pbiBvciBtYXhcbiAqIEByZXR1cm4ge3ZvaWR9ICAgICAgICAgICAgICAgICAgICAgQG1lZGlhICgka2V5LXdpZHRoKSB7fVxuICovXG5AbWl4aW4gbWVkaWEoJF9icmVha3BvaW50czogc20sICRfa2V5OiBtaW4pIHtcbiAgLy8kX2JyZWFrcG9pbnRz44GuRXJyb3LmpJzlh7pcbiAgQGVhY2ggJF9oYXNfYnJlYWtwb2ludCBpbiAkX2JyZWFrcG9pbnRzIHtcbiAgICAkX2N1cnJlbnRfaW5kZXg6IGluZGV4KCRfYnJlYWtwb2ludHMsICRfaGFzX2JyZWFrcG9pbnQpO1xuICAgIEBpZihtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRfaGFzX2JyZWFrcG9pbnQpID09IGZhbHNlKSB7XG4gICAgICBAZXJyb3IgJ+esrOS4gOW8leaVsOOBriN7JF9jdXJyZW50X2luZGV4feebruOBruWApCN7JF9oYXNfYnJlYWtwb2ludH3jga/nhKHlirnjgarlgKTjgafjgZnjgIInO1xuICAgIH1cbiAgfVxuICAvLyRfa2V544GMbWlu44GLbWF444GL44GuRXJyb3LmpJzlh7pcbiAgJGtleV9hcnJheTogKG1pbixtYXgpO1xuICBAaWYoaW5kZXgoJGtleV9hcnJheSwgJF9rZXkpID09IG51bGwpIHtcbiAgICBAZXJyb3IgJ+esrOS6jOW8leaVsCN7JF9rZXl944Gv54Sh5Yq544Gq5YCk44Gn44GZ44CCbWluIG9yIG1heOOBp+aMh+WumuOBl+OBpuOBj+OBoOOBleOBhOOAgidcbiAgfVxuXG4gICRfYnJlYWtwb2ludC1sZW5ndGg6IGxlbmd0aCgkX2JyZWFrcG9pbnRzKTtcbiAgQGlmKCRfYnJlYWtwb2ludC1sZW5ndGggPT0gMSkge1xuXG4gICAgJF9maXJzdF9icmVha3BvaW50OiBudGgoJF9icmVha3BvaW50cywxKTtcbiAgICAkX2ZpcnN0X2JyZWFrcG9pbnRfdmFsdWU6IG1hcF9nZXQoJGJyZWFrcG9pbnRzLCRfZmlyc3RfYnJlYWtwb2ludCk7XG4gICAgQGlmICgkX2tleSA9PSBtYXgpIHtcbiAgICAgIEBtZWRpYSAoI3skX2tleX0td2lkdGg6IGVtKCRfZmlyc3RfYnJlYWtwb2ludF92YWx1ZSkgLSAuMDAxMSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGlmICgkX2tleSA9PSBtaW4pIHtcbiAgICAgIEBtZWRpYSAoI3skX2tleX0td2lkdGg6IGVtKCRfZmlyc3RfYnJlYWtwb2ludF92YWx1ZSkpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gIH0gQGVsc2UgaWYoJF9icmVha3BvaW50LWxlbmd0aCA9PSAyKSB7XG5cbiAgICAkX2ZpcnN0X2JyZWFrcG9pbnQ6IG50aCgkX2JyZWFrcG9pbnRzLDEpO1xuICAgICRfc2Vjb25kX2JyZWFrcG9pbnQ6IG50aCgkX2JyZWFrcG9pbnRzLDIpO1xuICAgICRfZmlyc3RfYnJlYWtwb2ludF92YWx1ZTogbWFwX2dldCgkYnJlYWtwb2ludHMsJF9maXJzdF9icmVha3BvaW50KTtcbiAgICAkX3NlY29uZF9icmVha3BvaW50X3ZhbHVlOiBtYXBfZ2V0KCRicmVha3BvaW50cywkX3NlY29uZF9icmVha3BvaW50KTtcbiAgICAkX21heF92YWx1ZTogbWF4KCRfZmlyc3RfYnJlYWtwb2ludF92YWx1ZSwkX3NlY29uZF9icmVha3BvaW50X3ZhbHVlKTtcbiAgICAkX21pbl92YWx1ZTogbWluKCRfZmlyc3RfYnJlYWtwb2ludF92YWx1ZSwkX3NlY29uZF9icmVha3BvaW50X3ZhbHVlKTtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiBlbSgkX21pbl92YWx1ZSkpIGFuZCAobWF4LXdpZHRoOiBlbSgkX21heF92YWx1ZSkgLSAuMDAxMSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciAn56ys5LiA5byV5pWw44Gv5pyA5aSnMuOBpOOBl+OBi+ioreWumuOBp+OBjeOBvuOBm+OCk+OAgidcbiAgfVxufVxuIiwiJGZvbnQtd2VpZ2h0OiAoXG4gIHRoaW46IDEwMCxcbiAgbGlnaHQ6IDMwMCxcbiAgcmVndWxhcjogNDAwLFxuICBtZWRpdW06IDUwMCxcbiAgYm9sZDogNzAwLFxuICBibGFjazogOTAwXG4pO1xuXG4vKipcbiAqIGZvbnQtd2VpZ2h044Gu5pWw5YCk44KS6L+U44GZ6Zai5pWwXG4gKiBAcGFyYW0gIHtTdHJpbmd9ICR3ZWlnaHQgd2VpZ2h044Gu44Kt44O844Ov44O844OJ5YCkXG4gKiBAcmV0dXJuIHtOdW1iZXJ9ICAgICAgICAgd2VpZ2h044GubnVtYmVyXG4gKi9cbkBmdW5jdGlvbiBmb250LXdlaWdodCgkX3dlaWdodCkge1xuICBAaWYobWFwLWhhcy1rZXkoJGZvbnQtd2VpZ2h0LCAkX3dlaWdodCkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGZvbnQtd2VpZ2h0LCAkX3dlaWdodCk7XG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciAn5L2/44GI44KL5YCk44Gv5Lul5LiL44Gn44GZ4oaSI3ttYXAta2V5cygkZm9udC13ZWlnaHQpfSdcbiAgfVxufSIsIi8v6Imy44Gu5a6a576pXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRjb2xvcnM6IChcbiAgd2hpdGU6ICNmZmYsXG4gIGJsYWNrOiAjMDAwLFxuICByZWQ6ICNkODNlNGYsXG4gIGdyYXk6ICM1OTU3NTcsXG4gIHNub3c6ICNlZmVmZWYsXG4gIHNpbHZlcjogI2NjYyxcbiAgbmF2eTogIzAwNDBhNyxcbiAgYmx1ZTogIzAwYTBlOSxcbiAgZ3JlZW46ICMwMDkxM2EsXG4gIHBpbms6ICNmN2Q4ZGMsXG4gIHRleHQ6IChcbiAgICBibGFjazogIzIyMTgxNSxcbiAgICBkZWVwcmVkOiAjZGMyNjNmLFxuICAgIGxpZ2h0cmVkOiAjZTczZTUxLFxuICApLFxuICBiZDogKFxuICAgIGdyYXk6ICNjY2MsXG4gICAgYmxhY2s6ICMyMjE4MTUsXG4gICAgZGVlcHJlZDogI2RjMjYzZixcbiAgICBsaWdodHJlZDogI2U3M2U1MSxcbiAgKSxcbiAgYmc6IChcbiAgICBncmF5OiAjZWZlZmVmLFxuICAgIGJsYWNrOiAjMjIxODE1LFxuICAgIGRlZXByZWQ6ICNkYzI2M2YsXG4gICAgbGlnaHRyZWQ6ICNlNzNlNTEsXG4gICksXG4gIGVsZWM6IChcbiAgICBwaW5rOiNmZmIyYmMsXG4gICAgeWVsbG93OiAjZmZlMjQwLFxuICAgIHNpbHZlcjogIzcwNzA3MCxcbiAgICBsaWdodHNpbHZlcjogI2NkY2VjZSxcbiAgICBsLXBpbms6ICNmZGQwZDAsXG4gICAgZC1waW5rOiAjZmZkYmRiLFxuICAgIG8tcGluazogI2ZmZWJlZSxcbiAgICBnb2xkOiAjZTdlM2RhLFxuICApLFxuICBkaHR2OiAoXG4gICAgcmVkOiAjYmIwYTJmXG4gICksXG4gIGR3YXNoOiAoXG4gICAgYmxhY2s6ICMwODA4MDgsXG4gICAgZ3JlZW46ICMzM2FmMzMsXG4gICAgYmx1ZTogIzAwNDBhNyxcbiAgICBsaWdodGJsdWU6ICMxNTVkZDEsXG4gICksXG4gIHNkZ3M6IChcbiAgICBibHVlOiAjMDA5ZWRiLFxuICAgIGxpZ2h0Ymx1ZTogI2YyZjVmOSxcbiAgICBib3JkZXJibHVlOiAjMDA3ZWFmLFxuICApLFxuICBldGFqaW1hOiAoXG4gICAgcmVkOiAjYjcyMzFkLFxuICAgIGJsdWU6ICMwMDkzZmYsXG4gICAgYmctYmx1ZTogIzNiOGFjNCxcbiAgICB5ZWxsb3c6ICNmZmQ4MzQsXG4gIClcbik7XG5cbi8qKlxuICog6Imy44KSbWFw44GL44KJ5Y+W5b6X44GZ44KL6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHthcnJheX0gICRrZXlzICAgICAg6YWN5YiXXG4gKiBAcGFyYW0gIHtudW1iZXJ9ICRfb3BhY2l0eSAgMC4wIH4gMVxuICogQHJldHVybiB7bWFwfSAgICAgICAgICAgICAgICRjb2xvcnPjga7ku7vmhI/jga5rZXlcbiAqL1xuQGZ1bmN0aW9uIGNvbG9yKCRfa2V5cywkX29wYWNpdHk6IG51bGwpIHtcbiAgQGlmKCRfb3BhY2l0eSAhPSBudWxsKSB7XG4gICAgQHJldHVybiByZ2JhKG1hcC1kZWVwLWdldCgkY29sb3JzLCAkX2tleXMuLi4pLCRfb3BhY2l0eSlcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZGVlcC1nZXQoJGNvbG9ycywgJF9rZXlzLi4uKVxuICB9XG59XG4iLCIkei1pbmRleDogKFxuICBoYW06IDUwMixcbiAgZ25hdjogNTAxLFxuICByZXNlcnZlZDogNTAwLFxuICBmcm9udDogMjAwLFxuICBtb2RhbDogKFxuICAgIG1haW46IDEwMSxcbiAgKSxcbiAgbWFpbjogMSxcbiAgYmFjazogLTFcbik7XG5cblxuLyoqXG4gKiB6LWluZGV444KSbWFw44GL44KJ5Y+W5b6X44GZ44KL6Zai5pWw44Gn44GZXG4gKiBAcGFyYW0gIHthcnJheX0gJGtleXMgIOmFjeWIl1xuICogQHJldHVybiB7bWFwfSAgICR6LWluZGV444Gu5Lu75oSP44Gua2V5XG4gKi9cbkBmdW5jdGlvbiB6LWluZGV4KCRrZXlzKSB7XG4gIEByZXR1cm4gbWFwLWRlZXAtZ2V0KCR6LWluZGV4LCAka2V5cy4uLik7XG59XG4iLCIvKipcbiAqIOaTrOS8vOimgee0oOOBp+OCouOCueODmuOCr+ODiOavlOOBrumgmOWfn+OCkueiuuS/neOBmeOCi21peGluXG4gKiBAcGFyYW0gIHskX3dpZHRofSAgICAgICAgICAgICAgICAgICDmqKrjga7lgKRcbiAqIEBwYXJhbSAgeyRfaGVpZ2h0fSAgICAgICAgICAgICAgICAgIOe4puOBruWApFxuICogQHBhcmFtICB7JF9wc2V1ZG9fZWxlbWVudH0gW2JlZm9yZV0g5raI6LK744GZ44KL55aR5Ly86KaB57SgIGJlZm9yZSBvciBhZnRlclxuICogQHJldHVybiB7dm9pZH1cbiAqL1xuQG1peGluIGFzcGVjdCgkX3dpZHRoLCAkX2hlaWdodCwgJF9wc2V1ZG9fZWxlbWVudDogYmVmb3JlKSB7XG4gIC8vIG1heC13aWR0aDogJF9oZWlnaHQgKyBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgJjo6I3skX3BzZXVkb19lbGVtZW50fSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IHBlcmNlbnRhZ2UoJF93aWR0aC8kX2hlaWdodCk7XG4gICAgY29udGVudDogJyc7XG4gIH1cbiAgPiBpbWcsIHN2Z3tcbiAgICBAaW5jbHVkZSBwb3NpdGlvbjtcbiAgfVxufVxuIiwiJGZvbnRzOiAoXG4gIGphOiAoXG4gICAgc2FuczogKCdOb3RvIFNhbnMgSlAnLCBzYW5zLXNlcmlmKSxcbiAgICBzZXJpZjogKCdOb3RvIFNlcmlmIEpQJywgc2VyaWYpXG4gICksXG4gIGVuOiAoXG4gICAgcm9ib3RvOiAoJ1JvYm90bycsIHNhbnMtc2VyaWYpLFxuICAgIGRhbmNpbmc6ICgnRGFuY2luZyBTY3JpcHQnLCBjdXJzaXZlKSxcbiAgICBqb3NlZmluOiAoJ0pvc2VmaW4gU2xhYicsIHNlcmlmKVxuICApXG4pO1xuXG4vKipcbiAqIGZvbnTjgpJtYXDjgYvjgonlj5blvpfjgZnjgovplqLmlbDjgafjgZlcbiAqIEBwYXJhbSAge2FycmF5fSAka2V5cyAg6YWN5YiXXG4gKiBAcmV0dXJuIHttYXB9ICAgJGZvbnRz44Gu5Lu75oSP44Gua2V5XG4gKi9cbkBmdW5jdGlvbiBmb250KCRrZXlzKSB7XG4gIEByZXR1cm4gbWFwLWRlZXAtZ2V0KCRmb250cywgJGtleXMuLi4pO1xufVxuIiwiLmJsb2ctcGFnZW5hdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXgtd2lkdGg6IDMyMHB4O1xuICBwYWRkaW5nLXRvcDogMzBweDtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4uYmxvZy1wYWdlbmF0aW9uX19wcmV2ID4gYSwgLmJsb2ctcGFnZW5hdGlvbl9fbmV4dCA+IGEge1xuICBwYWRkaW5nLWJvdHRvbTogMnB4O1xuICBmb250LXNpemU6IC44NzVyZW07XG4gIGNvbG9yOiAjMjMxODE1O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHM7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX3ByZXYgPiBhOmhvdmVyLCAuYmxvZy1wYWdlbmF0aW9uX19uZXh0ID4gYTpob3ZlciB7XG4gIG9wYWNpdHk6IC43O1xufVxuXG4uYmxvZy1wYWdlbmF0aW9uX19udW1iZXJzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDAgMThweDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4uYmxvZy1wYWdlbmF0aW9uX19udW1iZXJzID4gbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAzM3B4O1xuICBoZWlnaHQ6IDMzcHg7XG4gIG1hcmdpbjogMCAzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fbnVtYmVycyA+IGxpID4gYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICBmb250LXNpemU6IDFyZW07XG4gIGNvbG9yOiAjNTc1NzU3O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuNHMsIGNvbG9yIC40cztcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fbnVtYmVycyA+IGxpID4gYTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGMyNjNmO1xufVxuXG4uYmxvZy1wYWdlbmF0aW9uX19udW1iZXJzID4gbGkuaXMtY3VycmVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYzI2M2Y7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX251bWJlcnMgPiBsaS5pcy1jdXJyZW50ID4gYSB7XG4gIGNvbG9yOiAjZmZmO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC40cztcbn1cblxuLmJsb2ctcGFnZW5hdGlvbl9fbnVtYmVycyA+IGxpLmlzLWN1cnJlbnQgPiBhOmhvdmVyIHtcbiAgb3BhY2l0eTogLjc7XG59XG5cbi5ibG9nLXBhZ2VuYXRpb25fX3RvaW5kZXgge1xuICB3aWR0aDogMTMzcHg7XG4gIGhlaWdodDogMzNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RjMjYzZjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4uYmxvZy1wYWdlbmF0aW9uX190b2luZGV4ID4gYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nLWJvdHRvbTogMnB4O1xuICBmb250LXNpemU6IC44NzVyZW07XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzO1xufVxuXG4uYmxvZy1wYWdlbmF0aW9uX190b2luZGV4ID4gYTpob3ZlciB7XG4gIG9wYWNpdHk6IC43O1xufVxuIiwiLmFycm93LWl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtMjhweDtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2ltZy9jYXItc2hhcmUvdHJ5YW5nbGVfYXJyb3cuc3ZnKTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDkwZGVnKTtcblxuICAgICAgQHNjcmVlbiBsZyB7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICByaWdodDogLTRweDtcbiAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtN3B4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIOacrOWutueSsOWig+OBruODquOCu+ODg+ODiOOCkuaJk+OBoea2iOOBmeOBn+OCgeOBruODmeODvOOCueOCueOCv+OCpOODq1xuXG4ubWFpbiB7XG5cbiAgLndyYXBwZXIge1xuICAgIG1heC13aWR0aDogcHgoOTgwICsgKDIwICogMikpO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIEBpZiAyMCA+IDAge1xuICAgICAgcGFkZGluZzogMCBweCgyMCkgMDtcbiAgICB9XG4gIH1cblxuICAudHctaW1nIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBpbWcsIHN2ZywgaWZyYW1lIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAvL3VsLG9s44Gn44GvbGlzdC1zdHlsZeOCkuihqOekuuOBl+OBquOBhOOAglxuICB1bFtjbGFzc10sXG4gIG9sW2NsYXNzXSB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIHN2ZyB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIGltZywgc3ZnLCB2aWRlbywgY2FudmFzIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICBpbWcsIHN2ZywgdmlkZW8sIGNhbnZhcywgYXVkaW8sIGlmcmFtZSwgZW1iZWQsIG9iamVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0YWJsZSB7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgfVxuXG4gIGRkIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBvbCwgdWwsIGRsIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5oaWRkZW4ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuIiwiLnBhZ2UtdG9wIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTQ4cHg7XG4gIGhlaWdodDogMzhweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3M7XG4gIEBhcHBseSB0ZXh0LWJsYWNrO1xuICAmOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgQGFwcGx5IHRleHQtYmxhY2sgb3BhY2l0eS03NTtcbiAgfVxuICAmOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAxNHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwMDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAgNHB4IDVweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cblxuICAmX190ZXh0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICBmb250LXdlaWdodDogbGlnaHRlcjtcbiAgfVxufVxuIixudWxsLCIucHJpY2UtdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiA5NDBweDtcbiAgQGFwcGx5IHRleHQtMTQgbGVhZGluZy1yZWxheGVkO1xuXG4gICYgdGJvZHkge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYzljOWM5O1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2M5YzljOTtcbiAgfVxuXG4gICYgdGgsICYgdGQge1xuICAgIHBhZGRpbmc6IDE4cHggMTZweDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzljOWM5O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzljOWM5O1xuICB9XG5cbiAgJiB0aCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbiAgfVxuXG4gICYgLmNvbC0xIHtcbiAgICB3aWR0aDogMTk3cHg7XG4gIH1cblxuICAmIC5jb2wtMiB7XG4gICAgd2lkdGg6IDUwOHB4O1xuICB9XG5cbiAgJiAuY29sLTMge1xuICAgIHdpZHRoOiAxNDVweDtcbiAgfVxuXG4gICYgLmNvbC00IHtcbiAgICB3aWR0aDogMTI4cHg7XG4gIH1cblxuICAmIC5jb2wtMy00IHtcbiAgICB3aWR0aDogY2FsYygxNDVweCArIDEyOHB4KTtcbiAgfVxufVxuIiwiLnNlY3Rpb24ge1xuXG4gICZfX3RpdGxlIHtcbiAgICBAYXBwbHkgcmVsYXRpdmUgdGV4dC0yMCBsZWFkaW5nLW5vcm1hbCBwYi00IG1iLTEwO1xuICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDRweDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlOTAwMWU7XG4gICAgfVxuICB9XG5cbiAgJl9fc3ViLXRpdGxlIHtcbiAgICBmb250LXNpemU6IHJlbSgxNyk7XG4gICAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkICNlYjBhMWU7XG4gICAgQGFwcGx5IGZvbnQtYm9sZCBsZWFkaW5nLW5vcm1hbCBwYi0yO1xuXG4gICAgQHNjcmVlbiBzbSB7XG4gICAgICBAYXBwbHkgdGV4dC0zMjtcbiAgICB9XG4gIH1cbn1cbiIsIi5zaG93LXRhYmxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2M5YzljOTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjYzljOWM5O1xuICBAYXBwbHkgdGV4dC0xMiBsZWFkaW5nLW5vcm1hbDtcblxuICAmX190aXRsZSwgJl9fdGV4dCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjOWM5Yzk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjOWM5Yzk7XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMjBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcblxuICAgIEBzY3JlZW4gc20ge1xuICAgICAgd2lkdGg6IDI0MHB4O1xuICAgIH1cbiAgfVxuXG4gICZfX3RleHQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMjBweCk7XG5cbiAgICBAc2NyZWVuIHNtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyNDBweCk7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0ICcuLi8uLi9jb21tb24vc2Nzcy9AZm91bmRhdGlvbi9mb3VuZGF0aW9uJztcbkBpbXBvcnQgJ21vZHVsZXMvYXJyb3ctaXRlbS5zY3NzJztcbkBpbXBvcnQgJ21vZHVsZXMvYmFzZS5zY3NzJztcbkBpbXBvcnQgJ21vZHVsZXMvcGFnZS10b3Auc2Nzcyc7XG5AaW1wb3J0ICdtb2R1bGVzL3ByaWNlLXRhYmxlLnNjc3MnO1xuQGltcG9ydCAnbW9kdWxlcy9zZWN0aW9uLnNjc3MnO1xuQGltcG9ydCAnbW9kdWxlcy9zaG93LXRhYmxlLnNjc3MnO1xuXG4ubmV3cyB7XG4gIGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/